Package org.apache.jackrabbit.commons
Class AbstractSession
- java.lang.Object
-
- org.apache.jackrabbit.commons.AbstractSession
-
- All Implemented Interfaces:
Session
- Direct Known Subclasses:
SessionImpl,SessionImpl
public abstract class AbstractSession extends Object implements Session
Abstract base class for implementing the JCRSessioninterface.
-
-
Field Summary
-
Fields inherited from interface javax.jcr.Session
ACTION_ADD_NODE, ACTION_READ, ACTION_REMOVE, ACTION_SET_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description AbstractSession()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexportDocumentView(String absPath, OutputStream out, boolean skipBinary, boolean noRecurse)CallsSession.exportDocumentView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.voidexportDocumentView(String path, ContentHandler handler, boolean skipBinary, boolean noRecurse)Generates a document view export using aDocumentViewExporterinstance.voidexportSystemView(String absPath, OutputStream out, boolean skipBinary, boolean noRecurse)CallsSession.exportSystemView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.voidexportSystemView(String path, ContentHandler handler, boolean skipBinary, boolean noRecurse)Generates a system view export using aSystemViewExporterinstance.ItemgetItem(String absPath)Returns the node or property at the given path.StringgetNamespacePrefix(String uri)Returns the namespace prefix mapped to the given URI.String[]getNamespacePrefixes()Returns the prefixes of all known namespace mappings.StringgetNamespaceURI(String prefix)Returns the namespace URI mapped to the given prefix.NodegetNode(String absPath)Returns the node with the given absolute path.PropertygetProperty(String absPath)Returns the property with the given absolute path.Sessionimpersonate(Credentials credentials)Logs in the same workspace with the given credentials.voidimportXML(String parentAbsPath, InputStream in, int uuidBehavior)Parses the given input stream as an XML document and processes the SAX events using theContentHandlerreturned bySession.getImportContentHandler(String, int).booleanitemExists(String absPath)CallsgetItem(String)with the given path and returnstrueif the call succeeds.voidlogout()Clears the local namespace mappings.booleannodeExists(String absPath)Checks whether a node with the given absolute path exists.booleanpropertyExists(String absPath)Checks whether a property with the given absolute path exists.voidremoveItem(String absPath)Removes the identified item.voidsetNamespacePrefix(String prefix, String uri)Modifies the session local namespace mappings to contain the given prefix to URI mapping.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.jcr.Session
addLockToken, checkPermission, getAccessControlManager, getAttribute, getAttributeNames, getImportContentHandler, getLockTokens, getNodeByIdentifier, getNodeByUUID, getRepository, getRetentionManager, getRootNode, getUserID, getValueFactory, getWorkspace, hasCapability, hasPendingChanges, hasPermission, isLive, move, refresh, removeLockToken, save
-
-
-
-
Method Detail
-
logout
public void logout()
Clears the local namespace mappings. Subclasses that for example want to participate in a session pools should remember to callsuper.logout()when overriding this method to avoid namespace mappings to be carried over to a new session.
-
getNamespacePrefix
public String getNamespacePrefix(String uri) throws NamespaceException, RepositoryException
Returns the namespace prefix mapped to the given URI. The mapping is added to the set of session-local namespace mappings unless it already exists there.This behaviour is based on JSR 283 (JCR 2.0), but remains backwards compatible with JCR 1.0.
- Specified by:
getNamespacePrefixin interfaceSession- Parameters:
uri- namespace URI- Returns:
- namespace prefix
- Throws:
NamespaceException- if the namespace is not foundRepositoryException- if a repository error occurs
-
getNamespaceURI
public String getNamespaceURI(String prefix) throws NamespaceException, RepositoryException
Returns the namespace URI mapped to the given prefix. The mapping is added to the set of session-local namespace mappings unless it already exists there.This behaviour is based on JSR 283 (JCR 2.0), but remains backwards compatible with JCR 1.0.
- Specified by:
getNamespaceURIin interfaceSession- Parameters:
prefix- namespace prefix- Returns:
- namespace URI
- Throws:
NamespaceException- if the namespace is not foundRepositoryException- if a repository error occurs
-
getNamespacePrefixes
public String[] getNamespacePrefixes() throws RepositoryException
Returns the prefixes of all known namespace mappings. All global mappings not already included in the local set of namespace mappings are added there.This behaviour is based on JSR 283 (JCR 2.0), but remains backwards compatible with JCR 1.0.
- Specified by:
getNamespacePrefixesin interfaceSession- Returns:
- namespace prefixes
- Throws:
RepositoryException- if a repository error occurs
-
setNamespacePrefix
public void setNamespacePrefix(String prefix, String uri) throws NamespaceException, RepositoryException
Modifies the session local namespace mappings to contain the given prefix to URI mapping.This behaviour is based on JSR 283 (JCR 2.0), but remains backwards compatible with JCR 1.0.
- Specified by:
setNamespacePrefixin interfaceSession- Parameters:
prefix- namespace prefixuri- namespace URI- Throws:
NamespaceException- if the mapping is illegalRepositoryException- if a repository error occurs
-
exportDocumentView
public void exportDocumentView(String path, ContentHandler handler, boolean skipBinary, boolean noRecurse) throws PathNotFoundException, SAXException, RepositoryException
Generates a document view export using aDocumentViewExporterinstance.- Specified by:
exportDocumentViewin interfaceSession- Parameters:
path- of the node to be exportedhandler- handler for the SAX events of the exportskipBinary- whether binary values should be skippednoRecurse- whether to export just the identified node- Throws:
PathNotFoundException- if a node at the given path does not existSAXException- if the SAX event handler failedRepositoryException- if another error occurs
-
exportSystemView
public void exportSystemView(String path, ContentHandler handler, boolean skipBinary, boolean noRecurse) throws PathNotFoundException, SAXException, RepositoryException
Generates a system view export using aSystemViewExporterinstance.- Specified by:
exportSystemViewin interfaceSession- Parameters:
path- of the node to be exportedhandler- handler for the SAX events of the exportskipBinary- whether binary values should be skippednoRecurse- whether to export just the identified node- Throws:
PathNotFoundException- if a node at the given path does not existSAXException- if the SAX event handler failedRepositoryException- if another error occurs
-
exportDocumentView
public void exportDocumentView(String absPath, OutputStream out, boolean skipBinary, boolean noRecurse) throws IOException, RepositoryException
CallsSession.exportDocumentView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.- Specified by:
exportDocumentViewin interfaceSession- Parameters:
absPath- passed throughout- output stream to which the SAX events are serializedskipBinary- passed throughnoRecurse- passed through- Throws:
IOException- if the SAX serialization failedRepositoryException- if another error occurs
-
exportSystemView
public void exportSystemView(String absPath, OutputStream out, boolean skipBinary, boolean noRecurse) throws IOException, RepositoryException
CallsSession.exportSystemView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.- Specified by:
exportSystemViewin interfaceSession- Parameters:
absPath- passed throughout- output stream to which the SAX events are serializedskipBinary- passed throughnoRecurse- passed through- Throws:
IOException- if the SAX serialization failedRepositoryException- if another error occurs
-
importXML
public void importXML(String parentAbsPath, InputStream in, int uuidBehavior) throws IOException, InvalidSerializedDataException, RepositoryException
Parses the given input stream as an XML document and processes the SAX events using theContentHandlerreturned bySession.getImportContentHandler(String, int).- Specified by:
importXMLin interfaceSession- Parameters:
parentAbsPath- passed throughin- input stream to be parsed as XML and importeduuidBehavior- passed through- Throws:
IOException- if an I/O error occursInvalidSerializedDataException- if an XML parsing error occursRepositoryException- if a repository error occurs
-
getItem
public Item getItem(String absPath) throws PathNotFoundException, RepositoryException
Returns the node or property at the given path.The default implementation:
- Returns the root node if the given path is "/"
- Delegates to
Session.getNodeByIdentifier(String)for identifier paths - Throws a
PathNotFoundExceptionif the given path does not start with a slash. - Calls
Node.getNode(String)on the root node with the part of the given path after the first slash - Calls
Node.getProperty(String)similarly in case the above call fails with aPathNotFoundException
- Specified by:
getItemin interfaceSession- Parameters:
absPath- absolute path- Returns:
- the node or property with the given path
- Throws:
PathNotFoundException- if the given path is invalid or not foundRepositoryException- if another error occurs- See Also:
Session.getItem(String)
-
itemExists
public boolean itemExists(String absPath) throws RepositoryException
CallsgetItem(String)with the given path and returnstrueif the call succeeds. Returnsfalseif aPathNotFoundExceptionwas thrown. Other exceptions are passed through.- Specified by:
itemExistsin interfaceSession- Parameters:
absPath- absolute path- Returns:
trueif an item exists at the given path,falseotherwise- Throws:
RepositoryException- if an error occurs- See Also:
Session.itemExists(String)
-
removeItem
public void removeItem(String absPath) throws RepositoryException
Removes the identified item. Implemented by callingItem.remove()on the item removed bygetItem(String).- Specified by:
removeItemin interfaceSession- Parameters:
absPath- An absolute path of the item to be removed- Throws:
RepositoryException- if the item can not be removed- See Also:
Session.removeItem(String)
-
getNode
public Node getNode(String absPath) throws RepositoryException
Returns the node with the given absolute path.- Specified by:
getNodein interfaceSession- Parameters:
absPath- absolute path- Returns:
- node at the given path
- Throws:
RepositoryException- if the node can not be accessed- See Also:
Session.getNode(String)
-
nodeExists
public boolean nodeExists(String absPath) throws RepositoryException
Checks whether a node with the given absolute path exists.- Specified by:
nodeExistsin interfaceSession- Parameters:
absPath- absolute path- Returns:
trueif a node with the given path exists,falseotherwise- Throws:
RepositoryException- if the path is invalid- See Also:
Session.nodeExists(String)
-
getProperty
public Property getProperty(String absPath) throws RepositoryException
Returns the property with the given absolute path.- Specified by:
getPropertyin interfaceSession- Parameters:
absPath- absolute path- Returns:
- node at the given path
- Throws:
RepositoryException- if the property can not be accessed- See Also:
Session.getProperty(String)
-
propertyExists
public boolean propertyExists(String absPath) throws RepositoryException
Checks whether a property with the given absolute path exists.- Specified by:
propertyExistsin interfaceSession- Parameters:
absPath- absolute path- Returns:
trueif a property with the given path exists,falseotherwise- Throws:
RepositoryException- if the path is invalid- See Also:
Session.propertyExists(String)
-
impersonate
public Session impersonate(Credentials credentials) throws RepositoryException
Logs in the same workspace with the given credentials.The default implementation:
- Retrieves the
Repositoryinstance usingSession.getRepository() - Retrieves the current workspace using
Session.getWorkspace() - Retrieves the name of the current workspace using
Workspace.getName() - Calls
Repository.login(Credentials, String)on the retrieved repository with the given credentials and the retrieved workspace name.
- Specified by:
impersonatein interfaceSession- Parameters:
credentials- login credentials- Returns:
- logged in session
- Throws:
RepositoryException- if an error occurs
- Retrieves the
-
-