Nuxeo ECM Projects 5.4.3-SNAPSHOT

org.nuxeo.ecm.core.storage.sql
Interface Session

All Superinterfaces:
Connection
All Known Implementing Classes:
ConnectionImpl, SessionImpl

public interface Session
extends Connection

The session is the main high level access point to data from the underlying database.

Author:
Florent Guillaume

Nested Class Summary
static interface Session.PathResolver
          Interface for a class that knows how to resolve a node path into a node id.
 
Method Summary
 Node addChildNode(Node parent, String name, Long pos, String typeName, boolean complexProp)
          Creates a new child node.
 Node addChildNode(Serializable id, Node parent, String name, Long pos, String typeName, boolean complexProp)
          Creates a new child node with given id (used for import).
 Node addProxy(Serializable targetId, Serializable versionSeriesId, Node parent, String name, Long pos)
          Creates a proxy for a version node.
 Node checkIn(Node node, String label, String checkinComment)
          Checks in a checked-out node: creates a new version with a copy of its information.
 void checkOut(Node node)
          Checks out a checked-in node.
 Node copy(Node source, Node parent, String name)
          Copies a node to a new location with a new name.
 Binary getBinary(InputStream in)
          Creates a binary value given an input stream.
 Node getChildNode(Node parent, String name, boolean complexProp)
          Gets a child node given its parent and name.
 List<Node> getChildren(Node parent, String name, boolean complexProp)
          Gets the children of a node.
 Node getLastVersion(Serializable versionSeriesId)
          Gets the last version for a given version series id.
 Lock getLock(Serializable id)
          Gets the lock state of a document.
 Mapper getMapper()
          Gets the low-level Mapper for this session.
 Model getModel()
          Gets the Model associated to this session.
 Node getNodeById(Serializable id)
          Gets a node given its id.
 Node getNodeByPath(String path, Node node)
          Gets a node given its absolute path, or given an existing node and a relative path.
 List<Node> getNodesByIds(List<Serializable> ids)
          Gets several nodes given their ids.
 Node getParentNode(Node node)
          Gets the parent of a node.
 String getPath(Node node)
          Gets the absolute path of a node.
 List<Node> getProxies(Node document, Node parent)
          Finds the proxies for a document.
 String getRepositoryName()
          Gets the session repository name.
 Node getRootNode()
          Gets the root node of the repository.
 Node getVersionByLabel(Serializable versionSeriesId, String label)
          Gets a version given its version series id and label.
 List<Node> getVersions(Serializable versionSeriesId)
          Gets all the versions for a given version series id.
 boolean hasChildNode(Node parent, String name, boolean complexProp)
          Checks if a child node with the given name exists.
 boolean hasChildren(Node parent, boolean complexProp)
          Checks it a node has children.
 boolean isLive()
          Checks if the session is live (not closed).
 Node move(Node source, Node parent, String name)
          Moves a node to a new location with a new name.
 void orderBefore(Node parent, Node source, Node dest)
          Order the given source child node before the destination child node.
 PartialList<Serializable> query(String query, QueryFilter queryFilter, boolean countTotal)
          Makes a NXQL query to the database.
 PartialList<Serializable> query(String query, String queryType, QueryFilter queryFilter, boolean countTotal)
          Makes a query to the database.
 IterableQueryResult queryAndFetch(String query, String queryType, QueryFilter queryFilter, Object... params)
          Makes a query to the database and returns an iterable (which must be closed when done).
 void rebuildReadAcls()
          Rebuild the read ACLs for the whole repository.
 Lock removeLock(Serializable id, String owner, boolean force)
          Removes a lock from a document.
 void removeNode(Node node)
          Removes a node from the storage.
 void removePropertyNode(Node node)
          Removes a property node from the storage.
 void requireReadAclsUpdate()
          Read ACLs are optimized ACLs for the read permission, they need to be updated after document creation or ACL change.
 void restore(Node node, Node version)
          Restores a node to a given version.
 void save()
          Saves the modifications to persistent storage.
 Lock setLock(Serializable id, Lock lock)
          Sets a lock on a document.
 void setProxyTarget(Node proxy, Serializable targetId)
          Sets a proxies' target.
 void updateReadAcls()
          Update only the read ACLs that have changed.
 
