CostingEvent.java
package com.tradecloud.domain.model.events;
import org.hibernate.annotations.AccessType;
import javax.persistence.Entity;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import java.util.Date;
/**
* Events around costing.
*/
@Entity
@Table(name = "costingevent")
@AccessType("field")
@NamedQuery(query = "select ce from CostingEvent ce where ce.consumerTag = :consumerTag", name = "findAllCostingEventsForUser")
public class CostingEvent extends Event {
/**
* Default serial version uid.
*/
private static final long serialVersionUID = 1L;
/**
* Costing event types.
*/
public static enum CostingEventType {
FINALIZED, UNFINALIZED, ACTUAL_COSTING_SIGN_OFF, ACTUAL_COSTING_UNSIGN_OFF, CLC_COSTING_SIGN_OFF,
ORDER_ACTUAL_COSTING_RECEIPT, ORDER_ACTUAL_COSTING_RECEIPT_UNSIGNOFF;
}
/**
* Only used by hibernate.
*/
protected CostingEvent() {
}
@Override
public Class getInstanceClass() {
return CostingEvent.class;
}
public CostingEvent(String reference, Date timestamp, String organisationalUnit, String eventType, String consumerTag) {
super(reference, timestamp, organisationalUnit, eventType, consumerTag);
}
public CostingEvent(final Long id, final String reference, final Date timestamp, String organisationalUnit, final CostingEventType eventType,
final String consumerTag) {
super(id, reference, timestamp, organisationalUnit, eventType.name(), consumerTag);
}
public boolean isEventType(CostingEventType costingEventType) {
return CostingEventType.valueOf(getEventType()).equals(costingEventType);
}
public boolean isActualCostingSignOff() {
return CostingEventType.valueOf(getEventType()).equals(CostingEventType.ACTUAL_COSTING_SIGN_OFF);
}
public boolean isActualCostingUnSignOff() {
return CostingEventType.valueOf(getEventType()).equals(CostingEventType.ACTUAL_COSTING_UNSIGN_OFF);
}
}