Package org.apache.jackrabbit.commons
Class AbstractSession
- java.lang.Object
-
- org.apache.jackrabbit.commons.AbstractSession
-
- All Implemented Interfaces:
javax.jcr.Session
public abstract class AbstractSession extends java.lang.Object implements javax.jcr.SessionAbstract base class for implementing the JCRSessioninterface.
-
-
Constructor Summary
Constructors Constructor Description AbstractSession()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexportDocumentView(java.lang.String absPath, java.io.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(java.lang.String path, org.xml.sax.ContentHandler handler, boolean skipBinary, boolean noRecurse)Generates a document view export using aDocumentViewExporterinstance.voidexportSystemView(java.lang.String absPath, java.io.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(java.lang.String path, org.xml.sax.ContentHandler handler, boolean skipBinary, boolean noRecurse)Generates a system view export using aSystemViewExporterinstance.javax.jcr.ItemgetItem(java.lang.String absPath)Returns the node or property at the given path.java.lang.StringgetNamespacePrefix(java.lang.String uri)Returns the namespace prefix mapped to the given URI.java.lang.String[]getNamespacePrefixes()Returns the prefixes of all known namespace mappings.java.lang.StringgetNamespaceURI(java.lang.String prefix)Returns the namespace URI mapped to the given prefix.javax.jcr.NodegetNode(java.lang.String absPath)Returns the node with the given absolute path.javax.jcr.PropertygetProperty(java.lang.String absPath)Returns the property with the given absolute path.javax.jcr.Sessionimpersonate(javax.jcr.Credentials credentials)Logs in the same workspace with the given credentials.voidimportXML(java.lang.String parentAbsPath, java.io.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(java.lang.String absPath)CallsgetItem(String)with the given path and returnstrueif the call succeeds.voidlogout()Clears the local namespace mappings.booleannodeExists(java.lang.String absPath)Checks whether a node with the given absolute path exists.booleanpropertyExists(java.lang.String absPath)Checks whether a property with the given absolute path exists.voidremoveItem(java.lang.String absPath)Removes the identified item.voidsetNamespacePrefix(java.lang.String prefix, java.lang.String uri)Modifies the session local namespace mappings to contain the given prefix to URI mapping.-
Methods inherited from class java.lang.Object
equals, 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.- Specified by:
logoutin interfacejavax.jcr.Session
-
getNamespacePrefix
public java.lang.String getNamespacePrefix(java.lang.String uri) throws javax.jcr.NamespaceException, javax.jcr.RepositoryExceptionReturns 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 interfacejavax.jcr.Session- Parameters:
uri- namespace URI- Returns:
- namespace prefix
- Throws:
javax.jcr.NamespaceException- if the namespace is not foundjavax.jcr.RepositoryException- if a repository error occurs
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.String prefix) throws javax.jcr.NamespaceException, javax.jcr.RepositoryExceptionReturns 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 interfacejavax.jcr.Session- Parameters:
prefix- namespace prefix- Returns:
- namespace URI
- Throws:
javax.jcr.NamespaceException- if the namespace is not foundjavax.jcr.RepositoryException- if a repository error occurs
-
getNamespacePrefixes
public java.lang.String[] getNamespacePrefixes() throws javax.jcr.RepositoryExceptionReturns 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 interfacejavax.jcr.Session- Returns:
- namespace prefixes
- Throws:
javax.jcr.RepositoryException- if a repository error occurs
-
setNamespacePrefix
public void setNamespacePrefix(java.lang.String prefix, java.lang.String uri) throws javax.jcr.NamespaceException, javax.jcr.RepositoryExceptionModifies 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 interfacejavax.jcr.Session- Parameters:
prefix- namespace prefixuri- namespace URI- Throws:
javax.jcr.NamespaceException- if the mapping is illegaljavax.jcr.RepositoryException- if a repository error occurs
-
exportDocumentView
public void exportDocumentView(java.lang.String path, org.xml.sax.ContentHandler handler, boolean skipBinary, boolean noRecurse) throws javax.jcr.PathNotFoundException, org.xml.sax.SAXException, javax.jcr.RepositoryExceptionGenerates a document view export using aDocumentViewExporterinstance.- Specified by:
exportDocumentViewin interfacejavax.jcr.Session- 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:
javax.jcr.PathNotFoundException- if a node at the given path does not existorg.xml.sax.SAXException- if the SAX event handler failedjavax.jcr.RepositoryException- if another error occurs
-
exportSystemView
public void exportSystemView(java.lang.String path, org.xml.sax.ContentHandler handler, boolean skipBinary, boolean noRecurse) throws javax.jcr.PathNotFoundException, org.xml.sax.SAXException, javax.jcr.RepositoryExceptionGenerates a system view export using aSystemViewExporterinstance.- Specified by:
exportSystemViewin interfacejavax.jcr.Session- 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:
javax.jcr.PathNotFoundException- if a node at the given path does not existorg.xml.sax.SAXException- if the SAX event handler failedjavax.jcr.RepositoryException- if another error occurs
-
exportDocumentView
public void exportDocumentView(java.lang.String absPath, java.io.OutputStream out, boolean skipBinary, boolean noRecurse) throws java.io.IOException, javax.jcr.RepositoryExceptionCallsSession.exportDocumentView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.- Specified by:
exportDocumentViewin interfacejavax.jcr.Session- Parameters:
absPath- passed throughout- output stream to which the SAX events are serializedskipBinary- passed throughnoRecurse- passed through- Throws:
java.io.IOException- if the SAX serialization failedjavax.jcr.RepositoryException- if another error occurs
-
exportSystemView
public void exportSystemView(java.lang.String absPath, java.io.OutputStream out, boolean skipBinary, boolean noRecurse) throws java.io.IOException, javax.jcr.RepositoryExceptionCallsSession.exportSystemView(String, ContentHandler, boolean, boolean)with the given arguments and aContentHandlerthat serializes SAX events to the given output stream.- Specified by:
exportSystemViewin interfacejavax.jcr.Session- Parameters:
absPath- passed throughout- output stream to which the SAX events are serializedskipBinary- passed throughnoRecurse- passed through- Throws:
java.io.IOException- if the SAX serialization failedjavax.jcr.RepositoryException- if another error occurs
-
importXML
public void importXML(java.lang.String parentAbsPath, java.io.InputStream in, int uuidBehavior) throws java.io.IOException, javax.jcr.InvalidSerializedDataException, javax.jcr.RepositoryExceptionParses the given input stream as an XML document and processes the SAX events using theContentHandlerreturned bySession.getImportContentHandler(String, int).- Specified by:
importXMLin interfacejavax.jcr.Session- Parameters:
parentAbsPath- passed throughin- input stream to be parsed as XML and importeduuidBehavior- passed through- Throws:
java.io.IOException- if an I/O error occursjavax.jcr.InvalidSerializedDataException- if an XML parsing error occursjavax.jcr.RepositoryException- if a repository error occurs
-
getItem
public javax.jcr.Item getItem(java.lang.String absPath) throws javax.jcr.PathNotFoundException, javax.jcr.RepositoryExceptionReturns 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 interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
- the node or property with the given path
- Throws:
javax.jcr.PathNotFoundException- if the given path is invalid or not foundjavax.jcr.RepositoryException- if another error occurs- See Also:
Session.getItem(String)
-
itemExists
public boolean itemExists(java.lang.String absPath) throws javax.jcr.RepositoryExceptionCallsgetItem(String)with the given path and returnstrueif the call succeeds. Returnsfalseif aPathNotFoundExceptionwas thrown. Other exceptions are passed through.- Specified by:
itemExistsin interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
trueif an item exists at the given path,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs- See Also:
Session.itemExists(String)
-
removeItem
public void removeItem(java.lang.String absPath) throws javax.jcr.RepositoryExceptionRemoves the identified item. Implemented by callingItem.remove()on the item removed bygetItem(String).- Specified by:
removeItemin interfacejavax.jcr.Session- Parameters:
absPath- An absolute path of the item to be removed- Throws:
javax.jcr.RepositoryException- if the item can not be removed- See Also:
Session.removeItem(String)
-
getNode
public javax.jcr.Node getNode(java.lang.String absPath) throws javax.jcr.RepositoryExceptionReturns the node with the given absolute path.- Specified by:
getNodein interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
- node at the given path
- Throws:
javax.jcr.RepositoryException- if the node can not be accessed- See Also:
Session.getNode(String)
-
nodeExists
public boolean nodeExists(java.lang.String absPath) throws javax.jcr.RepositoryExceptionChecks whether a node with the given absolute path exists.- Specified by:
nodeExistsin interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
trueif a node with the given path exists,falseotherwise- Throws:
javax.jcr.RepositoryException- if the path is invalid- See Also:
Session.nodeExists(String)
-
getProperty
public javax.jcr.Property getProperty(java.lang.String absPath) throws javax.jcr.RepositoryExceptionReturns the property with the given absolute path.- Specified by:
getPropertyin interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
- node at the given path
- Throws:
javax.jcr.RepositoryException- if the property can not be accessed- See Also:
Session.getProperty(String)
-
propertyExists
public boolean propertyExists(java.lang.String absPath) throws javax.jcr.RepositoryExceptionChecks whether a property with the given absolute path exists.- Specified by:
propertyExistsin interfacejavax.jcr.Session- Parameters:
absPath- absolute path- Returns:
trueif a property with the given path exists,falseotherwise- Throws:
javax.jcr.RepositoryException- if the path is invalid- See Also:
Session.propertyExists(String)
-
impersonate
public javax.jcr.Session impersonate(javax.jcr.Credentials credentials) throws javax.jcr.RepositoryExceptionLogs 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 interfacejavax.jcr.Session- Parameters:
credentials- login credentials- Returns:
- logged in session
- Throws:
javax.jcr.RepositoryException- if an error occurs
- Retrieves the
-
-