Red Hat Application Migration Toolkit
package com.mpdmal.cloudental.entities;
import com.mpdmal.cloudental.entities.Discount;
import com.mpdmal.cloudental.entities.Patienthistory;
import com.mpdmal.cloudental.entities.PricelistItem;
import com.mpdmal.cloudental.entities.Visit;
import com.mpdmal.cloudental.entities.base.DBEntity;
import com.mpdmal.cloudental.util.CloudentUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
@Entity
public class Activity extends DBEntity implements Serializable {
private static final long serialVersionUID = 1L;
public static final String DEFAULT_ACTIVITY_IDENTIFIER_DESCR = "def act| cdent";
@Id
@GeneratedValue(
strategy = GenerationType.IDENTITY
)
private Integer id;
@NotNull
private String description;
@Temporal(TemporalType.TIMESTAMP)
private Date enddate;
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date startdate;
@NotNull
@ManyToOne(
fetch = FetchType.LAZY
)
@JoinColumn(
name = "patienthistid"
)
private Patienthistory patienthistory;
@NotNull
@ManyToOne(
fetch = FetchType.LAZY
)
@JoinColumn(
name = "priceable"
)
private PricelistItem priceable;
@NotNull
@ManyToOne(
fetch = FetchType.LAZY
)
@JoinColumn(
name = "discount"
)
private Discount discount;
@OneToMany(
cascade = {CascadeType.ALL},
mappedBy = "activity",
fetch = FetchType.EAGER
)
private Collection visits;
@NotNull
private boolean isopen = true;
@Column(
precision = 131089
)
private BigDecimal price;
public Integer getId() {
return this.id;
}
public void setOpen(boolean isOpen) {
if(this.enddate == null) {
CloudentUtils.logError("wont close an activity without an enddate " + this.getId() + "|" + this.getDescription());
} else {
this.isopen = isOpen;
}
}
public void setId(Integer id) {
this.id = id;
}
public void setDescription(String description) {
this.description = description;
}
public void setEnddate(Date enddate) {
if(enddate != null && enddate.getTime() > this.startdate.getTime()) {
this.enddate = enddate;
CloudentUtils.logMessage("Activity closed " + this.id + "(" + this.description + ")");
this.isopen = false;
}
}
public void setStartdate(Date startdate) {
this.startdate = startdate;
}
public void setPriceable(PricelistItem priceable) {
this.priceable = priceable;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
public void setPatienthistory(Patienthistory patienthistory) {
this.patienthistory = patienthistory;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public void setVisits(Collection visits) {
if(visits == null) {
visits = new ArrayList();
} else {
((Collection)visits).clear();
}
Iterator var2 = ((Collection)visits).iterator();
while(var2.hasNext()) {
Visit visit = (Visit)var2.next();
this.addVisit(visit);
}
}
public void addVisit(Visit v) {
if(this.visits == null) {
this.visits = new ArrayList();
}
this.visits.add(v);
}
public void removeVisit(Visit v) {
if(this.visits.contains(v)) {
this.visits.remove(v);
}
}
public String getDescription() {
return this.description;
}
public Date getEnddate() {
return this.enddate;
}
public Date getStartdate() {
return this.startdate;
}
public PricelistItem getPriceable() {
return this.priceable;
}
public Discount getDiscount() {
return this.discount;
}
public Patienthistory getPatienthistory() {
return this.patienthistory;
}
public Collection getVisits() {
return this.visits;
}
public BigDecimal getPrice() {
return this.price;
}
public boolean isOpen() {
return this.isopen;
}
public String getXML() {
StringBuilder ans = new StringBuilder("<activity></activity>");
ans.insert(ans.indexOf("</activity"), "<description>" + this.description + "</description>");
ans.insert(ans.indexOf("</activity"), "<price>" + this.priceable.getPrice() + "</price>");
ans.insert(ans.indexOf("</activity"), "<isOpen>" + this.isopen + "</isOpen>");
ans.insert(ans.indexOf("</activity"), "<startdate>" + this.startdate + "</startdate>");
ans.insert(ans.indexOf("</activity"), "<enddate>" + this.enddate + "</enddate>");
ans.insert(ans.indexOf("</activity"), "<visits>");
if(this.visits != null) {
Iterator var2 = this.visits.iterator();
while(var2.hasNext()) {
Visit visit = (Visit)var2.next();
ans.insert(ans.indexOf("</activity"), visit.getXML());
}
}
ans.insert(ans.indexOf("</activity"), "</visits>");
return ans.toString();
}
}