Package org.nuxeo.ecm.directory
Class DirectoryEntryResolver
- java.lang.Object
-
- org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
-
- org.nuxeo.ecm.directory.DirectoryEntryResolver
-
- All Implemented Interfaces:
Serializable
,ObjectResolver
public class DirectoryEntryResolver extends AbstractObjectResolver implements ObjectResolver
ThisObjectResolver
allows to manage integrity for fields containing references to directory's entry.References contains the directory entry id.
To use it, put the following code in your schema XSD (don't forget the directory name):
<xs:element name="carBrand"> <xs:simpleType> <xs:restriction base="xs:string" ref:resolver="directoryResolver" ref:directory="carBrandsDirectory" /> </xs:simpleType> </xs:element>
For hierarchical directories, which entries reference other entries. You can manage a specific reference containing the full entry path. You have to specify the parent field and the separator used to encode the reference.
<xs:element name="coverage"> <xs:simpleType> <xs:restriction base="xs:string" ref:resolver="directoryResolver" ref:directory="l10ncoverage" ref:parentField="parent" ref:separator="/" /> </xs:simpleType> </xs:element>
It's not necessary to define parentField and separator for directory using schema ending by xvocabulary. The feature is automatically enable.
- Since:
- 7.1
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
ObjectResolver.Helper
-
-
Field Summary
Fields Modifier and Type Field Description static String
NAME
static String
PARAM_DIRECTORY
static String
PARAM_PARENT_FIELD
static String
PARAM_SEPARATOR
-
Fields inherited from class org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
parameters, validation
-
Fields inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
VALIDATION_PARAMETER_KEY
-
-
Constructor Summary
Constructors Constructor Description DirectoryEntryResolver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
configure(Map<String,String> parameters)
Configure this resolver.<T> T
fetch(Class<T> type, Object value)
Provides the entity referenced by a value, return the entity as expected type.Object
fetch(Object value)
Provides the entity referenced by a value.String
getConstraintErrorMessage(Object invalidValue, Locale locale)
Provides an error message to display when some invalid value does not match existing entity.Directory
getDirectory()
protected String
getHierarchicalReference(DocumentModel entry)
List<Class<?>>
getManagedClasses()
Returns the resolved object types.String
getName()
Provides this resolver name.Serializable
getReference(Object entity)
Generates a reference to an entity.-
Methods inherited from class org.nuxeo.ecm.core.schema.types.resolver.AbstractObjectResolver
checkConfig, getParameters, validate, validate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver
fetch, getParameters, validate, validate
-
-
-
-
Field Detail
-
NAME
public static final String NAME
- See Also:
- Constant Field Values
-
PARAM_DIRECTORY
public static final String PARAM_DIRECTORY
- See Also:
- Constant Field Values
-
PARAM_PARENT_FIELD
public static final String PARAM_PARENT_FIELD
- See Also:
- Constant Field Values
-
PARAM_SEPARATOR
public static final String PARAM_SEPARATOR
- See Also:
- Constant Field Values
-
-
Method Detail
-
configure
public void configure(Map<String,String> parameters) throws IllegalArgumentException, IllegalStateException
Description copied from interface:ObjectResolver
Configure this resolver.- Specified by:
configure
in interfaceObjectResolver
- Overrides:
configure
in classAbstractObjectResolver
- Parameters:
parameters
- A map of parameter whose keys are parameter names and map value are corresponding values.- Throws:
IllegalArgumentException
- If some parameter are not compatible with this resolver.IllegalStateException
- If this resolver is already configured.
-
getManagedClasses
public List<Class<?>> getManagedClasses()
Description copied from interface:ObjectResolver
Returns the resolved object types.- Specified by:
getManagedClasses
in interfaceObjectResolver
-
getDirectory
public Directory getDirectory()
-
getName
public String getName()
Description copied from interface:ObjectResolver
Provides this resolver name.- Specified by:
getName
in interfaceObjectResolver
- Returns:
- The resolver name.
-
fetch
public Object fetch(Object value) throws IllegalStateException
Description copied from interface:ObjectResolver
Provides the entity referenced by a value.- Specified by:
fetch
in interfaceObjectResolver
- Parameters:
value
- The reference.- Returns:
- The referenced entity, null if no entity matches the value.
- Throws:
IllegalStateException
- If this resolver has not been configured.
-
fetch
public <T> T fetch(Class<T> type, Object value) throws IllegalStateException
Description copied from interface:ObjectResolver
Provides the entity referenced by a value, return the entity as expected type.- Specified by:
fetch
in interfaceObjectResolver
value
- 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
public Serializable getReference(Object entity) throws IllegalStateException
Description copied from interface:ObjectResolver
Generates a reference to an entity.- Specified by:
getReference
in 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.
-
getHierarchicalReference
protected String getHierarchicalReference(DocumentModel entry)
-
getConstraintErrorMessage
public String getConstraintErrorMessage(Object invalidValue, Locale locale)
Description copied from interface:ObjectResolver
Provides an error message to display when some invalid value does not match existing entity.- Specified by:
getConstraintErrorMessage
in 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
-
-