/**
         * Compares for reference equality and value equality.
         */
        public bool equals(MinefieldDataPdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            ivarsEqual = base.Equals(rhs);

            if (!(_minefieldID.Equals(rhs._minefieldID)))
            {
                ivarsEqual = false;
            }
            if (!(_requestingEntityID.Equals(rhs._requestingEntityID)))
            {
                ivarsEqual = false;
            }
            if (!(_minefieldSequenceNumbeer == rhs._minefieldSequenceNumbeer))
            {
                ivarsEqual = false;
            }
            if (!(_requestID == rhs._requestID))
            {
                ivarsEqual = false;
            }
            if (!(_pduSequenceNumber == rhs._pduSequenceNumber))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfPdus == rhs._numberOfPdus))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfMinesInThisPdu == rhs._numberOfMinesInThisPdu))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfSensorTypes == rhs._numberOfSensorTypes))
            {
                ivarsEqual = false;
            }
            if (!(_pad2 == rhs._pad2))
            {
                ivarsEqual = false;
            }
            if (!(_dataFilter == rhs._dataFilter))
            {
                ivarsEqual = false;
            }
            if (!(_mineType.Equals(rhs._mineType)))
            {
                ivarsEqual = false;
            }

            if (!(_sensorTypes.Count == rhs._sensorTypes.Count))
            {
                ivarsEqual = false;
            }
            if (ivarsEqual)
            {
                for (int idx = 0; idx < _sensorTypes.Count; idx++)
                {
                    if (!(_sensorTypes[idx].Equals(rhs._sensorTypes[idx])))
                    {
                        ivarsEqual = false;
                    }
                }
            }

            if (!(_pad3 == rhs._pad3))
            {
                ivarsEqual = false;
            }

            if (!(_mineLocation.Count == rhs._mineLocation.Count))
            {
                ivarsEqual = false;
            }
            if (ivarsEqual)
            {
                for (int idx = 0; idx < _mineLocation.Count; idx++)
                {
                    if (!(_mineLocation[idx].Equals(rhs._mineLocation[idx])))
                    {
                        ivarsEqual = false;
                    }
                }
            }


            return(ivarsEqual);
        }
        /**
         * Compares for reference equality and value equality.
         */
        public bool equals(MinefieldDataPdu rhs)
        {
            bool ivarsEqual = true;

            if(rhs.GetType() != this.GetType())
                return false;

            ivarsEqual = base.Equals(rhs);

            if( ! (_minefieldID.Equals( rhs._minefieldID) )) ivarsEqual = false;
            if( ! (_requestingEntityID.Equals( rhs._requestingEntityID) )) ivarsEqual = false;
            if( ! (_minefieldSequenceNumbeer == rhs._minefieldSequenceNumbeer)) ivarsEqual = false;
            if( ! (_requestID == rhs._requestID)) ivarsEqual = false;
            if( ! (_pduSequenceNumber == rhs._pduSequenceNumber)) ivarsEqual = false;
            if( ! (_numberOfPdus == rhs._numberOfPdus)) ivarsEqual = false;
            if( ! (_numberOfMinesInThisPdu == rhs._numberOfMinesInThisPdu)) ivarsEqual = false;
            if( ! (_numberOfSensorTypes == rhs._numberOfSensorTypes)) ivarsEqual = false;
            if( ! (_pad2 == rhs._pad2)) ivarsEqual = false;
            if( ! (_dataFilter == rhs._dataFilter)) ivarsEqual = false;
            if( ! (_mineType.Equals( rhs._mineType) )) ivarsEqual = false;

            if( ! (_sensorTypes.Count == rhs._sensorTypes.Count)) ivarsEqual = false;
            if(ivarsEqual)
            {
                for(int idx = 0; idx < _sensorTypes.Count; idx++)
                {
                    if( ! ( _sensorTypes[idx].Equals(rhs._sensorTypes[idx]))) ivarsEqual = false;
                }
            }

            if( ! (_pad3 == rhs._pad3)) ivarsEqual = false;

            if( ! (_mineLocation.Count == rhs._mineLocation.Count)) ivarsEqual = false;
            if(ivarsEqual)
            {
                for(int idx = 0; idx < _mineLocation.Count; idx++)
                {
                    if( ! ( _mineLocation[idx].Equals(rhs._mineLocation[idx]))) ivarsEqual = false;
                }
            }

            return ivarsEqual;
        }