Methods inherited from interface javax.resource.cci.Connection
close, createInteraction, getLocalTransaction, getMetaData, getResultSetInfo
 

Method Detail

getMapper

Mapper getMapper()
                 throws StorageException
Gets the low-level Mapper for this session.

Returns:
the mapper
Throws:
StorageException

isLive

boolean isLive()
Checks if the session is live (not closed).

Returns:
true if the session is live

getRepositoryName

String getRepositoryName()
                         throws StorageException
Gets the session repository name.

Returns:
the repository name
Throws:
StorageException

getModel

Model getModel()
               throws StorageException
Gets the Model associated to this session.

Returns:
the model
Throws:
StorageException

save

void save()
          throws StorageException
Saves the modifications to persistent storage.

Modifications will be actually written only upon transaction commit.

Throws:
StorageException

getRootNode

Node getRootNode()
                 throws StorageException
Gets the root node of the repository.

Returns:
the root node
Throws:
StorageException

getNodeById

Node getNodeById(Serializable id)
                 throws StorageException
Gets a node given its id.

Parameters:
id - the id
Returns:
the node, or null if not found
Throws:
StorageException

getNodesByIds

List<Node> getNodesByIds(List<Serializable> ids)
                         throws StorageException
Gets several nodes given their ids.

Parameters:
ids - the ids
Returns:
the nodes, in the same order as the ids, with elements being null if not found
Throws:
StorageException

getNodeByPath

Node getNodeByPath(String path,
                   Node node)
                   throws StorageException
Gets a node given its absolute path, or given an existing node and a relative path.

Parameters:
path - the path
node - the node (ignored for absolute paths)
Returns:
the node, or null if not found
Throws:
StorageException

getParentNode

Node getParentNode(Node node)
                   throws StorageException
Gets the parent of a node.

The root has a null parent.

Parameters:
node - the node
Returns:
the parent node, or null for the root's parent
Throws:
StorageException

getPath

String getPath(Node node)
               throws StorageException
Gets the absolute path of a node.

Parameters:
node - the node
Returns:
the path
Throws:
StorageException

hasChildNode

boolean hasChildNode(Node parent,
                     String name,
                     boolean complexProp)
                     throws StorageException
Checks if a child node with the given name exists.

There are two kinds of children, the regular children documents and the complex properties. The boolean allows a choice between those.

Parameters:
parent - the parent node
name - the child name
complexProp - whether to check complex properties or regular children
Returns:
true if a child node with that name exists
Throws:
StorageException

getChildNode

Node getChildNode(Node parent,
                  String name,
                  boolean complexProp)
                  throws StorageException
Gets a child node given its parent and name.

Parameters:
parent - the parent node
name - the child name
complexProp - whether to check complex properties or regular children
Returns:
the child node, or null is not found
Throws:
StorageException

hasChildren

boolean hasChildren(Node parent,
                    boolean complexProp)
                    throws StorageException
Checks it a node has children.

Parameters:
parent - the parent node
complexProp - whether to check complex properties or regular children
Returns:
true if the parent has children
Throws:
StorageException

getChildren

List<Node> getChildren(Node parent,
                       String name,
                       boolean complexProp)
                       throws StorageException
Gets the children of a node.

Parameters:
parent - the parent node
name - the children name to get (for lists of complex properties), or null for all
complexProp - whether to check complex properties or regular children
Returns:
the collection of children
Throws:
StorageException

addChildNode

Node addChildNode(Node parent,
                  String name,
                  Long pos,
                  String typeName,
                  boolean complexProp)
                  throws StorageException
Creates a new child node.

