Example usage for org.hibernate.event.spi PreUpdateEvent getState

List of usage examples for org.hibernate.event.spi PreUpdateEvent getState

Introduction

In this page you can find the example usage for org.hibernate.event.spi PreUpdateEvent getState.

Prototype

public Object[] getState() 

Source Link

Document

Retrieves the state to be used in the update.

Usage

From source file:de.dktk.dd.rpb.portal.audit.AuditLogListener.java

License:Open Source License

private String buildUpdateMessage(PreUpdateEvent event) {
    String[] propertyNames = event.getPersister().getEntityMetamodel().getPropertyNames();
    Object[] oldStates = event.getOldState();
    Object[] newStates = event.getState();
    int index = 0;
    StringBuilder message = new StringBuilder(128);
    for (String propertyName : propertyNames) {
        message.append(message(propertyName, oldStates[index], newStates[index]));
        index++;//from w  w w .  ja v  a 2s. co m
    }
    return message.toString();
}

From source file:es.logongas.ix3.dao.impl.rules.EventListenerImplRuleEngine.java

License:Apache License

@Override
public boolean onPreUpdate(PreUpdateEvent pue) {
    autowired();/*www . jav a  2 s  .c  om*/
    EntityMode entityMode = pue.getPersister().getEntityMode();

    RuleContext ruleContext = new RuleContextImplNoPrincipal(pue.getEntity(),
            getOriginalEntity(pue.getOldState(), pue.getPersister()));

    fireRules(ruleContext, pue.getPersister(), pue.getState(), entityMode, RuleGroupPredefined.PreUpdate.class,
            RuleGroupPredefined.PreInsertOrUpdate.class, RuleGroupPredefined.PreUpdateOrDelete.class,
            RuleGroupPredefined.PreInsertOrUpdateOrDelete.class);

    return false;
}

From source file:org.cgiar.ccafs.marlo.data.AuditColumnHibernateListener.java

License:Open Source License

/**
 * Note the implementation would be much simpler if we use JPA annotation @PreUpdate arather than raw hibernate.
 *///www .j  a va 2  s  . co  m
@Override
public boolean onPreUpdate(PreUpdateEvent event) {

    if (!(event.getEntity() instanceof MarloAuditableEntity)) {
        LOG.debug("entity: " + event.getEntity().getClass() + "is not a MarloAuditableEntity");
        return false;
    }

    User user = this.getUser();

    /**
     * This is to guard against an unauthenticated user making an update
     */
    if (user.getId() == null) {
        return false;
    }

    String[] propertyNames = event.getPersister().getEntityMetamodel().getPropertyNames();
    Object[] state = event.getState();

    MarloAuditableEntity auditableEntity = (MarloAuditableEntity) event.getEntity();
    this.setValue(state, propertyNames, "modifiedBy", user, auditableEntity);

    auditableEntity.setModifiedBy(user);

    return false;
}

From source file:org.egov.infra.config.persistence.event.listener.HibernateEventListener.java

License:Open Source License

private void updateAuditableProperties(final PreUpdateEvent event) {
    int i = 0;/*w ww  .  jav  a 2s .  c om*/
    for (final String propName : event.getPersister().getPropertyNames()) {
        if ("modifiedDate".equals(propName))
            event.getState()[i] = new Date();
        if ("modifiedBy".equals(propName))
            event.getState()[i] = getUserObjectFromWithinEventListener(event.getSession());
        i++;
    }
}

From source file:org.egov.infra.config.persistence.event.listener.HibernateEventListener.java

License:Open Source License

private void updateAuditable(final PreUpdateEvent event) {
    int i = 0;/*from www  .  j  a v  a2s.com*/
    for (final String propName : event.getPersister().getPropertyNames()) {
        if ("lastModifiedDate".equals(propName))
            event.getState()[i] = new Date();
        if ("lastModifiedBy".equals(propName))
            event.getState()[i] = getUserObjectFromWithinEventListener(event.getSession());
        i++;
    }
}

From source file:org.grails.orm.hibernate.support.ClosureEventListener.java

License:Apache License

public boolean onPreUpdate(final PreUpdateEvent event) {
    return doWithManualSession(event, new Closure<Boolean>(this) {
        @Override//from  www  .ja v  a 2  s . c  o m
        public Boolean call() {
            Object entity = event.getEntity();
            boolean evict = false;
            if (preUpdateEventListener != null) {
                evict = preUpdateEventListener.call(entity);
                synchronizePersisterState(event, event.getState());
            }
            handleTimestampingBeforeUpdate(event, entity);
            if (!evict) {
                return doValidate(entity);
            } else {
                return evict;
            }
        }
    });
}

From source file:org.grails.orm.hibernate.support.ClosureEventListener.java

License:Apache License

protected void handleTimestampingBeforeUpdate(final PreUpdateEvent event, Object entity) {
    if (shouldTimestamp) {
        Class<?> dateCreatedType = null;
        Object timestamp = null;//from   w w w.  j a v a 2 s . c  o  m
        String[] propertyNames = event.getPersister().getPropertyNames();
        if (dateCreatedProperty != null && dateCreatedProperty.getProperty(entity) == null) {
            dateCreatedType = dateCreatedProperty.getType();
            timestamp = timestampProvider.createTimestamp(dateCreatedType);
            dateCreatedProperty.setProperty(entity, timestamp);
            event.getState()[Arrays.asList(propertyNames).indexOf(GormProperties.DATE_CREATED)] = timestamp;
        }
        if (lastUpdatedProperty != null) {
            Class<?> lastUpdateType = lastUpdatedProperty.getType();
            if (dateCreatedType == null || !lastUpdateType.isAssignableFrom(dateCreatedType)) {
                timestamp = timestampProvider.createTimestamp(lastUpdateType);
            }
            lastUpdatedProperty.setProperty(entity, timestamp);
            event.getState()[Arrays.asList(propertyNames).indexOf(GormProperties.LAST_UPDATED)] = timestamp;
        }
    }
}

From source file:org.web4thejob.orm.event.PreUpdateListener.java

License:Open Source License

public boolean onPreUpdate(PreUpdateEvent event) {
    if (mrs == null) {
        mrs = ContextUtil.getMRS();//from   w  w w .ja va2s .  c  o m
    }

    for (AnnotationMetadata<?> metadata : mrs
            .getAnnotationMetadata(((Entity) event.getEntity()).getEntityType(), UpdateTimeHolder.class)) {
        EventUtil.assignValue((Entity) event.getEntity(), metadata.getIndex(),
                new Timestamp(System.currentTimeMillis()), event.getPersister(), event.getState());

    }

    for (AnnotationMetadata<?> metadata : mrs
            .getAnnotationMetadata(((Entity) event.getEntity()).getEntityType(), UserIdHolder.class)) {
        EventUtil.assignValue((Entity) event.getEntity(), metadata.getIndex(),
                ContextUtil.getSessionContext().getSecurityContext().getUserIdentity().getId(),
                event.getPersister(), event.getState());
    }

    return false;
}