public int compareTo(Object obj, boolean caseInsensitive) {
   if (obj == null) {
     return -1;
   }
   if (caseInsensitive) ; // this is to avoid eclipse warning only.
   if (!(NeuroSenastionFindingsVo.class.isAssignableFrom(obj.getClass()))) {
     throw new ClassCastException(
         "A NeuroSenastionFindingsVo object cannot be compared an Object of type "
             + obj.getClass().getName());
   }
   NeuroSenastionFindingsVo compareObj = (NeuroSenastionFindingsVo) obj;
   int retVal = 0;
   if (retVal == 0) {
     if (this.getSysInfo() == null && compareObj.getSysInfo() != null) return -1;
     if (this.getSysInfo() != null && compareObj.getSysInfo() == null) return 1;
     if (this.getSysInfo() != null && compareObj.getSysInfo() != null)
       retVal = this.getSysInfo().compareTo(compareObj.getSysInfo());
   }
   return retVal;
 }
  public Object clone() {
    if (this.isBusy) return this;
    this.isBusy = true;

    NeuroSenastionFindingsVo clone = new NeuroSenastionFindingsVo(this.id, this.version);

    if (this.rootfinding == null) clone.rootfinding = null;
    else
      clone.rootfinding =
          (ims.generalmedical.vo.NeuroSensationRootValueVoCollection) this.rootfinding.clone();
    if (this.rightsensorylevel == null) clone.rightsensorylevel = null;
    else clone.rightsensorylevel = (ims.core.vo.VertebrallevelVo) this.rightsensorylevel.clone();
    if (this.leftsensorylevel == null) clone.leftsensorylevel = null;
    else clone.leftsensorylevel = (ims.core.vo.VertebrallevelVo) this.leftsensorylevel.clone();
    if (this.franklegrade == null) clone.franklegrade = null;
    else
      clone.franklegrade =
          (ims.spinalinjuries.vo.lookups.MSKSensationFrankelGrade) this.franklegrade.clone();
    clone.isproblem = this.isproblem;
    if (this.clinicalcontact == null) clone.clinicalcontact = null;
    else clone.clinicalcontact = (ims.core.vo.ClinicalContactShortVo) this.clinicalcontact.clone();
    if (this.authoringcp == null) clone.authoringcp = null;
    else clone.authoringcp = (ims.core.vo.HcpLiteVo) this.authoringcp.clone();
    if (this.authoringdatetime == null) clone.authoringdatetime = null;
    else clone.authoringdatetime = (ims.framework.utils.DateTime) this.authoringdatetime.clone();
    clone.carecontext = this.carecontext;
    if (this.sysinfo == null) clone.sysinfo = null;
    else clone.sysinfo = (ims.vo.SystemInformation) this.sysinfo.clone();
    clone.isValidated = this.isValidated;

    this.isBusy = false;
    return clone;
  }