Ejemplo n.º 1
0
  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);
  }