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