@Override
    public boolean equals(Object o) {
      if (!(o instanceof BasicAllFieldTypes)) {
        return false;
      }
      BasicAllFieldTypes other = (BasicAllFieldTypes) o;
      if (aChar != other.aChar) {
        System.out.println("!= aChar");
        return false;
      }
      if (aByte != other.aByte) {
        System.out.println("!= aByte");
        return false;
      }
      if (aBoolean != other.aBoolean) {
        System.out.println("!= aBoolean");
        return false;
      }
      if (aShort != other.aShort) {
        System.out.println("!= aShort");
        return false;
      }
      if (anInt != other.anInt) {
        System.out.println("!= anInt");
        return false;
      }
      if (aLong != other.aLong) {
        System.out.println("!= aLong");
        return false;
      }
      if (aFloat != other.aFloat) {
        System.out.println("!= aFloat");
        return false;
      }
      if (aDouble != other.aDouble) {
        System.out.println("!= aDouble");
        return false;
      }
      if (!basicEquals(aDate, other.aDate)) {
        System.out.println("!= aDate");
        return false;
      }
      if (!basicEquals(aString, other.aString)) {
        System.out.println("!= aString");
        return false;
      }
      if (!basicEquals(anObject, other.anObject)) {
        System.out.println("!= nObject");
        return false;
      }
      if (!basicEquals(aMap, other.aMap)) {
        System.out.println("!= aMap");
        return false;
      }
      if (!basicEquals(aCollection, other.aCollection)) {
        System.out.println("!= aCollection");
        return false;
      }
      // if (!basicEquals(this.aRegion, other.aRegion)) {
      // return false;
      // }
      if (!Arrays.equals(aBooleanArray, other.aBooleanArray)) {
        System.out.println("!= boolean[]");
        return false;
      }
      if (!Arrays.equals(aCharArray, other.aCharArray)) {
        System.out.println("!= char[]");
        return false;
      }
      if (!Arrays.equals(aByteArray, other.aByteArray)) {
        System.out.println("!= byte[]");
        return false;
      }
      if (!Arrays.equals(aShortArray, other.aShortArray)) {
        System.out.println("!= short[]");
        return false;
      }
      if (!Arrays.equals(anIntArray, other.anIntArray)) {
        System.out.println("!= int[]");
        return false;
      }
      if (!Arrays.equals(aLongArray, other.aLongArray)) {
        System.out.println("!= long[]");
        return false;
      }
      if (!Arrays.equals(aFloatArray, other.aFloatArray)) {
        System.out.println("!= float[]");
        return false;
      }
      if (!Arrays.equals(aDoubleArray, other.aDoubleArray)) {
        System.out.println("!= double[]");
        return false;
      }
      if (!Arrays.equals(aStringArray, other.aStringArray)) {
        System.out.println("!= String[]");
        return false;
      }
      if (!Arrays.equals(anObjectArray, other.anObjectArray)) {
        System.out.println("!= Object[]");
        return false;
      }
      if (!byteArrayofArraysEqual(anArrayOfByteArray, other.anArrayOfByteArray)) {
        System.out.println("!= byte[][]");
        return false;
      }
      return true;
    }
Init fields using base as appropriate, but does not initialize aQueryObject field.

@param base The base value for all fields. Fields are all set to a value using base as
       appropriate.
@param useNulls If true, fill in nulls for those fields that can be set to null (to test null
       values), if false, then use a valid value (to test non-null values).
geode-core/src/integrationTest/java/org/apache/geode/pdx/PdxSerializableJUnitTest.java