public static void doEnumValidation(PdxInstance pdxInst) throws TestException { boolean doEnumValidation = PdxPrms.getDoEnumValidation(); if (!doEnumValidation) { return; // we are running in a 661 mode in a 662 jvm; 661 does not have pdx enums // or are converting from 661 to 662 (this might be a 662 jvm, but it could // do a get from a 661 jvm, then the returned object will not be in 662 form // for enums } if (pdxInst.isEnum()) { throw new TestException("isEnum() on " + pdxInst + " returned true"); } String className = pdxInst.getClassName(); if (!className.equals("util.VersionedValueHolder") && !className.equals("util.PdxVersionedValueHolder")) { throw new TestException("getClassName() on " + pdxInst + " returned " + className); } Object enumObj = pdxInst.getField("aDay"); if (enumObj != null) { if (!(enumObj instanceof PdxInstance)) { throw new TestException("Expected enum field aDay to be a PdxInstance but it is " + TestHelper.toString(enumObj)); } PdxInstance enumPdxInst = (PdxInstance)enumObj; className = enumPdxInst.getClassName(); if (!className.equals("util.VersionedValueHolder$Day")) { throw new TestException("getClassName() on " + enumPdxInst + " returned " + className); } } }
public void testIsIdentityField() throws IOException, ClassNotFoundException { setupSerializer(new ExplicitIdentityAutoSerializer(false, "com.gemstone.gemfire.pdx.DomainObjectPdxAuto"), true); DomainObject objOut = new DomainObjectPdxAuto(4); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(objOut, out); DataSerializer.writeObject(objOut, out); DataInputStream dis = new DataInputStream( new ByteArrayInputStream(out.toByteArray())); PdxInstance pi = (PdxInstance)DataSerializer.readObject(dis); PdxInstance pi2 = (PdxInstance)DataSerializer.readObject(dis); assertEquals(true, pi.isIdentityField("long_0")); assertEquals(false, pi.isIdentityField("string_0")); assertEquals(false, pi.isEnum()); assertEquals(objOut.getClass().getName(), pi.getClassName()); assertEquals(objOut, pi.getObject()); assertEquals(objOut, pi2.getObject()); } public static class ExplicitIncludedAutoSerializer extends ReflectionBasedAutoSerializer {
if(left instanceof PdxInstance && !(right instanceof PdxInstance) && ((PdxInstance)left).getClassName().equals(right.getClass().getName())) { left = ((PdxInstance)left).getObject(); } else if(right instanceof PdxInstance && !(left instanceof PdxInstance) && ((PdxInstance)right).getClassName().equals(left.getClass().getName())) { right = ((PdxInstance)right).getObject();
if (obj.getClass().getName().equals(pdx.getClassName())) { GemFireCacheImpl gfc = GemFireCacheImpl.getForPdx("Could not access Pdx registry"); if (gfc != null) {
if (obj.getClass().getName().equals(pdx.getClassName())) { GemFireCacheImpl gfc = GemFireCacheImpl.getForPdx("Could not access Pdx registry"); if (gfc != null) {
assertEquals(false, e0.hasField("bogus")); assertEquals(null, e0.getField("bogus")); assertEquals(Coin.class.getName(), e0.getClassName()); assertEquals(Coin.HEADS.name(), e0.getField("name")); assertEquals(Coin.HEADS.ordinal(), e0.getField("ordinal"));
String className = ((PdxInstance)evalRcvr).getClassName(); try { resolveClass = InternalDataSerializer.getCachedClass(className);
String className = ((PdxInstance)evalRcvr).getClassName(); try { resolveClass = InternalDataSerializer.getCachedClass(className);
assertEquals(true, epi.hasField("name")); assertEquals(true, epi.hasField("ordinal")); assertEquals("com.gemstone.gemfire.pdx.DomainObjectPdxAuto$Day", epi.getClassName()); assertEquals("FRIDAY", epi.getField("name")); assertEquals(DomainObjectPdxAuto.Day.FRIDAY.ordinal(), epi.getField("ordinal"));