Nuxeo ECM Projects 5.4.3-SNAPSHOT

org.nuxeo.ecm.directory
Interface Session

All Known Subinterfaces:
DirectoryClient
All Known Implementing Classes:
BaseSession, DirectoryClientImpl, LDAPSession, MemoryDirectorySession, MultiDirectorySession, SQLSession

public interface Session

A session used to access entries in a directory.

This class is used to create, obtain, modify and delete entries in a directory.

Author:
glefter@nuxeo.com
See Also:
, Directory.getSession()

Method Summary
 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()
          Deprecated. do not use, the container manages transactions.
 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()
          Deprecated. do not use, the container manages transactions.
 void updateEntry(DocumentModel docModel)
          Updates a directory entry.
 

Method Detail

getEntry

DocumentModel getEntry(String id)
                       throws DirectoryException
Retrieves a directory entry using its id.

TODO what happens when the entry is not found? return null if not found?

Parameters:
id - the entry id
Returns:
a DocumentModel representing the entry
Throws:
DirectoryException

getEntry

DocumentModel getEntry(String id,
                       boolean fetchReferences)
                       throws DirectoryException
Retrieves a directory entry using its id.

Parameters:
id - the entry id
fetchReferences - boolean stating if references have to be fetched
Returns:
a DocumentModel representing the entry
Throws:
DirectoryException

getEntries

DocumentModelList getEntries()
                             throws ClientException,
                                    DirectoryException
Retrieves all the entries in the directory.

Returns:
a collection with all the entries in the directory
Throws:
DirectoryException
SizeLimitExceededException - if the number of results is larger than the limit configured for the directory
ClientException

createEntry

DocumentModel createEntry(Map<String,Object> fieldMap)
                          throws ClientException,
                                 DirectoryException
Creates an entry in a directory.

Parameters:
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

Returns:
The new entry created in the directory
Throws:
UnsupportedOperationException - if the directory does not allow the creation of new entries
DirectoryException - if a communication exception occurs or if an entry with the same id already exists.
ClientException

updateEntry

void updateEntry(DocumentModel docModel)
                 throws ClientException,
                        DirectoryException
Updates a directory entry.

Parameters:
docModel - The entry to update
Throws:
UnsupportedOperationException - if the directory does not support entry updating
DirectoryException - if a communication error occurs
ClientException

deleteEntry

void deleteEntry(DocumentModel docModel)
                 throws ClientException,
                        DirectoryException
Deletes a directory entry.

Parameters:
docModel - The entry to delete
Throws:
UnsupportedOperationException - if the directory does not support entry deleting
DirectoryException - if a communication error occurs
ClientException

deleteEntry

void deleteEntry(String id)
                 throws ClientException,
                        DirectoryException
Deletes a directory entry by id.

Parameters:
id - the id of the entry to delete
Throws:
UnsupportedOperationException - if the directory does not support entry deleting
DirectoryException - if a communication error occurs
ClientException

deleteEntry

void deleteEntry(String id,
                 Map<String,String> map)
                 throws DirectoryException
Deletes a directory entry by id and secondary ids.

This is used for hierarchical vocabularies, where the actual unique key is the couple (parent, id).

Parameters:
id - the id of the entry to delete.
map - a map of seconday key values.
Throws:
DirectoryException - if a communication error occurs.

query

DocumentModelList query(Map<String,Serializable> filter)
                        throws ClientException,
                               DirectoryException
Executes a simple query. The conditions will be 'AND'-ed. Search is done with exact match.

Does not fetch reference fields.

Parameters:
filter - a filter to apply to entries in directory
Returns:
a list of document models containing the entries matched by the query
Throws:
DirectoryException - if a communication error occurs
SizeLimitExceededException - if the number of results is larger than the limit configured for the directory
ClientException

query

DocumentModelList query(Map<String,Serializable> filter,
                        Set<String> fulltext)
                        throws ClientException,
                               DirectoryException
Executes a simple query. The conditions will be 'AND'-ed.

fieldNames present in the fulltext set are treated as a fulltext match. Does not fetch reference fields.

