Interface DesignableProject
- All Superinterfaces:
Project,Serializable
- All Known Implementing Classes:
DesignerProjectTreeImpl
Extension of
Project with additional functionality to support the Designer's need to model the project
as a tree of resources which can be mutated and staged for push and pull operations.-
Field Summary
Fields inherited from interface com.inductiveautomation.ignition.common.project.Project
GLOBAL_PROJECT_NAME, PIPELINE_PROJECT_NAME, PROJECT_NAME_PATTERN, SFC_PROJECT_NAME -
Method Summary
Modifier and TypeMethodDescriptiondefault voidcreateOrModify(ProjectResource resource) Create the given resource if one doesn't already exist, otherwise, modify it.default voidcreateOrModify(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Create the given resource if one doesn't already exist, otherwise, modify it.voidcreateResource(ProjectResource resource) Create a new resource.default ProjectResourcecreateResourceSafe(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Create a new resource and add it at the given path.default ProjectResourcecreateResourceSafe(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer, String nameFormat) Create a new resource and add it at the given path.default voidDelete the resource with the given id.voiddeleteResource(ResourcePath path) Delete the resource at a given path.booleandiscardChanges(ResourcePath path) Discards any local changes for a path.voiddiscardOverrides(ResourcePath path) Discards changes made to overridden resourcesgetConflicts(Collection<ChangeOperation> changes) Return the project name where the given ResourcePath is actually defined.default Optional<ProjectResource>Get a resource, but only if it is a locally defined resource.default Optional<ProjectResource>getLocalResource(ResourcePath path) Get a resource, but only if it is a locally defined resource.booleanisChanged(ResourcePath path) booleanisConflict(ResourcePath path) booleanisInherited(ResourcePath path) booleanisLocal(ResourcePath path) booleanisOverridable(ResourcePath path) booleanisOverridden(ResourcePath path) default booleanisProtected(ResourcePath resourcePath) Checks whether resource is protectedvoidmodifyResource(ProjectResource resource) Modify an existing resource.default voidmodifyResource(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Modify an existing resource, if it exists.default booleanmodifyResourceIfLocal(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Modify an existing resource, if it exists.default voidrenameResource(ProjectResourceId id, String newName) Rename a resource at the given path.voidrenameResource(ResourcePath path, String newName) Rename a resource at the given path.default voidsetProtected(ResourcePath resourcePath, boolean value) Protect or unprotect a resourceMethods inherited from interface com.inductiveautomation.ignition.common.project.Project
addProjectResourceListener, browse, getAllResources, getDescription, getManifest, getName, getParent, getProjectInheritanceStructure, getProjectSnapshots, getResource, getResource, getResources, getResourcesOfType, getSingletonResource, getTitle, hasResourcesOfType, isEnabled, isInheritable, isRunnable, removeProjectResourceListener
-
Method Details
-
getLocalResource
Get a resource, but only if it is a locally defined resource. -
getLocalResource
Get a resource, but only if it is a locally defined resource. -
createResource
Create a new resource.Will also create any folders needed along the new resource's path.
- Throws:
NameInUseException- if the resource's name is is already in use by a local sibling.ResourceNamingException
-
createResourceSafe
default ProjectResource createResourceSafe(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Create a new resource and add it at the given path. If there is already a resource at the given path, then the new resource will be given a new name like "OriginalName (1)"- Parameters:
path- The desired path for the new resource. Any needed folders along the path will be created.builderConsumer- Callback for setting the details of the new resource. The correct project name and resource path will already be set automatically.- Returns:
- The resource that was created
-
createResourceSafe
default ProjectResource createResourceSafe(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer, String nameFormat) Create a new resource and add it at the given path. If there is already a resource at the given path, then the new resource will be given a new name.- Parameters:
path- The desired path for the new resourcebuilderConsumer- Callback for setting the details of the new resource. The correct project name and resource path will already be set automatically.nameFormat- String format for appending a number to the end of the existing name, like " (%s)"- Returns:
- The resource that was created
-
modifyResource
Modify an existing resource. Must already exist as a local resource, otherwise this will throw anResourceNotFoundException- Throws:
ResourceNotFoundException
-
modifyResource
default void modifyResource(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) throws ResourceNotFoundException Modify an existing resource, if it exists. If not, will throw anResourceNotFoundException- Throws:
ResourceNotFoundException
-
modifyResourceIfLocal
default boolean modifyResourceIfLocal(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) throws ResourceNotFoundException Modify an existing resource, if it exists. If not, do nothing.- Returns:
- True if a local resource was found and modified.
- Throws:
ResourceNotFoundException
-
createOrModify
Create the given resource if one doesn't already exist, otherwise, modify it. -
createOrModify
Create the given resource if one doesn't already exist, otherwise, modify it. -
isProtected
Checks whether resource is protected- Parameters:
resourcePath- the resource path- Returns:
- true if protected, otherwise false
-
setProtected
Protect or unprotect a resource- Parameters:
resourcePath- the resource pathvalue- the value
-
deleteResource
Delete the resource with the given id.- Throws:
ResourceNotFoundException
-
deleteResource
Delete the resource at a given path.- Throws:
ResourceNotFoundException
-
renameResource
Rename a resource at the given path.- Throws:
ResourceNamingException
-
renameResource
Rename a resource at the given path.- Throws:
ResourceNamingException
-
discardChanges
Discards any local changes for a path.- Returns:
- true if there were changes to discard, false if there were no changes in the first place.
-
discardOverrides
Discards changes made to overridden resources -
isLocal
- Returns:
- True if there is a project resource at the given path that defined in the local project.
-
isChanged
- Returns:
- True if there is a resource at the given path that has been locally altered.
-
isInherited
- Returns:
- True if there is a resource at the given path that is inherited from a parent project
-
isOverridable
- Returns:
- False if there is an inherited resource that does not allow overrides. True otherwise.
-
isOverridden
- Returns:
- True if there is a resource at the given path defined in this project that is overriding a resource from a parent project at the same path.
-
isConflict
- Returns:
- True if there is a resource with a conflicting (but differently cased) name at the given path - see
NameCollisionException
-
getDefiningProject
Return the project name where the given ResourcePath is actually defined. -
getChanges
List<ChangeOperation> getChanges()- Returns:
- The change operations that have occurred on this project since loaded or since the last applyChanges
-
getConflicts
- Parameters:
changes- Diff operations applicable to the local project- Returns:
- a collection of the change operations from diff that conflict with local changes
-