Class AbstractDataDistributionType

    • Constructor Detail

      • AbstractDataDistributionType

        public AbstractDataDistributionType()
    • Method Detail

      • getDataNode

        public javax.jcr.Node getDataNode​(javax.jcr.Node rootNode,
                                          String dataId)
                                   throws javax.jcr.PathNotFoundException,
                                          javax.jcr.RepositoryException
        Retrieves the node from the JCR under the given root node and corresponding to the given data id.
        Specified by:
        getDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to find is stored
        dataId - the id of the data to find
        Returns:
        the Node corresponding to the data to find
        Throws:
        javax.jcr.PathNotFoundException - if the data cannot be find
        javax.jcr.RepositoryException - if an error occurred while trying to get the expected data
      • getOrCreateDataNode

        public javax.jcr.Node getOrCreateDataNode​(javax.jcr.Node rootNode,
                                                  String dataId)
                                           throws javax.jcr.RepositoryException
        Tries to get the node from the JCR and if it cannot be found, it will create it automatically.
        Specified by:
        getOrCreateDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to find is stored
        dataId - the id of the data to find/create
        Returns:
        the Node corresponding to the data to find
        Throws:
        javax.jcr.RepositoryException - if an error occurred while trying to get or create the expected data
      • getOrCreateDataNode

        public javax.jcr.Node getOrCreateDataNode​(javax.jcr.Node rootNode,
                                                  String dataId,
                                                  String nodeType)
                                           throws javax.jcr.RepositoryException
        Tries to get the node from the JCR and if it cannot be found, it will create it automatically. If the node has to be created, the node will be created with the given node type.
        Specified by:
        getOrCreateDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to find is stored
        dataId - the id of the data to find/create
        nodeType - the node type to use in case we need to create the node
        Returns:
        the Node corresponding to the data to find
        Throws:
        javax.jcr.RepositoryException - if an error occurred while trying to get or create the expected data
      • getOrCreateDataNode

        public javax.jcr.Node getOrCreateDataNode​(javax.jcr.Node rootNode,
                                                  String dataId,
                                                  String nodeType,
                                                  List<String> mixinTypes)
                                           throws javax.jcr.RepositoryException
        Tries to get the node from the JCR and if it cannot be found, it will create it automatically. If the node has to be created, the node will be created with the given node type and given mixin types.
        Specified by:
        getOrCreateDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to find is stored
        dataId - the id of the data to find/create
        nodeType - the node type to use in case we need to create the node
        mixinTypes - the mixin types to use in case we need to create the node
        Returns:
        the Node corresponding to the data to find
        Throws:
        javax.jcr.RepositoryException - if an error occurred while trying to get or create the expected data
      • getOrCreateDataNode

        public javax.jcr.Node getOrCreateDataNode​(javax.jcr.Node rootNode,
                                                  String dataId,
                                                  String nodeType,
                                                  List<String> mixinTypes,
                                                  Map<String,​String[]> permissions)
                                           throws javax.jcr.RepositoryException
        Tries to get the node from the JCR and if it cannot be found, it will create it automatically. If the node has to be created, the node will be created with the given node type, given mixin types and given permissions.
        Specified by:
        getOrCreateDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to find is stored
        dataId - the id of the data to find/create
        nodeType - the node type to use in case we need to create the node
        mixinTypes - the mixin types to use in case we need to create the node
        permissions - the permissions to use in case we need to create the node
        Returns:
        the Node corresponding to the data to find
        Throws:
        javax.jcr.RepositoryException - if an error occurred while trying to get or create the expected data
      • removeDataNode

        public void removeDataNode​(javax.jcr.Node rootNode,
                                   String dataId)
                            throws javax.jcr.RepositoryException
        Remove the node from the JCR if it exists
        Specified by:
        removeDataNode in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to remove is stored
        dataId - the id of the data to remove
        Throws:
        javax.jcr.RepositoryException - if an error occurred while trying to remove the expected data
      • migrate

        public void migrate​(javax.jcr.Node rootNode)
                     throws javax.jcr.RepositoryException
        Migrate from old structure to new one.
        Specified by:
        migrate in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to migrate is stored
        Throws:
        javax.jcr.RepositoryException - if an error occurred during migration
      • migrate

        public void migrate​(javax.jcr.Node rootNode,
                            String nodeType,
                            List<String> mixinTypes,
                            Map<String,​String[]> permissions)
                     throws javax.jcr.RepositoryException
        Migrate from old structure to new one.
        Specified by:
        migrate in interface DataDistributionType
        Parameters:
        rootNode - the root node under which the data to migrate is stored
        nodeType - the node type to use in case we need to create the node
        mixinTypes - the mixin types to use in case we need to create the node
        permissions - the permissions to use in case we need to create the node
        Throws:
        javax.jcr.RepositoryException - if an error occurred during migration
      • createNode

        protected javax.jcr.Node createNode​(javax.jcr.Node parentNode,
                                            String nodeName,
                                            String nodeType,
                                            List<String> mixinTypes,
                                            Map<String,​String[]> permissions,
                                            boolean isLeaf,
                                            boolean callSave)
                                     throws javax.jcr.RepositoryException
        Creates the node of the given node type with the given node name directly under the given parent node, using the given mixin types and permissions
        Parameters:
        parentNode - the parent node
        nodeName - the name of the node to create
        nodeType - the node type to use
        mixinTypes - the list of mixin types to use
        permissions - the map of permissions to use
        isLeaf - indicates whether or not the current node to create is the leaf node
        Returns:
        the created node
        Throws:
        javax.jcr.RepositoryException - if any exception occurs while creating the node
      • getRelativePath

        protected String getRelativePath​(String dataId)
        Gives the relative path corresponding to the given id of the data to find/create
        Parameters:
        dataId - the id of the data to find/create
        Returns:
        the relative path of the data to find/create
      • getAncestors

        protected abstract List<String> getAncestors​(String dataId)
        Gives the list of all the name of the ancestors
        Parameters:
        dataId - the id of the data to find/create
        Returns:
        the list of the ancestor names
      • useParametersOnLeafOnly

        protected abstract boolean useParametersOnLeafOnly()
        Indicates whether or not the node type, the mixin types and the permissions have to be used on leaf node only.
        Returns:
        true if only the leaf node has to be created with the parameters false otherwise.