gov.ca.cwds.cals.persistence.model.calsns.tracking.Tracking.java Source code

Java tutorial

Introduction

Here is the source code for gov.ca.cwds.cals.persistence.model.calsns.tracking.Tracking.java

Source

package gov.ca.cwds.cals.persistence.model.calsns.tracking;

import static gov.ca.cwds.cals.persistence.model.calsns.tracking.Tracking.NAMED_QUERY_FIND_BY_LICENSE_NUMBER;
import static gov.ca.cwds.cals.persistence.model.calsns.tracking.Tracking.NAMED_QUERY_FIND_BY_RFA_1A_ID;
import static gov.ca.cwds.cals.persistence.model.calsns.tracking.Tracking.NAMED_QUERY_FIND_BY_RFA_1A_ID_AND_TRACKING_ID;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import gov.ca.cwds.cals.RequestResponse;
import gov.ca.cwds.cals.persistence.model.calsns.rfa.CalsBaseEntity;
import gov.ca.cwds.cals.persistence.model.calsns.rfa.RFA1aForm;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.hibernate.annotations.NamedQuery;
import org.hibernate.annotations.Type;

/**
 * Tracking entity.
 *
 * @author CWDS TPT-2 Team
 */

@NamedQuery(name = NAMED_QUERY_FIND_BY_RFA_1A_ID, query = "FROM Tracking WHERE rfa1aId = :rfa1aId")

@NamedQuery(name = NAMED_QUERY_FIND_BY_RFA_1A_ID_AND_TRACKING_ID, query = "FROM Tracking WHERE rfa1aId = :rfa1aId AND id = :id")
@NamedQuery(name = NAMED_QUERY_FIND_BY_LICENSE_NUMBER, query = "FROM Tracking WHERE licenseNumber = :licenseNumber")

@SuppressWarnings({ "squid:S1948", "squid:S2160" }) //JsonNode is serializable, Equals in parent
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@Entity
@Table(name = "tracking")
public class Tracking extends CalsBaseEntity implements RequestResponse {

    private static final long serialVersionUID = -3834894061508509293L;

    public static final String NAMED_QUERY_FIND_BY_RFA_1A_ID = "tracking.find.by.rfa1a.id";
    public static final String NAMED_QUERY_FIND_BY_LICENSE_NUMBER = "tracking.find.by.license.number";
    public static final String NAMED_QUERY_FIND_BY_RFA_1A_ID_AND_TRACKING_ID = "tracking.find.by.rfa1a.id.and.tracking.id";

    @Column(name = "facility_name")
    private String facilityName;

    @OneToOne
    @JoinColumn(name = "rfa_1a_id", insertable = false, updatable = false)
    @JsonIgnore
    private RFA1aForm rfa1aForm;

    @JsonProperty("rfa_1a_id")
    @Column(name = "rfa_1a_id", unique = true)
    private Long rfa1aId;

    @Column(name = "license_number", unique = true, length = 10)
    private String licenseNumber;

    @JsonProperty("tracking_documents")
    @NotNull
    @Type(type = "JsonNode")
    @Column(name = "tracking_json")
    private JsonNode trackingJson;

    @JsonIgnore
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "tracking_id", updatable = false, insertable = false)
    @OrderBy("id")
    private List<Rfa02Form> rfa02Forms;

    public String getFacilityName() {
        return facilityName;
    }

    public void setFacilityName(String facilityName) {
        this.facilityName = facilityName;
    }

    public Long getRfa1aId() {
        return rfa1aId;
    }

    public void setRfa1aId(Long rfa1aId) {
        this.rfa1aId = rfa1aId;
    }

    public String getLicenseNumber() {
        return licenseNumber;
    }

    public void setLicenseNumber(String licenseNumber) {
        this.licenseNumber = licenseNumber;
    }

    public JsonNode getTrackingJson() {
        return trackingJson;
    }

    public void setTrackingJson(JsonNode trackingJson) {
        this.trackingJson = trackingJson;
    }

    public RFA1aForm getRfa1aForm() {
        return rfa1aForm;
    }

    public void setRfa1aForm(RFA1aForm rfa1aForm) {
        this.rfa1aForm = rfa1aForm;
    }

    public List<Rfa02Form> getRfa02Form() {
        return rfa02Forms;
    }

    public void setRfa02Form(List<Rfa02Form> rfa02Forms) {
        this.rfa02Forms = rfa02Forms;
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toStringExclude(this, "rfa02Forms");
    }
}