List of usage examples for com.google.gwt.user.server.rpc.impl SerializabilityUtil getSerializationSignature
public static String getSerializationSignature(Class<?> instanceType, SerializationPolicy policy)
From source file:com.gdevelop.gwt.syncrpc.SyncClientSerializationStreamWriter.java
License:Apache License
protected String getObjectTypeSignature(Object o) { Class<?> clazz = o.getClass(); if (o instanceof Enum) { Enum<?> e = (Enum<?>) o; clazz = e.getDeclaringClass();/* w ww . j a v a2 s. com*/ } String typeName = clazz.getName(); String serializationSignature = SerializabilityUtil.getSerializationSignature(clazz, serializationPolicy); if (serializationSignature != null) { typeName += "/" + serializationSignature; } return typeName; }
From source file:com.tyf.gwtphp.rebind.TypeUtil.java
License:Open Source License
/** * Recursively generate the type signature. Handles array and generics * cases.// ww w . j ava 2s . c o m */ public static String getCRC(JType type) throws ClassNotFoundException { JPrimitiveType primitiveType = type.isPrimitive(); if (primitiveType != null) { Class<?> clazz = PrimitiveTypes.getClass(primitiveType.getSimpleSourceName()); return SerializabilityUtil.getSerializationSignature(clazz, policy); } JArrayType arrayType = type.isArray(); if (arrayType != null) { JType component = arrayType.getComponentType(); String parentCRC = SerializabilityUtil .getSerializationSignature(Class.forName(SerializationUtils.getRpcTypeName(type)), policy); if (component.isClassOrInterface() != null) { return parentCRC + "[L" + getCRC(arrayType.getComponentType()) + ";"; } else { return parentCRC + "[" + getCRC(arrayType.getComponentType()); } } JParameterizedType parameterizedType = type.isParameterized(); if (parameterizedType != null) { String base = getCRC(parameterizedType.getBaseType()); StringBuilder sb = new StringBuilder(base); sb.append('<'); JClassType[] args = parameterizedType.getTypeArgs(); for (int i = 0; i < args.length; i++) { sb.append(getCRC(args[i])); if (i != args.length - 1) sb.append(','); } sb.append('>'); return sb.toString(); } JClassType classType = type.isClassOrInterface(); assert (classType != null); JClassType enclosingType = classType.getEnclosingType(); if (enclosingType != null) { return getCRC(enclosingType) + "$" + SerializabilityUtil .getSerializationSignature(Class.forName(classType.getQualifiedSourceName()), policy); } return SerializabilityUtil.getSerializationSignature(Class.forName(type.getQualifiedSourceName()), policy); }
From source file:org.gwtrpc4j.stream.JClientSerializationStreamReader.java
License:Apache License
private void validateTypeVersions(Class<?> instanceClass, SerializedInstanceReference serializedInstRef) throws SerializationException { String clientTypeSignature = serializedInstRef.getSignature(); if (clientTypeSignature.length() == 0) { throw new SerializationException("Missing type signature for " + instanceClass.getName()); }/*from w w w .j a v a 2s . co m*/ String serverTypeSignature = SerializabilityUtil.getSerializationSignature(instanceClass, serializationPolicy); if (!clientTypeSignature.equals(serverTypeSignature)) { throw new SerializationException("Invalid type signature for " + instanceClass.getName()); } }