|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate
public class SessionDelegate
TODO document
Constructor Summary | |
---|---|
SessionDelegate(org.apache.jackrabbit.oak.api.ContentSession contentSession,
org.apache.jackrabbit.oak.spi.security.SecurityProvider securityProvider,
RefreshStrategy refreshStrategy,
ThreadLocal<Long> threadSaveCount,
org.apache.jackrabbit.oak.stats.StatisticManager statisticManager,
org.apache.jackrabbit.oak.stats.Clock clock)
Create a new session delegate for a ContentSession . |
Method Summary | ||
---|---|---|
void |
checkAlive()
Check that this session is alive. |
|
void |
checkProtectedNode(String path)
|
|
void |
commit()
Commits the changes currently in the transient space. |
|
void |
commit(org.apache.jackrabbit.oak.api.Root root)
Commits the changes applied to the given root. |
|
org.apache.jackrabbit.oak.api.AuthInfo |
getAuthInfo()
|
|
org.apache.jackrabbit.oak.api.ContentSession |
getContentSession()
|
|
org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager |
getIdManager()
|
|
ItemDelegate |
getItem(String path)
Returns the node or property delegate at the given path. |
|
Date |
getLoginTime()
|
|
NodeDelegate |
getNode(String path)
NodeDelegate at the given path |
|
NodeDelegate |
getNodeByIdentifier(String id)
|
|
org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider |
getPermissionProvider()
|
|
PropertyDelegate |
getProperty(String path)
PropertyDelegate at the given path |
|
org.apache.jackrabbit.oak.api.QueryEngine |
getQueryEngine()
|
|
long |
getReadCount()
|
|
Date |
getReadTime()
|
|
long |
getRefreshCount()
|
|
Date |
getRefreshTime()
|
|
org.apache.jackrabbit.oak.api.Root |
getRoot()
The current Root instance this session delegate instance operates on. |
|
NodeDelegate |
getRootNode()
|
|
long |
getSaveCount()
|
|
Date |
getSaveTime()
|
|
long |
getSecondsSinceLogin()
|
|
SessionStats |
getSessionStats()
|
|
long |
getUpdateCount()
|
|
String |
getWorkspaceName()
|
|
long |
getWriteCount()
|
|
Date |
getWriteTime()
|
|
boolean |
hasPendingChanges()
|
|
boolean |
isAlive()
Determine whether this session is alive and has not been logged out or become stale by other means. |
|
void |
logout()
|
|
void |
move(String srcPath,
String destPath,
boolean transientOp)
Move a node |
|
|
perform(SessionOperation<T> sessionOperation)
Performs the passed SessionOperation in a safe execution context. |
|
void |
refresh(boolean keepChanges)
|
|
void |
refreshAtNextAccess()
|
|
|
safePerform(SessionOperation<T> sessionOperation)
Same as perform(SessionOperation) unless this method expects
SessionOperation.perform() not to throw a RepositoryException . |
|
void |
save(String path)
Save the subtree rooted at the given path , or the entire
transient space if given the root path or null . |
|
void |
setUserData(String userData)
|
|
|
sync(Iterator<T> iterator)
Wrap the passed iterator in an iterator that synchronizes
all access to the underlying session. |
|
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SessionDelegate(@Nonnull org.apache.jackrabbit.oak.api.ContentSession contentSession, @Nonnull org.apache.jackrabbit.oak.spi.security.SecurityProvider securityProvider, @Nonnull RefreshStrategy refreshStrategy, @Nonnull ThreadLocal<Long> threadSaveCount, @Nonnull org.apache.jackrabbit.oak.stats.StatisticManager statisticManager, @Nonnull org.apache.jackrabbit.oak.stats.Clock clock)
ContentSession
. The refresh behaviour of the
session is governed by the value of the refreshInterval
argument: if the session
has been idle longer than that value, an implicit refresh will take place.
In addition a refresh can always be scheduled from the next access by an explicit call
to refreshAtNextAccess()
. This is typically done from within the observation event
dispatcher in order.
contentSession
- the content sessionsecurityProvider
- the security providerrefreshStrategy
- the refresh strategy used for auto refreshing this sessionstatisticManager
- the statistics manager for tracking session operationsMethod Detail |
---|
@Nonnull public SessionStats getSessionStats()
public long getSecondsSinceLogin()
public Date getLoginTime()
public Date getReadTime()
public Date getWriteTime()
public Date getRefreshTime()
public Date getSaveTime()
public long getReadCount()
public long getWriteCount()
public long getRefreshCount()
public long getSaveCount()
public void refreshAtNextAccess()
public <T> Iterator<T> sync(Iterator<T> iterator)
iterator
in an iterator that synchronizes
all access to the underlying session.
T
- iterator
- iterator to synchronized
public <T> T perform(SessionOperation<T> sessionOperation) throws javax.jcr.RepositoryException
SessionOperation
in a safe execution context. This
context ensures that the session is refreshed if necessary and that refreshing
occurs before the session operation is performed and the refreshing is done only
once.
T
- return type of sessionOperation
sessionOperation
- the SessionOperation
to perform
sessionOperation.perform()
javax.jcr.RepositoryException
getRoot()
public <T> T safePerform(SessionOperation<T> sessionOperation)
perform(SessionOperation)
unless this method expects
SessionOperation.perform()
not to throw a RepositoryException
.
Such exceptions will be wrapped into a RuntimeException
and rethrown as they
are considered an internal error.
T
- return type of sessionOperation
sessionOperation
- the SessionOperation
to perform
sessionOperation.perform()
getRoot()
@Nonnull public org.apache.jackrabbit.oak.api.ContentSession getContentSession()
public boolean isAlive()
true
if this session is alive, false
otherwise.public void checkAlive() throws javax.jcr.RepositoryException
javax.jcr.RepositoryException
- if this session is not aliveisAlive()
public long getUpdateCount()
public void setUserData(String userData)
public void commit() throws org.apache.jackrabbit.oak.api.CommitFailedException
org.apache.jackrabbit.oak.api.CommitFailedException
- if the commit failedpublic void commit(org.apache.jackrabbit.oak.api.Root root) throws org.apache.jackrabbit.oak.api.CommitFailedException
org.apache.jackrabbit.oak.api.CommitFailedException
- if the commit failedpublic void checkProtectedNode(String path) throws javax.jcr.RepositoryException
javax.jcr.RepositoryException
@Nonnull public org.apache.jackrabbit.oak.api.AuthInfo getAuthInfo()
public void logout()
@Nonnull public org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager getIdManager()
@CheckForNull public NodeDelegate getRootNode()
@CheckForNull public NodeDelegate getNode(String path)
NodeDelegate
at the given path
path
- Oak path
NodeDelegate
at path
or null
if
none exists or not accessible.@CheckForNull public ItemDelegate getItem(String path)
path
- Oak path
null
if none exists@CheckForNull public NodeDelegate getNodeByIdentifier(String id)
@CheckForNull public PropertyDelegate getProperty(String path)
PropertyDelegate
at the given path
path
- Oak path
PropertyDelegate
at path
or null
if
none exists or not accessible.public boolean hasPendingChanges()
public void save(String path) throws javax.jcr.RepositoryException
path
, or the entire
transient space if given the root path or null
.
This implementation only performs the save if the subtree rooted
at path
contains all transient changes and will throw an
UnsupportedRepositoryOperationException
otherwise.
path
-
javax.jcr.RepositoryException
public void refresh(boolean keepChanges)
@Nonnull public String getWorkspaceName()
public void move(String srcPath, String destPath, boolean transientOp) throws javax.jcr.RepositoryException
srcPath
- oak path to the source node to copydestPath
- oak path to the destinationtransientOp
- whether or not to perform the move in transient space
javax.jcr.RepositoryException
@Nonnull public org.apache.jackrabbit.oak.api.QueryEngine getQueryEngine()
@Nonnull public org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider getPermissionProvider()
@Nonnull public org.apache.jackrabbit.oak.api.Root getRoot()
Root
instance this session delegate instance operates on.
To ensure the returned root reflects the correct repository revision access
should only be done from within a SessionOperation
closure through
perform(SessionOperation)
.
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |