public interface CoreSession extends AutoCloseable
DocumentModel
,
DocumentRef
Modifier and Type | Interface and Description |
---|---|
static class |
CoreSession.CopyOption |
Modifier and Type | Field and Description |
---|---|
static String |
ALLOW_VERSION_WRITE
Allow version write, Boolean parameter passed in context data at saveDocument time.
|
static String |
CHANGE_TOKEN
Change token, a String parameter passed in context data at
saveDocument(org.nuxeo.ecm.core.api.DocumentModel) time. |
static String |
IMPORT_BASE_VERSION_ID |
static String |
IMPORT_CHECKED_IN |
static String |
IMPORT_IS_VERSION |
static String |
IMPORT_LIFECYCLE_POLICY |
static String |
IMPORT_LIFECYCLE_STATE |
static String |
IMPORT_LOCK_CREATED
Lock creation time as a Calendar object.
|
static String |
IMPORT_LOCK_OWNER |
static String |
IMPORT_PROXY_TARGET_ID |
static String |
IMPORT_PROXY_TYPE
The document type to use to create a proxy by import.
|
static String |
IMPORT_PROXY_VERSIONABLE_ID |
static String |
IMPORT_VERSION_CREATED |
static String |
IMPORT_VERSION_DESCRIPTION |
static String |
IMPORT_VERSION_IS_LATEST |
static String |
IMPORT_VERSION_IS_LATEST_MAJOR |
static String |
IMPORT_VERSION_LABEL |
static String |
IMPORT_VERSION_MAJOR |
static String |
IMPORT_VERSION_MINOR |
static String |
IMPORT_VERSION_VERSIONABLE_ID |
static String |
SKIP_DESTINATION_CHECK_ON_CREATE
Skip the check to see if a destination exists on importDocument and createDocument
|
static String |
SOURCE
A context data key which represents the source of current session calls.
|
static String |
USER_CHANGE
User change, a Boolean parameter passed in context data at
saveDocument(org.nuxeo.ecm.core.api.DocumentModel) time. |
Modifier and Type | Method and Description |
---|---|
<T extends DetachedAdapter> |
adaptFirstMatchingDocumentWithFacet(DocumentRef docRef,
String facet,
Class<T> adapterClass)
Find the first parent with the given
facet and adapt it on the adapterClass . |
void |
applyDefaultPermissions(String userOrGroupName)
Applies default Read permissions on root JCR Document for the given user or group name.
|
void |
cancel()
Cancels any pending change made through this session.
|
boolean |
canRemoveDocument(DocumentRef docRef)
Check if a document can be removed.
|
DocumentRef |
checkIn(DocumentRef docRef,
VersioningOption option,
String checkinComment)
Checks in a modified document, creating a new version.
|
void |
checkOut(DocumentRef docRef)
Checks out a versioned document.
|
void |
close()
Closes this session.
|
DocumentModel |
copy(DocumentRef src,
DocumentRef dst,
String name,
boolean resetLifeCycle)
Deprecated.
Since 8.2. Use
copy(DocumentRef, DocumentRef, String, CopyOption...) instead |
DocumentModel |
copy(DocumentRef src,
DocumentRef dst,
String name,
CoreSession.CopyOption... copyOptions)
Copies the source document to the destination folder under the given name.
|
List<DocumentModel> |
copy(List<DocumentRef> src,
DocumentRef dst,
boolean resetLifeCycle)
Deprecated.
Since 8.2. Use
copy(List, DocumentRef, CopyOption...) instead |
List<DocumentModel> |
copy(List<DocumentRef> src,
DocumentRef dst,
CoreSession.CopyOption... copyOptions)
Bulk copy.
|
DocumentModel |
copyProxyAsDocument(DocumentRef src,
DocumentRef dst,
String name,
boolean resetLifeCycle)
Deprecated.
Since 8.2. Use
copyProxyAsDocument(DocumentRef, DocumentRef, String, CopyOption...) instead |
DocumentModel |
copyProxyAsDocument(DocumentRef src,
DocumentRef dst,
String name,
CoreSession.CopyOption... copyOptions)
Work like copy but in the case of a source proxy the destination will be a new document instead of a proxy.
|
List<DocumentModel> |
copyProxyAsDocument(List<DocumentRef> src,
DocumentRef dst,
boolean resetLifeCycle)
Deprecated.
Since 8.2. Use
copyProxyAsDocument(List, DocumentRef, CopyOption...) instead |
List<DocumentModel> |
copyProxyAsDocument(List<DocumentRef> src,
DocumentRef dst,
CoreSession.CopyOption... copyOptions)
Bulk copyProxyAsDocument.
|
DocumentModel |
createDocument(DocumentModel model)
Creates a document using given document model for initialization.
|
DocumentModel[] |
createDocument(DocumentModel[] docModels)
Bulk creation of documents.
|
DocumentModel |
createDocumentModel(String typeName)
Creates a document model using type name.
|
DocumentModel |
createDocumentModel(String typeName,
Map<String,Object> options)
Creates a document model using required information.
|
DocumentModel |
createDocumentModel(String parentPath,
String name,
String typeName)
Creates a document model using required information.
|
DocumentModel |
createProxy(DocumentRef docRef,
DocumentRef folderRef)
Creates a generic proxy to the given document inside the given folder.
|
void |
destroy()
Destroys any system resources held by this instance.
|
boolean |
exists(DocumentRef docRef)
Tests if the document pointed by the given reference exists and is accessible.
|
Collection<String> |
filterGrantedPermissions(Principal principal,
DocumentRef docRef,
Collection<String> permissions)
Filters the supplied permissions based on whether they are granted to a given principal for a given document.
|
boolean |
followTransition(DocumentModel doc,
String transition)
Follows a given life cycle transition.
|
boolean |
followTransition(DocumentRef docRef,
String transition)
Follows a given life cycle transition.
|
ACP |
getACP(DocumentRef docRef)
Gets the document access control policy.
|
Collection<String> |
getAllowedStateTransitions(DocumentRef docRef)
Gets the allowed state transitions for this document.
|
List<String> |
getAvailableSecurityPermissions()
Retrieves the available security permissions existing in the system.
|
DocumentRef |
getBaseVersion(DocumentRef docRef)
Gets the version to which a checked in document is linked.
|
Map<String,String> |
getBinaryFulltext(DocumentRef ref)
Gets the fulltext extracted from the binary fields.
|
String |
getChangeToken(DocumentRef ref)
Gets the current change token for the document.
|
DocumentModel |
getChild(DocumentRef parent,
String name)
Gets a child document given its name and the parent reference.
|
DocumentModelList |
getChildren(DocumentRef parent)
Gets the children of the given parent.
|
DocumentModelList |
getChildren(DocumentRef parent,
String type)
Gets the children of the given parent filtered according to the given document type.
|
DocumentModelList |
getChildren(DocumentRef parent,
String type,
Filter filter,
Sorter sorter)
Same as
getChildren(DocumentRef, String, String, Filter, Sorter) without specific permission filtering. |
DocumentModelList |
getChildren(DocumentRef parent,
String type,
String perm)
Gets the children of the given parent filtered according to the given document type and permission.
|
DocumentModelList |
getChildren(DocumentRef parent,
String type,
String perm,
Filter filter,
Sorter sorter)
Same as
getChildren(DocumentRef, String, String) but the result is filtered and then sorted using the
specified filter and sorter. |
DocumentModelIterator |
getChildrenIterator(DocumentRef parent)
Gets an iterator to the children of the given parent.
|
DocumentModelIterator |
getChildrenIterator(DocumentRef parent,
String type)
Gets an iterator to the children of the given parent filtered according to the given document type.
|
DocumentModelIterator |
getChildrenIterator(DocumentRef parent,
String type,
String perm,
Filter filter)
Gets the children of the given parent filtered according to the given document type and permission.
|
List<DocumentRef> |
getChildrenRefs(DocumentRef parentRef,
String perm)
Gets the references of the children.
|
String |
getCurrentLifeCycleState(DocumentRef docRef)
Returns the life cycle of the document.
|
DataModel |
getDataModel(DocumentRef docRef,
Schema schema)
Retrieves a data model given a document reference and a schema.
|
Object[] |
getDataModelsField(DocumentRef[] docRefs,
String schema,
String field)
Retrieves the given field value from the given schema for all the given documents.
|
Object[] |
getDataModelsFieldUp(DocumentRef docRef,
String schema,
String field)
Retrieves the given field value from the given schema for the given document along with all its parent documents.
|
DocumentModel |
getDocument(DocumentRef docRef)
Gets a document model given its reference.
|
DocumentModelList |
getDocuments(DocumentRef[] docRefs)
Gets a list of documents given their references.
|
<T extends Serializable> |
getDocumentSystemProp(DocumentRef ref,
String systemProperty,
Class<T> type)
Gets system property of the specified type for the document ref.
|
DocumentType |
getDocumentType(String type)
Gets the document type object given its type name.
|
DocumentModel |
getDocumentWithVersion(DocumentRef docRef,
VersionModel version)
Returns a document that represents the specified version of the document.
|
DocumentModelList |
getFiles(DocumentRef parent)
Same as
getChildren(DocumentRef) but returns only non-folder documents. |
DocumentModelList |
getFiles(DocumentRef parent,
Filter filter,
Sorter sorter)
Same as
getFiles(org.nuxeo.ecm.core.api.DocumentRef) but uses an optional filter and sorter on the result. |
DocumentModelList |
getFolders(DocumentRef parent)
Same as
getChildren(DocumentRef) but returns only folder documents. |
DocumentModelList |
getFolders(DocumentRef parent,
Filter filter,
Sorter sorter)
Same as
getFolders(DocumentRef) but uses an optional filter and sorter on the result. |
DocumentModel |
getLastDocumentVersion(DocumentRef docRef)
Gets the document corresponding to the last version for the given document.
|
DocumentRef |
getLastDocumentVersionRef(DocumentRef docRef)
Gets the document reference corresponding to the last version for the given document.
|
String |
getLifeCyclePolicy(DocumentRef docRef)
Returns the life cycle policy of the document.
|
Lock |
getLockInfo(DocumentRef docRef)
Gets the lock info on the given document.
|
DocumentModel |
getParentDocument(DocumentRef docRef)
Gets the parent document or null if this is the root document.
|
DocumentRef |
getParentDocumentRef(DocumentRef docRef)
Returns the parent ref of the document referenced by
docRef or null if this is the root document. |
DocumentRef[] |
getParentDocumentRefs(DocumentRef docRef)
Creates an array with all parent refs starting from the given document up to the root.
|
List<DocumentModel> |
getParentDocuments(DocumentRef docRef)
Gets the parent documents in path from the root to the given document or empty list if this is the root document.
|
String[] |
getPermissionsToCheck(String permission)
Provides the full list of all permissions or groups of permissions that contain the given one (inclusive).
|
Principal |
getPrincipal()
Gets the principal that created the client session.
|
DocumentModelList |
getProxies(DocumentRef docRef,
DocumentRef folderRef)
Finds the proxies for a document.
|
String |
getRepositoryName()
Returns the repository name against which this core session is bound.
|
DocumentModel |
getRootDocument()
Gets the root document of this repository.
|
String |
getSessionId()
Gets the current session id.
|
DocumentModel |
getSourceDocument(DocumentRef docRef)
Gets the head (live) document for this document.
|
String |
getSuperParentType(DocumentModel doc)
Returns the type of his parent SuperSpace (workspace, section, etc.).
|
DocumentModel |
getSuperSpace(DocumentModel doc)
Returns the parent SuperSpace (workspace, section, etc.).
|
DocumentModel |
getVersion(String versionableId,
VersionModel versionModel)
Gets a document version, given the versionable id and label.
|
String |
getVersionLabel(DocumentModel docModel)
Gets the version label for a document, according to the versioning service.
|
List<DocumentModel> |
getVersions(DocumentRef docRef)
Retrieves all the versions for a specified document.
|
String |
getVersionSeriesId(DocumentRef docRef)
Gets the version series id for a document.
|
List<VersionModel> |
getVersionsForDocument(DocumentRef docRef)
Retrieves all the versions for a specified document.
|
List<DocumentRef> |
getVersionsRefs(DocumentRef docRef)
Gets the references of the versions of the document.
|
DocumentModel |
getWorkingCopy(DocumentRef docRef)
Gets the working copy (live document) for a proxy or a version.
|
boolean |
hasChild(DocumentRef parent,
String name)
Tests if the document has a child with the given name.
|
boolean |
hasChildren(DocumentRef docRef)
Tests if the document has any children.
|
boolean |
hasPermission(DocumentRef docRef,
String permission)
Checks if the principal that created the client session has the given privilege on the referred document.
|
boolean |
hasPermission(Principal principal,
DocumentRef docRef,
String permission)
Checks if a given principal has the given privilege on the referred document.
|
void |
importDocuments(List<DocumentModel> docModels)
Low-level import of documents, reserved for the administrator.
|
boolean |
isCheckedOut(DocumentRef docRef)
Returns whether the current document is checked-out or not.
|
boolean |
isLive(boolean onThread)
Returns true if the session is currently connected to the repository.
|
boolean |
isNegativeAclAllowed()
Returns
true if negative ACLs are allowed. |
boolean |
isStateSharedByAllThreadSessions()
Deprecated.
since 8.4 as it always returns true by design
|
DocumentModel |
move(DocumentRef src,
DocumentRef dst,
String name)
Moves the source document to the destination folder under the given name.
|
void |
move(List<DocumentRef> src,
DocumentRef dst)
Bulk move.
|
void |
orderBefore(DocumentRef parent,
String src,
String dest)
Given a parent document, order the source child before the destination child.
|
DocumentModel |
publishDocument(DocumentModel docToPublish,
DocumentModel section)
Publishes the document in a section overwriting any existing proxy to the same document.
|
DocumentModel |
publishDocument(DocumentModel docToPublish,
DocumentModel section,
boolean overwriteExistingProxy)
Publishes the document in a section.
|
DocumentModelList |
query(String query)
Executes the given NXQL query an returns the result.
|
DocumentModelList |
query(String query,
Filter filter)
Executes the given NXQL query and returns the result that matches the filter.
|
DocumentModelList |
query(String query,
Filter filter,
int max)
Executes the given NXQL query and returns the result that matches the filter.
|
DocumentModelList |
query(String query,
Filter filter,
long limit,
long offset,
boolean countTotal)
Executes the given NXQL query and returns the result that matches the filter.
|
DocumentModelList |
query(String query,
Filter filter,
long limit,
long offset,
long countUpTo)
Executes the given NXQL query and returns the result that matches the filter.
|
DocumentModelList |
query(String query,
int max)
Executes the given NXQL query an returns the result.
|
DocumentModelList |
query(String query,
String queryType,
Filter filter,
long limit,
long offset,
boolean countTotal)
Executes the given query and returns the result that matches the filter.
|
DocumentModelList |
query(String query,
String queryType,
Filter filter,
long limit,
long offset,
long countUpTo)
Executes the given query and returns the result that matches the filter.
|
IterableQueryResult |
queryAndFetch(String query,
String queryType,
boolean distinctDocuments,
Object... params)
Executes the given query and returns an iterable of maps containing the requested properties (which must be
closed when done).
|
IterableQueryResult |
queryAndFetch(String query,
String queryType,
Object... params)
Executes the given query and returns an iterable of maps containing the requested properties (which must be
closed when done).
|
PartialList<Map<String,Serializable>> |
queryProjection(String query,
long limit,
long offset)
Executes the given NXQL query and returns the result that matches the filter.
|
PartialList<Map<String,Serializable>> |
queryProjection(String query,
long limit,
long offset,
boolean countTotal)
Executes the given NXQL query and returns the result that matches the filter.
|
PartialList<Map<String,Serializable>> |
queryProjection(String query,
String queryType,
boolean distinctDocuments,
long limit,
long offset,
long countUpTo,
Object... params)
Executes the given NXQL query and returns the result that matches the filter.
|
DocumentModel.DocumentModelRefresh |
refreshDocument(DocumentRef ref,
int refreshFlags,
String[] schemas)
Internal method - it is used internally by
DocumentModel.refresh() |
void |
reinitLifeCycleState(DocumentRef docRef)
Reinitializes the life cycle state of the document to its default state.
|
void |
removeChildren(DocumentRef docRef)
Removes all children from the given document.
|
void |
removeDocument(DocumentRef docRef)
Removes this document and all its children, if any.
|
void |
removeDocuments(DocumentRef[] docRefs)
Bulk method to remove documents.
|
Lock |
removeLock(DocumentRef docRef)
Removes the lock on the given document.
|
void |
replaceACE(DocumentRef docRef,
String aclName,
ACE oldACE,
ACE newACE)
Replace the
oldACE with the newACE on the given aclName . |
DocumentModel |
restoreToVersion(DocumentRef docRef,
DocumentRef versionRef)
Restores the given document to the specified version.
|
DocumentModel |
restoreToVersion(DocumentRef docRef,
DocumentRef versionRef,
boolean skipSnapshotCreation,
boolean skipCheckout)
Restores the given document to the specified version.
|
void |
save()
Saves any pending changes done until now through this session.
|
DocumentModel |
saveDocument(DocumentModel docModel)
Saves changes done on the given document model.
|
void |
saveDocuments(DocumentModel[] docModels)
Bulk document saving.
|
ScrollResult |
scroll(String scrollId)
Get the next batch of result, the
scrollId is part of the previous ScrollResult response. |
ScrollResult |
scroll(String query,
int batchSize,
int keepAliveSeconds)
Executes the given query and returns the first batch of results, next batch must be requested within the
keepAliveSeconds delay. |
void |
setACP(DocumentRef docRef,
ACP acp,
boolean overwrite)
Sets the ACP for this document.
|
<T extends Serializable> |
setDocumentSystemProp(DocumentRef ref,
String systemProperty,
T value)
Sets given value as a system property.
|
Lock |
setLock(DocumentRef docRef)
Sets a lock on the given document.
|
static final String IMPORT_VERSION_VERSIONABLE_ID
static final String IMPORT_VERSION_CREATED
static final String IMPORT_VERSION_LABEL
static final String IMPORT_VERSION_DESCRIPTION
static final String IMPORT_VERSION_IS_LATEST
static final String IMPORT_VERSION_IS_LATEST_MAJOR
static final String IMPORT_IS_VERSION
static final String IMPORT_VERSION_MAJOR
static final String IMPORT_VERSION_MINOR
static final String IMPORT_PROXY_TARGET_ID
static final String IMPORT_PROXY_VERSIONABLE_ID
static final String IMPORT_LIFECYCLE_POLICY
static final String IMPORT_LIFECYCLE_STATE
static final String IMPORT_LOCK_OWNER
static final String IMPORT_LOCK_CREATED
static final String IMPORT_CHECKED_IN
static final String IMPORT_BASE_VERSION_ID
static final String IMPORT_PROXY_TYPE
static final String SKIP_DESTINATION_CHECK_ON_CREATE
static final String ALLOW_VERSION_WRITE
static final String SOURCE
static final String CHANGE_TOKEN
saveDocument(org.nuxeo.ecm.core.api.DocumentModel)
time.static final String USER_CHANGE
saveDocument(org.nuxeo.ecm.core.api.DocumentModel)
time.
When TRUE, it marks the document as being modified by a user change. This causes an additional change token increment and check during save.
void close()
close
in interface AutoCloseable
void destroy()
Called when the instance is no more needed.
DocumentType getDocumentType(String type)
type
- the document type nameboolean isLive(boolean onThread)
void cancel()
void save()
String getSessionId()
If the client is not connected returns null.
@Deprecated boolean isStateSharedByAllThreadSessions()
true
if all sessions in the current thread share the same state.Principal getPrincipal()
boolean hasPermission(DocumentRef docRef, String permission)
boolean hasPermission(Principal principal, DocumentRef docRef, String permission)
Collection<String> filterGrantedPermissions(Principal principal, DocumentRef docRef, Collection<String> permissions)
DocumentModel getRootDocument()
DocumentModel getDocument(DocumentRef docRef) throws DocumentNotFoundException
The default schemas are used to populate the returned document model. Default schemas are configured via the document type manager.
Any other data model not part of the default schemas will be lazily loaded as needed.
docRef
- the document referenceDocumentNotFoundException
- if the document cannot be foundDocumentModelList getDocuments(DocumentRef[] docRefs) throws DocumentNotFoundException
Documents that are not accessible are skipped.
DocumentNotFoundException
- if a document cannot be foundDocumentModel getChild(DocumentRef parent, String name)
Throws an exception if the document could not be found.
If the supplied id is null, returns the default child of the document if any, otherwise raises an exception.
If the parent is null or its path is null, then root is considered.
parent
- the reference to the parent documentname
- the name of the child document to retrieveDocumentNotFoundException
- if there is no child with the given nameboolean hasChild(DocumentRef parent, String name)
This operation silently ignores non-folder documents: If the document is not a folder then returns false.
parent
- the documentname
- the child nametrue
if the document has a child with the given nameDocumentModelList getChildren(DocumentRef parent)
parent
- the parent referenceDocumentModelIterator getChildrenIterator(DocumentRef parent)
parent
- the parent referenceDocumentModelList getChildren(DocumentRef parent, String type)
parent
- the parent referencetype
- the wanted document typeDocumentModelIterator getChildrenIterator(DocumentRef parent, String type)
DocumentModelList getChildren(DocumentRef parent, String type, String perm)
parent
- the parent referencetype
- the wanted document typeperm
- the permission the user must haveDocumentModelList getChildren(DocumentRef parent, String type, String perm, Filter filter, Sorter sorter)
getChildren(DocumentRef, String, String)
but the result is filtered and then sorted using the
specified filter and sorter.parent
- the parent referencetype
- the wanted typeperm
- permission to check for. If null, defaults to READfilter
- the filter to use if any, null otherwisesorter
- the sorter to use if any, null otherwiseList<DocumentRef> getChildrenRefs(DocumentRef parentRef, String perm)
parentRef
- the parent referenceperm
- the permission to check on the children (usually READ); if null, no permission is checkedDocumentModelIterator getChildrenIterator(DocumentRef parent, String type, String perm, Filter filter)
DocumentModelList getChildren(DocumentRef parent, String type, Filter filter, Sorter sorter)
getChildren(DocumentRef, String, String, Filter, Sorter)
without specific permission filtering.parent
- the parent referencetype
- the wanted typefilter
- the filter to use if any, null otherwisesorter
- the sorter to use if any, null otherwiseDocumentModelList getFolders(DocumentRef parent)
getChildren(DocumentRef)
but returns only folder documents.parent
- the parent refDocumentModelList getFolders(DocumentRef parent, Filter filter, Sorter sorter)
getFolders(DocumentRef)
but uses an optional filter and sorter on the result.parent
- the parent referencefilter
- the filter to use or null if nonesorter
- the sorter to use or null if noneDocumentModelList getFiles(DocumentRef parent)
getChildren(DocumentRef)
but returns only non-folder documents.parent
- the parent referenceDocumentModelList getFiles(DocumentRef parent, Filter filter, Sorter sorter)
getFiles(org.nuxeo.ecm.core.api.DocumentRef)
but uses an optional filter and sorter on the result.parent
- the parent referencefilter
- the filter to use or null if nonesorter
- the sorter to use or null if noneDocumentRef getParentDocumentRef(DocumentRef docRef)
docRef
or null
if this is the root document.
This method does not check the permissions on the parent document of this CoreSession
's Principal
.
DocumentModel getParentDocument(DocumentRef docRef)
List<DocumentModel> getParentDocuments(DocumentRef docRef)
Documents the principal is is not allowed to browse are filtered out the parents list.
boolean exists(DocumentRef docRef)
This operation makes no difference between non-existence and permission problems.
If the parent is null or its path is null, then root is considered.
docRef
- the reference to the document to test for existenceboolean hasChildren(DocumentRef docRef)
This operation silently ignores non-folder documents: If the document is not a folder then returns false.
If the parent is null or its path is null, then root is considered.
docRef
- the reference to the document to testDocumentModel createDocumentModel(String typeName)
Used to fetch initial datamodels from the type definition.
DocumentModel creation notifies a DocumentEventTypes.EMPTY_DOCUMENTMODEL_CREATED
so that core event
listener can initialize its content with computed properties.
DocumentModel createDocumentModel(String parentPath, String name, String typeName)
Used to fetch initial datamodels from the type definition.
DocumentModel creation notifies a DocumentEventTypes.EMPTY_DOCUMENTMODEL_CREATED
so that core event
listener can initialize its content with computed properties.
parentPath
- the parent pathname
- The destination nametypeName
- the type nameDocumentModel createDocumentModel(String typeName, Map<String,Object> options)
Used to fetch initial datamodels from the type definition.
DocumentModel creation notifies a DocumentEventTypes.EMPTY_DOCUMENTMODEL_CREATED
so that core event
listener can initialize its content with computed properties.
typeName
- the type nameoptions
- additional contextual data provided to core event listenersDocumentModel createDocument(DocumentModel model)
The model contains path of the new document, its type and optionally the initial data models of the document.
model
- the document model to use for initializationDocumentModel[] createDocument(DocumentModel[] docModels)
docModels
- the document models to use for intializationvoid importDocuments(List<DocumentModel> docModels)
This method is used to import documents with given ids, or directly import versions and proxies.
The id, parent, name and typeName must be present in each docModel.
The context data needs to be filled with values depending on the type of the document:
For a proxy (type = "ecm:proxyType"
): IMPORT_PROXY_TARGET_ID
and
IMPORT_PROXY_VERSIONABLE_ID
.
For a version (no parent): IMPORT_VERSION_VERSIONABLE_ID
, IMPORT_VERSION_CREATED
,
IMPORT_VERSION_LABEL
and IMPORT_VERSION_DESCRIPTION
.
For a live document: IMPORT_BASE_VERSION_ID
and IMPORT_CHECKED_IN
(Boolean).
For a live document or a version: IMPORT_LIFECYCLE_POLICY
, IMPORT_LIFECYCLE_STATE
,
IMPORT_VERSION_MAJOR
(Long) and IMPORT_VERSION_MINOR
(Long).
docModels
- the documents to createDocumentModel saveDocument(DocumentModel docModel)
docModel
- the document model that needs modifiedvoid saveDocuments(DocumentModel[] docModels)
docModels
- the document models that needs to be savedboolean canRemoveDocument(DocumentRef docRef)
For an archived version to be removeable, it must not be referenced from any proxy or be the base of a working document, and the REMOVE permission must be available on the working document (or the user must be an administrator if no working document exists).
docRef
- the documentvoid removeDocument(DocumentRef docRef)
docRef
- the reference to the document to removevoid removeDocuments(DocumentRef[] docRefs)
This method is safe with respect to orderings: it doesn't fail if an ancestor of a document occurs before the document.
docRefs
- the refs to the document to removevoid removeChildren(DocumentRef docRef)
docRef
- the reference to the document to removeDocumentModel copy(DocumentRef src, DocumentRef dst, String name, CoreSession.CopyOption... copyOptions)
If the destination document is not a folder or it doesn't exists then throws an exception.
If the source is a proxy the destination will be a copy of the proxy.
src
- the source document referencedst
- the destination folder referencename
- the new name of the file or null if the original name must be preservedcopyOptions
- the options for copy@Deprecated DocumentModel copy(DocumentRef src, DocumentRef dst, String name, boolean resetLifeCycle)
copy(DocumentRef, DocumentRef, String, CopyOption...)
insteadIf the destination document is not a folder or it doesn't exists then throws an exception.
If the source is a proxy the destination will be a copy of the proxy.
src
- the source document referencedst
- the destination folder referencename
- the new name of the file or null if the original name must be preservedresetLifeCycle
- the property that flagged whether reset destination document lifecycle or notList<DocumentModel> copy(List<DocumentRef> src, DocumentRef dst, CoreSession.CopyOption... copyOptions)
src
- the documents to copydst
- the destination foldercopyOptions
- the options for copy@Deprecated List<DocumentModel> copy(List<DocumentRef> src, DocumentRef dst, boolean resetLifeCycle)
copy(List, DocumentRef, CopyOption...)
insteadsrc
- the documents to copydst
- the destination folderresetLifeCycle
- the property that flagged whether reset destination document lifecycle or notDocumentModel copyProxyAsDocument(DocumentRef src, DocumentRef dst, String name, CoreSession.CopyOption... copyOptions)
src
- the source document referencedst
- the destination folder referencename
- the new name of the file or null if the original name must be preservedcopyOptions
- the options for copycopy(DocumentRef, DocumentRef, String, CopyOption...)
@Deprecated DocumentModel copyProxyAsDocument(DocumentRef src, DocumentRef dst, String name, boolean resetLifeCycle)
copyProxyAsDocument(DocumentRef, DocumentRef, String, CopyOption...)
insteadsrc
- the source document referencedst
- the destination folder referencename
- the new name of the file or null if the original name must be preservedresetLifeCycle
- the property that flagged whether reset destination document lifecycle or notList<DocumentModel> copyProxyAsDocument(List<DocumentRef> src, DocumentRef dst, CoreSession.CopyOption... copyOptions)
src
- the documents to copydst
- the destination foldercopyOptions
- the options of copy@Deprecated List<DocumentModel> copyProxyAsDocument(List<DocumentRef> src, DocumentRef dst, boolean resetLifeCycle)
copyProxyAsDocument(List, DocumentRef, CopyOption...)
insteadsrc
- the documents to copydst
- the destination folderresetLifeCycle
- the property that flagged whether reset destination document lifecycle or notDocumentModel move(DocumentRef src, DocumentRef dst, String name)
null
or if there
is a collision, a suitable new name is found.
If the destination document is not a folder or it doesn't exists then throws an exception.
src
- the source document referencedst
- the destination folder referencename
- the new name of the file, or null
void move(List<DocumentRef> src, DocumentRef dst)
src
- the documents to movedst
- the destination folderACP getACP(DocumentRef docRef)
The returned ACP is the ACP defined on that document if any + the inherited ACL if any. If neither a local ACP nor inherited ACL exists null is returned.
Note that modifying the returned ACP will not affect in any way the stored document ACP. To modify the ACP you
must explicitely set it by calling setACP(DocumentRef, ACP, boolean)
This method will always fetch a fresh ACP from the storage. The recommended way to get the ACP is to use
DocumentModel.getACP()
this way the ACP will be cached at the document model level and so you can use it
for multiple permission checks without fetching it each time.
docRef
- the doc ref to retrieve ACP or null if nonevoid setACP(DocumentRef docRef, ACP acp, boolean overwrite)
If the ACP contains an INHERITED
ACL it will be discarded. Only ACLs relative to the current
document may be changed.
If the overwrite
argument is false, the ACP is merged with the existing one if any. The merge is
done as follow:
owners
are specified then they will replace the existing ones if any. Otherwise the old
owners are preserved if any. As for the ACL if you want to remove existing owners you need to specify an empty
owner array (and not a null one)
overwrite
argument is true, the old ACP will be replaced by the new one.
This way if you can remove the existing ACP by specifying a null ACP and overwrite
argument set to
true.
Setting a null ACP when overwrite
is false will do nothing.
void replaceACE(DocumentRef docRef, String aclName, ACE oldACE, ACE newACE)
oldACE
with the newACE
on the given aclName
.
boolean isNegativeAclAllowed()
true
if negative ACLs are allowed.
Negative ACLs are ACLs that include an ACE with a deny (isGranted=false). This does not include the full-blocking ACE for Everyone/Everything, which is always allowed.
true
if negative ACLs are allowedDataModel getDataModel(DocumentRef docRef, Schema schema)
For INTERNAL use by the core.
DocumentModel getLastDocumentVersion(DocumentRef docRef)
docRef
- the reference to the documentDocumentRef getLastDocumentVersionRef(DocumentRef docRef)
docRef
- the reference to the documentDocumentModel getSourceDocument(DocumentRef docRef)
docRef
- the reference to the documentList<DocumentRef> getVersionsRefs(DocumentRef docRef)
docRef
- the reference to the documentList<DocumentModel> getVersions(DocumentRef docRef)
docRef
- the reference to the documentDocumentModel
representing versions, empty list if none is found.List<VersionModel> getVersionsForDocument(DocumentRef docRef)
docRef
- the reference to the documentVersionModel
representing versions, empty list if none is found.DocumentModel getVersion(String versionableId, VersionModel versionModel)
The version model contains the label of the version to look for. On return, it is filled with the version's description and creation date.
versionableId
- the versionable idversionModel
- the version model holding the labelnull
if not foundString getVersionLabel(DocumentModel docModel)
docModel
- the documentDocumentModel getDocumentWithVersion(DocumentRef docRef, VersionModel version)
docRef
- the reference to the documentversion
- the version for which we want the corresponding documentDocumentModel restoreToVersion(DocumentRef docRef, DocumentRef versionRef, boolean skipSnapshotCreation, boolean skipCheckout)
docRef
- the reference to the documentversionRef
- the reference to the versionskipSnapshotCreation
- true
if the document should not be snapshotted before being restoredskipCheckout
- true
if the restored document should be kept in a checked-in stateDocumentModel restoreToVersion(DocumentRef docRef, DocumentRef versionRef)
docRef
- the reference to the documentversionRef
- the reference to the versionDocumentRef getBaseVersion(DocumentRef docRef)
Returns null
for a checked out document or a version or a proxy.
null
void checkOut(DocumentRef docRef)
docRef
- the reference to the documentDocumentRef checkIn(DocumentRef docRef, VersioningOption option, String checkinComment)
docRef
- the reference to the documentoption
- whether to do create a new VersioningOption.MINOR
or VersioningOption.MAJOR
version
during check incheckinComment
- the checkin commentboolean isCheckedOut(DocumentRef docRef)
docRef
- the reference to the documentString getVersionSeriesId(DocumentRef docRef)
All documents and versions derived by a check in or checkout from the same original document share the same version series id.
docRef
- the document referenceDocumentModel getWorkingCopy(DocumentRef docRef)
docRef
- the document referencenull
if not foundDocumentModel createProxy(DocumentRef docRef, DocumentRef folderRef)
The document may be a version, or a working copy (live document) in which case the proxy will be a "shortcut".
DocumentModelList query(String query)
query
- the query to executeDocumentModelList query(String query, int max)
query
- the query to executemax
- number of document to retrieveDocumentModelList query(String query, Filter filter)
query
- the query to executefilter
- the filter to apply to resultDocumentModelList query(String query, Filter filter, int max)
query
- the query to executefilter
- the filter to apply to resultmax
- number of document to retrieveDocumentModelList query(String query, Filter filter, long limit, long offset, boolean countTotal)
query
- the query to executefilter
- the filter to apply to resultlimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountTotal
- if true
, return a DocumentModelList
that includes a total size of the
underlying list (size if there was no limit or offset)DocumentModelList query(String query, Filter filter, long limit, long offset, long countUpTo)
query
- the query to executefilter
- the filter to apply to resultlimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountUpTo
- if -1
, count the total size without offset/limit.0
, don't count the total size.n
, count the total number if there are less than n documents otherwise set the size to
-1
.DocumentModelList query(String query, String queryType, Filter filter, long limit, long offset, boolean countTotal)
query
- the query to executequeryType
- the query type, like "NXQL"filter
- the filter to apply to resultlimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountTotal
- if true
, return a DocumentModelList
that includes a total size of the
underlying list (size if there was no limit or offset)DocumentModelList query(String query, String queryType, Filter filter, long limit, long offset, long countUpTo)
query
- the query to executequeryType
- the query type, like "NXQL"filter
- the filter to apply to resultlimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountUpTo
- if -1
, return a DocumentModelList
that includes a total size of the underlying
list (size if there was no limit or offset). 0
, don't return the total size of the underlying list. n
, return the total size of the underlying list when the size is smaller than n
else return a total size of -1
.IterableQueryResult queryAndFetch(String query, String queryType, Object... params)
query
- the query to executequeryType
- the query type, usually "NXQL"params
- optional query-type-dependent parametersIterableQueryResult
, which must be closed after useIterableQueryResult queryAndFetch(String query, String queryType, boolean distinctDocuments, Object... params)
It's possible to specify distinctDocuments = true
to get a maximum of one row of results per document,
this will behave differently only when the WHERE
clause contains wildcards.
query
- the query to executequeryType
- the query type, usually "NXQL"distinctDocuments
- if true
then a maximum of one row per document will be returnedparams
- optional query-type-dependent parametersIterableQueryResult
, which must be closed after usePartialList<Map<String,Serializable>> queryProjection(String query, long limit, long offset)
query
- the query to executelimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentsPartialList<Map<String,Serializable>> queryProjection(String query, long limit, long offset, boolean countTotal)
query
- the query to executelimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountTotal
- if true
, return a PartialList
that includes a total size of the underlying list
(size if there was no limit or offset)PartialList<Map<String,Serializable>> queryProjection(String query, String queryType, boolean distinctDocuments, long limit, long offset, long countUpTo, Object... params)
query
- the query to executequeryType
- the query type, like "NXQL"distinctDocuments
- if true
then a maximum of one row per document will be returnedlimit
- the maximum number of documents to retrieve, or 0 for all of themoffset
- the offset (starting at 0) into the list of documentscountUpTo
- if -1
, return a PartialList
that includes a total size of the underlying list
(size if there was no limit or offset). 0
, don't return the total size of the underlying list. n
, return the total size of the underlying list when the size is smaller than n
else return a total size of -1
.params
- optional query-type-dependent parametersScrollResult scroll(String query, int batchSize, int keepAliveSeconds)
keepAliveSeconds
delay.query
- The NXQL query to executebatchSize
- The expected result batch size, note that more results can be returned when the backend don't
implement properly this featurekeepAliveSeconds
- The scroll context lifetime in secondsScrollResult
including the search results and a scroll id, to be passed to the subsequent calls
to scroll(String)
ScrollResult scroll(String scrollId)
scrollId
is part of the previous ScrollResult
response.NuxeoException
- when the scrollId
is unknown or when the scroll operation has timed outList<String> getAvailableSecurityPermissions()
String getCurrentLifeCycleState(DocumentRef docRef)
docRef
- the document referenceorg.nuxeo.ecm.core.lifecycle
String getLifeCyclePolicy(DocumentRef docRef)
docRef
- the document referenceorg.nuxeo.ecm.core.lifecycle
boolean followTransition(DocumentRef docRef, String transition) throws LifeCycleException
This will update the current life cycle of the document.
docRef
- the document referencetransition
- the name of the transition to followLifeCycleException
- if the transition cannot be followedboolean followTransition(DocumentModel doc, String transition) throws LifeCycleException
This will update the current life cycle of the document.
doc
- the document modeltransition
- the name of the transition to followLifeCycleException
- if the transition cannot be followedCollection<String> getAllowedStateTransitions(DocumentRef docRef)
docRef
- the document referencevoid reinitLifeCycleState(DocumentRef docRef)
docRef
- the documentObject[] getDataModelsField(DocumentRef[] docRefs, String schema, String field)
docRefs
- the document referencesschema
- the schemafield
- the field nameDocumentRef[] getParentDocumentRefs(DocumentRef docRef)
Object[] getDataModelsFieldUp(DocumentRef docRef, String schema, String field)
docRef
- the document referenceschema
- the schemafield
- the field nameLock setLock(DocumentRef docRef) throws LockException
docRef
- the document referenceLockException
- if the document is already lockedLock getLockInfo(DocumentRef docRef)
Lock info is never cached, and needs to use a separate transaction in a separate thread, so care should be taken to not call this method needlessly.
docRef
- the document referencenull
otherwiseLock removeLock(DocumentRef docRef) throws LockException
The caller principal should be the same as the one who set the lock or to belongs to the administrator group, otherwise an exception will be throw.
If the document was not locked, does nothing.
Returns the previous lock info.
docRef
- the document to unlocknull
if there was no lockLockException
- if the document is locked by someone elsevoid applyDefaultPermissions(String userOrGroupName)
Usage: As an administrator, you may want to add new users or groups. This method needs to be called to grand default reading permissions on the root document of the repository for the newly created users/groups.
DocumentModel publishDocument(DocumentModel docToPublish, DocumentModel section)
DocumentModel publishDocument(DocumentModel docToPublish, DocumentModel section, boolean overwriteExistingProxy)
DocumentModelList getProxies(DocumentRef docRef, DocumentRef folderRef)
If the document is a version, then only proxies to that version will be looked up.
If the document is a proxy, then all similar proxies (pointing to any version of the same versionable) are retrieved.
docRef
- the target document for the proxiesfolderRef
- the folder where proxies are located or null
String getSuperParentType(DocumentModel doc)
DocumentModel getSuperSpace(DocumentModel doc)
String getRepositoryName()
<T extends Serializable> T getDocumentSystemProp(DocumentRef ref, String systemProperty, Class<T> type)
<T extends Serializable> void setDocumentSystemProp(DocumentRef ref, String systemProperty, T value)
void orderBefore(DocumentRef parent, String src, String dest)
docModel.getName()
) To place the source document at the end of the children list use a null
destination node.parent
- the parent documentsrc
- the document to be moved (ordered)dest
- the document before which the reordered document will be placed If null the source document will be
placed at the end of the children listDocumentModel.DocumentModelRefresh refreshDocument(DocumentRef ref, int refreshFlags, String[] schemas)
DocumentModel.refresh()
Get fresh data from a document given a description of what kind of data should be refetched.
The refresh information is specified using a bit mask. See DocumentModel
for all accepted flags.
When the flag DocumentModel.REFRESH_CONTENT_IF_LOADED
is specified a third argument must be passed
representing the schema names for document parts to refresh. This argument is ignored if the flag is not
specified or no schema names are provided
ref
- the document referencerefreshFlags
- refresh flags as defined in DocumentModel
schemas
- the schema names if a partial content refresh is requiredString[] getPermissionsToCheck(String permission)
SecurityService.getPermissionsToCheck(java.lang.String)
available remote.<T extends DetachedAdapter> T adaptFirstMatchingDocumentWithFacet(DocumentRef docRef, String facet, Class<T> adapterClass)
facet
and adapt it on the adapterClass
.
This method does not check the permissions on the document to be adapted of this CoreSession
's
Principal
, and so the adapter must not need other schemas from the DocumentModel
except the
schemas related to the given facet.
facet
adapted, or null
if no parent found or the document
does not support the given adapterClass
.Map<String,String> getBinaryFulltext(DocumentRef ref)
ref
- the document referencenull
if not supported.String getChangeToken(DocumentRef ref)
The change token is an opaque string which is modified every time the document is changed.
Before saving a document through saveDocument(org.nuxeo.ecm.core.api.DocumentModel)
it's possible to pass an expected change token
in the document context data through doc.putContextData(CoreSession.CHANGE_TOKEN, expectedChangeToken)
.
If the change token does not match the stored one, it means that a concurrent update happened, and a
ConcurrentUpdateException
will be thrown.
ref
- the document referenceDocumentModel.putContextData(org.nuxeo.common.collections.ScopeType, java.lang.String, java.io.Serializable)
,
CHANGE_TOKEN
,
getChangeToken(org.nuxeo.ecm.core.api.DocumentRef)
Copyright © 2017 Nuxeo. All rights reserved.