Class ProjectLifecycleFactory<T extends ProjectLifecycle>

java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.ignition.gateway.project.ProjectLifecycleFactory<T>

public abstract class ProjectLifecycleFactory<T extends ProjectLifecycle> extends AbstractLifecycle
  • Field Details

  • Constructor Details

    • ProjectLifecycleFactory

      public ProjectLifecycleFactory(ProjectManagerBase projectManager)
  • Method Details

    • onStartup

      protected final void onStartup()
      Specified by:
      onStartup in class AbstractLifecycle
    • onShutdown

      protected final void onShutdown()
      Specified by:
      onShutdown in class AbstractLifecycle
    • getLifecycle

      public Optional<T> getLifecycle(String projectName)
      Get the ProjectLifecycle for projectName, if it exists.
      Parameters:
      projectName - the project name the lifecycle belongs to.
      Returns:
      the ProjectLifecycle for projectName, if it exists.
    • getLifecycles

      public final com.google.common.collect.ImmutableList<T> getLifecycles()
      Get an immutable copy of the current ProjectLifecycles.
      Returns:
      an immutable copy of the current ProjectLifecycles.
    • createProjectLifecycle

      public abstract T createProjectLifecycle(RuntimeProject project)
      Create an instance of ProjectLifecycle that can manage runtime and lifecycle for project.
      Parameters:
      project - the RuntimeProject that will be run.
      Returns:
      a ProjectLifecycle that can manage runtime and lifecycle for project.
    • restartAll

      public void restartAll()
      We may need to restart all lifecycles of a type (such as scripting) if a module is installed, restarted or uninstalled. Most LifecycleFactories will not override this.
    • getResourceFilter

      protected abstract ResourceFilter getResourceFilter()
      Get the ResourceFilter to apply when getting matching resources this lifecycle is interested in.
      Returns:
      the ResourceFilter to apply when matching resources this lifecycle is interested in.
    • getProjectFilter

      public Predicate<RuntimeProject> getProjectFilter()
      Return a Predicate that indicates whether a project should have a ProjectLifecycle created for it.

      For example, if the project doesn't contain any resources of a certain type then this predicate could return false to avoid creating a lifecycle that doesn't actually have any resources to run.

      Should resources of an interesting type later get added the machinery of ProjectLifecycleFactory ensures a lifecycle will have a chance to be created at that time.

      Returns:
      a Predicate that indicates whether a project should have a ProjectLifecycle created for it.