use of io.protostuff.compiler.model.Field in project java-chassis by ServiceComb.
the class SchemaManager method createMapFields.
public FieldMapEx<Map<Object, Object>> createMapFields(Message message, Map<String, Type> types) {
List<FieldSchema<Map<Object, Object>>> fieldSchemas = new ArrayList<>();
for (Field protoField : message.getFields()) {
PropertyDescriptor propertyDescriptor = new PropertyDescriptor();
JavaType javaType = getParameterType(types, protoField.getName());
if (javaType.isPrimitive()) {
javaType = TypeFactory.defaultInstance().constructType(ClassUtils.primitiveToWrapper(javaType.getRawClass()));
}
propertyDescriptor.setJavaType(javaType);
propertyDescriptor.setGetter(new MapGetter<>(protoField.getName()));
propertyDescriptor.setSetter(new MapSetter<>(protoField.getName()));
FieldSchema<Map<Object, Object>> fieldSchema = createSchemaField(protoField, propertyDescriptor);
fieldSchemas.add(fieldSchema);
}
return FieldMapEx.createFieldMap(fieldSchemas);
}
use of io.protostuff.compiler.model.Field in project java-chassis by ServiceComb.
the class MessageWriteSchema method createPojoFields.
private FieldMapEx<T> createPojoFields(Type type) {
SerializerSchemaManager serializerSchemaManager = protoMapper.getSerializerSchemaManager();
BeanDescriptor beanDescriptor = protoMapper.getBeanDescriptorManager().getOrCreateBeanDescriptor(type);
List<FieldSchema<T>> fieldSchemas = new ArrayList<>();
for (Field protoField : message.getFields()) {
PropertyDescriptor propertyDescriptor = beanDescriptor.getPropertyDescriptors().get(protoField.getName());
if (propertyDescriptor == null) {
continue;
}
Object getter = propertyDescriptor.getGetter();
if (getter == null) {
continue;
}
FieldSchema<T> fieldSchema = serializerSchemaManager.createSchemaField(protoField, propertyDescriptor);
fieldSchemas.add(fieldSchema);
}
return FieldMapEx.createFieldMap(fieldSchemas);
}
use of io.protostuff.compiler.model.Field in project java-chassis by ServiceComb.
the class MessageWriteSchema method createPropertyWrapperFields.
private FieldMapEx<T> createPropertyWrapperFields(JavaType javaType) {
Field protoField = message.getField(1);
PropertyDescriptor propertyDescriptor = new PropertyDescriptor();
propertyDescriptor.setName(protoField.getName());
propertyDescriptor.setJavaType(javaType);
FieldSchema<T> fieldSchema = protoMapper.getSerializerSchemaManager().createSchemaField(protoField, propertyDescriptor);
return FieldMapEx.createFieldMap(Arrays.asList(fieldSchema));
}
use of io.protostuff.compiler.model.Field in project incubator-servicecomb-java-chassis by apache.
the class MessageWriteSchema method createPropertyWrapperFields.
private FieldMapEx<T> createPropertyWrapperFields(JavaType javaType) {
Field protoField = message.getField(1);
PropertyDescriptor propertyDescriptor = new PropertyDescriptor();
propertyDescriptor.setName(protoField.getName());
propertyDescriptor.setJavaType(javaType);
FieldSchema<T> fieldSchema = protoMapper.getSerializerSchemaManager().createSchemaField(protoField, propertyDescriptor);
return FieldMapEx.createFieldMap(Arrays.asList(fieldSchema));
}
Aggregations