Search in sources :

Example 1 with MapSchema

use of org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapSchema in project java-chassis by ServiceComb.

the class SchemaManager method createMapFieldSchema.

protected <T> FieldSchema<T> createMapFieldSchema(Field protoField, PropertyDescriptor propertyDescriptor) {
    JavaType javaType = propertyDescriptor.getJavaType();
    if (javaType.isJavaLangObject()) {
        javaType = ProtoConst.MAP_TYPE;
    }
    JavaType entryType = TypeFactory.defaultInstance().constructParametricType(MapEntry.class, javaType.getKeyType(), javaType.getContentType());
    SchemaEx<Entry<Object, Object>> entrySchema = getOrCreateMessageSchema((Message) protoField.getType(), entryType);
    return new MapSchema<>(protoField, propertyDescriptor, entrySchema);
}
Also used : JavaType(com.fasterxml.jackson.databind.JavaType) Entry(java.util.Map.Entry) MapEntry(org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapEntry) MapSchema(org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapSchema)

Example 2 with MapSchema

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

the class SchemaManager method createMapFieldSchema.

protected <T> FieldSchema<T> createMapFieldSchema(Field protoField, PropertyDescriptor propertyDescriptor) {
    JavaType javaType = propertyDescriptor.getJavaType();
    if (javaType.isJavaLangObject()) {
        javaType = ProtoConst.MAP_TYPE;
    }
    JavaType entryType = TypeFactory.defaultInstance().constructParametricType(MapEntry.class, javaType.getKeyType(), javaType.getContentType());
    SchemaEx<Entry<Object, Object>> entrySchema = getOrCreateMessageSchema((Message) protoField.getType(), entryType);
    return new MapSchema<>(protoField, propertyDescriptor, entrySchema);
}
Also used : JavaType(com.fasterxml.jackson.databind.JavaType) Entry(java.util.Map.Entry) MapEntry(org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapEntry) MapSchema(org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapSchema)

Aggregations

JavaType (com.fasterxml.jackson.databind.JavaType)2 Entry (java.util.Map.Entry)2 MapEntry (org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapEntry)2 MapSchema (org.apache.servicecomb.foundation.protobuf.internal.schema.map.MapSchema)2