|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.alfresco.repo.domain.node.AbstractNodeDAOImpl
public abstract class AbstractNodeDAOImpl
Abstract implementation for Node DAO.
This provides basic services such as caching, but defers to the underlying implementation for CRUD operations.
TODO: Timestamp propagation TODO: Local retries for certain operations that might benefit TODO: Take out joins to parent nodes for selectChildAssoc queries (it's static data) TODO: Child nodes' cache invalidation must use a leaner query TODO: Bulk loading of caches
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.alfresco.repo.domain.node.NodeDAO |
---|
NodeDAO.ChildAssocRefQueryCallback, NodeDAO.NodeRefQueryCallback |
Field Summary | |
---|---|
static java.lang.Long |
LONG_ZERO
|
Constructor Summary | |
---|---|
AbstractNodeDAOImpl()
Constructor. |
Method Summary | |
---|---|
boolean |
addNodeAspects(java.lang.Long nodeId,
java.util.Set aspectQNames)
|
boolean |
addNodeProperties(java.lang.Long nodeId,
java.util.Map properties)
|
boolean |
addNodeProperty(java.lang.Long nodeId,
org.alfresco.service.namespace.QName qname,
java.io.Serializable value)
|
void |
cacheNodes(java.util.List nodeRefs)
Pre-cache data relevant to the given nodes. |
void |
clear()
FOR TESTING ONLY: Clears out node cache data |
void |
deleteChildAssoc(java.lang.Long assocId)
|
protected abstract int |
deleteChildAssocById(java.lang.Long assocId)
|
protected abstract int |
deleteChildAssocsToAndFrom(java.lang.Long nodeId)
|
void |
deleteNode(java.lang.Long nodeId)
Deletes the node and all entities. |
protected abstract int |
deleteNodeAspects(java.lang.Long nodeId,
java.util.Set qnameIds)
|
protected abstract int |
deleteNodeAssoc(java.lang.Long sourceNodeId,
java.lang.Long targetNodeId,
java.lang.Long assocTypeQNameId)
|
protected abstract int |
deleteNodeAssocsToAndFrom(java.lang.Long nodeId)
|
protected abstract int |
deleteNodeAssocsToAndFrom(java.lang.Long nodeId,
java.util.Set assocTypeQNameIds)
|
protected abstract int |
deleteNodeById(java.lang.Long nodeId,
boolean deletedOnly)
|
protected abstract int |
deleteNodeProperties(java.lang.Long nodeId,
java.util.List propKeys)
|
protected abstract int |
deleteNodeProperties(java.lang.Long nodeId,
java.util.Set qnameIds)
|
protected abstract int |
deleteNodesByCommitTime(boolean deletedOnly,
long maxTxnCommitTimeMs)
|
protected abstract int |
deleteTransaction(java.lang.Long txnId)
|
boolean |
exists(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Find out if a node exists. |
boolean |
exists(org.alfresco.service.cmr.repository.StoreRef storeRef)
Find out if a store exists or not |
org.alfresco.util.Pair |
getChildAssoc(java.lang.Long assocId)
Get a specific association |
org.alfresco.util.Pair |
getChildAssoc(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName)
Get a specific child association given all the determining data. |
org.alfresco.util.Pair |
getChildAssoc(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
java.lang.String childName)
Get a child association for given parent node, association type and child node name (cm:name). |
void |
getChildAssocs(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.Boolean isPrimary,
java.lang.Boolean sameStore,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Get the child associations of a given parent node, optionally filtering on association QName and association type QName. |
void |
getChildAssocs(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
java.util.Collection childNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Get the child associations of a given parent node, filtering on type QName and the cm:name of the child nodes. |
void |
getChildAssocs(java.lang.Long parentNodeId,
java.util.Set assocTypeQNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Get the child associations of a given parent node, optionally filtering on type QName. |
void |
getChildAssocsByChildTypes(java.lang.Long parentNodeId,
java.util.Set childNodeTypeQNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
void |
getChildAssocsByPropertyValue(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName propertyQName,
java.io.Serializable value,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
void |
getChildAssocsWithoutParentAssocsOfType(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Gets the set of child associations of a certain parent node without parent associations of a certain type to other nodes with the same parent! In effect the 'orphans' with respect to a certain association type. |
java.lang.Long |
getCurrentTransactionId()
|
java.lang.Long |
getMaxTxnCommitTime()
|
java.lang.Long |
getMaxTxnIdByCommitTime(long maxCommitTime)
Retrieves the maximum transaction ID for which the commit time is less than the given time. |
java.lang.Long |
getMinTxnCommitTime()
|
java.lang.Long |
getNodeAclId(java.lang.Long nodeId)
|
java.util.Set |
getNodeAspects(java.lang.Long nodeId)
|
org.alfresco.util.Pair |
getNodeAssoc(java.lang.Long assocId)
|
org.alfresco.util.Pair |
getNodePair(java.lang.Long nodeId)
|
org.alfresco.util.Pair |
getNodePair(org.alfresco.service.cmr.repository.NodeRef nodeRef)
|
java.util.Map |
getNodeProperties(java.lang.Long nodeId)
|
java.io.Serializable |
getNodeProperty(java.lang.Long nodeId,
org.alfresco.service.namespace.QName propertyQName)
|
org.alfresco.service.cmr.repository.NodeRef.Status |
getNodeRefStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Get the current status of the node, including deleted nodes. |
void |
getNodesWithAspect(org.alfresco.service.namespace.QName aspectQName,
java.lang.Long minNodeId,
int count,
NodeDAO.NodeRefQueryCallback resultsCallback)
|
org.alfresco.service.namespace.QName |
getNodeType(java.lang.Long nodeId)
|
void |
getParentAssocs(java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.Boolean isPrimary,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Get the parent association of a given parent node, optionally filtering on association QName and association type QName. |
java.util.List |
getPaths(org.alfresco.util.Pair nodePair,
boolean primaryOnly)
Build the paths for a node. |
java.util.List |
getPrimaryChildrenAcls(java.lang.Long nodeId)
Fetch all primary child node IDs and corresponding ACL IDs. |
org.alfresco.util.Pair |
getPrimaryParentAssoc(java.lang.Long childNodeId)
Finds the association between the node's primary parent and the node itself |
org.alfresco.util.Pair |
getRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
|
java.util.Collection |
getSourceNodeAssocs(java.lang.Long targetNodeId)
|
java.util.List |
getStores()
Fetch a list of all stores in the repository |
java.util.Collection |
getTargetNodeAssocs(java.lang.Long sourceNodeId)
|
int |
getTransactionCount()
|
Transaction |
getTxnById(java.lang.Long txnId)
Retrieves a specific transaction. |
java.util.List |
getTxnChanges(java.lang.Long txnId)
|
java.util.List |
getTxnChangesForStore(org.alfresco.service.cmr.repository.StoreRef storeRef,
java.lang.Long txnId)
|
int |
getTxnDeleteCount(java.lang.Long txnId)
|
java.util.List |
getTxnsByCommitTimeAscending(java.util.List includeTxnIds)
Get a specific list of transactions ordered by commit time. |
java.util.List |
getTxnsByCommitTimeAscending(java.lang.Long fromTimeInclusive,
java.lang.Long toTimeExclusive,
int count,
java.util.List excludeTxnIds,
boolean remoteOnly)
Get all transactions in a given time range. |
java.util.List |
getTxnsByCommitTimeDescending(java.lang.Long fromTimeInclusive,
java.lang.Long toTimeExclusive,
int count,
java.util.List excludeTxnIds,
boolean remoteOnly)
Get all transactions in a given time range. |
java.util.List |
getTxnsUnused(java.lang.Long minTxnId,
long maxCommitTime,
int count)
|
int |
getTxnUpdateCount(java.lang.Long txnId)
|
boolean |
hasNodeAspect(java.lang.Long nodeId,
org.alfresco.service.namespace.QName aspectQName)
|
void |
init()
|
protected abstract java.lang.Long |
insertChildAssoc(ChildAssocEntity assoc)
|
protected abstract java.lang.Long |
insertNode(NodeEntity node)
|
protected abstract void |
insertNodeAspect(java.lang.Long nodeId,
java.lang.Long qnameId)
|
protected abstract java.lang.Long |
insertNodeAssoc(java.lang.Long sourceNodeId,
java.lang.Long targetNodeId,
java.lang.Long assocTypeQNameId)
|
protected abstract void |
insertNodeProperties(java.lang.Long nodeId,
java.util.Map persistableProps)
|
protected abstract java.lang.Long |
insertServer(java.lang.String ipAddress)
|
protected abstract java.lang.Long |
insertStore(StoreEntity store)
|
protected abstract java.lang.Long |
insertTransaction(java.lang.Long serverId,
java.lang.String changeTxnId,
java.lang.Long commit_time_ms)
|
org.alfresco.util.Pair |
moveNode(java.lang.Long childNodeId,
java.lang.Long newParentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName)
Update a node's primary association, giving it a new parent and new association parameters. |
void |
moveStore(org.alfresco.service.cmr.repository.StoreRef oldStoreRef,
org.alfresco.service.cmr.repository.StoreRef newStoreRef)
Changes the old store reference to the new store reference. |
org.alfresco.util.Pair |
newChildAssoc(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.String childNodeName)
Create a new child association. |
ChildAssocEntity |
newNode(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
org.alfresco.service.cmr.repository.StoreRef storeRef,
java.lang.String uuid,
org.alfresco.service.namespace.QName nodeTypeQName,
java.lang.String childNodeName,
java.util.Map auditableProperties)
Create a new node. |
java.lang.Long |
newNodeAssoc(java.lang.Long sourceNodeId,
java.lang.Long targetNodeId,
org.alfresco.service.namespace.QName assocTypeQName)
|
org.alfresco.util.Pair |
newStore(org.alfresco.service.cmr.repository.StoreRef storeRef)
Creates a unique store for the given protocol and identifier combination. |
int |
purgeNodes(long maxTxnCommitTimeMs)
Purge deleted nodes where their participating transactions are older than a given time. |
void |
purgeTxn(java.lang.Long txnId)
|
boolean |
removeNodeAspects(java.lang.Long nodeId)
|
boolean |
removeNodeAspects(java.lang.Long nodeId,
java.util.Set aspectQNames)
|
int |
removeNodeAssoc(java.lang.Long sourceNodeId,
java.lang.Long targetNodeId,
org.alfresco.service.namespace.QName assocTypeQName)
Remove a specific node association |
int |
removeNodeAssocsToAndFrom(java.lang.Long nodeId)
Remove all node associations that share the given node. |
int |
removeNodeAssocsToAndFrom(java.lang.Long nodeId,
java.util.Set assocTypeQNames)
Remove all node associations of given types that share the given node. |
boolean |
removeNodeProperties(java.lang.Long nodeId,
java.util.Set propertyQNames)
|
protected abstract java.util.List |
selectAllStores()
|
protected abstract ChildAssocEntity |
selectChildAssoc(java.lang.Long assocId)
|
protected abstract java.util.List |
selectChildAssoc(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName)
|
protected abstract ChildAssocEntity |
selectChildAssoc(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
java.lang.String childName)
|
protected abstract void |
selectChildAssocs(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.Boolean isPrimary,
java.lang.Boolean sameStore,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Parameters are all optional except the parent node ID and the callback |
protected abstract void |
selectChildAssocs(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
java.util.Collection childNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
protected abstract void |
selectChildAssocs(java.lang.Long parentNodeId,
java.util.Set assocTypeQNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
protected abstract void |
selectChildAssocsByChildTypes(java.lang.Long parentNodeId,
java.util.Set childNodeTypeQNames,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
protected abstract void |
selectChildAssocsByPropertyValue(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName propertyQName,
NodePropertyValue nodeValue,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
protected abstract void |
selectChildAssocsWithoutParentAssocsOfType(java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
|
protected abstract Transaction |
selectLastTxnBeforeCommitTime(java.lang.Long maxCommitTime)
|
protected abstract java.lang.Long |
selectMaxTxnCommitTime()
|
protected abstract java.lang.Long |
selectMinTxnCommitTime()
|
protected abstract java.util.Set |
selectNodeAspectIds(java.lang.Long nodeId)
|
protected abstract java.util.List |
selectNodeAspects(java.util.Set nodeIds)
|
protected abstract NodeAssocEntity |
selectNodeAssocById(java.lang.Long assocId)
|
protected abstract java.util.List |
selectNodeAssocsBySource(java.lang.Long sourceNodeId)
|
protected abstract java.util.List |
selectNodeAssocsByTarget(java.lang.Long targetNodeId)
|
protected abstract NodeEntity |
selectNodeById(java.lang.Long id,
java.lang.Boolean deleted)
|
protected abstract NodeEntity |
selectNodeByNodeRef(org.alfresco.service.cmr.repository.NodeRef nodeRef,
java.lang.Boolean deleted)
|
protected abstract java.util.Map |
selectNodeProperties(java.lang.Long nodeId)
|
protected abstract java.util.Map |
selectNodeProperties(java.lang.Long nodeId,
java.util.Set qnameIds)
|
protected abstract java.util.Map |
selectNodeProperties(java.util.Set nodeIds)
|
protected abstract java.util.List |
selectNodesByUuids(java.lang.Long storeId,
java.util.SortedSet uuids)
|
protected abstract void |
selectNodesWithAspect(java.lang.Long qnameId,
java.lang.Long minNodeId,
NodeDAO.NodeRefQueryCallback resultsCallback)
|
protected abstract java.util.List |
selectParentAssocs(java.lang.Long childNodeId)
|
protected abstract void |
selectParentAssocs(java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.Boolean isPrimary,
NodeDAO.ChildAssocRefQueryCallback resultsCallback)
Parameters are all optional except the parent node ID and the callback |
protected abstract java.util.List |
selectPrimaryChildAcls(java.lang.Long nodeId)
|
protected abstract java.util.List |
selectPrimaryParentAssocs(java.lang.Long childNodeId)
No DB constraint, so multiple returned |
protected abstract ServerEntity |
selectServer(java.lang.String ipAddress)
|
protected abstract NodeEntity |
selectStoreRootNode(java.lang.Long storeId)
|
protected abstract NodeEntity |
selectStoreRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
|
protected abstract int |
selectTransactionCount()
|
protected abstract Transaction |
selectTxnById(java.lang.Long txnId)
|
protected abstract java.util.List |
selectTxnChanges(java.lang.Long txnId,
java.lang.Long storeId)
|
protected abstract int |
selectTxnNodeChangeCount(java.lang.Long txnId,
java.lang.Boolean updates)
|
protected abstract java.util.List |
selectTxns(java.lang.Long fromTimeInclusive,
java.lang.Long toTimeExclusive,
java.lang.Integer count,
java.util.List includeTxnIds,
java.util.List excludeTxnIds,
java.lang.Long excludeServerId,
java.lang.Boolean ascending)
|
protected abstract java.util.List |
selectTxnsUnused(java.lang.Long minTxnId,
java.lang.Long maxCommitTime,
java.lang.Integer count)
|
void |
setAccessControlListDAO(AccessControlListDAO accessControlListDAO)
|
void |
setAclDAO(AclDAO aclDAO)
|
void |
setAspectsCache(org.alfresco.repo.cache.SimpleCache aspectsCache)
Set the cache that maintains the Node QName IDs |
int |
setChildAssocIndex(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
int index)
Sets the association index ordering. |
void |
setChildAssocsUniqueName(java.lang.Long childNodeId,
java.lang.String childName)
TODO: See about pulling automatic cm:name update logic into this DAO |
void |
setContentDataDAO(ContentDataDAO contentDataDAO)
|
void |
setControlDAO(ControlDAO controlDAO)
|
void |
setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
|
void |
setLocaleDAO(LocaleDAO localeDAO)
|
void |
setNodeAclId(java.lang.Long nodeId,
java.lang.Long aclId)
|
void |
setNodeDefiningAclId(java.lang.Long nodeId,
long aclId)
Used in ACL upgrade only to set the acl id with mimimal overhead |
boolean |
setNodeProperties(java.lang.Long nodeId,
java.util.Map properties)
|
void |
setNodesCache(org.alfresco.repo.cache.SimpleCache cache)
Set the cache that maintains node ID-NodeRef cross referencing data |
void |
setParentAssocsCache(org.alfresco.repo.cache.SimpleCache parentAssocsCache)
Set the cache that maintains the Node parent associations |
void |
setPolicyBehaviourFilter(BehaviourFilter policyBehaviourFilter)
|
void |
setPrimaryChildrenSharedAclId(java.lang.Long primaryParentNodeId,
java.lang.Long optionalOldSharedAlcIdInAdditionToNull,
java.lang.Long newSharedAclId)
|
void |
setPropertiesCache(org.alfresco.repo.cache.SimpleCache propertiesCache)
Set the cache that maintains the Node property values |
void |
setQnameDAO(QNameDAO qnameDAO)
|
void |
setRootNodesCache(org.alfresco.repo.cache.SimpleCache cache)
Set the cache that maintains the Store root node data |
void |
setUsageDAO(UsageDAO usageDAO)
|
protected abstract int |
updateChildAssocIndex(java.lang.Long parentNodeId,
java.lang.Long childNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
int index)
|
protected abstract int |
updateChildAssocsUniqueName(java.lang.Long childNodeId,
java.lang.String name)
|
void |
updateNode(java.lang.Long nodeId,
org.alfresco.service.cmr.repository.StoreRef storeRef,
java.lang.String uuid,
org.alfresco.service.namespace.QName nodeTypeQName)
|
protected abstract int |
updateNode(NodeUpdateEntity nodeUpdate)
|
protected abstract int |
updateNodePatchAcl(NodeUpdateEntity nodeUpdate)
|
protected abstract void |
updatePrimaryChildrenSharedAclId(java.lang.Long primaryParentNodeId,
java.lang.Long optionalOldSharedAlcIdInAdditionToNull,
java.lang.Long newSharedAlcId)
|
protected abstract int |
updatePrimaryParentAssocs(java.lang.Long childNodeId,
java.lang.Long parentNodeId,
org.alfresco.service.namespace.QName assocTypeQName,
org.alfresco.service.namespace.QName assocQName,
java.lang.String childNodeName)
|
protected abstract int |
updateStore(StoreEntity store)
|
protected abstract int |
updateStoreRoot(StoreEntity store)
|
protected abstract int |
updateTransaction(java.lang.Long txnId,
java.lang.Long commit_time_ms)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.alfresco.ibatis.BatchingDAO |
---|
executeBatch, startBatch |
Field Detail |
---|
public static final java.lang.Long LONG_ZERO
Constructor Detail |
---|
public AbstractNodeDAOImpl()
Method Detail |
---|
public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
dictionaryService
- the service help determine cm:auditable characteristicspublic void setPolicyBehaviourFilter(BehaviourFilter policyBehaviourFilter)
policyBehaviourFilter
- the service to determine the behaviour for cm:auditable and
other inherent capabilities.public void setAclDAO(AclDAO aclDAO)
aclDAO
- used to update permissions during certain operationspublic void setAccessControlListDAO(AccessControlListDAO accessControlListDAO)
accessControlListDAO
- used to update ACL inheritance during node movespublic void setControlDAO(ControlDAO controlDAO)
controlDAO
- create Savepointspublic void setQnameDAO(QNameDAO qnameDAO)
qnameDAO
- translates QName IDs into QName instances and vice-versapublic void setContentDataDAO(ContentDataDAO contentDataDAO)
contentDataDAO
- used to create and delete content referencespublic void setLocaleDAO(LocaleDAO localeDAO)
localeDAO
- used to handle MLText propertiespublic void setUsageDAO(UsageDAO usageDAO)
usageDAO
- used to keep content usage calculations in linepublic void setRootNodesCache(org.alfresco.repo.cache.SimpleCache cache)
cache
- the cachepublic void setNodesCache(org.alfresco.repo.cache.SimpleCache cache)
cache
- the cachepublic void setAspectsCache(org.alfresco.repo.cache.SimpleCache aspectsCache)
aspectsCache
- the cachepublic void setPropertiesCache(org.alfresco.repo.cache.SimpleCache propertiesCache)
propertiesCache
- the cachepublic void setParentAssocsCache(org.alfresco.repo.cache.SimpleCache parentAssocsCache)
parentAssocsCache
- the cachepublic void init()
public java.lang.Long getCurrentTransactionId()
getCurrentTransactionId
in interface NodeDAO
public java.util.List getStores()
NodeDAO
getStores
in interface NodeDAO
public boolean exists(org.alfresco.service.cmr.repository.StoreRef storeRef)
NodeDAO
exists
in interface NodeDAO
storeRef
- the store
public org.alfresco.util.Pair getRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
getRootNode
in interface NodeDAO
public org.alfresco.util.Pair newStore(org.alfresco.service.cmr.repository.StoreRef storeRef)
NodeDAO
newStore
in interface NodeDAO
public void moveStore(org.alfresco.service.cmr.repository.StoreRef oldStoreRef, org.alfresco.service.cmr.repository.StoreRef newStoreRef)
NodeDAO
moveStore
in interface NodeDAO
oldStoreRef
- the existing storenewStoreRef
- the new storepublic boolean exists(org.alfresco.service.cmr.repository.NodeRef nodeRef)
NodeDAO
exists
in interface NodeDAO
nodeRef
- the potentially valid node reference
public org.alfresco.service.cmr.repository.NodeRef.Status getNodeRefStatus(org.alfresco.service.cmr.repository.NodeRef nodeRef)
NodeDAO
getNodeRefStatus
in interface NodeDAO
nodeRef
- the node reference
public org.alfresco.util.Pair getNodePair(org.alfresco.service.cmr.repository.NodeRef nodeRef)
getNodePair
in interface NodeDAO
public org.alfresco.util.Pair getNodePair(java.lang.Long nodeId)
getNodePair
in interface NodeDAO
public org.alfresco.service.namespace.QName getNodeType(java.lang.Long nodeId)
getNodeType
in interface NodeDAO
public java.lang.Long getNodeAclId(java.lang.Long nodeId)
getNodeAclId
in interface NodeDAO
public ChildAssocEntity newNode(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String uuid, org.alfresco.service.namespace.QName nodeTypeQName, java.lang.String childNodeName, java.util.Map auditableProperties) throws org.alfresco.service.cmr.dictionary.InvalidTypeException
NodeDAO
newNode
in interface NodeDAO
parentNodeId
- the ID of the parent node (may not be null)assocTypeQName
- the primary association (may not be null)assocQName
- the association path (may not be null)storeRef
- the store to which the node must belonguuid
- the node store-unique identifier, or null to assign a GUIDnodeTypeQName
- the type of the nodechildNodeName
- the cm:name of the child node or null to use the node's UUIDauditableProperties
- a map containing any cm:auditable properties for the node
org.alfresco.service.cmr.dictionary.InvalidTypeException
- if the node type is invalid or if the node type
is not a valid real nodepublic org.alfresco.util.Pair moveNode(java.lang.Long childNodeId, java.lang.Long newParentNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
NodeDAO
moveNode
in interface NodeDAO
childNodeId
- the child node that is movingnewParentNodeId
- the new parent node (may not be null)assocTypeQName
- the new association type or null to keep the existing typeassocQName
- the new association qname or null to keep the existing name
public void updateNode(java.lang.Long nodeId, org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.String uuid, org.alfresco.service.namespace.QName nodeTypeQName)
updateNode
in interface NodeDAO
storeRef
- the new store or null to keep the existing oneuuid
- the new UUID for the node or null to keep it the samenodeTypeQName
- the new type QName for the node or null to keep the existing onepublic void setNodeAclId(java.lang.Long nodeId, java.lang.Long aclId)
setNodeAclId
in interface NodeDAO
public void setPrimaryChildrenSharedAclId(java.lang.Long primaryParentNodeId, java.lang.Long optionalOldSharedAlcIdInAdditionToNull, java.lang.Long newSharedAclId)
setPrimaryChildrenSharedAclId
in interface NodeDAO
public void setNodeDefiningAclId(java.lang.Long nodeId, long aclId)
NodeDAO
setNodeDefiningAclId
in interface NodeDAO
public void deleteNode(java.lang.Long nodeId)
NodeDAO
deleteNode
in interface NodeDAO
public int purgeNodes(long maxTxnCommitTimeMs)
NodeDAO
purgeNodes
in interface NodeDAO
maxTxnCommitTimeMs
- ignore transactions created after this time
public java.util.Map getNodeProperties(java.lang.Long nodeId)
getNodeProperties
in interface NodeDAO
public java.io.Serializable getNodeProperty(java.lang.Long nodeId, org.alfresco.service.namespace.QName propertyQName)
getNodeProperty
in interface NodeDAO
public boolean setNodeProperties(java.lang.Long nodeId, java.util.Map properties)
setNodeProperties
in interface NodeDAO
public boolean addNodeProperty(java.lang.Long nodeId, org.alfresco.service.namespace.QName qname, java.io.Serializable value)
addNodeProperty
in interface NodeDAO
public boolean addNodeProperties(java.lang.Long nodeId, java.util.Map properties)
addNodeProperties
in interface NodeDAO
public boolean removeNodeProperties(java.lang.Long nodeId, java.util.Set propertyQNames)
removeNodeProperties
in interface NodeDAO
public java.util.Set getNodeAspects(java.lang.Long nodeId)
getNodeAspects
in interface NodeDAO
public boolean hasNodeAspect(java.lang.Long nodeId, org.alfresco.service.namespace.QName aspectQName)
hasNodeAspect
in interface NodeDAO
public boolean addNodeAspects(java.lang.Long nodeId, java.util.Set aspectQNames)
addNodeAspects
in interface NodeDAO
public boolean removeNodeAspects(java.lang.Long nodeId)
removeNodeAspects
in interface NodeDAO
public boolean removeNodeAspects(java.lang.Long nodeId, java.util.Set aspectQNames)
removeNodeAspects
in interface NodeDAO
public void getNodesWithAspect(org.alfresco.service.namespace.QName aspectQName, java.lang.Long minNodeId, int count, NodeDAO.NodeRefQueryCallback resultsCallback)
getNodesWithAspect
in interface NodeDAO
public java.lang.Long newNodeAssoc(java.lang.Long sourceNodeId, java.lang.Long targetNodeId, org.alfresco.service.namespace.QName assocTypeQName)
newNodeAssoc
in interface NodeDAO
public int removeNodeAssoc(java.lang.Long sourceNodeId, java.lang.Long targetNodeId, org.alfresco.service.namespace.QName assocTypeQName)
NodeDAO
removeNodeAssoc
in interface NodeDAO
public int removeNodeAssocsToAndFrom(java.lang.Long nodeId)
NodeDAO
removeNodeAssocsToAndFrom
in interface NodeDAO
nodeId
- the source or target of the associations
public int removeNodeAssocsToAndFrom(java.lang.Long nodeId, java.util.Set assocTypeQNames)
NodeDAO
removeNodeAssocsToAndFrom
in interface NodeDAO
nodeId
- the source or target of the associationsassocTypeQNames
- the types that should be deleted
public java.util.Collection getSourceNodeAssocs(java.lang.Long targetNodeId)
getSourceNodeAssocs
in interface NodeDAO
public java.util.Collection getTargetNodeAssocs(java.lang.Long sourceNodeId)
getTargetNodeAssocs
in interface NodeDAO
public org.alfresco.util.Pair getNodeAssoc(java.lang.Long assocId)
getNodeAssoc
in interface NodeDAO
public org.alfresco.util.Pair newChildAssoc(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.String childNodeName)
NodeDAO
newChildAssoc
in interface NodeDAO
childNodeName
- the cm:name to apply to the association
public void deleteChildAssoc(java.lang.Long assocId)
deleteChildAssoc
in interface NodeDAO
assocId
- the ID of the child association to deletepublic int setChildAssocIndex(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, int index)
NodeDAO
setChildAssocIndex
in interface NodeDAO
parentNodeId
- the parent node IDchildNodeId
- the child node IDassocTypeQName
- the association typeassocQName
- the association path qualified name
public void setChildAssocsUniqueName(java.lang.Long childNodeId, java.lang.String childName)
setChildAssocsUniqueName
in interface NodeDAO
childNodeId
- the child node who's name is changingchildName
- the new cm:name valuepublic org.alfresco.util.Pair getChildAssoc(java.lang.Long assocId)
NodeDAO
getChildAssoc
in interface NodeDAO
assocId
- the ID of the association
public java.util.List getPrimaryChildrenAcls(java.lang.Long nodeId)
NodeDAO
getPrimaryChildrenAcls
in interface NodeDAO
nodeId
- the parent node ID
public org.alfresco.util.Pair getChildAssoc(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
NodeDAO
The implementation may find multiple entries (there is no constraint to prevent it) although the cm:name constraint will normally prevent the association from being created twice. The lowest ID association will always be returned and the others will be cleaned up if the transaction is read-write.
getChildAssoc
in interface NodeDAO
public void getChildAssocs(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.Boolean isPrimary, java.lang.Boolean sameStore, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
NodeDAO
getChildAssocs
in interface NodeDAO
parentNodeId
- the parent node IDchildNodeId
- the child node ID to filter on; null for no filteringassocTypeQName
- the association type qname to filter on; null for no filteringassocQName
- the association qname to filter on; null for no filteringisPrimary
- filter for primary (true) or secondary associations;
null for no filtering.sameStore
- null to ignore, true to only get children that are in the
same store as the parent, or false to only get children that are in
a different store from the parent.resultsCallback
- the callback that will be called with the resultspublic void getChildAssocs(java.lang.Long parentNodeId, java.util.Set assocTypeQNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
NodeDAO
getChildAssocs
in interface NodeDAO
parentNodeId
- the parent node IDassocTypeQNames
- the association type qnames to filter on; null for no filteringresultsCallback
- the callback that will be called with the resultspublic org.alfresco.util.Pair getChildAssoc(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, java.lang.String childName)
NodeDAO
getChildAssoc
in interface NodeDAO
parentNodeId
- the parent Node IDassocTypeQName
- the association type to filter onchildName
- the cm:name value to filter on
public void getChildAssocs(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, java.util.Collection childNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
NodeDAO
NOTE: This method only works if the association type fundamentally supports unique-name enforcement.
getChildAssocs
in interface NodeDAO
parentNodeId
- the parent nodeassocTypeQName
- the type of the association to check; or null for no filtering.
If the association type is not specified, then the same child node may be
included several times.childNames
- the names of the child nodes (cm:name). These will be matched exactly.resultsCallback
- the callback that will be called with the resultspublic void getChildAssocsByPropertyValue(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName propertyQName, java.io.Serializable value, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
getChildAssocsByPropertyValue
in interface NodeDAO
public void getChildAssocsByChildTypes(java.lang.Long parentNodeId, java.util.Set childNodeTypeQNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
getChildAssocsByChildTypes
in interface NodeDAO
public void getChildAssocsWithoutParentAssocsOfType(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
NodeDAO
getChildAssocsWithoutParentAssocsOfType
in interface NodeDAO
parentNodeId
- the parent node IDassocTypeQName
- the association type QNameresultsCallback
- the callback that will be called with the resultspublic org.alfresco.util.Pair getPrimaryParentAssoc(java.lang.Long childNodeId)
NodeDAO
getPrimaryParentAssoc
in interface NodeDAO
public void getParentAssocs(java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.Boolean isPrimary, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
NodeDAO
getParentAssocs
in interface NodeDAO
childNodeId
- the child node IDassocTypeQName
- the association type qname to filter on; null for no filteringassocQName
- the association qname to filter on; null for no filteringisPrimary
- filter for primary (true) or secondary associations;
null for no filtering.resultsCallback
- the callback that will be called with the resultspublic java.util.List getPaths(org.alfresco.util.Pair nodePair, boolean primaryOnly) throws org.alfresco.service.cmr.repository.InvalidNodeRefException
NodeDAO
primaryOnly == true
, checks that there is exactly
one path.
getPaths
in interface NodeDAO
primaryOnly
- true to follow only primary parent associations
org.alfresco.service.cmr.repository.InvalidNodeRefException
public void cacheNodes(java.util.List nodeRefs)
cacheNodes
in interface NodeBulkLoader
nodeRefs
- the nodes that will be cached.public void clear()
clear
in interface NodeBulkLoader
public java.lang.Long getMaxTxnIdByCommitTime(long maxCommitTime)
NodeDAO
getMaxTxnIdByCommitTime
in interface NodeDAO
maxCommitTime
- the max commit time (ms)
public int getTransactionCount()
getTransactionCount
in interface NodeDAO
public Transaction getTxnById(java.lang.Long txnId)
NodeDAO
getTxnById
in interface NodeDAO
txnId
- the unique transaction ID.
public java.util.List getTxnChanges(java.lang.Long txnId)
getTxnChanges
in interface NodeDAO
public java.util.List getTxnChangesForStore(org.alfresco.service.cmr.repository.StoreRef storeRef, java.lang.Long txnId)
getTxnChangesForStore
in interface NodeDAO
public int getTxnUpdateCount(java.lang.Long txnId)
getTxnUpdateCount
in interface NodeDAO
public int getTxnDeleteCount(java.lang.Long txnId)
getTxnDeleteCount
in interface NodeDAO
public java.util.List getTxnsByCommitTimeAscending(java.lang.Long fromTimeInclusive, java.lang.Long toTimeExclusive, int count, java.util.List excludeTxnIds, boolean remoteOnly)
NodeDAO
getTxnsByCommitTimeAscending
in interface NodeDAO
excludeTxnIds
- a list of txn IDs to ignore. null is allowed.remoteOnly
- true if locally-written transactions must be ignoredpublic java.util.List getTxnsByCommitTimeDescending(java.lang.Long fromTimeInclusive, java.lang.Long toTimeExclusive, int count, java.util.List excludeTxnIds, boolean remoteOnly)
NodeDAO
getTxnsByCommitTimeDescending
in interface NodeDAO
excludeTxnIds
- a list of txn IDs to ignore. null is allowed.remoteOnly
- true if locally-written transactions must be ignoredpublic java.util.List getTxnsByCommitTimeAscending(java.util.List includeTxnIds)
NodeDAO
getTxnsByCommitTimeAscending
in interface NodeDAO
includeTxnIds
- a list of transaction IDs to search for
public java.util.List getTxnsUnused(java.lang.Long minTxnId, long maxCommitTime, int count)
getTxnsUnused
in interface NodeDAO
public void purgeTxn(java.lang.Long txnId)
purgeTxn
in interface NodeDAO
public java.lang.Long getMinTxnCommitTime()
getMinTxnCommitTime
in interface NodeDAO
public java.lang.Long getMaxTxnCommitTime()
getMaxTxnCommitTime
in interface NodeDAO
protected abstract ServerEntity selectServer(java.lang.String ipAddress)
protected abstract java.lang.Long insertServer(java.lang.String ipAddress)
protected abstract java.lang.Long insertTransaction(java.lang.Long serverId, java.lang.String changeTxnId, java.lang.Long commit_time_ms)
protected abstract int updateTransaction(java.lang.Long txnId, java.lang.Long commit_time_ms)
protected abstract int deleteTransaction(java.lang.Long txnId)
protected abstract java.util.List selectAllStores()
protected abstract NodeEntity selectStoreRootNode(java.lang.Long storeId)
protected abstract NodeEntity selectStoreRootNode(org.alfresco.service.cmr.repository.StoreRef storeRef)
protected abstract java.lang.Long insertStore(StoreEntity store)
protected abstract int updateStoreRoot(StoreEntity store)
protected abstract int updateStore(StoreEntity store)
protected abstract java.lang.Long insertNode(NodeEntity node)
protected abstract int updateNode(NodeUpdateEntity nodeUpdate)
protected abstract int updateNodePatchAcl(NodeUpdateEntity nodeUpdate)
protected abstract void updatePrimaryChildrenSharedAclId(java.lang.Long primaryParentNodeId, java.lang.Long optionalOldSharedAlcIdInAdditionToNull, java.lang.Long newSharedAlcId)
protected abstract int deleteNodeById(java.lang.Long nodeId, boolean deletedOnly)
protected abstract int deleteNodesByCommitTime(boolean deletedOnly, long maxTxnCommitTimeMs)
protected abstract NodeEntity selectNodeById(java.lang.Long id, java.lang.Boolean deleted)
protected abstract NodeEntity selectNodeByNodeRef(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.Boolean deleted)
protected abstract java.util.List selectNodesByUuids(java.lang.Long storeId, java.util.SortedSet uuids)
protected abstract java.util.Map selectNodeProperties(java.util.Set nodeIds)
protected abstract java.util.List selectNodeAspects(java.util.Set nodeIds)
protected abstract java.util.Map selectNodeProperties(java.lang.Long nodeId)
protected abstract java.util.Map selectNodeProperties(java.lang.Long nodeId, java.util.Set qnameIds)
protected abstract int deleteNodeProperties(java.lang.Long nodeId, java.util.Set qnameIds)
protected abstract int deleteNodeProperties(java.lang.Long nodeId, java.util.List propKeys)
protected abstract void insertNodeProperties(java.lang.Long nodeId, java.util.Map persistableProps)
protected abstract java.util.Set selectNodeAspectIds(java.lang.Long nodeId)
protected abstract void insertNodeAspect(java.lang.Long nodeId, java.lang.Long qnameId)
protected abstract int deleteNodeAspects(java.lang.Long nodeId, java.util.Set qnameIds)
protected abstract void selectNodesWithAspect(java.lang.Long qnameId, java.lang.Long minNodeId, NodeDAO.NodeRefQueryCallback resultsCallback)
protected abstract java.lang.Long insertNodeAssoc(java.lang.Long sourceNodeId, java.lang.Long targetNodeId, java.lang.Long assocTypeQNameId)
protected abstract int deleteNodeAssoc(java.lang.Long sourceNodeId, java.lang.Long targetNodeId, java.lang.Long assocTypeQNameId)
protected abstract int deleteNodeAssocsToAndFrom(java.lang.Long nodeId)
protected abstract int deleteNodeAssocsToAndFrom(java.lang.Long nodeId, java.util.Set assocTypeQNameIds)
protected abstract java.util.List selectNodeAssocsBySource(java.lang.Long sourceNodeId)
protected abstract java.util.List selectNodeAssocsByTarget(java.lang.Long targetNodeId)
protected abstract NodeAssocEntity selectNodeAssocById(java.lang.Long assocId)
protected abstract java.lang.Long insertChildAssoc(ChildAssocEntity assoc)
protected abstract int deleteChildAssocById(java.lang.Long assocId)
protected abstract int updateChildAssocIndex(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, int index)
protected abstract int updateChildAssocsUniqueName(java.lang.Long childNodeId, java.lang.String name)
protected abstract int deleteChildAssocsToAndFrom(java.lang.Long nodeId)
protected abstract ChildAssocEntity selectChildAssoc(java.lang.Long assocId)
protected abstract java.util.List selectPrimaryChildAcls(java.lang.Long nodeId)
protected abstract java.util.List selectChildAssoc(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName)
protected abstract void selectChildAssocs(java.lang.Long parentNodeId, java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.Boolean isPrimary, java.lang.Boolean sameStore, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract void selectChildAssocs(java.lang.Long parentNodeId, java.util.Set assocTypeQNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract ChildAssocEntity selectChildAssoc(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, java.lang.String childName)
protected abstract void selectChildAssocs(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, java.util.Collection childNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract void selectChildAssocsByPropertyValue(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName propertyQName, NodePropertyValue nodeValue, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract void selectChildAssocsByChildTypes(java.lang.Long parentNodeId, java.util.Set childNodeTypeQNames, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract void selectChildAssocsWithoutParentAssocsOfType(java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract void selectParentAssocs(java.lang.Long childNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.Boolean isPrimary, NodeDAO.ChildAssocRefQueryCallback resultsCallback)
protected abstract java.util.List selectParentAssocs(java.lang.Long childNodeId)
protected abstract java.util.List selectPrimaryParentAssocs(java.lang.Long childNodeId)
protected abstract int updatePrimaryParentAssocs(java.lang.Long childNodeId, java.lang.Long parentNodeId, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, java.lang.String childNodeName)
protected abstract Transaction selectLastTxnBeforeCommitTime(java.lang.Long maxCommitTime)
protected abstract int selectTransactionCount()
protected abstract Transaction selectTxnById(java.lang.Long txnId)
protected abstract java.util.List selectTxnChanges(java.lang.Long txnId, java.lang.Long storeId)
protected abstract int selectTxnNodeChangeCount(java.lang.Long txnId, java.lang.Boolean updates)
txnId
- the transaction ID (never null)updates
- TRUE to select node updates, FALSE to select
node deletions or null to select all changes.
protected abstract java.util.List selectTxns(java.lang.Long fromTimeInclusive, java.lang.Long toTimeExclusive, java.lang.Integer count, java.util.List includeTxnIds, java.util.List excludeTxnIds, java.lang.Long excludeServerId, java.lang.Boolean ascending)
protected abstract java.util.List selectTxnsUnused(java.lang.Long minTxnId, java.lang.Long maxCommitTime, java.lang.Integer count)
protected abstract java.lang.Long selectMinTxnCommitTime()
protected abstract java.lang.Long selectMaxTxnCommitTime()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |