当前位置: 首页>>代码示例>>Java>>正文


Java PdxInstance类代码示例

本文整理汇总了Java中com.gemstone.gemfire.pdx.PdxInstance的典型用法代码示例。如果您正苦于以下问题:Java PdxInstance类的具体用法?Java PdxInstance怎么用?Java PdxInstance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PdxInstance类属于com.gemstone.gemfire.pdx包,在下文中一共展示了PdxInstance类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: convertObjToJsonString

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
public static String convertObjToJsonString(Object obj) {
  if (obj == null || (obj instanceof Map && ((Map)obj).isEmpty())) {
    return null;
  }
  
  if (obj instanceof Map) {
    return toJSON((Map)obj);
  }
  else if (obj instanceof List) {
    return toJSON((List)obj);
  }
  else if (obj instanceof PdxInstance) {
    return JSONFormatter.toJSON((PdxInstance)obj);
  }
  else {
    return obj.toString();
  }
  
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:20,代码来源:JSONProcedures.java

示例2: toJSON

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
private static <K, V> String toJSON(Map map) {
  StringBuilder sb = new StringBuilder();
  String delim = "";
  for (Map.Entry<K, V> entry : ((Map<K, V>)map).entrySet()) {
    sb.append(delim);
    if (entry.getValue() instanceof PdxInstance) {
      sb.append(JSONFormatter.toJSON((PdxInstance)entry.getValue()));
      delim = ",\n";
    }
    else if (entry.getValue() instanceof List) {
      sb.append(toJSON((List)entry.getValue()));
      delim = ",\n";
    }
    else {
      sb.append(entry.getValue());
      delim = ",";
    }
  }
  return sb.toString();
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:21,代码来源:JSONProcedures.java

示例3: isWellKnownImmutableInstance

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/**
 * Return true if the given object is an instance of a well known
 * immutable class.
 * The well known classes are:
 * <ul>
 * <li>String
 * <li>Byte
 * <li>Character
 * <li>Short
 * <li>Integer
 * <li>Long
 * <li>Float
 * <li>Double
 * <li>BigInteger
 * <li>BigDecimal
 * <li>UUID
 * <li>PdxInstance but not WritablePdxInstance
 * </ul>
 * @param o the object to check
 * @return true if o is an instance of a well known immutable class.
 * @since 6.6.2
 */
public static boolean isWellKnownImmutableInstance(Object o, Class<?> c) {
  if (c == String.class) {
    return true;
  }
  if (o instanceof Number) {
    if (c == Integer.class) return true;
    if (c == Long.class) return true;
    if (c == Byte.class) return true;
    if (c == Short.class) return true;
    if (c == Float.class) return true;
    if (c == Double.class) return true;
    // subclasses of non-final classes may be mutable
    if (c == BigInteger.class) return true;
    if (c == BigDecimal.class) return true;
  }
  if (o instanceof PdxInstance && !(o instanceof WritablePdxInstance)) {
    // no need to copy since it is immutable
    return true;
  }
  if (c == Character.class) return true;
  if (o instanceof UUID) return true;
  return false;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:46,代码来源:CopyHelper.java

示例4: pdxToJson

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
private static String pdxToJson(PdxInstance obj) {
  if(obj!=null){
    try{
      GfJsonObject json = new GfJsonObject();
      for(String field : obj.getFieldNames()){
        Object fieldValue = obj.getField(field);
        if(fieldValue!=null){
          if(JsonUtil.isPrimitiveOrWrapper(fieldValue.getClass())){
            json.put(field, fieldValue);
          }else{
            json.put(field, fieldValue.getClass());
          }
        }
      }
      return json.toString();
    }catch(GfJsonException e){        
      return null;
    }
  }
  return null;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:22,代码来源:DataCommandFunction.java

示例5: readPdxEnum

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/**
 * @throws IOException
 * since 6.6.2
 */
private static Object readPdxEnum(DataInput in) throws IOException {
  int dsId = in.readByte();
  int tmp = readArrayLength(in);
  int enumId = (dsId << 24) | (tmp & 0xFFFFFF);
  if (DEBUG) {
    logger.info(LocalizedStrings.DEBUG, "read PdxEnum id=" + enumId);
  }
  GemFireCacheImpl gfc = GemFireCacheImpl.getForPdx("PDX registry is unavailable because the Cache has been closed.");
  TypeRegistry tr = gfc.getPdxRegistry();
  
  Object result = tr.getEnumById(enumId);
  if (result instanceof PdxInstance) {
    getDMStats(gfc).incPdxInstanceCreations();
  }
  return result;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:21,代码来源:InternalDataSerializer.java

示例6: prepareValueForCache

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/**
 * Prepares and returns a value to be stored in the cache.
 * Current prep is to make sure a PdxInstance is not stored in the cache
 * and to copy values into offheap memory of the region is using off heap storage.
 * 
 * @param r the region the prepared object will be stored in
 * @param val the value that will be stored
 * @return the prepared value
 */
public static Object prepareValueForCache(RegionEntryContext r, Object val) {
  Object nv = val;
  if (nv instanceof PdxInstance) {
    // We do not want to put PDXs in the cache as values.
    // So get the serialized bytes and use a CachedDeserializable.
    try {
      byte[] data = ((ConvertableToBytes)nv).toBytes();
      byte[] compressedData = compressBytes(r, data);
      if (data == compressedData) {
        nv = CachedDeserializableFactory.create(data);
      } else {
        nv = compressedData;
      }
    } catch (IOException e) {
      throw new PdxSerializationException("Could not convert " + nv + " to bytes", e);
    }
  } else {
    nv = AbstractRegionEntry.compress(r, nv);
  }
  return nv;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:31,代码来源:AbstractRegionMap.java

示例7: create

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/**
 * Creates and returns an instance of CachedDeserializable that contains the
 * specified object (that is not a byte[]).
 * 
 * Always check for {@link #preferObject()} before invoking this.
 */
public static CachedDeserializable create(Object object, int serializedSize) {
  Assert.assertTrue(!PREFER_RAW_OBJECT,
      "should not be invoked for gemfire.PREFER_RAW_OBJECT");
  if (STORE_ALL_VALUE_FORMS) {
    return new StoreAllCachedDeserializable(object);
  }
  else if (PREFER_DESERIALIZED) {
    if (object instanceof PdxInstance && cachePrefersPdx()) {
      return new PreferBytesCachedDeserializable(object);

    } else {
      return new VMCachedDeserializable(object, serializedSize);
    }
  } else {
    return new PreferBytesCachedDeserializable(object);
  }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:24,代码来源:CachedDeserializableFactory.java

示例8: checkEquals

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
static boolean checkEquals(@Unretained Object v1, @Unretained Object v2) {
  // need to give PdxInstance#equals priority
  if (v1 instanceof PdxInstance) {
    return checkPdxEquals((PdxInstance)v1, v2);
  } else if (v2 instanceof PdxInstance) {
    return checkPdxEquals((PdxInstance)v2, v1);
  } else if (v1 instanceof OffHeapCachedDeserializable) {
    return checkOffHeapEquals((OffHeapCachedDeserializable)v1, v2);
  } else if (v2 instanceof OffHeapCachedDeserializable) {
    return checkOffHeapEquals((OffHeapCachedDeserializable)v2, v1);
  } else if (v1 instanceof CachedDeserializable) {
    return checkCDEquals((CachedDeserializable)v1, v2);
  } else if (v2 instanceof CachedDeserializable) {
    return checkCDEquals((CachedDeserializable)v2, v1);
  } else {
    if (v2 != null) {
      return v2.equals(v1);
    } else {
      return v1 == null;
    }
  }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:23,代码来源:AbstractRegionEntry.java

示例9: verifyAndGetPdxDomainObject

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
private Object verifyAndGetPdxDomainObject(Object value) {
  if (value instanceof Struct) {
    // Doing hasPdx check first, since its cheaper.
    if (((StructImpl)value).isHasPdx() && !((GemFireCacheImpl)
        this.region.getCache()).getPdxReadSerializedByAnyGemFireServices()) {
      // Set the pdx values for the struct object.
      StructImpl v = (StructImpl)value;
      Object[] fieldValues = v.getPdxFieldValues();
      return new StructImpl((StructTypeImpl)v.getStructType(), fieldValues);
    }
  } else if (value instanceof PdxInstance && !((GemFireCacheImpl) 
      this.region.getCache()).getPdxReadSerializedByAnyGemFireServices()) {
    return ((PdxInstance)value).getObject();
  }
  return value;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:17,代码来源:AbstractIndex.java

示例10: StructImpl

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/** Creates a new instance of StructImpl */
public StructImpl(StructTypeImpl type, Object[] values) {
  if (type == null) {
    throw new IllegalArgumentException(LocalizedStrings.StructImpl_TYPE_MUST_NOT_BE_NULL.toLocalizedString());
  }
  this.type = type;
  this.values = values;
  if (this.values != null) {
    for (Object o : values) {
      if (o instanceof PdxInstance || o instanceof PdxString) {
        this.hasPdx = true;
        break;
      } 
    }
  }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:17,代码来源:StructImpl.java

示例11: getPdxFieldValues

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/**
 * Helper method, Returns field values, in case of PdxInstance 
 * gets the domain objects.
 */
public Object[] getPdxFieldValues() {
  if (this.values == null) {
    return new Object[0];
  }
  
  Object[] fValues = new Object[this.values.length];
  for (int i=0; i < this.values.length; i++) {
    if (this.values[i] instanceof PdxInstance) {
      fValues[i] = ((PdxInstance)this.values[i]).getObject();
    }
    else if (this.values[i] instanceof PdxString) {
      fValues[i] = ((PdxString)this.values[i]).toString();
    } else {
      fValues[i] = this.values[i];
    }
  }
  return fValues;
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:23,代码来源:StructImpl.java

示例12: startGUIUpdateThread

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
private void startGUIUpdateThread() {
  this.guiUpdateThread = new Thread("wanActiveActive GUI update thread") {
    public void run() {
      while (true) {
        try {
          Region region = CacheFactory.getAnyInstance().getRegion("/wanActiveActive");
          if (region != null) {
            PdxInstance serializedValue = (PdxInstance)region.get("MyValue");
            if (serializedValue != null) {
              dialog.setModification(Value.getModification(serializedValue));
              dialog.setHistory(Value.getHistory(serializedValue).toString());
            }
          }
          try { Thread.sleep(2000); } catch (InterruptedException e) { return; }
        } catch (CacheClosedException e) {
          return;
        } catch (RuntimeException e) {
          e.printStackTrace();
          return;
        }
      }
    }
  };
  this.guiUpdateThread.setDaemon(true);
  this.guiUpdateThread.start();
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:27,代码来源:WANConflictResolver.java

示例13: toBaseObject

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
/** Given an object that can be a PdxInstance, return either the object or 
 *  the base object represented by the PdxInstance.
 * @param anObj The object that could be a PdxInstance
 * @return anObj, or if anObj is a PdxInstance return its base object.
 */
public static Object toBaseObject(Object anObj) {
  boolean expectPdxInstance = true;
  Cache aCache = CacheHelper.getCache();
  if (aCache != null) { // could be null during a nice_kill
    expectPdxInstance = aCache.getPdxReadSerialized();
  }
  if (anObj instanceof PdxInstance) {
    if (!expectPdxInstance) {
      throw new TestException("Did not expect a PdxInstance: " + anObj);
    }
    PdxInstance pdxInst = (PdxInstance)anObj;
    Object baseObj = pdxInst.getObject();
    Log.getLogWriter().info("Obtained " + baseObj + " from PdxInstance " + pdxInst);
    return baseObj;
  } else if (anObj == null) {
    return anObj;
  } else {
    // even if we expect PdxInstances, we might get a domain object if it
    // happens to be deserialized already in the cache
    return anObj;
  }
}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:28,代码来源:PdxTestVersionHelper.java

示例14: testPDXObject

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
public void testPDXObject() {
	final Properties props = new Properties();
	props.setProperty(DistributionConfig.MCAST_ADDRESS_NAME, "239.192.81.10");
	DistributedSystem.connect(props);
	Cache cache = new CacheFactory().create();
	PdxInstanceFactory pf = PdxInstanceFactoryImpl.newCreator("Portfolio", false);
	Portfolio p = new Portfolio(2);
	pf.writeInt("ID", 111);
	pf.writeString("status", "active");
	pf.writeString("secId", "IBM");
	pf.writeObject("portfolio", p);
	PdxInstance pi = pf.create();

	TypedJson tJsonObj = new TypedJson(RESULT,pi);
	System.out.println(tJsonObj);
	cache.close();

}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:19,代码来源:TypedJsonJUnitTest.java

示例15: testNestedPDXObject

import com.gemstone.gemfire.pdx.PdxInstance; //导入依赖的package包/类
public void testNestedPDXObject() {
	final Properties props = new Properties();
	props.setProperty(DistributionConfig.MCAST_ADDRESS_NAME, "239.192.81.10");
	DistributedSystem.connect(props);
	Cache cache = new CacheFactory().create();

	PdxInstanceFactory pf = PdxInstanceFactoryImpl.newCreator("Portfolio", false);

	pf.writeInt("ID", 111);
	pf.writeString("status", "active");
	pf.writeString("secId", "IBM");
	PdxInstance pi = pf.create();

	PDXContainer cont = new PDXContainer(1);
	cont.setPi(pi);

	TypedJson tJsonObj = new TypedJson(RESULT,cont);
	System.out.println(tJsonObj);
	cache.close();

}
 
开发者ID:gemxd,项目名称:gemfirexd-oss,代码行数:22,代码来源:TypedJsonJUnitTest.java


注:本文中的com.gemstone.gemfire.pdx.PdxInstance类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。