P
- session providers that adjust according to read-only statuspublic class SessionProviderWrapper<P extends SessionProvider & ReadOnlyStatus.IsAware> extends java.lang.Object implements SessionProvider
Constructor and Description |
---|
SessionProviderWrapper(ReadOnlyStatus readOnly,
java.util.List<P> providers)
Construct a new Session provider.
|
Modifier and Type | Method and Description |
---|---|
void |
executeCloseSession(java.lang.String uuid)
Loads a session directly, sets its "closed" value and immediately
saves it.
|
ome.model.meta.Session |
executeInternalSession(java.lang.String uuid,
ome.model.meta.Session session) |
long |
executeNextSessionId()
Added as an attempt to cure ticket:1176
|
ome.model.meta.Session |
executeUpdate(ome.system.ServiceFactory sf,
ome.model.meta.Session session,
java.lang.String uuid,
long userId,
java.lang.Long sudoerId) |
ome.model.meta.Session |
findSessionById(long id,
ome.system.ServiceFactory sf)
Retrieves a session by ID.
|
ome.model.meta.Session |
findSessionById(long id,
org.hibernate.Session hibernateSession)
Retrieves a session by ID.
|
java.lang.Long |
findSessionIdByUuid(java.lang.String uuid) |
java.lang.Long |
findSessionIdByUuid(java.lang.String uuid,
ome.system.ServiceFactory sf) |
public SessionProviderWrapper(ReadOnlyStatus readOnly, java.util.List<P> providers)
readOnly
- the read-only statusproviders
- the Session providers to wrap: the earlier providers are tried first and at least one provider must support
write operations according to ReadOnlyStatus.IsAware.isReadOnly(ReadOnlyStatus)
public ome.model.meta.Session executeUpdate(ome.system.ServiceFactory sf, ome.model.meta.Session session, java.lang.String uuid, long userId, java.lang.Long sudoerId)
executeUpdate
in interface SessionProvider
public void executeCloseSession(java.lang.String uuid)
SessionProvider
SessionManager.close(String)
and SessionManager.closeAll()
methods
since there are other non-explicit ways for a session to be destroyed, such
as a timeout within SessionCache
and so this is called from
SessionManagerImpl.onApplicationEvent(org.springframework.context.ApplicationEvent)
when a
DestroySessionMessage
is received.executeCloseSession
in interface SessionProvider
public ome.model.meta.Session executeInternalSession(java.lang.String uuid, ome.model.meta.Session session)
executeInternalSession
in interface SessionProvider
public long executeNextSessionId()
SessionProvider
executeNextSessionId
in interface SessionProvider
public ome.model.meta.Session findSessionById(long id, org.hibernate.Session hibernateSession)
SessionProvider
findSessionById
in interface SessionProvider
id
- session ID to lookuphibernateSession
- active Hibernate sessionpublic ome.model.meta.Session findSessionById(long id, ome.system.ServiceFactory sf)
SessionProvider
findSessionById
in interface SessionProvider
id
- session ID to lookupsf
- active service factorypublic java.lang.Long findSessionIdByUuid(java.lang.String uuid, ome.system.ServiceFactory sf)
findSessionIdByUuid
in interface SessionProvider
public java.lang.Long findSessionIdByUuid(java.lang.String uuid)
findSessionIdByUuid
in interface SessionProvider