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 Summary
Fields Modifier and Type Field Description static java.util.function.Predicate<RuntimeProject>PROJECT_IS_RUNNABLE
-
Constructor Summary
Constructors Constructor Description ProjectLifecycleFactory(ProjectManagerBase projectManager)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract TcreateProjectLifecycle(RuntimeProject project)Create an instance ofProjectLifecyclethat can manage runtime and lifecycle forproject.java.util.Optional<T>getLifecycle(java.lang.String projectName)Get theProjectLifecycleforprojectName, if it exists.com.google.common.collect.ImmutableList<T>getLifecycles()Get an immutable copy of the currentProjectLifecycles.java.util.function.Predicate<RuntimeProject>getProjectFilter()Return aPredicatethat indicates whether a project should have aProjectLifecyclecreated for it.protected abstract ResourceFiltergetResourceFilter()Get theResourceFilterto apply when getting matching resources this lifecycle is interested in.protected voidonShutdown()protected voidonStartup()voidrestartAll()We may need to restart all lifecycles of a type (such as scripting) if a module is installed, restarted or uninstalled.-
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
-
-
-
Field Detail
-
PROJECT_IS_RUNNABLE
public static final java.util.function.Predicate<RuntimeProject> PROJECT_IS_RUNNABLE
-
-
Constructor Detail
-
ProjectLifecycleFactory
public ProjectLifecycleFactory(ProjectManagerBase projectManager)
-
-
Method Detail
-
onStartup
protected final void onStartup()
- Specified by:
onStartupin classAbstractLifecycle
-
onShutdown
protected final void onShutdown()
- Specified by:
onShutdownin classAbstractLifecycle
-
getLifecycle
public java.util.Optional<T> getLifecycle(java.lang.String projectName)
Get theProjectLifecycleforprojectName, if it exists.- Parameters:
projectName- the project name the lifecycle belongs to.- Returns:
- the
ProjectLifecycleforprojectName, if it exists.
-
getLifecycles
public final com.google.common.collect.ImmutableList<T> getLifecycles()
Get an immutable copy of the currentProjectLifecycles.- Returns:
- an immutable copy of the current
ProjectLifecycles.
-
createProjectLifecycle
public abstract T createProjectLifecycle(RuntimeProject project)
Create an instance ofProjectLifecyclethat can manage runtime and lifecycle forproject.- Parameters:
project- theRuntimeProjectthat will be run.- Returns:
- a
ProjectLifecyclethat can manage runtime and lifecycle forproject.
-
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 theResourceFilterto apply when getting matching resources this lifecycle is interested in.- Returns:
- the
ResourceFilterto apply when matching resources this lifecycle is interested in.
-
getProjectFilter
public java.util.function.Predicate<RuntimeProject> getProjectFilter()
Return aPredicatethat indicates whether a project should have aProjectLifecyclecreated for it.For example, if the project doesn't contain any resources of a certain type then this predicate could return
falseto 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
ProjectLifecycleFactoryensures a lifecycle will have a chance to be created at that time.- Returns:
- a
Predicatethat indicates whether a project should have aProjectLifecyclecreated for it.
-
-