@Override public Long findSessionIdByUuid(String uuid, ServiceFactory sf) { for (final P provider : read) { final Long sessionId = provider.findSessionIdByUuid(uuid, sf); if (sessionId != null) { return sessionId; } } return null; }
@Override public Long findSessionIdByUuid(String uuid) { for (final P provider : read) { final Long sessionId = provider.findSessionIdByUuid(uuid); if (sessionId != null) { return sessionId; } } return null; } }
@Override public void executeCloseSession(String uuid) { /* working through all readers because we want a failure exception if the session exists as read-only */ for (final P provider : read) { if (provider.findSessionIdByUuid(uuid) != null) { provider.executeCloseSession(uuid); } } }
@Override public Session executeUpdate(ServiceFactory sf, Session session, String uuid, long userId, Long sudoerId) { /* working through all readers because we want a failure exception if the session exists as read-only */ for (final P provider : read) { if (provider.findSessionIdByUuid(uuid, sf) != null) { return provider.executeUpdate(sf, session, uuid, userId, sudoerId); } } /* creating a new session */ return write.get(0).executeUpdate(sf, session, uuid, userId, sudoerId); }
public Object step(int step) throws Cancel { helper.assertStep(step); contexts = manager.getSessionData(); if (contexts.isEmpty()) { return Collections.emptyList(); } final ServiceFactory sf = helper.getServiceFactory(); final List<ome.model.meta.Session> sessions = new ArrayList<>(contexts.size()); for (final String uuid : contexts.keySet()) { final Long sessionId = provider.findSessionIdByUuid(uuid, sf); if (sessionId != null) { final ome.model.meta.Session session = provider.findSessionById(sessionId, sf); if (session != null) { sessions.add(session); } } } return sessions; }
@Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { final Long sessionId = sessionProvider.findSessionIdByUuid(userId, sf); final ome.model.meta.Session s = sessionId == null ? null : sessionProvider.findSessionById(sessionId, sf); IQuery q = sf.getQueryService(); Experimenter e = null; if (s != null) { e = s.getOwner(); if (!e.isLoaded()) { e = q.get(Experimenter.class, e.getId()); } data.add(String.format("user=%s", e.getOmeName())); } else { e = q.findByString(Experimenter.class, "omeName", userId); if (e != null) { data.add(String.format("id=%s", e.getId())); } } if (s != null) { data.add(String.format("created=%s", s.getStarted())); data.add(String.format("closed=%s", s.getClosed())); } return null; } });