public Object clone() {
    if (this.isBusy) return this;
    this.isBusy = true;

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

    if (this.clinicalcontact == null) clone.clinicalcontact = null;
    else clone.clinicalcontact = (ims.core.vo.ClinicalContactShortVo) this.clinicalcontact.clone();
    if (this.authoringdatetime == null) clone.authoringdatetime = null;
    else clone.authoringdatetime = (ims.framework.utils.DateTime) this.authoringdatetime.clone();
    if (this.authoringcp == null) clone.authoringcp = null;
    else clone.authoringcp = (ims.core.vo.Hcp) this.authoringcp.clone();
    if (this.complementarytherapy == null) clone.complementarytherapy = null;
    else
      clone.complementarytherapy =
          (ims.therapies.vo.ComplementaryTherapyDetailsVoCollection)
              this.complementarytherapy.clone();
    clone.isValidated = this.isValidated;

    this.isBusy = false;
    return clone;
  }