public void addLog(String action, Class klass, Long id) { Assert.notNull(action); Assert.notNull(klass); Assert.notNull(id); if (Event.class.isAssignableFrom(klass) || EventLog.class.isAssignableFrom(klass)) { if (log.isDebugEnabled()) { log.debug("Not logging creation of logging type:" + klass); } return; // EARLY EXIT } else { if (!isReady()) { throw new InternalException("Not ready to add EventLog"); } } if (log.isInfoEnabled()) { log.info("Adding log:" + action + "," + klass + "," + id); } BasicEventContext c = current(); List<EventLog> list = current().getLogs(); if (list == null) { list = new ArrayList<EventLog>(); c.setLogs(list); } EventLog l = new EventLog(); l.setAction(action); l.setEntityType(klass.getName()); // TODO could be id to Type entity l.setEntityId(id); l.setEvent(c.getEvent()); Details d = Details.create(); d.setPermissions(new Permissions()); l.getDetails().copy(d); list.add(l); }