Interface PlanDependencyManager

    • Method Detail

      • getAllDependencies

        @NotNull
        @NotNull Set<PlanDependency> getAllDependencies()
        Retrieves all dependency relationships in the system regardless of the plans involved
        Returns:
        all plan dependencies.
      • getChildPlanDependencies

        @NotNull
        @NotNull Set<PlanDependency> getChildPlanDependencies​(@NotNull
                                                              @NotNull PlanIdentifier plan)
        Retrieves all plan dependencies in which the given plan features as a parent
        Parameters:
        plan - - the parent
        Returns:
        set of all children of the given plan
      • getParentPlanDependencies

        @NotNull
        @NotNull Set<PlanDependency> getParentPlanDependencies​(@NotNull
                                                               @NotNull PlanIdentifier plan)
        Retrieves all plan dependencies in which the given plan features as a child
        Parameters:
        plan - - the child
        Returns:
        newly created set of all parents to the given plan
      • removeAllDependenciesForPlan

        void removeAllDependenciesForPlan​(@NotNull
                                          @NotNull PlanIdentifier plan)
        Deletes any existing dependency featuring the given plan. Used when deleting a plan.
        Parameters:
        plan - to be removed
      • getChildPlanKeys

        @NotNull
        @NotNull Set<String> getChildPlanKeys​(@NotNull
                                              @NotNull PlanIdentifier plan)
        Retrievs all plan that are children of the current plan
        Parameters:
        plan - - the parent
        Returns:
        set of plan keys representing all children of the given plan
      • getParentPlanKeys

        @NotNull
        @NotNull Set<String> getParentPlanKeys​(@NotNull
                                               @NotNull PlanIdentifier plan)
        Retrievs all plans that are a parent of the current plan
        Parameters:
        plan - - the child
        Returns:
        set of plan keys representing all parents of the given plan
      • getChildChainKeys

        @NotNull
        @NotNull Set<String> getChildChainKeys​(@NotNull
                                               @NotNull PlanIdentifier plan)
        Retrieves all chain that are children of the current plan
        Parameters:
        plan - - the parent
        Returns:
        set of chain keys representing all children of the given plan
      • getParentChainKeys

        @NotNull
        @NotNull Set<String> getParentChainKeys​(@NotNull
                                                @NotNull PlanIdentifier plan)
        Retrieves all chain that are children of the current plan
        Parameters:
        plan - - the parent
        Returns:
        set of chain keys representing all children of the given plan
      • savePlanDependency

        boolean savePlanDependency​(@Nullable
                                   @Nullable PlanDependency dependency)
        Save the given dependency. Will check if it exists or if the dependency is invalid.
        Parameters:
        dependency - to save
        Returns:
        true if it saved it, false otherwise
      • getNotEditableChildKeys

        @NotNull
        @NotNull Set<String> getNotEditableChildKeys​(@NotNull
                                                     @NotNull PlanIdentifier plan)
        Retrieves a list of keys representing the children that are not editable of the given plan
        Parameters:
        plan - parent
        Returns:
        Set of un-editable dependencies representing the children of the given plan
      • getNotEditableParentKeys

        @NotNull
        @NotNull Set<String> getNotEditableParentKeys​(@NotNull
                                                      @NotNull PlanIdentifier plan)
        Retrieves a list of keys representing the children that are not editable of the given plan
        Parameters:
        plan - parent
        Returns:
        Set of un-editable dependencies representing the children of the given plan
      • validateChildDependencyList

        @NotNull
        @NotNull ErrorCollection validateChildDependencyList​(@NotNull
                                                             @NotNull String dependencyType,
                                                             @NotNull
                                                             @NotNull Plan plan,
                                                             @NotNull
                                                             @NotNull Set<PlanKey> newChildPlanKeys,
                                                             boolean overwriteExisting)
        Validate child dependency list
      • adjustChildDependencyList

        void adjustChildDependencyList​(@NotNull
                                       @NotNull String dependencyType,
                                       @NotNull
                                       @NotNull Plan plan,
                                       @NotNull
                                       @NotNull Set<PlanKey> newChildPlanKeys,
                                       boolean overwriteExisting)
        Update the existing children dependencies of the given plan and dependency Type to match the provided list of new children.
        Parameters:
        dependencyType - of the dependencies being adjusted
        plan - parent
        newChildPlanKeys - the new list of parents (as plan keys)
        overwriteExisting - whether or not to overwrite any existing dependencies (of a different type) with one of the new type
      • adjustParentDependencyList

        void adjustParentDependencyList​(@NotNull
                                        @NotNull String dependencyType,
                                        @NotNull
                                        @NotNull Plan plan,
                                        @NotNull
                                        @NotNull Set<PlanKey> newParentPlanKeys,
                                        boolean overwriteExisting)
        Update the existing parent dependencies of the given plan and dependency Type to match the provided list of new parents.
        Parameters:
        dependencyType - of the dependencies being adjusted
        plan - parent
        newParentPlanKeys - the new list of parents (as plan keys)
        overwriteExisting - whether or not to overwrite any existing dependencies (of a different type) with one of the new type