Information

0
Story Points

Technologies

Decompiled Java File
package com.mpdmal.cloudental.entities;

import com.mpdmal.cloudental.entities.Activity;
import com.mpdmal.cloudental.entities.Address;
import com.mpdmal.cloudental.entities.Contactinfo;
import com.mpdmal.cloudental.entities.Dentist;
import com.mpdmal.cloudental.entities.Medicalhistory;
import com.mpdmal.cloudental.entities.Patienthistory;
import com.mpdmal.cloudental.entities.Patienttooth;
import com.mpdmal.cloudental.entities.base.DBEntity;
import com.mpdmal.cloudental.util.CloudentUtils;
import com.mpdmal.cloudental.util.CloudentUtils.AddressType;
import com.mpdmal.cloudental.util.CloudentUtils.ContactInfoType;
import com.mpdmal.cloudental.util.exception.base.CloudentException;
import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.persistence.CascadeType;
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.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;

@Entity
public class Patient extends DBEntity implements Serializable {
   private static final long serialVersionUID = 1L;
   @Id
   @GeneratedValue(
      strategy = GenerationType.IDENTITY
   )
   private Integer id;
   private String comments;
   @NotNull
   @Temporal(TemporalType.TIMESTAMP)
   private Date created;
   @NotNull
   @NotEmpty
   private String name;
   @NotNull
   @NotEmpty
   private String surname;
   @NotNull
   @OneToOne(
      cascade = {CascadeType.ALL},
      mappedBy = "patient",
      fetch = FetchType.LAZY
   )
   private Medicalhistory medicalhistory;
   @NotNull
   @OneToOne(
      cascade = {CascadeType.ALL},
      mappedBy = "patient"
   )
   private Patienthistory dentalhistory;
   @NotNull
   @ManyToOne
   @JoinColumn(
      name = "dentistid"
   )
   private Dentist dentist;
   @OneToMany(
      cascade = {CascadeType.ALL},
      mappedBy = "patient",
      fetch = FetchType.LAZY
   )
   private Set addresses;
   @OneToMany(
      cascade = {CascadeType.ALL},
      mappedBy = "patient",
      fetch = FetchType.LAZY
   )
   private Set contactinfo;
   @OneToMany(
      cascade = {CascadeType.ALL},
      mappedBy = "patient",
      fetch = FetchType.LAZY
   )
   private Set teeth;

   public Date getCreated() {
      return this.created;
   }

   public Integer getId() {
      return this.id;
   }

   public String getComments() {
      return this.comments;
   }

   public String getName() {
      return this.name;
   }

   public String getSurname() {
      return this.surname;
   }

   public Dentist getDentist() {
      return this.dentist;
   }

   public Medicalhistory getMedicalhistory() {
      return this.medicalhistory;
   }

   public Patienthistory getDentalHistory() {
      return this.dentalhistory;
   }

   public Set getAddresses() {
      return this.addresses;
   }

   public Set getContactInfo() {
      return this.contactinfo;
   }

   public Set getTeeth() {
      return this.teeth;
   }

   public void setId(Integer id) {
      this.id = id;
   }

   public void setComments(String comments) {
      this.comments = comments;
   }

   public void setCreated(Date created) {
      this.created = created;
   }

   public void setName(String name) {
      this.name = name;
   }

   public void setSurname(String surname) {
      this.surname = surname;
   }

   public void setDentist(Dentist dentist) {
      this.dentist = dentist;
   }

   public void setMedicalhistory(Medicalhistory medicalhistory) {
      this.medicalhistory = medicalhistory;
   }

   public void setDentalhistory(Patienthistory dentalhistory) {
      dentalhistory.setPatient(this);
      this.dentalhistory = dentalhistory;
   }

   public void setAddresses(Set adrs) {
      if(this.addresses == null) {
         this.addresses = new HashSet();
      } else {
         this.addresses.clear();
      }

      Iterator var2 = adrs.iterator();

      while(var2.hasNext()) {
         Address address = (Address)var2.next();
         this.addAddress(address);
      }

   }

   public void addAddress(Address adrs) {
      if(this.addresses == null) {
         this.addresses = new HashSet();
      }

      Iterator var2 = this.addresses.iterator();

      Address address;
      do {
         if(!var2.hasNext()) {
            this.addresses.add(adrs);
            return;
         }

         address = (Address)var2.next();
      } while(address.getId().getAdrstype() != adrs.getId().getAdrstype() || !address.getCity().equals(adrs.getCity()) || !address.getCountry().equals(adrs.getCountry()) || !address.getNumber().equals(adrs.getNumber()) || !address.getPostalcode().equals(adrs.getPostalcode()) || !address.getStreet().equals(adrs.getStreet()));

      CloudentUtils.logWarning("Address already exists, wont add:" + adrs.getStreet());
   }

   public void setContactInfo(Set cnt) {
      if(this.contactinfo == null) {
         this.contactinfo = new HashSet();
      } else {
         this.contactinfo.clear();
      }

      Iterator var2 = cnt.iterator();

      while(var2.hasNext()) {
         Contactinfo contactinfo = (Contactinfo)var2.next();
         this.addContactInfo(contactinfo);
      }

   }

   public void addContactInfo(Contactinfo cnt) {
      if(this.contactinfo == null) {
         this.contactinfo = new HashSet();
      }

      cnt.setPatient(this);
      this.contactinfo.add(cnt);
   }

