/** performs a deep copy of all the attributes of the field */
 public FieldMetaData deepCopy() {
   FieldMetaData fieldCopy = new ElementaryFieldMetaData(new String(myName), myRecord.getName());
   fieldCopy.setIsFieldRedefine(isRedefine);
   fieldCopy.setDecimalPosition(decimalPosition);
   fieldCopy.setArraySize(myArraySize);
   fieldCopy.setSize(mySize);
   fieldCopy.setOffset(myOffset);
   fieldCopy.setType(myType);
   if (isFieldRedefine()) {
     fieldCopy.setFieldRedefined(myFieldRedefined.deepCopy());
   }
   fieldCopy.setDependentFieldName(new String(myDependentFieldName));
   fieldCopy.setIsSigned(isSigned);
   return fieldCopy;
 }