public class WorkspaceManager extends Object implements UpdatableItemStateManager, NamespaceStorage, AccessManager
WorkspaceManager
...ADD_NODE_ACTION, READ, READ_ACTION, REMOVE, REMOVE_ACTION, SET_PROPERTY_ACTION
Constructor and Description |
---|
WorkspaceManager(RepositoryConfig config,
SessionInfo sessionInfo,
boolean observationSupported) |
Modifier and Type | Method and Description |
---|---|
void |
addEventListener(InternalEventListener listener)
Sets the
InternalEventListener that gets notifications about
local and external changes. |
void |
addLockToken(String lt)
This method succeeds if the lock tokens could be added to the
SessionInfo . |
boolean |
canAccess(String workspaceName)
Determines whether the subject of the current context is granted access
to the given workspace.
|
boolean |
canRead(ItemState itemState)
Returns true if the existing item with the given
ItemId can
be read. |
boolean |
canRemove(ItemState itemState)
Returns true if the existing item state can be removed.
|
String[] |
checkQueryStatement(String statement,
String language,
Map<String,String> namespaces)
Checks if the query statement is valid.
|
EventFilter |
createEventFilter(int eventTypes,
Path path,
boolean isDeep,
String[] uuids,
Name[] nodeTypes,
boolean noLocal)
Creates an event filter based on the parameters available in
ObservationManager.addEventListener(javax.jcr.observation.EventListener, int, java.lang.String, boolean, java.lang.String[], java.lang.String[], boolean) . |
void |
dispose()
Dispose this
WorkspaceManager |
void |
execute(ChangeLog changes)
Creates a new batch from the given
ChangeLog and executes it. |
void |
execute(Operation operation)
Creates a new batch from the single workspace operation and executes it.
|
QueryInfo |
executeQuery(String statement,
String language,
Map<String,String> namespaces,
long limit,
long offset,
Map<String,QValue> boundValues) |
AccessControlProvider |
getAccessControlProvider()
Locates and instantiates an AccessControlProvider implementation.
|
EffectiveNodeTypeProvider |
getEffectiveNodeTypeProvider() |
EventBundle |
getEvents(EventFilter filter,
long after)
Returns the events from the journal that occurred after a given date.
|
HierarchyManager |
getHierarchyManager() |
IdFactory |
getIdFactory() |
ItemDefinitionProvider |
getItemDefinitionProvider() |
ItemStateFactory |
getItemStateFactory() |
LockInfo |
getLockInfo(NodeId nodeId) |
String[] |
getLockTokens()
Returns the lock tokens present with the
SessionInfo . |
NameFactory |
getNameFactory() |
NamespaceRegistryImpl |
getNamespaceRegistryImpl() |
NodeTypeRegistry |
getNodeTypeRegistry() |
PathFactory |
getPathFactory() |
String |
getPrefix(String uri) |
Map<String,String> |
getRegisteredNamespaces() |
String[] |
getSupportedQueryLanguages() |
String |
getURI(String prefix) |
String[] |
getWorkspaceNames() |
boolean |
isGranted(ItemState itemState,
String[] actions)
Determines whether the specified
permissions are granted
on the item with the specified path. |
boolean |
isGranted(NodeState parentState,
Path relPath,
String[] actions)
Determines whether the specified
permissions are granted
on the item with the specified path. |
void |
registerNamespace(String prefix,
String uri) |
void |
removeEventListener(InternalEventListener listener) |
void |
removeLockToken(String lt)
Tries to remove the given token from the
SessionInfo . |
void |
setUserData(String userData) |
void |
unregisterNamespace(String uri) |
void |
updateEventFilters()
Updates the event filters on the subscription.
|
public WorkspaceManager(RepositoryConfig config, SessionInfo sessionInfo, boolean observationSupported) throws RepositoryException
RepositoryException
public NamespaceRegistryImpl getNamespaceRegistryImpl()
public NodeTypeRegistry getNodeTypeRegistry()
public ItemDefinitionProvider getItemDefinitionProvider()
public EffectiveNodeTypeProvider getEffectiveNodeTypeProvider()
public HierarchyManager getHierarchyManager()
public String[] getWorkspaceNames() throws RepositoryException
RepositoryException
public IdFactory getIdFactory()
public NameFactory getNameFactory()
public PathFactory getPathFactory()
public ItemStateFactory getItemStateFactory()
public AccessControlProvider getAccessControlProvider() throws RepositoryException
RepositoryException
public LockInfo getLockInfo(NodeId nodeId) throws RepositoryException
RepositoryException
public String[] getLockTokens() throws UnsupportedRepositoryOperationException, RepositoryException
SessionInfo
.SessionInfo
.UnsupportedRepositoryOperationException
- If not supported.RepositoryException
- If another error occurs.SessionInfo.getLockTokens()
public void addLockToken(String lt) throws UnsupportedRepositoryOperationException, LockException, RepositoryException
SessionInfo
.lt
- The lock token to be added.UnsupportedRepositoryOperationException
- If not supported.LockException
- If a lock related exception occurs.RepositoryException
- If another exception occurs.SessionInfo.addLockToken(String)
public void removeLockToken(String lt) throws UnsupportedRepositoryOperationException, LockException, RepositoryException
SessionInfo
.lt
- The lock token to be removed.UnsupportedRepositoryOperationException
- If not supported.LockException
- If a lock related exception occurs, e.g if the
session info does not contain the specified lock token.RepositoryException
- If another exception occurs.SessionInfo.removeLockToken(String)
public String[] getSupportedQueryLanguages() throws RepositoryException
RepositoryException
- If an error occurs.public String[] checkQueryStatement(String statement, String language, Map<String,String> namespaces) throws InvalidQueryException, RepositoryException
statement
- the query statement.language
- the query language.namespaces
- the locally remapped namespaces which might be used in
the query statement.InvalidQueryException
- if the query statement is invalid.RepositoryException
- if an error occurs while checking the query
statement.public QueryInfo executeQuery(String statement, String language, Map<String,String> namespaces, long limit, long offset, Map<String,QValue> boundValues) throws RepositoryException
statement
- the query statement.language
- the query language.namespaces
- the locally remapped namespaces which might be used in
the query statement.limit
- The result size limit as specified by Query.setLimit(long)
.offset
- The result offset as specified by Query.setOffset(long)
boundValues
- The bound values as specified by Query.bindValue(String, javax.jcr.Value)
RepositoryService.executeQuery(org.apache.jackrabbit.spi.SessionInfo, String, String, java.util.Map, long, long, java.util.Map)
.RepositoryException
- If an error occurs.public void addEventListener(InternalEventListener listener) throws RepositoryException
InternalEventListener
that gets notifications about
local and external changes.listener
- the new listener.RepositoryException
- if the listener cannot be registered.public void updateEventFilters() throws RepositoryException
RepositoryException
- If an error occurs.public void removeEventListener(InternalEventListener listener) throws RepositoryException
listener
- The listener to be removed.RepositoryException
- If an error occurs.public EventFilter createEventFilter(int eventTypes, Path path, boolean isDeep, String[] uuids, Name[] nodeTypes, boolean noLocal) throws UnsupportedRepositoryOperationException, RepositoryException
ObservationManager.addEventListener(javax.jcr.observation.EventListener, int, java.lang.String, boolean, java.lang.String[], java.lang.String[], boolean)
.eventTypes
- A combination of one or more event type constants
encoded as a bitmask.path
- an absolute path.isDeep
- a boolean
.uuids
- array of UUIDs.nodeTypes
- array of node type names.noLocal
- a boolean
.UnsupportedRepositoryOperationException
- if this implementation does not support observation.RepositoryException
public EventBundle getEvents(EventFilter filter, long after) throws RepositoryException, UnsupportedRepositoryOperationException
filter
- the event filter to apply.after
- a date in milliseconds.RepositoryException
- if an error occurs.UnsupportedRepositoryOperationException
- if the implementation does not support
journaled observation.public void setUserData(String userData) throws RepositoryException
userData
- The user data used for the event processing.RepositoryException
- If an error occurs.public void execute(Operation operation) throws RepositoryException
execute
in interface UpdatableItemStateManager
RepositoryException
UpdatableItemStateManager.execute(Operation)
public void execute(ChangeLog changes) throws RepositoryException
ChangeLog
and executes it.execute
in interface UpdatableItemStateManager
changes
- The set of transient changes to be executed.RepositoryException
public void dispose()
WorkspaceManager
dispose
in interface UpdatableItemStateManager
public boolean isGranted(NodeState parentState, Path relPath, String[] actions) throws ItemNotFoundException, RepositoryException
AccessManager
permissions
are granted
on the item with the specified path.isGranted
in interface AccessManager
parentState
- The node state of the next existing ancestor.relPath
- The relative path pointing to the non-existing target item.actions
- An array of actions that need to be checked.true
if the actions are granted; otherwise false
ItemNotFoundException
- if the target item does not existRepositoryException
- if another error occursAccessManager.isGranted(NodeState, Path, String[])
public boolean isGranted(ItemState itemState, String[] actions) throws ItemNotFoundException, RepositoryException
AccessManager
permissions
are granted
on the item with the specified path.isGranted
in interface AccessManager
actions
- An array of actions that need to be checked.true
if the actions are granted; otherwise false
ItemNotFoundException
- if the target item does not existRepositoryException
- if another error occursAccessManager.isGranted(ItemState, String[])
public boolean canRead(ItemState itemState) throws ItemNotFoundException, RepositoryException
AccessManager
ItemId
can
be read.canRead
in interface AccessManager
ItemNotFoundException
RepositoryException
AccessManager.canRead(ItemState)
public boolean canRemove(ItemState itemState) throws ItemNotFoundException, RepositoryException
AccessManager
canRemove
in interface AccessManager
ItemNotFoundException
RepositoryException
AccessManager.canRemove(ItemState)
public boolean canAccess(String workspaceName) throws NoSuchWorkspaceException, RepositoryException
AccessManager
canAccess
in interface AccessManager
workspaceName
- name of workspacetrue
if the subject of the current context is
granted access to the given workspace; otherwise false
.NoSuchWorkspaceException
- if a workspace with the given name does not exist.RepositoryException
- if another error occursAccessManager.canAccess(String)
public Map<String,String> getRegisteredNamespaces() throws RepositoryException
getRegisteredNamespaces
in interface NamespaceStorage
RepositoryException
public String getPrefix(String uri) throws NamespaceException, RepositoryException
getPrefix
in interface NamespaceStorage
NamespaceException
RepositoryException
public String getURI(String prefix) throws NamespaceException, RepositoryException
getURI
in interface NamespaceStorage
NamespaceException
RepositoryException
public void registerNamespace(String prefix, String uri) throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException
registerNamespace
in interface NamespaceStorage
NamespaceException
UnsupportedRepositoryOperationException
AccessDeniedException
RepositoryException
public void unregisterNamespace(String uri) throws NamespaceException, UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException
unregisterNamespace
in interface NamespaceStorage
NamespaceException
UnsupportedRepositoryOperationException
AccessDeniedException
RepositoryException
Copyright © 2004–2021 The Apache Software Foundation. All rights reserved.