public class LDAPReference extends AbstractReference
Please note that both static and dynamic references are resolved in read mode whereas only the static attribute strategy is used when creating new references or when deleting existing ones (write / update mode).
Some design considerations behind the implementation of such reference can be found at: http://jira.nuxeo.org/browse/NXP-1506
Modifier and Type | Field and Description |
---|---|
protected String |
dynamicAttributeId |
static List<String> |
EMPTY_STRING_LIST |
boolean |
forceDnConsistencyCheck |
protected String |
staticAttributeId |
protected LDAPDirectoryDescriptor |
targetDirectoryDescriptor |
directoryService, fieldName, sourceDirectory, sourceDirectoryName, targetDirectory, targetDirectoryName
Constructor and Description |
---|
LDAPReference() |
Modifier and Type | Method and Description |
---|---|
void |
addLinks(List<String> sourceIds,
String targetId)
Store new links using the LDAP staticAttributeId strategy.
|
void |
addLinks(String sourceId,
List<String> targetIds)
Store new links using the LDAP staticAttributeId strategy.
|
LDAPReference |
clone()
Returns a clone, added for hot reload support.
|
String |
getDynamicAttributeId() |
List<LDAPDynamicReferenceDescriptor> |
getDynamicAttributes() |
protected String |
getIdForDn(LDAPSession session,
String dn) |
List<String> |
getLdapTargetIds(Attributes attributes)
Optimized method to spare a LDAP request when the caller is a LDAPSession object that has already fetched the
LDAP Attribute instances.
|
Directory |
getSourceDirectory() |
List<String> |
getSourceIdsForTarget(String targetId)
Fetch both statically and dynamically defined references and merge the results.
|
protected LDAPDirectory |
getSourceLDAPDirectory() |
String |
getStaticAttributeId() |
String |
getStaticAttributeId(DirectoryFieldMapper sourceFM) |
Directory |
getTargetDirectory() |
protected LDAPDirectoryDescriptor |
getTargetDirectoryDescriptor() |
List<String> |
getTargetIdsForSource(String sourceId)
Fetches both statically and dynamically defined references and merges the results.
|
protected LDAPDirectory |
getTargetLDAPDirectory() |
boolean |
isDynamic() |
boolean |
isStatic() |
protected AbstractReference |
newInstance()
Override to instantiate sub class, used in
AbstractReference.clone() method |
protected static String |
pseudoNormalizeDn(String dn)
Simple helper that replaces ", " by "," in the provided dn and returns the lower case version of the result for
comparison purpose.
|
void |
removeLinksForSource(String sourceId)
Remove existing statically defined links for the given source id (dynamic references remain unaltered)
|
void |
removeLinksForTarget(String targetId)
Remove existing statically defined links for the given target id (dynamic references remain unaltered)
|
void |
setFieldName(String fieldName) |
void |
setSourceIdsForTarget(String targetId,
List<String> sourceIds)
Edit the list of statically defined references for a given target (dynamic references remain unaltered)
|
void |
setTargetDirectoryName(String targetDirectoryName) |
void |
setTargetIdsForSource(String sourceId,
List<String> targetIds)
Set the list of statically defined references for a given source (dynamic references remain unaltered)
|
String |
toString() |
getDirectoryService, getFieldName, setSourceDirectoryName
public boolean forceDnConsistencyCheck
protected LDAPDirectoryDescriptor targetDirectoryDescriptor
protected String staticAttributeId
protected String dynamicAttributeId
public static final List<String> EMPTY_STRING_LIST
public LDAPReference()
public void setFieldName(String fieldName)
public boolean isStatic() throws DirectoryException
DirectoryException
public String getStaticAttributeId() throws DirectoryException
DirectoryException
public String getStaticAttributeId(DirectoryFieldMapper sourceFM) throws DirectoryException
DirectoryException
public List<LDAPDynamicReferenceDescriptor> getDynamicAttributes()
public String getDynamicAttributeId()
public boolean isDynamic()
public void setTargetDirectoryName(String targetDirectoryName)
setTargetDirectoryName
in interface Reference
setTargetDirectoryName
in class AbstractReference
public Directory getSourceDirectory() throws DirectoryException
getSourceDirectory
in interface Reference
getSourceDirectory
in class AbstractReference
DirectoryException
public Directory getTargetDirectory() throws DirectoryException
getTargetDirectory
in interface Reference
getTargetDirectory
in class AbstractReference
DirectoryException
protected LDAPDirectory getTargetLDAPDirectory() throws DirectoryException
DirectoryException
protected LDAPDirectory getSourceLDAPDirectory() throws DirectoryException
DirectoryException
protected LDAPDirectoryDescriptor getTargetDirectoryDescriptor() throws DirectoryException
DirectoryException
public void addLinks(String sourceId, List<String> targetIds) throws DirectoryException
DirectoryException
Reference.addLinks(String, List)
public void addLinks(List<String> sourceIds, String targetId) throws DirectoryException
DirectoryException
Reference.addLinks(List, String)
public List<String> getSourceIdsForTarget(String targetId) throws DirectoryException
DirectoryException
Reference.getSourceIdsForTarget(String)
public List<String> getTargetIdsForSource(String sourceId) throws DirectoryException
DirectoryException
Reference.getSourceIdsForTarget(String)
protected static String pseudoNormalizeDn(String dn) throws InvalidNameException
dn
- the raw unnormalized dnInvalidNameException
public List<String> getLdapTargetIds(Attributes attributes) throws DirectoryException
This method should return the same results as the sister method: org.nuxeo .ecm.directory.Reference#getTargetIdsForSource(java.lang.String)
DirectoryException
protected String getIdForDn(LDAPSession session, String dn)
public void removeLinksForSource(String sourceId) throws DirectoryException
DirectoryException
Reference.removeLinksForSource(String)
public void removeLinksForTarget(String targetId) throws DirectoryException
DirectoryException
Reference.removeLinksForTarget(String)
public void setSourceIdsForTarget(String targetId, List<String> sourceIds) throws DirectoryException
DirectoryException
Reference.setSourceIdsForTarget(String, List)
public void setTargetIdsForSource(String sourceId, List<String> targetIds) throws DirectoryException
DirectoryException
Reference.setTargetIdsForSource(String, List)
protected AbstractReference newInstance()
AbstractReference
AbstractReference.clone()
methodnewInstance
in class AbstractReference
public LDAPReference clone()
Reference
clone
in interface Reference
clone
in class AbstractReference
Copyright © 2015 Nuxeo SA. All rights reserved.