List of usage examples for com.google.gwt.user.server.rpc SerializationPolicy getClientFieldNamesForEnhancedClass
public Set<String> getClientFieldNamesForEnhancedClass(Class<?> clazz)
From source file:com.foo.server.rpc230.SerializabilityUtil.java
License:Apache License
private static void generateSerializationSignature(Class<?> instanceType, CRC32 crc, SerializationPolicy policy) throws UnsupportedEncodingException { crc.update(getSerializedTypeName(instanceType).getBytes(DEFAULT_ENCODING)); if (excludeImplementationFromSerializationSignature(instanceType)) { return;/*w ww. j a va2s. c om*/ } Class<?> customSerializer = hasCustomFieldSerializer(instanceType); if (customSerializer != null) { generateSerializationSignature(customSerializer, crc, policy); } else if (instanceType.isArray()) { generateSerializationSignature(instanceType.getComponentType(), crc, policy); } else if (!instanceType.isPrimitive()) { Field[] fields = applyFieldSerializationPolicy(instanceType); Set<String> clientFieldNames = policy.getClientFieldNamesForEnhancedClass(instanceType); for (Field field : fields) { assert (field != null); /** * If clientFieldNames is non-null, use only the fields listed * there to generate the signature. Otherwise, use all known * fields. */ if ((clientFieldNames == null) || clientFieldNames.contains(field.getName())) { crc.update(field.getName().getBytes(DEFAULT_ENCODING)); crc.update(getSerializedTypeName(field.getType()).getBytes(DEFAULT_ENCODING)); } } Class<?> superClass = instanceType.getSuperclass(); if (superClass != null) { generateSerializationSignature(superClass, crc, policy); } } }