Schedule1Part2A.java
package com.tradecloud.domain.duties;
import com.tradecloud.domain.costing.clean.CostLineNames;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
/**
* Entity representing Schedule 1 Part 2A.
*/
@Entity
@Table(name = "schedule1part2a")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Schedule1Part2A")
public class Schedule1Part2A extends DutySchedule implements Serializable {
private static final long serialVersionUID = 1L;
@Transient
private static final int PART1_MAX_LENGTH = 3;
/**
* The duty rate for this schedule.
*/
@OneToOne(cascade = CascadeType.ALL)
@ForeignKey(name = "fk_dutyrate")
@XmlElement(name = "DutyRate")
private DutyRate dutyRate;
public Schedule1Part2A() {
super();
if (dutyRate == null) {
dutyRate = new DutyRate();
}
}
public Schedule1Part2A(Schedule1Part2A schedule1Part2A) {
super(schedule1Part2A);
dutyRate = new DutyRate(schedule1Part2A.getDutyRate());
}
@Override
public DutyRate getDutyRate() {
return dutyRate;
}
public void setDutyRate(DutyRate dutyRate) {
this.dutyRate = dutyRate;
}
@Override
public Schedule1Part2A clone() {
Schedule1Part2A clone = (Schedule1Part2A) super.clone();
clone.setDutyRate(dutyRate != null ? dutyRate.clone() : null);
clone.setTariffHeading(getTariffHeading() != null ? getTariffHeading().clone() : null);
clone.setValid(isValid());
return clone;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("dutyRate", dutyRate).toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Schedule1Part2A)) {
return false;
}
Schedule1Part2A other = (Schedule1Part2A) obj;
return new EqualsBuilder().appendSuper(super.equals(obj)).append(dutyRate, other.dutyRate).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder().appendSuper(super.hashCode()).append(dutyRate).toHashCode();
}
@Override
protected int getPart1MaxLength() {
return PART1_MAX_LENGTH;
}
@Override
protected boolean getDoCheckProof() {
return true;
}
@Override
protected boolean getDoCheckPercentage() {
return false;
}
@Override
protected boolean getDoCheckValue() {
return true;
}
public String getCostlineCode() {
return CostLineNames.CUSTOMS_EXCISE;
}
@Override
public String getType() {
return "S1P2A";
}
}