Package org.apache.jackrabbit.commons
Class AbstractSession
java.lang.Object
org.apache.jackrabbit.commons.AbstractSession
- All Implemented Interfaces:
Session
Abstract base class for implementing the JCR
Session interface.-
Field Summary
Fields inherited from interface javax.jcr.Session
ACTION_ADD_NODE, ACTION_READ, ACTION_REMOVE, ACTION_SET_PROPERTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidexportDocumentView(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.Returns the node or property at the given path.getNamespacePrefix(String uri) Returns the namespace prefix mapped to the given URI.String[]Returns the prefixes of all known namespace mappings.getNamespaceURI(String prefix) Returns the namespace URI mapped to the given prefix.Returns the node with the given absolute path.getProperty(String absPath) Returns the property with the given absolute path.impersonate(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
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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
-
Constructor Details
-
AbstractSession
public AbstractSession()
-
-
Method Details
-
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
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
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
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
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:
-
itemExists
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:
-
removeItem
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:
-
getNode
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:
-
nodeExists
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:
-
getProperty
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:
-
propertyExists
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:
-
impersonate
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
-