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 void
createOrModify
(ProjectResource resource) Create the given resource if one doesn't already exist, otherwise, modify it.default void
createOrModify
(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Create the given resource if one doesn't already exist, otherwise, modify it.void
createResource
(ProjectResource resource) Create a new resource.default ProjectResource
createResourceSafe
(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Create a new resource and add it at the given path.default ProjectResource
createResourceSafe
(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer, String nameFormat) Create a new resource and add it at the given path.default void
Delete the resource with the given id.void
deleteResource
(ResourcePath path) Delete the resource at a given path.boolean
discardChanges
(ResourcePath path) Discards any local changes for a path.void
discardOverrides
(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.boolean
isChanged
(ResourcePath path) boolean
isConflict
(ResourcePath path) boolean
isInherited
(ResourcePath path) boolean
isLocal
(ResourcePath path) boolean
isOverridable
(ResourcePath path) boolean
isOverridden
(ResourcePath path) default boolean
isProtected
(ResourcePath resourcePath) Checks whether resource is protectedvoid
modifyResource
(ProjectResource resource) Modify an existing resource.default void
modifyResource
(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Modify an existing resource, if it exists.default boolean
modifyResourceIfLocal
(ResourcePath path, Consumer<ProjectResourceBuilder> builderConsumer) Modify an existing resource, if it exists.default void
renameResource
(ProjectResourceId id, String newName) Rename a resource at the given path.void
renameResource
(ResourcePath path, String newName) Rename a resource at the given path.default void
setProtected
(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
-