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 SessionProviderpublic void executeCloseSession(java.lang.String uuid)
SessionProviderSessionManager.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 SessionProviderpublic ome.model.meta.Session executeInternalSession(java.lang.String uuid,
                                                     ome.model.meta.Session session)
executeInternalSession in interface SessionProviderpublic long executeNextSessionId()
SessionProviderexecuteNextSessionId in interface SessionProviderpublic ome.model.meta.Session findSessionById(long id,
                                              org.hibernate.Session hibernateSession)
SessionProviderfindSessionById in interface SessionProviderid - session ID to lookuphibernateSession - active Hibernate sessionpublic ome.model.meta.Session findSessionById(long id,
                                              ome.system.ServiceFactory sf)
SessionProviderfindSessionById in interface SessionProviderid - session ID to lookupsf - active service factorypublic java.lang.Long findSessionIdByUuid(java.lang.String uuid,
                                          ome.system.ServiceFactory sf)
findSessionIdByUuid in interface SessionProviderpublic java.lang.Long findSessionIdByUuid(java.lang.String uuid)
findSessionIdByUuid in interface SessionProvider