Class CoreActionsRegistry


  • @Service
    public class CoreActionsRegistry
    extends Object
    All inventory-object related actions from all modules (but most likely in the Navigation module) that are considered as core actions (i.e. general purpose actions, such as new object or delete object) must be registered here at module startup. Then, the menus will be built using the registered actions and what kind of inventory actions they are applicable to. There are three types of core actions: Delete actions (the actions intended to delete objects. Most objects will use the default delete object action implementation, however, some might require a special procedure -such as physical or logical connections-). The second type are the actions intended to manage (creating or releasing) special relationships, while the third type is any other core action, so called, misc core actions. They are kept in separate hashes so they can be displayed or grouped easily by the renderer.
    Author:
    Charles Edward Bedon Cortazar <charles.bedon@kuwaiba.org>
    • Constructor Detail

      • CoreActionsRegistry

        public CoreActionsRegistry()
    • Method Detail

      • getMiscActionsApplicableTo

        public List<AbstractVisualInventoryAction> getMiscActionsApplicableTo​(String filter)
        Checks what misc actions are associated to a given inventory class. For example, NewCustomer and ShowReports are part of the returned list if filter is GenericCustomer. Note that the difference between this method and #getMiscActionsApplicableToRecursive(java.lang.String) is that this method will return the actions whose appliesTo matches exactly with the provided filter, while the latter might match even subclasses of the appliesTo return value.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The actions that can be executed from an instance of the given class or superclass.
      • getActionsApplicableToRecursive

        public List<AbstractVisualInventoryAction> getActionsApplicableToRecursive​(String filter)
        Checks what misc actions are associated to a given inventory class. For example, NewCustomer and ShowReports are part of the returned list if filter is CorporateCustomer.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The actions that can be executed from an instance of the given class or superclass.
      • getDeleteActionsApplicableTo

        public List<AbstractVisualInventoryAction> getDeleteActionsApplicableTo​(String filter)
        Checks what delete actions (there might be more than one, if several delete action implementations are provided) are associated to a given inventory class. See getMiscActionsApplicableTo(java.lang.String) for more details on its behavior.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The delete actions that can be executed from an instance of the given class or superclass.
      • getDeleteActionsApplicableToRecursive

        public List<AbstractVisualInventoryAction> getDeleteActionsApplicableToRecursive​(String filter)
        Checks recursively in the class hierarchy what delete actions are associated to a given inventory class. See getActionsApplicableToRecursive(java.lang.String) for more details on its behavior.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The delete actions that can be executed from an instance of the given class or superclass.
      • getRelationshipManagementActionsApplicableTo

        public List<AbstractRelationshipManagementAction> getRelationshipManagementActionsApplicableTo​(String filter)
        Checks what relationship management actions are associated to a given inventory class. See getMiscActionsApplicableTo(java.lang.String) for more details on its behavior.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The relationship management actions that can be executed from an instance of the given class or superclass.
      • getRelationshipManagementActionsApplicableToRecursive

        public List<AbstractRelationshipManagementAction> getRelationshipManagementActionsApplicableToRecursive​(String filter)
        Checks recursively in the class hierarchy what relationship management actions are associated to a given inventory class. See getActionsApplicableToRecursive(java.lang.String) for more details on its behavior.
        Parameters:
        filter - The class to be evaluated.
        Returns:
        The relationship management actions that can be executed from an instance of the given class or superclass.
      • registerAction

        public void registerAction​(String moduleId,
                                   AbstractVisualInventoryAction action)
        Adds an action to the registry.This method also feeds the action map cache structure, which is a hash map which keys are all the possible super classes the actions are applicable to and the keys are the corresponding actions.
        Parameters:
        moduleId - The id of the module this action is provided by. The id is returned by AbstractModule.getId().
        action - The action to be added. Duplicated action ids are allowed, as long as the duplicate can be used to overwrite default behaviors, for example, if an object (say a connection) has a specific delete routine that should be executed instead of the general purpose delete action, both actions should have the same id, and the renderer should override the default action with the specific one.
      • getRelationshipManagementActions

        public List<AbstractRelationshipManagementAction> getRelationshipManagementActions()
        Returns all registered relationship management actions.
        Returns:
        All registered relationship management actions.
      • getActionsForModule

        public List<AbstractVisualInventoryAction> getActionsForModule​(String moduleId)
        Returns all actions registered by a particular module.
        Parameters:
        moduleId - The id of the module. Usually the strings that comes from calling AbstractModule.getId().
        Returns:
        The list of actions, even if none registered for the given module (in that case, an empty array will be returned).