Parameters:
filter - a filter to apply to entries in directory
fulltext - a set of field that should be treated as a fulltext search
Returns:
a list of document models containing the entries matched by the query
Throws:
DirectoryException - if a communication error occurs
SizeLimitExceededException - if the number of results is larger than the limit configured for the directory
ClientException

query

DocumentModelList query(Map<String,Serializable> filter,
                        Set<String> fulltext,
                        Map<String,String> orderBy)
                        throws ClientException,
                               DirectoryException
Executes a simple query. The conditions will be 'AND'-ed and the result will be sorted by the orderBy criteria list.

fieldNames present in the fulltext set are treated as a fulltext match. Does not fetch reference fields.

Parameters:
filter - a filter to apply to entries in directory
orderBy - 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'.
fulltext - a set of field that should be treated as a fulltext search
Returns:
a list of document models containing the entries matched by the query
Throws:
DirectoryException - if a communication error occurs
SizeLimitExceededException - if the number of results is larger than the limit configured for the directory
ClientException

query

DocumentModelList query(Map<String,Serializable> filter,
                        Set<String> fulltext,
                        Map<String,String> orderBy,
                        boolean fetchReferences)
                        throws ClientException,
                               DirectoryException
Executes a query with the possibility to fetch references

Throws:
ClientException
DirectoryException
See Also:
query(Map, Set, Map)

commit

@Deprecated
void commit()
            throws ClientException,
                   DirectoryException
Deprecated. do not use, the container manages transactions.

Throws:
ClientException
DirectoryException
Since:
5.4.3

rollback

@Deprecated
void rollback()
              throws ClientException,
                     DirectoryException
Deprecated. do not use, the container manages transactions.

Throws:
ClientException
DirectoryException
Since:
5.4.3

close

void close()
           throws DirectoryException
Closes the session and all open result sets obtained from this 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?

Throws:
DirectoryException - if a communication error occurs

getProjection

List<String> getProjection(Map<String,Serializable> filter,
                           String columnName)
                           throws ClientException,
                                  DirectoryException
Executes a query using filter and return only the column columnName.

Parameters:
filter - the filter for the query
columnName - the column whose content should be returned
Returns:
the list with the values of columnName for the entries matching filter
Throws:
DirectoryException
SizeLimitExceededException - if the number of results is larger than the limit configured for the directory
ClientException

getProjection

List<String> getProjection(Map<String,Serializable> filter,
                           Set<String> fulltext,
                           String columnName)
                           throws ClientException,
                                  DirectoryException
Throws:
ClientException
DirectoryException

isAuthenticating

boolean isAuthenticating()
                         throws ClientException,
                                DirectoryException
Tells whether the directory implementation can be used as an authenticating backend for the UserManager (based on login / password check).

Returns:
true is the directory is authentication aware
Throws:
DirectoryException
ClientException

authenticate

boolean authenticate(String username,
                     String password)
                     throws ClientException,
                            DirectoryException
Checks that the credentials provided by the UserManager match those registered in the directory. If username is not in the directory, this should return false instead of throrwing an exception.

Parameters:
username -
password -
Returns:
true is the credentials match those stored in the directory
Throws:
ClientException
DirectoryException

getIdField

String getIdField()
                  throws ClientException
The Id field is the name of the field that is used a primary key: unique and not null value in the whole directory. This field is also used as login field if the directory is authenticating.

Returns:
the name of the id field
Throws:
ClientException

getPasswordField

String getPasswordField()
                        throws ClientException
Returns:
the name of the field to store the password if the directory is authenticating (can be null)
Throws:
ClientException

isReadOnly

boolean isReadOnly()
                   throws ClientException
Throws:
ClientException

hasEntry

boolean hasEntry(String id)
                 throws ClientException
Returns true if session has an entry with given id.

Throws:
ClientException
Since:
5.2M4

createEntry

DocumentModel createEntry(DocumentModel entry)
                          throws ClientException
Creates an entry in a directory.

Parameters:
entry - the document model representing the entry to create
Returns:
The new entry created in the directory
Throws:
UnsupportedOperationException - if the directory does not allow the creation of new entries
ClientException - if a communication exception occurs or if an entry with the same id already exists.
Since:
5.2M4

Nuxeo ECM Projects 5.4.3-SNAPSHOT

Copyright © 2011 Nuxeo SAS. All Rights Reserved.