public class SQLSession extends BaseSession implements EntrySource
| Constructor and Description |
|---|
SQLSession(SQLDirectory directory,
SQLDirectoryDescriptor config,
boolean managedSQLSession) |
| 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.
|
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.
|
Directory |
getDirectory() |
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.
|
DocumentModel |
getEntryFromSource(String id,
boolean fetchReferences) |
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.
|
Connection |
getSqlConnection()
Public getter to allow custom
Reference implementation to access the current connection even if it lives
in a separate java package, typically: com.company.custom.nuxeo.project.MyCustomReference |
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 |
isLive()
Enable connection status checking on SQL directory connections
|
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
|
DocumentModelList |
query(Map<String,Serializable> filter,
Set<String> fulltext,
Map<String,String> orderBy,
boolean fetchReferences,
int limit,
int offset)
Executes a query with the possibility to fetch a subset of the results.
|
String |
toString() |
void |
updateEntry(DocumentModel docModel)
Updates a directory entry.
|
computeMultiTenantDirectoryId, createEntryModel, createEntryModel, isCurrentUserAllowed, isReadOnlyEntry, setReadOnlyEntry, setReadWriteEntrypublic SQLSession(SQLDirectory directory, SQLDirectoryDescriptor config, boolean managedSQLSession) throws DirectoryException
DirectoryExceptionpublic Directory getDirectory()
public DocumentModel createEntry(Map<String,Object> fieldMap) throws ClientException
SessioncreateEntry in interface SessionfieldMap - 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.ClientExceptionpublic DocumentModel getEntry(String id) throws DirectoryException
SessionTODO what happens when the entry is not found? return null if not found?
getEntry in interface Sessionid - the entry idDirectoryExceptionpublic DocumentModel getEntry(String id, boolean fetchReferences) throws DirectoryException
SessiongetEntry in interface Sessionid - the entry idfetchReferences - boolean stating if references have to be fetchedDirectoryExceptionpublic DocumentModel getEntryFromSource(String id, boolean fetchReferences) throws DirectoryException
getEntryFromSource in interface EntrySourceDirectoryExceptionpublic DocumentModelList getEntries() throws ClientException
SessionDocumentModelList#totalsize on the returned list will return
-2 as a special marker for truncated results.getEntries in interface SessionDirectoryExceptionSizeLimitExceededException - if the number of results is larger than the limit configured for the directory
and the server does not send partial results.ClientExceptionpublic void updateEntry(DocumentModel docModel) throws ClientException
SessionupdateEntry in interface SessiondocModel - The entry to updateDirectoryException - if a communication error occursClientExceptionpublic void deleteEntry(DocumentModel docModel) throws ClientException
SessiondeleteEntry in interface SessiondocModel - The entry to deleteDirectoryException - if a communication error occursClientExceptionpublic void deleteEntry(String id) throws ClientException
SessiondeleteEntry in interface Sessionid - the id of the entry to deleteDirectoryException - if a communication error occursClientExceptionpublic void deleteEntry(String id, Map<String,String> map) throws DirectoryException
SessionThis is used for hierarchical vocabularies, where the actual unique key is the couple (parent, id).
deleteEntry in interface Sessionid - the id of the entry to delete.map - a map of seconday key values.DirectoryException - if a communication error occurs.public DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext, Map<String,String> orderBy) throws ClientException
SessionfieldNames 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.query in interface Sessionfilter - 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.ClientExceptionpublic DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext, Map<String,String> orderBy, boolean fetchReferences) throws ClientException
Sessionquery in interface SessionClientExceptionSession.query(Map, Set, Map)public DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext, Map<String,String> orderBy, boolean fetchReferences, int limit, int offset) throws ClientException, DirectoryException
Sessionquery in interface Sessionquery in class BaseSessionlimit - maximum number of results ignored if less than 1offset - number of rows skipped before starting, will be 0 if less than 0.ClientExceptionDirectoryExceptionSession.query(Map, Set, Map, boolean)public DocumentModelList query(Map<String,Serializable> filter) throws ClientException
SessionDoes 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.query in interface Sessionfilter - 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.ClientExceptionpublic void close()
throws DirectoryException
SessionReleases this Connection object's resources immediately instead of waiting for them to be automatically released.
TODO: should this operation auto-commit pending changes?
close in interface SessionDirectoryException - if a communication error occurspublic boolean isLive()
throws DirectoryException
DirectoryExceptionpublic List<String> getProjection(Map<String,Serializable> filter, Set<String> fulltext, String columnName) throws ClientException
getProjection in interface SessionClientExceptionpublic List<String> getProjection(Map<String,Serializable> filter, String columnName) throws ClientException
SessiongetProjection in interface Sessionfilter - the filter for the querycolumnName - the column whose content should be returnedDirectoryExceptionSizeLimitExceededException - if the number of results is larger than the limit configured for the directoryClientExceptionpublic boolean authenticate(String username, String password) throws ClientException
Sessionauthenticate in interface SessionClientExceptionpublic boolean isAuthenticating()
throws ClientException
SessionisAuthenticating in interface SessionDirectoryExceptionClientExceptionpublic String getIdField()
SessiongetIdField in interface Sessionpublic String getPasswordField()
getPasswordField in interface Sessionpublic boolean isReadOnly()
isReadOnly in interface Sessionpublic DocumentModelList query(Map<String,Serializable> filter, Set<String> fulltext) throws ClientException
SessionfieldNames 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.query in interface Sessionfilter - 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.ClientExceptionpublic DocumentModel createEntry(DocumentModel entry) throws ClientException
SessioncreateEntry in interface Sessionentry - 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
SessionhasEntry in interface SessionClientExceptionpublic Connection getSqlConnection()
Reference implementation to access the current connection even if it lives
in a separate java package, typically: com.company.custom.nuxeo.project.MyCustomReferenceConnection instanceCopyright © 2015 Nuxeo SA. All rights reserved.