public class MultiDirectorySession extends BaseSession
Each source can build an entry aggregating fields from one or several directories.
Constructor and Description |
---|
MultiDirectorySession(MultiDirectory directory) |
Modifier and Type | Method and Description |
---|---|
boolean |
authenticate(String username,
String password)
Checks that the credentials provided by the UserManager match those
registered in the directory.
|
void |
close()
Closes the session and all open result sets obtained from this session.
|
void |
commit() |
DocumentModel |
createEntry(DocumentModel entry)
Creates an entry in a directory.
|
DocumentModel |
createEntry(Map<String,Object> fieldMap)
Creates an entry in a directory.
|
void |
deleteEntry(DocumentModel docModel)
Deletes a directory entry.
|
void |
deleteEntry(String id)
Deletes a directory entry by id.
|
void |
deleteEntry(String id,
Map<String,String> map)
Deletes a directory entry by id and secondary ids.
|
DocumentModelList |
getEntries()
Retrieves all the entries in the directory.
|
DocumentModel |
getEntry(String id)
Retrieves a directory entry using its id.
|
DocumentModel |
getEntry(String id,
boolean fetchReferences)
Retrieves a directory entry using its id.
|
String |
getIdField()
The Id field is the name of the field that is used a primary key: unique
and not null value in the whole directory.
|
String |
getPasswordField() |
List<String> |
getProjection(Map<String,Serializable> filter,
Set<String> fulltext,
String columnName) |
List<String> |
getProjection(Map<String,Serializable> filter,
String columnName)
Executes a query using filter and return only the column
columnName.
|
boolean |
hasEntry(String id)
Returns true if session has an entry with given id.
|
boolean |
isAuthenticating()
Tells whether the directory implementation can be used as an
authenticating backend for the UserManager (based on login / password
check).
|
boolean |
isReadOnly() |
DocumentModelList |
query(Map<String,Serializable> filter)
Executes a simple query.
|
DocumentModelList |
query(Map<String,Serializable> filter,
Set<String> fulltext)
Executes a simple query.
|
DocumentModelList |
query(Map<String,Serializable> filter,
Set<String> fulltext,
Map<String,String> orderBy)
Executes a simple query.
|
DocumentModelList |
query(Map<String,Serializable> filter,
Set<String> fulltext,
Map<String,String> orderBy,
boolean fetchReferences)
Executes a query with the possibility to fetch references
|
void |
rollback() |
void |
updateEntry(DocumentModel docModel)
Updates a directory entry.
|
computeMultiTenantDirectoryId, createEntryModel, createEntryModel, isReadOnlyEntry, query, setReadOnlyEntry, setReadWriteEntry
public MultiDirectorySession(MultiDirectory directory)
public void close() throws DirectoryException
Session
Releases this Connection object's resources immediately instead of waiting for them to be automatically released.
TODO: should this operation auto-commit pending changes?
DirectoryException
- if a communication error occurspublic void commit() throws ClientException
ClientException
public void rollback() throws ClientException
ClientException
public String getIdField()
Session
public String getPasswordField()
public boolean isAuthenticating()
Session
public boolean isReadOnly()
public boolean authenticate(String username, String password) throws ClientException
Session
ClientException
public DocumentModel getEntry(String id) throws DirectoryException
Session
TODO what happens when the entry is not found? return null if not found?
id
- the entry idDirectoryException
public DocumentModel getEntry(String id, boolean fetchReferences) throws DirectoryException
Session
id
- the entry idfetchReferences
- boolean stating if references have to be fetchedDirectoryException
public DocumentModelList getEntries() throws ClientException
Session
DocumentModelList#totalsize
on the returned list will return -2
as a special marker for truncated results.DirectoryException
SizeLimitExceededException
- if the number of results is larger
than the limit configured for the directory and the server
does not send partial results.ClientException
public DocumentModel createEntry(Map<String,Object> fieldMap) throws ClientException
Session
fieldMap
- A map with keys and values that should be stored in a
directory
Note: The values in the map should be of type String
DirectoryException
- if a communication exception occurs or if an
entry with the same id already exists.ClientException
public void deleteEntry(DocumentModel docModel) throws ClientException
Session
docModel
- The entry to deleteDirectoryException
- if a communication error occursClientException
public void deleteEntry(String id) throws ClientException
Session
id
- the id of the entry to deleteDirectoryException
- if a communication error occursClientException
public void deleteEntry(String id, Map<String,String> map) throws DirectoryException
Session
This is used for hierarchical vocabularies, where the actual unique key is the couple (parent, id).
id
- the id of the entry to delete.map
- a map of seconday key values.DirectoryException
- if a communication error occurs.public void updateEntry(DocumentModel docModel) throws ClientException
Session
docModel
- The entry to updateDirectoryException
- if a communication error occursClientException
public DocumentModelList query(Map<String,Serializable> filter) throws ClientException
Session
Does not fetch reference fields.
If the remote server issues a size limit exceeded error while sending partial results up to that limit, the methodDocumentModelList#totalsize
on the returned list will return -2
as a special marker for truncated results.filter
- a filter to apply to entries in directoryDirectoryException
- if a communication error occursSizeLimitExceededException
- if the number of results is larger
than the limit configured for the directory and the server
does not send partial results.ClientException
public DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext) throws ClientException
Session
fieldNames present in the fulltext set are treated as a fulltext match. Does not fetch reference fields.
If the remote server issues a size limit exceeded error while sending partial results up to that limit, the methodDocumentModelList#totalsize
on the returned list will return -2
as a special marker for truncated results.filter
- a filter to apply to entries in directoryfulltext
- a set of field that should be treated as a fulltext
searchDirectoryException
- if a communication error occursSizeLimitExceededException
- if the number of results is larger
than the limit configured for the directory and the server
does not send partial results.ClientException
public DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext, Map<String,String> orderBy) throws ClientException
Session
fieldNames present in the fulltext set are treated as a fulltext match. Does not fetch reference fields.
If the remote server issues a size limit exceeded error while sending partial results up to that limit, the methodDocumentModelList#totalsize
on the returned list will return -2
as a special marker for truncated results.filter
- a filter to apply to entries in directoryfulltext
- a set of field that should be treated as a fulltext
searchorderBy
- a LinkedHashMap with the 'order by' criterias.The key of
an entry of this map represents the column name and the value
of the same entry represent the column order,which may be
'asc' or 'desc'.DirectoryException
- if a communication error occursSizeLimitExceededException
- if the number of results is larger
than the limit configured for the directory and the server
does not send partial results.ClientException
public DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext, Map<String,String> orderBy, boolean fetchReferences) throws ClientException
Session
ClientException
Session.query(Map, Set, Map)
public List<String> getProjection(Map<String,Serializable> filter, String columnName) throws ClientException
Session
filter
- the filter for the querycolumnName
- the column whose content should be returnedDirectoryException
SizeLimitExceededException
- if the number of results is larger
than the limit configured for the directoryClientException
public List<String> getProjection(Map<String,Serializable> filter, Set<String> fulltext, String columnName) throws ClientException
ClientException
public DocumentModel createEntry(DocumentModel entry) throws ClientException
Session
entry
- the document model representing the entry to createClientException
- if a communication exception occurs or if an
entry with the same id already exists.public boolean hasEntry(String id) throws ClientException
Session
ClientException
Copyright © 2013 Nuxeo SA. All Rights Reserved.