eXo JCR :: Component :: Extension Service 1.15.0-CR2

org.exoplatform.services.jcr.ext.distribution.impl
Class AbstractDataDistributionType

java.lang.Object
  extended by org.exoplatform.services.jcr.ext.distribution.impl.AbstractDataDistributionType
All Implemented Interfaces:
DataDistributionType
Direct Known Subclasses:
DataDistributionByHash, DataDistributionByName, DataDistributionByPath

public abstract class AbstractDataDistributionType
extends Object
implements DataDistributionType

Version:
$Id$
Author:
Nicolas Filotto

Constructor Summary
AbstractDataDistributionType()
           
 
Method Summary
protected  javax.jcr.Node createNode(javax.jcr.Node parentNode, String nodeName, String nodeType, List<String> mixinTypes, Map<String,String[]> permissions, boolean isLeaf, boolean callSave)
          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
protected abstract  List<String> getAncestors(String dataId)
          Gives the list of all the name of the ancestors
 javax.jcr.Node getDataNode(javax.jcr.Node rootNode, String dataId)
          Retrieves the node from the JCR under the given root node and corresponding to the given data id.
 javax.jcr.Node getOrCreateDataNode(javax.jcr.Node rootNode, String dataId)
          Tries to get the node from the JCR and if it cannot be found, it will create it automatically.
 javax.jcr.Node getOrCreateDataNode(javax.jcr.Node rootNode, String dataId, String nodeType)
          Tries to get the node from the JCR and if it cannot be found, it will create it automatically.
 javax.jcr.Node getOrCreateDataNode(javax.jcr.Node rootNode, String dataId, String nodeType, List<String> mixinTypes)
          Tries to get the node from the JCR and if it cannot be found, it will create it automatically.
 javax.jcr.Node getOrCreateDataNode(javax.jcr.Node rootNode, String dataId, String nodeType, List<String> mixinTypes, Map<String,String[]> permissions)
          Tries to get the node from the JCR and if it cannot be found, it will create it automatically.
protected  String getRelativePath(String dataId)
          Gives the relative path corresponding to the given id of the data to find/create
 void migrate(javax.jcr.Node rootNode)
          Migrate from old structure to new one.
 void migrate(javax.jcr.Node rootNode, String nodeType, List<String> mixinTypes, Map<String,String[]> permissions)
          Migrate from old structure to new one.
 void removeDataNode(javax.jcr.Node rootNode, String dataId)
          Remove the node from the JCR if it exists
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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.

eXo JCR :: Component :: Extension Service 1.15.0-CR2

Copyright © 2012 eXo Platform SAS. All Rights Reserved.