Example usage for com.google.gwt.user.server.rpc.impl SerializabilityUtil getSerializationSignature

List of usage examples for com.google.gwt.user.server.rpc.impl SerializabilityUtil getSerializationSignature

Introduction

In this page you can find the example usage for com.google.gwt.user.server.rpc.impl SerializabilityUtil getSerializationSignature.

Prototype

public static String getSerializationSignature(Class<?> instanceType, SerializationPolicy policy) 

Source Link

Usage

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());
    }
}