   public void updateContactInfo(Contactinfo cnt) {
      Iterator var2 = this.contactinfo.iterator();

      Contactinfo info;
      do {
         if(!var2.hasNext()) {
            return;
         }

         info = (Contactinfo)var2.next();
      } while(!info.getId().getInfotype().equals(cnt.getId().getInfotype()));

      info.setId(cnt.getId());
      info.setInfo(cnt.getInfo());
   }

   public void setTeeth(Set teeth) {
      if(this.teeth != null) {
         this.teeth.clear();
      }

      Iterator var2 = teeth.iterator();

      while(var2.hasNext()) {
         Patienttooth patienttooth = (Patienttooth)var2.next();
         this.addTooth(patienttooth);
      }

   }

   public void addTooth(Patienttooth tooth) {
      if(this.teeth == null) {
         this.teeth = new HashSet();
      }

      tooth.setPatient(this);
      this.teeth.add(tooth);
   }

   public Contactinfo getFax() {
      return this.getCinfo(ContactInfoType.FAX.getValue());
   }

   public Contactinfo getEmail() {
      return this.getCinfo(ContactInfoType.EMAIL.getValue());
   }

   public Contactinfo getHomeNumber() {
      return this.getCinfo(ContactInfoType.HOME.getValue());
   }

   public Contactinfo getOfficeNumber() {
      return this.getCinfo(ContactInfoType.OFFICE.getValue());
   }

   public Contactinfo getMobileNumber() {
      return this.getCinfo(ContactInfoType.MOBILE.getValue());
   }

   public Address getOfficeAddress() {
      return this.getAddress(AddressType.OFFICE.getValue());
   }

   public Address getBillingAddress() {
      return this.getAddress(AddressType.BILLING.getValue());
   }

   public Address getHomeAddress() {
      return this.getAddress(AddressType.HOME.getValue());
   }

   public String getXML() {
      StringBuilder ans = new StringBuilder("<patient></patient>");
      ans.insert(ans.indexOf("</patient"), "<id>" + this.id + "</id>");
      ans.insert(ans.indexOf("</patient"), "<name>" + this.name + "</name>");
      ans.insert(ans.indexOf("</patient"), "<surname>" + this.surname + "</surname>");
      ans.insert(ans.indexOf("</patient"), "<created>" + this.created + "</created>");
      ans.insert(ans.indexOf("</patient"), "<comments>" + this.comments + "</comments>");
      ans.insert(ans.indexOf("</patient"), "<contactinfo>");
      Iterator var2 = this.contactinfo.iterator();

      while(var2.hasNext()) {
         Contactinfo tooth = (Contactinfo)var2.next();
         ans.insert(ans.indexOf("</patient"), tooth.getXML());
      }

      var2 = this.addresses.iterator();

      while(var2.hasNext()) {
         Address tooth1 = (Address)var2.next();
         ans.insert(ans.indexOf("</patient"), tooth1.getXML());
      }

      ans.insert(ans.indexOf("</patient"), "</contactinfo>");
      ans.insert(ans.indexOf("</patient"), this.medicalhistory.getXML());
      ans.insert(ans.indexOf("</patient"), "<mouth>");
      var2 = this.teeth.iterator();

      while(var2.hasNext()) {
         Patienttooth tooth2 = (Patienttooth)var2.next();
         ans.insert(ans.indexOf("</patient"), tooth2.getXML());
      }

      ans.insert(ans.indexOf("</patient"), "</mouth>");
      ans.insert(ans.indexOf("</patient"), this.dentalhistory.getXML());
      return ans.toString();
   }

   public String unboxPatient() {
      String ans = this.id + " " + this.name + " " + this.surname;
      Iterator var2 = this.dentalhistory.getActivities().iterator();

      Activity act;
      do {
         if(!var2.hasNext()) {
            return ans;
         }

         act = (Activity)var2.next();
      } while(!act.getDescription().equals("def act| cdent"));

      return ans + " " + act.getId();
   }

   public static Patient boxPatient(String value) throws CloudentException {
      Patient ans = new Patient();
      String[] vals = value.split(" ");
      ans.setId(Integer.valueOf(Integer.parseInt(vals[0])));
      ans.setName(vals[1]);
      ans.setSurname(vals[2]);
      if(vals.length == 4) {
         Patienthistory ph = new Patienthistory();
         Activity activity = new Activity();
         activity.setId(Integer.valueOf(Integer.parseInt(vals[3])));
         ph.addActivity(activity);
         ans.setDentalhistory(ph);
      }

      return ans;
   }

   private Address getAddress(int type) {
      Iterator var2 = this.addresses.iterator();

      Address adrs;
      do {
         if(!var2.hasNext()) {
            return null;
         }

         adrs = (Address)var2.next();
      } while(adrs.getId().getAdrstype().intValue() != type);

      return adrs;
   }

   private Contactinfo getCinfo(int type) {
      Iterator var2 = this.contactinfo.iterator();

      Contactinfo cinfo;
      do {
         if(!var2.hasNext()) {
            return null;
         }

         cinfo = (Contactinfo)var2.next();
      } while(cinfo.getId().getInfotype().intValue() != type);

      return cinfo;
   }

   public String getUIFriendlyString() {
      return this.name + " " + this.surname;
   }
}
Page generated: Oct 19, 2017 2:34:39 PM