[ create a new paste ] login | about

Link: http://codepad.org/gIIbylxJ    [ raw code | fork ]

Plain Text, pasted on Apr 13:
import static java.util.Objects.requireNonNull;

import static com.aa.cleanwithus.util.ToStrings.toStringBuilder;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;

import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
import javax.validation.constraints.NotNull;

import org.hibernate.envers.Audited;

import com.aa.cleanwithus.station.Station;

@Entity
@Table(
   name = "provider_station",
   uniqueConstraints = @UniqueConstraint(
      name = "uq_provider_station",
      columnNames = {"ps_provider", "ps_station"}
   )
)
@NamedQuery(
   name = "ProviderStation.findProviderStation",
   query = "from  ProviderStation ps " +
           "where ps.provider = :provider " +
           "  and ps.station  = :station"
)
@SequenceGenerator(name = "provider_station_seq", sequenceName = "provider_station_seq")
@Audited
public class ProviderStation implements Serializable {
   private static final long serialVersionUID = -4853563333444034742L;

   @Id
   @GeneratedValue(generator = "provider_station_seq")
   @Column(name = "provider_station_id")
   private Long id;

   @Version
   @Column(name = "ps_version", nullable = false)
   private Integer version;

   @ManyToOne(optional = false)
   @JoinColumn(name = "ps_provider", nullable = false)
   @NotNull
   private Provider provider;

   @ManyToOne(optional = false)
   @JoinColumn(name = "ps_station", nullable = false)
   @NotNull
   private Station station;

   @Column(name = "ps_active", nullable = false)
   @NotNull
   private Boolean active;

   @ElementCollection
   @CollectionTable(
      name = "provider_station_jobtype",
      joinColumns = @JoinColumn(name = "psj_ps_id", nullable = false)
   )
   private Set<ProviderStationJobType> jobTypes = new HashSet<>();

   public ProviderStation(){}
   public ProviderStation(
      Provider provider,
      Station station,
      Boolean active
   ){
      this.provider = requireNonNull(provider);
      this.station = requireNonNull(station);
      this.active = requireNonNull(active);
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj) return true;
      if (!(obj instanceof ProviderStation)) return false;

      ProviderStation that = (ProviderStation)obj;
      return
         Objects.equals(this.getProvider(), that.getProvider()) &&
         Objects.equals(this.getStation(),  that.getStation());
   }

   @Override
   public int hashCode() {
      return Objects.hash(getProvider(), getStation());
   }

   @Override
   public String toString() {
      return toStringBuilder(this)
         .append("id", getId())
         .append("version",  getVersion())
         .append("provider", getProvider())
         .append("station",  getStation())
         .append("active",   isActive())
         .append("jobTypes", getJobTypes())
      .build();
   }

   public Optional<Long> getId() {
      return Optional.ofNullable(id);
   }
   void setId(Optional<Long> id) {
      this.id = id.orElse(null);
   }

   public Optional<Integer> getVersion() {
      return Optional.ofNullable(version);
   }
   void setVersion(Optional<Integer> version) {
      this.version = version.orElse(null);
   }

   public Provider getProvider() {
      return provider;
   }

   public void setProvider(Provider provider) {
      this.provider = requireNonNull(provider);
   }

   public Station getStation() {
      return station;
   }

   public void setStation(Station station) {
      this.station = requireNonNull(station);
   }

   public Boolean isActive() {
      return active;
   }

   public void setActive(Boolean active) {
      this.active = requireNonNull(active);
   }

   public Set<ProviderStationJobType> getJobTypes() {
      return jobTypes;
   }
}



Create a new paste based on this one


Comments: