OrderEvents.java

package com.tradecloud.domain.configuration;

import com.tradecloud.authentication.User;

import javax.persistence.*;
import javax.xml.bind.annotation.*;
import java.util.HashSet;
import java.util.Set;

/**
 * Meta-data of order events.
 */
@Entity
@Table(name = "orderevents")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "OrderEvents")
public class OrderEvents extends EventConfig<OrderEventsMetaData> implements AlowNonOrderUserEvent {

    private static final long serialVersionUID = 1L;
    private boolean allowEvents;

    @ManyToOne
    @XmlElement(name = "OrderEventsMetaData")
    @JoinTable(name = "orderevents_ordereventsmetadata", joinColumns = {@JoinColumn(name = "orderevent_id", unique = false)},
            inverseJoinColumns = {@JoinColumn(name = "metadata_id", unique = false)})
    private OrderEventsMetaData eventsMetaData;

    @XmlTransient
    @ManyToMany
    @JoinTable(name = "integrationuser_orderevents", joinColumns = {@JoinColumn(name = "orderevent_id", unique = false)},
            inverseJoinColumns = {@JoinColumn(name = "integrationuser_id", unique = false)})
    private Set<User> users = new HashSet<>();

    public OrderEventsMetaData getEventsMetaData() {
        return eventsMetaData;
    }

    @Override
    public void setEventsMetaData(OrderEventsMetaData eventsMetaData) {
        this.eventsMetaData = eventsMetaData;
    }

    @Override
    public Set<User> getUsers() {
        return users;
    }

    public void setUsers(Set<User> users) {
        this.users = users;
    }

    public boolean isAllowEvents() {
        return allowEvents;
    }

    public void setAllowEvents(boolean allowEvents) {
        this.allowEvents = allowEvents;
    }
}