Search in sources :

Example 6 with AnyEntrySchema

use of org.apache.servicecomb.foundation.protobuf.internal.schema.any.AnyEntrySchema in project incubator-servicecomb-java-chassis by apache.

the class DeserializerSchemaManager method createRootDeserializer.

@SuppressWarnings({ "rawtypes", "unchecked" })
public <T> RootDeserializer<T> createRootDeserializer(Message message, Type type) {
    if (ProtoUtils.isAnyMessage(message)) {
        SchemaEx<Object> messageSchema = new AnyEntrySchema(protoMapper, type);
        return new RootDeserializer(messageSchema);
    }
    JavaType javaType = TypeFactory.defaultInstance().constructType(type);
    SchemaEx<T> messageSchema = getOrCreateMessageSchema(message, javaType);
    return new RootDeserializer<>(messageSchema);
}
Also used : AnyEntrySchema(org.apache.servicecomb.foundation.protobuf.internal.schema.any.AnyEntrySchema) JavaType(com.fasterxml.jackson.databind.JavaType) RootDeserializer(org.apache.servicecomb.foundation.protobuf.RootDeserializer)

Aggregations

JavaType (com.fasterxml.jackson.databind.JavaType)6 AnyEntrySchema (org.apache.servicecomb.foundation.protobuf.internal.schema.any.AnyEntrySchema)6 ScalarFieldType (io.protostuff.compiler.model.ScalarFieldType)2 RootDeserializer (org.apache.servicecomb.foundation.protobuf.RootDeserializer)2 RootSerializer (org.apache.servicecomb.foundation.protobuf.RootSerializer)2