Parameters:
parent - the parent to which the child is added
name - the child name
pos - the child position, or null
typeName - the child type
complexProp - whether this is a complex property (true) or a regular child (false)
Returns:
the new node
Throws:
StorageException

addChildNode

Node addChildNode(Serializable id,
                  Node parent,
                  String name,
                  Long pos,
                  String typeName,
                  boolean complexProp)
                  throws StorageException
Creates a new child node with given id (used for import).

Parameters:
id - the id
parent - the parent to which the child is added
name - the child name
pos - the child position, or null
typeName - the child type
complexProp - whether this is a complex property (true) or a regular child (false)
Returns:
the new node
Throws:
StorageException

addProxy

Node addProxy(Serializable targetId,
              Serializable versionSeriesId,
              Node parent,
              String name,
              Long pos)
              throws StorageException
Creates a proxy for a version node.

Parameters:
targetId - the target id
versionSeriesId - the version series id
parent - the parent to which the proxy is added
name - the proxy name
pos - the proxy position
Returns:
the new proxy node
Throws:
StorageException

setProxyTarget

void setProxyTarget(Node proxy,
                    Serializable targetId)
                    throws StorageException
Sets a proxies' target.

Parameters:
proxy - the proxy
targetId - the new target id
Throws:
StorageException
Since:
5.4.3

removeNode

void removeNode(Node node)
                throws StorageException
Removes a node from the storage.

This is much more complex that removing a property node ( removePropertyNode(org.nuxeo.ecm.core.storage.sql.Node)).

Parameters:
node - the node to remove
Throws:
StorageException
See Also:
#removePropertyNode}

removePropertyNode

void removePropertyNode(Node node)
                        throws StorageException
Removes a property node from the storage.

This is much less complex that removing a generic document node ( removeNode(org.nuxeo.ecm.core.storage.sql.Node)).

Parameters:
node - the property node to remove
Throws:
StorageException
See Also:
#removeNode}

orderBefore

void orderBefore(Node parent,
                 Node source,
                 Node dest)
                 throws StorageException
Order the given source child node before the destination child node. The source node will be placed before the destination one. If destination is null, the source node will be appended at the end of the children list.

Parameters:
parent - the parent node
source - the child node to move
dest - the child node before which to place the source node, or null to move at the end
Throws:
StorageException

move

Node move(Node source,
          Node parent,
          String name)
          throws StorageException
Moves a node to a new location with a new name.

A save() is automatically done first.

Parameters:
source - the node to move
parent - the new parent to which the node is moved
name - the new node name
Returns:
the moved node
Throws:
StorageException

copy

Node copy(Node source,
          Node parent,
          String name)
          throws StorageException
Copies a node to a new location with a new name.

A save() is automatically done first.

Parameters:
source - the node to copy
parent - the new parent to which the node is copied
name - the new node name
Returns:
the copied node
Throws:
StorageException

checkIn

Node checkIn(Node node,
             String label,
             String checkinComment)
             throws StorageException
Checks in a checked-out node: creates a new version with a copy of its information.

A save() is automatically done first.

Parameters:
node - the node to check in
label - the label for the version
checkinComment - the description for the version
Returns:
the created version
Throws:
StorageException

checkOut

void checkOut(Node node)
              throws StorageException
Checks out a checked-in node.

Parameters:
node - the node to check out
Throws:
StorageException

restore

void restore(Node node,
             Node version)
             throws StorageException
Restores a node to a given version.

The restored node is checked in.

Parameters:
node - the node to restore
version - the version to restore from
Throws:
StorageException

getVersionByLabel

Node getVersionByLabel(Serializable versionSeriesId,
                       String label)
                       throws StorageException
Gets a version given its version series id and label.

Parameters:
versionSeriesId - the version series id
label - the label
Returns:
the version node, or null if not found
Throws:
StorageException

getVersions

List<Node> getVersions(Serializable versionSeriesId)
                       throws StorageException
Gets all the versions for a given version series id.

