public void setVisibilityPeriod(Period period) {
   if (period.isBeginNotDefined()) {
     setBeginDate(null);
     setBeginHour(null);
   } else {
     setBeginDate(period.getBeginDate());
     setBeginHour(DateUtil.formatTime(period.getBeginDate()));
   }
   if (period.isEndNotDefined()) {
     setEndDate(null);
     setEndHour(null);
   } else {
     setEndDate(period.getEndDate());
     setEndHour(DateUtil.formatTime(period.getEndDate()));
   }
 }
  @Override
  public Object clone() {
    PublicationDetail clone = new PublicationDetail();
    clone.setAuthor(author);
    clone.setBeginDate(beginDate);
    clone.setBeginHour(beginHour);
    clone.setContent(content);
    clone.setCreationDate(creationDate);
    clone.setCreatorId(creatorId);
    clone.setDescription(getDescription());
    clone.setEndDate(endDate);
    clone.setEndHour(endHour);
    clone.setImportance(importance);
    clone.setInfoId(infoId);
    clone.setKeywords(keywords);
    clone.setName(getName());
    clone.setPk(pk);
    clone.setStatus(status);
    clone.setTargetValidatorId(targetValidatorId);
    clone.setCloneId(cloneId);
    clone.setUpdateDate(updateDate);
    clone.setUpdaterId(updaterId);
    clone.setValidateDate(validateDate);
    clone.setValidatorId(validatorId);
    clone.setVersion(version);

    return clone;
  }