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

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

    if (this.tocomeintime == null) clone.tocomeintime = null;
    else clone.tocomeintime = (ims.framework.utils.Time) this.tocomeintime.clone();
    clone.appointment = this.appointment;
    if (this.status == null) clone.status = null;
    else clone.status = (ims.scheduling.vo.lookups.Status_Reason) this.status.clone();
    clone.isValidated = this.isValidated;

    this.isBusy = false;
    return clone;
  }