SuppliersEvent.java

package com.tradecloud.domain.model.events;

import com.tradecloud.domain.event.EventType;
import org.hibernate.annotations.AccessType;

import javax.persistence.Entity;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAttribute;
import java.util.Date;

@Entity(name = "SuppliersEvent")
@Table(name = "suppliersevent")
@AccessType("field")
@NamedQuery(query = "select ce from SuppliersEvent ce where ce.consumerTag = :consumerTag", name = "findAllSupplierEventsForUser")
public class SuppliersEvent extends Event {
    private static final long serialVersionUID = 1L;

    @XmlAttribute
    private String reason;

    public static enum SupplierEventType implements EventType {
        SUPPLIER_CREATED,
        SUPPLIER_TEMPLATE_CREATED,
        SUPPLIER_DELETED,
        SUPPLIER_TEMPLATE_DELETED;
    }

    protected SuppliersEvent() {
        super();
    }

    @Override
    public Class getInstanceClass() {
        return SuppliersEvent.class;
    }

    public SuppliersEvent(String reference, Date timestamp, String organisationalUnit, String eventType, String reason, String consumerTag) {
        super(reference, timestamp, organisationalUnit, eventType, consumerTag);
        this.reason = reason;
    }

    public SuppliersEvent(final Long id, final String reference, final Date timestamp, final String organisationalUnit,
                          final SupplierEventType eventType,
                          final String reason, final String consumerTag) {
        super(id, reference, timestamp, organisationalUnit, eventType.name(), consumerTag);
        this.reason = reason;
    }

    public String getReason() {
        return reason;
    }

}