// Copy constructor
 // @param other other StagingSchemaInput
 public StagingSchemaInput(StagingSchemaInput other)
 {
     setKey(other.getKey());
     setName(other.getName());
     setDescription(other.getDescription());
     setNaaccrItem(other.getNaaccrItem());
     setDefault(other.getDefault());
     setTable(other.getTable());
     if (other.getMetadata() != null)
     {
         setMetadata(new HashSet <String>(other.getMetadata()));
     }
     setUsedForStaging(other.getUsedForStaging());
     setUnit(other.getUnit());
     setDecimalPlaces(other.getDecimalPlaces());
     ComputeHashCode();
 }
        public override bool Equals(Object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (o == null || GetType() != o.GetType())
            {
                return(false);
            }

            StagingSchemaInput that = (StagingSchemaInput)o;

            bool bRetval = true;

            // do not include _parsedValues
            bRetval = (_key == that._key) &&
                      (_name == that._name) &&
                      (_description == that._description) &&
                      (_naaccrItem == that._naaccrItem) &&
                      (_default == that._default) &&
                      (_table == that._table) &&
                      (_usedForStaging == that._usedForStaging) &&
                      (_unit == that._unit) &&
                      (_decimalPlaces == that._decimalPlaces);

            if (bRetval)
            {
                if ((_metadata == null) && (that._metadata == null))
                {
                    bRetval = true;
                }
                else if (((_metadata != null) && (that._metadata == null)) ||
                         ((_metadata == null) && (that._metadata != null)))
                {
                    bRetval = false;
                }
                else if ((_metadata != null) && (that._metadata != null))
                {
                    bRetval = (_metadata.SetEquals(that._metadata));
                }
            }

            return(bRetval);
        }