public Object clone() throws CloneNotSupportedException {
   final MailDefinition mailDefinition = (MailDefinition) super.clone();
   mailDefinition.bodyReport = (MasterReport) bodyReport.clone();
   mailDefinition.attachmentTypes = (ArrayList) attachmentTypes.clone();
   mailDefinition.attachmentReports = (ArrayList) attachmentReports.clone();
   mailDefinition.attachmentReports.clear();
   for (int i = 0; i < attachmentReports.size(); i++) {
     final MasterReport report = (MasterReport) attachmentReports.get(i);
     mailDefinition.attachmentReports.add(report.clone());
   }
   return mailDefinition;
 }