Package org.alfresco.repo.virtual.store
Class VirtualStoreImpl
- java.lang.Object
-
- org.alfresco.repo.virtual.store.VirtualStoreImpl
-
- All Implemented Interfaces:
VirtualFolderDefinitionResolver,VirtualStore
public class VirtualStoreImpl extends java.lang.Object implements VirtualStore, VirtualFolderDefinitionResolver
-
-
Field Summary
-
Fields inherited from interface org.alfresco.repo.virtual.store.VirtualStore
FILING_OR_MATERIAL_ADHERENCE, MATERIAL_ADHERENCE
-
-
Constructor Summary
Constructors Constructor Description VirtualStoreImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.alfresco.service.cmr.repository.NodeRefadhere(Reference reference, int mode)booleancanMaterialize(Reference reference)booleancanVirtualize(org.alfresco.service.cmr.repository.NodeRef nodeRef)FilingDatacreateFilingData(Reference parentReference, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> properties)java.util.Set<org.alfresco.service.cmr.security.AccessPermission>getAllSetPermissions(Reference reference)java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef>getChildAssocs(Reference parentReference, java.util.Set<org.alfresco.service.namespace.QName> childNodeTypeQNames)Retrieve immediate children references of a given reference where the child nodes are in the given inclusive list.java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef>getChildAssocs(Reference parentReference, org.alfresco.service.namespace.QNamePattern typeQNamePattern, org.alfresco.service.namespace.QNamePattern qnamePattern, int maxResults, boolean preload)Gets all child references associations where the pattern of the association qualified name is an exact match.java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef>getChildAssocsByPropertyValue(Reference parentReference, org.alfresco.service.namespace.QName propertyQName, java.io.Serializable value)Retrieve the immediate children of a given node based on the value of a property of those children.java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef>getChildAssocsWithoutParentAssocsOfType(Reference parentReference, org.alfresco.service.namespace.QName assocTypeQName)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.ReferencegetChildByName(Reference reference, org.alfresco.service.namespace.QName assocTypeQName, java.lang.String childName)Get the reference of the virtualized artefact with the given name within the virtual context (only) of the parent reference.
The name is case-insensitive as Alfresco has to support case-insensitive clients as standard.org.alfresco.service.cmr.repository.PathgetPath(Reference reference)java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable>getProperties(Reference reference)NodePermissionEntrygetSetPermissions(Reference reference)org.alfresco.service.namespace.QNamegetType(Reference ref)VirtualUserPermissionsgetUserPermissions()org.alfresco.service.cmr.security.AccessStatushasPermission(Reference reference, java.lang.String perm)Check that the given authentication has a particular permission for the given virtualized artefact.org.alfresco.service.cmr.security.AccessStatushasPermission(Reference reference, PermissionReference perm)Check that the given authentication has a particular permission for the given virtualized artefact.booleanisVirtual(org.alfresco.service.cmr.repository.NodeRef nodeRef)java.util.List<Reference>list(Reference reference)Lists all immediate children of the referred virtualized artefact.
Note: this could be a long list (and will be trimmed at a pre-configured maximum).org.alfresco.query.PagingResults<Reference>list(Reference ref, boolean actual, boolean virtual, boolean files, boolean folders, java.lang.String pattern, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)Lists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.org.alfresco.query.PagingResults<Reference>list(Reference ref, boolean actual, boolean virtual, boolean files, boolean folders, java.lang.String pattern, java.util.Set<org.alfresco.service.namespace.QName> searchTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)Lists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.
Pattern uses '*' as a wildcardorg.alfresco.query.PagingResults<Reference>list(Reference ref, boolean actual, boolean virtual, java.util.Set<org.alfresco.service.namespace.QName> searchTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)Lists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.org.alfresco.service.cmr.repository.NodeRefmaterialize(Reference reference)java.util.Collection<org.alfresco.service.cmr.repository.NodeRef>materializeIfPossible(java.util.Collection<org.alfresco.service.cmr.repository.NodeRef> nodeRefs)org.alfresco.service.cmr.repository.NodeRefmaterializeIfPossible(org.alfresco.service.cmr.repository.NodeRef nodeRef)VirtualFolderDefinitionresolveVirtualFolderDefinition(Reference reference)java.util.List<Reference>search(Reference reference, java.lang.String namePattern, boolean fileSearch, boolean folderSearch, boolean includeSubFolders)Perform a search against the name of the files or folders within a virtualized artefactReferencehierarchy.voidsetEnvironment(ActualEnvironment environment)voidsetUserPermissions(VirtualUserPermissions userPermissions)voidsetVirtualizationMethods(java.util.List<VirtualizationMethod> methdods)Referencevirtualize(org.alfresco.service.cmr.repository.NodeRef nodeRef)
-
-
-
Method Detail
-
setVirtualizationMethods
public void setVirtualizationMethods(java.util.List<VirtualizationMethod> methdods)
-
setEnvironment
public void setEnvironment(ActualEnvironment environment)
-
isVirtual
public boolean isVirtual(org.alfresco.service.cmr.repository.NodeRef nodeRef) throws VirtualizationException- Specified by:
isVirtualin interfaceVirtualStore- Throws:
VirtualizationException
-
canVirtualize
public boolean canVirtualize(org.alfresco.service.cmr.repository.NodeRef nodeRef) throws VirtualizationException- Specified by:
canVirtualizein interfaceVirtualStore- Throws:
VirtualizationException
-
canMaterialize
public boolean canMaterialize(Reference reference) throws VirtualizationException
- Specified by:
canMaterializein interfaceVirtualStore- Throws:
VirtualizationException
-
virtualize
public Reference virtualize(org.alfresco.service.cmr.repository.NodeRef nodeRef) throws VirtualizationException
- Specified by:
virtualizein interfaceVirtualStore- Throws:
VirtualizationException
-
materialize
public org.alfresco.service.cmr.repository.NodeRef materialize(Reference reference) throws VirtualizationException
- Specified by:
materializein interfaceVirtualStore- Throws:
VirtualizationException
-
materializeIfPossible
public java.util.Collection<org.alfresco.service.cmr.repository.NodeRef> materializeIfPossible(java.util.Collection<org.alfresco.service.cmr.repository.NodeRef> nodeRefs) throws VirtualizationException- Specified by:
materializeIfPossiblein interfaceVirtualStore- Throws:
VirtualizationException
-
materializeIfPossible
public org.alfresco.service.cmr.repository.NodeRef materializeIfPossible(org.alfresco.service.cmr.repository.NodeRef nodeRef) throws VirtualizationException- Specified by:
materializeIfPossiblein interfaceVirtualStore- Throws:
VirtualizationException
-
getChildAssocs
public java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildAssocs(Reference parentReference, org.alfresco.service.namespace.QNamePattern typeQNamePattern, org.alfresco.service.namespace.QNamePattern qnamePattern, int maxResults, boolean preload) throws org.alfresco.service.cmr.repository.InvalidNodeRefException
Description copied from interface:VirtualStoreGets all child references associations where the pattern of the association qualified name is an exact match.- Specified by:
getChildAssocsin interfaceVirtualStore- Parameters:
parentReference- the parent node - usually a containertypeQNamePattern- the qualified name of the association ( null to ignore)qnamePattern- the path qualified name (null to ignore)maxResults- the number of results to getpreload- true if the nodes must be preloaded into the cache- Returns:
- Returns a list of
ChildAssociationRefinstances - Throws:
org.alfresco.service.cmr.repository.InvalidNodeRefException- if the node could not be found- See Also:
QName
-
getChildAssocs
public java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildAssocs(Reference parentReference, java.util.Set<org.alfresco.service.namespace.QName> childNodeTypeQNames)
Description copied from interface:VirtualStoreRetrieve immediate children references of a given reference where the child nodes are in the given inclusive list.- Specified by:
getChildAssocsin interfaceVirtualStore- Parameters:
parentReference- the parent node - usually a containerchildNodeTypeQNames- the types that the children may be. Subtypes are not automatically calculated and the list must therefore be exhaustive.- Returns:
- Returns a list of
ChildAssociationRefinstances.
-
getChildAssocsWithoutParentAssocsOfType
public java.util.Collection<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildAssocsWithoutParentAssocsOfType(Reference parentReference, org.alfresco.service.namespace.QName assocTypeQName)
Description copied from interface:VirtualStoreGets 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.- Specified by:
getChildAssocsWithoutParentAssocsOfTypein interfaceVirtualStoreassocTypeQName- the association type QName- Returns:
- a
Collectionof child associations
-
getChildAssocsByPropertyValue
public java.util.List<org.alfresco.service.cmr.repository.ChildAssociationRef> getChildAssocsByPropertyValue(Reference parentReference, org.alfresco.service.namespace.QName propertyQName, java.io.Serializable value)
Description copied from interface:VirtualStoreRetrieve the immediate children of a given node based on the value of a property of those children.If the property to be searched is multi-valued then will match on any one values.
Please note, the following system maintained properties that cannot be used with this method.
- cm:name - use getChildByName instead
- cm:created
- cm:creator
- cm:modified
- cm:modifier
- sys:node-uuid
- sys:node-dbid
- sys:store-identifier
- sys:store-protocol
- Specified by:
getChildAssocsByPropertyValuein interfaceVirtualStore- Parameters:
parentReference- the parent reference - usually a containerpropertyQName- the fully qualified name of the propertyvalue- the value to search for. Must be a simple type such as String, Number, Date or Boolean, it cannot be a collection, a content property, MLText or a float.- Returns:
- Returns a list of
ChildAssociationRefinstances.
-
getChildByName
public Reference getChildByName(Reference reference, org.alfresco.service.namespace.QName assocTypeQName, java.lang.String childName) throws VirtualizationException
Description copied from interface:VirtualStoreGet the reference of the virtualized artefact with the given name within the virtual context (only) of the parent reference.
The name is case-insensitive as Alfresco has to support case-insensitive clients as standard.- Specified by:
getChildByNamein interfaceVirtualStore- Parameters:
reference- parentReference- Returns:
- the virtual child reference for the given name in the context of the given parent reference
- Throws:
VirtualizationException- See Also:
NodeService.getChildByName(org.alfresco.service.cmr.repository.NodeRef, QName, String)
-
resolveVirtualFolderDefinition
public VirtualFolderDefinition resolveVirtualFolderDefinition(Reference reference) throws VirtualizationException
- Specified by:
resolveVirtualFolderDefinitionin interfaceVirtualFolderDefinitionResolver- Returns:
- the
VirtualFolderDefinitionof the givenReferenceconsidering inner paths - Throws:
VirtualizationException
-
list
public org.alfresco.query.PagingResults<Reference> list(Reference ref, boolean actual, boolean virtual, boolean files, boolean folders, java.lang.String pattern, java.util.Set<org.alfresco.service.namespace.QName> searchTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest) throws VirtualizationException
Description copied from interface:VirtualStoreLists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.
Pattern uses '*' as a wildcard- Specified by:
listin interfaceVirtualStore- Throws:
VirtualizationException
-
list
public org.alfresco.query.PagingResults<Reference> list(Reference ref, boolean actual, boolean virtual, boolean files, boolean folders, java.lang.String pattern, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest) throws VirtualizationException
Description copied from interface:VirtualStoreLists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.- Specified by:
listin interfaceVirtualStore- Throws:
VirtualizationException
-
list
public org.alfresco.query.PagingResults<Reference> list(Reference ref, boolean actual, boolean virtual, java.util.Set<org.alfresco.service.namespace.QName> searchTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreTypeQNames, java.util.Set<org.alfresco.service.namespace.QName> ignoreAspectQNames, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest) throws VirtualizationException
Description copied from interface:VirtualStoreLists page of immediate children of the referred virtualized artefact with optional filtering (exclusion of certain child file/folder subtypes, actual-virtual filtering) and sorting.- Specified by:
listin interfaceVirtualStore- Throws:
VirtualizationException
-
list
public java.util.List<Reference> list(Reference reference) throws VirtualizationException
Description copied from interface:VirtualStoreLists all immediate children of the referred virtualized artefact.
Note: this could be a long list (and will be trimmed at a pre-configured maximum). You should consider using a paging request.- Specified by:
listin interfaceVirtualStore- Throws:
VirtualizationException
-
search
public java.util.List<Reference> search(Reference reference, java.lang.String namePattern, boolean fileSearch, boolean folderSearch, boolean includeSubFolders) throws VirtualizationException
Description copied from interface:VirtualStorePerform a search against the name of the files or folders within a virtualized artefactReferencehierarchy.
Wildcard characters are * and ?.
Warning: Please avoid using this method with any "namePattern" other than "*". Although it works, its performance is poor which is why this method is deprecated.- Specified by:
searchin interfaceVirtualStore- Throws:
VirtualizationException
-
getProperties
public java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> getProperties(Reference reference) throws VirtualizationException
- Specified by:
getPropertiesin interfaceVirtualStore- Returns:
- all virtual properties of the referred virtualized artefact keyed by their qualified name
- Throws:
VirtualizationException
-
getType
public org.alfresco.service.namespace.QName getType(Reference ref) throws VirtualizationException
- Specified by:
getTypein interfaceVirtualStore- Returns:
- qualified type of the referred virtualized artefact
- Throws:
VirtualizationException
-
createFilingData
public FilingData createFilingData(Reference parentReference, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName, java.util.Map<org.alfresco.service.namespace.QName,java.io.Serializable> properties) throws VirtualizationException
- Specified by:
createFilingDatain interfaceVirtualStore- Returns:
FilingDataof the given parent location- Throws:
VirtualizationException
-
hasPermission
public org.alfresco.service.cmr.security.AccessStatus hasPermission(Reference reference, java.lang.String perm) throws VirtualizationException
Description copied from interface:VirtualStoreCheck that the given authentication has a particular permission for the given virtualized artefact. (The default behaviour is to inherit permissions)- Specified by:
hasPermissionin interfaceVirtualStore- Returns:
- an
AccessStatus - Throws:
VirtualizationException
-
hasPermission
public org.alfresco.service.cmr.security.AccessStatus hasPermission(Reference reference, PermissionReference perm) throws VirtualizationException
Description copied from interface:VirtualStoreCheck that the given authentication has a particular permission for the given virtualized artefact. (The default behaviour is to inherit permissions)- Specified by:
hasPermissionin interfaceVirtualStore- Returns:
- an
AccessStatus - Throws:
VirtualizationException
-
setUserPermissions
public void setUserPermissions(VirtualUserPermissions userPermissions)
- Parameters:
userPermissions- user permissions
-
getUserPermissions
public VirtualUserPermissions getUserPermissions()
- Returns:
- a
VirtualUserPermissionsclone
-
getSetPermissions
public NodePermissionEntry getSetPermissions(Reference reference) throws VirtualizationException
- Specified by:
getSetPermissionsin interfaceVirtualStore- Throws:
VirtualizationException
-
getAllSetPermissions
public java.util.Set<org.alfresco.service.cmr.security.AccessPermission> getAllSetPermissions(Reference reference)
- Specified by:
getAllSetPermissionsin interfaceVirtualStore
-
getPath
public org.alfresco.service.cmr.repository.Path getPath(Reference reference) throws VirtualizationException
- Specified by:
getPathin interfaceVirtualStore- Throws:
VirtualizationException
-
adhere
public org.alfresco.service.cmr.repository.NodeRef adhere(Reference reference, int mode) throws VirtualizationException
- Specified by:
adherein interfaceVirtualStore- Throws:
VirtualizationException
-
-