Package org.nuxeo.ecm.core.model
Class DocumentModelResolver
java.lang.Object
org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
org.nuxeo.ecm.core.model.DocumentModelResolver
- All Implemented Interfaces:
Serializable,ObjectResolver
This
ObjectResolver allows to manage integrity for fields containing DocumentModel references (id or
path).
Resolved references must be either a path or an id, default mode is id. Storing path keep link with place in the Document hierarchy no matter which Document is referenced. Storing id track the Document no matter where the Document is stored.
All references, id or path, are prefixed with the document expected repository name. For example :
- default:352c21bc-f908-4507-af99-411d3d84ee7d
- test:/path/to/my/doc
The fetch(Object) method returns DocumentModel. The fetch(Class, Object) returns
DocumentModel or specific document adapter.
To use it, put the following code in your schema XSD :
<!-- default resolver is an id based resolver -->
<xs:simpleType name="favoriteDocument1">
<xs:restriction base="xs:string" ref:resolver="documentResolver" />
</xs:simpleType>
<!-- store id -->
<xs:simpleType name="favoriteDocument2">
<xs:restriction base="xs:string" ref:resolver="documentResolver" ref:store="id" />
</xs:simpleType>
<!-- store path -->
<xs:simpleType name="bestDocumentRepositoryPlace">
<xs:restriction base="xs:string" ref:resolver="documentResolver" ref:store="path" />
</xs:simpleType>
- Since:
- 7.1
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumprotected static final classNested classes/interfaces inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
ObjectResolver.Helper -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final StringSince 10.2static final StringSince 10.2static final Stringstatic final StringFields inherited from class org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
parameters, validationFields inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
VALIDATION_PARAMETER_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidConfigure this resolver.<T> TProvides the entity referenced by a value, return the entity as expected type.Provides the entity referenced by a value.Provides the entity referenced by a value, in the given context.getConstraintErrorMessage(Object invalidValue, Locale locale) Provides an error message to display when some invalid value does not match existing entity.Returns the resolved object types.getMode()getName()Provides this resolver name.getReference(Object entity) Generates a reference to an entity.protected booleanhasReadPermission(CoreSession session, DocumentRef docRef) Checks directly the Read permission asCoreSession.exists(DocumentRef)relies on the Browse permission only.protected voidresolve(Object value, Object context, BiConsumer<CoreSession, DocumentRef> resolver) Resolves the value (in the context) into a session and docRef, and passes them to the resolver.booleanValidates some value references an existing entity.booleanValidates some value references an existing entity, in the given contextMethods inherited from class org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
checkConfig, getParametersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
getParameters
-
Field Details
-
NAME
- See Also:
-
PARAM_STORE
- See Also:
-
STORE_REPO_AND_PATH
- See Also:
-
STORE_PATH_ONLY
Since 10.2- See Also:
-
STORE_REPO_AND_ID
- See Also:
-
STORE_ID_ONLY
Since 10.2- See Also:
-
-
Constructor Details
-
DocumentModelResolver
public DocumentModelResolver()
-
-
Method Details
-
getMode
-
getManagedClasses
Description copied from interface:ObjectResolverReturns the resolved object types.- Specified by:
getManagedClassesin interfaceObjectResolver
-
configure
Description copied from interface:ObjectResolverConfigure this resolver.- Specified by:
configurein interfaceObjectResolver- Overrides:
configurein classAbstractObjectResolver- Parameters:
parameters- A map of parameter whose keys are parameter names and map value are corresponding values.- Throws:
IllegalStateException- If this resolver is already configured.
-
getName
Description copied from interface:ObjectResolverProvides this resolver name.- Specified by:
getNamein interfaceObjectResolver- Returns:
- The resolver name.
-
validate
Description copied from interface:ObjectResolverValidates some value references an existing entity.- Specified by:
validatein interfaceObjectResolver- Overrides:
validatein classAbstractObjectResolver- Parameters:
value- The reference.- Returns:
- true if value could be resolved as an existing external reference, false otherwise.
-
validate
Description copied from interface:ObjectResolverValidates some value references an existing entity, in the given context- Specified by:
validatein interfaceObjectResolver- Overrides:
validatein classAbstractObjectResolver- Parameters:
value- The reference.context- A resolver-specific context allowing resolution of the value.- Returns:
- true if value could be resolved as an existing external reference, false otherwise.
-
fetch
Description copied from interface:ObjectResolverProvides the entity referenced by a value.- Specified by:
fetchin interfaceObjectResolver- Parameters:
value- The reference.- Returns:
- The referenced entity, null if no entity matches the value.
-
fetch
Description copied from interface:ObjectResolverProvides the entity referenced by a value, in the given context.- Specified by:
fetchin interfaceObjectResolver- Parameters:
value- The reference.context- A resolver-specific context allowing resolution of the value.- Returns:
- The referenced entity, null if no entity matches the value.
-
hasReadPermission
Checks directly the Read permission asCoreSession.exists(DocumentRef)relies on the Browse permission only.A user can have Browse but not Read, thus the resolver won't be able to fetch the document.
-
resolve
Resolves the value (in the context) into a session and docRef, and passes them to the resolver.The resolver is not called if the value cannot be resolved.
-
fetch
Description copied from interface:ObjectResolverProvides the entity referenced by a value, return the entity as expected type.- Specified by:
fetchin interfaceObjectResolvervalue- The reference.- Returns:
- The referenced entity, null if no entity matches the value or if this entity cannot be converted as type.
- Throws:
IllegalStateException- If this resolver has not been configured.
-
getReference
Description copied from interface:ObjectResolverGenerates a reference to an entity.- Specified by:
getReferencein interfaceObjectResolver- Parameters:
entity- The entity.- Returns:
- A reference to the entity or null if its not a managed entity type.
- Throws:
IllegalStateException- If this resolver has not been configured.
-
getConstraintErrorMessage
Description copied from interface:ObjectResolverProvides an error message to display when some invalid value does not match existing entity.- Specified by:
getConstraintErrorMessagein interfaceObjectResolver- Parameters:
invalidValue- The invalid value that don't match any entity.locale- The language in which the message should be generated.- Returns:
- A message in the specified language or
-