// DEBT should be spring loaded (metadatarepository should be passed in and // we should not have private methods private void saveEvent( Class objectClass, int containerOid, int oid, String action, String description, int personId, Date when) { try { History History = new History( when, containerOid, oid, DomainMetaDataRepository.getInstance().classToTypeName(objectClass), action, description, personId); if (!isEventThrottled(getSession(), History)) { getSession().save(History); } if (action.equals(History.DELETED)) { // Set name in event descriptions for deleted objects List events = getEvents(oid); for (int i = 0; i < events.size(); i++) { History event = (History) events.get(i); if (StringUtils.isEmpty(event.getDescription())) { event.setDescription(description); } } } } catch (HibernateException e) { log.error("history error", e); } }
public Object getHistoricalObject(History event) throws HibernateException { if (event.getAction().equals(History.DELETED)) { return null; } return DomainMetaDataRepository.getInstance() .getObject(event.getObjectType(), event.getTargetId()); }
public void saveEvent( Identifiable object, String action, String description, int personId, Date when) { try { Integer id = (Integer) PropertyUtils.getProperty(object, "id"); saveEvent( object.getClass(), DomainMetaDataRepository.getInstance().getParentId(object), id.intValue(), action, description, personId, when); } catch (Exception e) { log.error("history error", e); } }