/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cids.trigger.builtin; import Sirius.server.middleware.types.MetaObject; import Sirius.server.newuser.User; import org.openide.util.lookup.ServiceProvider; import java.util.Date; import de.cismet.cids.dynamics.CidsBean; import de.cismet.cids.trigger.AbstractDBAwareCidsTrigger; import de.cismet.cids.trigger.CidsTrigger; import de.cismet.cids.trigger.CidsTriggerKey; /** * DOCUMENT ME! * * @author thorsten * @version $Revision$, $Date$ */ @ServiceProvider(service = CidsTrigger.class) public class HistoryTrigger extends AbstractDBAwareCidsTrigger { //~ Instance fields -------------------------------------------------------- private final transient org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); //~ Methods ---------------------------------------------------------------- @Override public void afterDelete(final CidsBean cidsBean, final User user) { createHistory(cidsBean.getMetaObject(), user); } @Override public void afterInsert(final CidsBean cidsBean, final User user) { createHistory(cidsBean.getMetaObject(), user); } @Override public void afterUpdate(final CidsBean cidsBean, final User user) { createHistory(cidsBean.getMetaObject(), user); } @Override public void beforeDelete(final CidsBean cidsbean, final User user) { initHistory(cidsbean.getMetaObject(), user); } @Override public void beforeInsert(final CidsBean cidsbean, final User user) { // nothing to do } @Override public void beforeUpdate(final CidsBean cidsbean, final User user) { initHistory(cidsbean.getMetaObject(), user); } @Override public CidsTriggerKey getTriggerKey() { return CidsTriggerKey.FORALL; } /** * DOCUMENT ME! * * @param t DOCUMENT ME! * * @return DOCUMENT ME! */ @Override public int compareTo(final CidsTrigger t) { return -1; } /** * DOCUMENT ME! * * @param mo DOCUMENT ME! * @param user DOCUMENT ME! */ private void createHistory(final MetaObject mo, final User user) { try { // immediately returns dbServer.getHistoryServer().enqueueEntry(mo, user, new Date()); } catch (final Exception e) { log.error("cannot enqueue mo for history creation", e); // NOI18N } } /** * DOCUMENT ME! * * @param mo DOCUMENT ME! * @param user DOCUMENT ME! */ private void initHistory(final MetaObject mo, final User user) { try { dbServer.getHistoryServer().initHistory(mo, user, new Date()); } catch (final Exception e) { log.error("cannot initialise history", e); // NOI18N } } @Override public void afterCommittedInsert(final CidsBean cidsBean, final User user) { } @Override public void afterCommittedUpdate(final CidsBean cidsBean, final User user) { } @Override public void afterCommittedDelete(final CidsBean cidsBean, final User user) { } }