A save() is automatically done first.

Parameters:
versionSeriesId - the version series id
Returns:
the list of versions
Throws:
StorageException

getLastVersion

Node getLastVersion(Serializable versionSeriesId)
                    throws StorageException
Gets the last version for a given version series id.

A save() is automatically done first.

Parameters:
versionSeriesId - the version series id
Returns:
the last version, or null if no versions exist
Throws:
StorageException

getBinary

Binary getBinary(InputStream in)
                 throws StorageException
Creates a binary value given an input stream.

Parameters:
in - the input stream
Returns:
the binary value
Throws:
StorageException

getProxies

List<Node> getProxies(Node document,
                      Node parent)
                      throws StorageException
Finds the proxies for a document. If the parent is not null, the search will be limited to its direct children.

If the document is a version, then only proxies to that version will be looked up.

Otherwise all proxies to the same version series than the document are retrieved.

A save() is automatically done first.

Parameters:
document - the document
parent - the parent, or null
Returns:
the list of proxies
Throws:
StorageException

query

PartialList<Serializable> query(String query,
                                QueryFilter queryFilter,
                                boolean countTotal)
                                throws StorageException
Makes a NXQL query to the database.

Parameters:
query - the query
queryFilter - the query filter
countTotal - if true, also count the total size without offset/limit
Returns:
the resulting list with total size included
Throws:
StorageException

query

PartialList<Serializable> query(String query,
                                String queryType,
                                QueryFilter queryFilter,
                                boolean countTotal)
                                throws StorageException
Makes a query to the database.

Parameters:
query - the query
query - the query type
queryFilter - the query filter
countTotal - if true, also count the total size without offset/limit
Returns:
the resulting list with total size included
Throws:
StorageException

queryAndFetch

IterableQueryResult queryAndFetch(String query,
                                  String queryType,
                                  QueryFilter queryFilter,
                                  Object... params)
                                  throws StorageException
Makes a query to the database and returns an iterable (which must be closed when done).

Parameters:
query - the query
queryType - the query type
queryFilter - the query filter
params - optional query-type-dependent parameters
Returns:
an iterable, which must be closed when done
Throws:
StorageException

getLock

Lock getLock(Serializable id)
             throws StorageException
Gets the lock state of a document.

If the document does not exist, null is returned.

Parameters:
id - the document id
Returns:
the existing lock, or null when there is no lock
Throws:
StorageException

setLock

Lock setLock(Serializable id,
             Lock lock)
             throws StorageException
Sets a lock on a document.

If the document is already locked, returns its existing lock status (there is no re-locking, removeLock(java.io.Serializable, java.lang.String, boolean) must be called first).

Parameters:
id - the document id
lock - the lock object to set
Returns:
null if locking succeeded, or the existing lock if locking failed
Throws:
StorageException

removeLock

Lock removeLock(Serializable id,
                String owner,
                boolean force)
                throws StorageException
Removes a lock from a document.

The previous lock is returned.

If owner is null then the lock is unconditionally removed.

If owner is not null, it must match the existing lock owner for the lock to be removed. If it doesn't match, the returned lock will return true for Lock.getFailed().

Parameters:
id - the document id
the - owner to check, or null for no check
force - true to just do the remove and not return the previous lock
Returns:
the previous lock
Throws:
StorageException

requireReadAclsUpdate

void requireReadAclsUpdate()
Read ACLs are optimized ACLs for the read permission, they need to be updated after document creation or ACL change.

This method flag the current session, the read ACLs update will be done automatically at save time.


updateReadAcls

void updateReadAcls()
                    throws StorageException
Update only the read ACLs that have changed.

Throws:
StorageException

rebuildReadAcls

void rebuildReadAcls()
                     throws StorageException
Rebuild the read ACLs for the whole repository.

Throws:
StorageException

Nuxeo ECM Projects 5.4.3-SNAPSHOT

Copyright © 2011 Nuxeo SAS. All Rights Reserved.