/** * Loads {@link #reps} {@link EventLog} instances and returns them. * This is the first phase used by the {@link PixelDataThread}. A later * phase will invoke {@link #handleEventLog(EventLog, Session, ServiceFactory)} * with the returned instance. */ @Transactional(readOnly = false) public Object doWork(Session session, ServiceFactory sf) { List<EventLog> logs = new ArrayList<EventLog>(); while (logs.size() < this.reps) { try { logs.add(loader.next()); } catch (NoSuchElementException nsee) { if (!loader.hasNext()) { break; }; } } // Preload for (EventLog el : logs) { EventLog live = (EventLog) session.get(EventLog.class, el.getId()); Event evt = live.getEvent(); el.setEvent(evt); } return logs; }
@Override public Object retrieve(String field) { if (field == null) { return null; } else if (field.equals(ID)) { return getId(); } else if (field.equals(ENTITYID)) { return getEntityId(); } else if (field.equals(ENTITYTYPE)) { return getEntityType(); } else if (field.equals(ACTION)) { return getAction(); } else if (field.equals(EVENT)) { return getEvent(); } else if (field.equals(DETAILS)) { return getDetails(); } else { if (_dynamicFields != null) { return _dynamicFields.get(field); } return null; } }
el.setAction("INSERT"); el.setEvent(new Event()); el.getEvent().setTime(image.getAcquisitionDate()); logs.add(el);