Search in sources :

Example 1 with BeanDescriptor

use of org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor in project incubator-servicecomb-java-chassis by apache.

the class MessageReadSchema method createFieldMap.

private void createFieldMap() {
    DeserializerSchemaManager deserializerSchemaManager = protoMapper.getDeserializerSchemaManager();
    BeanDescriptor beanDescriptor = protoMapper.getBeanDescriptorManager().getOrCreateBeanDescriptor(javaType);
    List<FieldSchema<T>> fieldSchemas = new ArrayList<>();
    for (PropertyDescriptor propertyDescriptor : beanDescriptor.getPropertyDescriptors().values()) {
        Field protoField = message.getField(propertyDescriptor.getName());
        if (protoField == null) {
            LOGGER.info("java field {}:{} not exist in proto message {}, ignore it.", beanDescriptor.getJavaType().getRawClass().getName(), propertyDescriptor.getName(), message.getCanonicalName());
            continue;
        }
        if (propertyDescriptor.getSetter() == null) {
            LOGGER.info("no setter for java field {}:{} in proto message {}, ignore it.", beanDescriptor.getJavaType().getRawClass().getName(), propertyDescriptor.getName(), message.getCanonicalName());
            continue;
        }
        FieldSchema<T> fieldSchema = deserializerSchemaManager.createSchemaField(protoField, propertyDescriptor);
        fieldSchemas.add(fieldSchema);
    }
    this.fieldMap = FieldMapEx.createFieldMap(fieldSchemas);
}
Also used : Field(io.protostuff.compiler.model.Field) PropertyDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyDescriptor) BeanDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor) FieldSchema(io.protostuff.runtime.FieldSchema) ArrayList(java.util.ArrayList)

Example 2 with BeanDescriptor

use of org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor in project incubator-servicecomb-java-chassis by apache.

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);
}
Also used : Field(io.protostuff.compiler.model.Field) PropertyDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyDescriptor) BeanDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor) FieldSchema(io.protostuff.runtime.FieldSchema) ArrayList(java.util.ArrayList)

Example 3 with BeanDescriptor

use of org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor in project java-chassis by ServiceComb.

the class MessageReadSchema method createFieldMap.

private void createFieldMap() {
    DeserializerSchemaManager deserializerSchemaManager = protoMapper.getDeserializerSchemaManager();
    BeanDescriptor beanDescriptor = protoMapper.getBeanDescriptorManager().getOrCreateBeanDescriptor(javaType);
    List<FieldSchema<T>> fieldSchemas = new ArrayList<>();
    for (PropertyDescriptor propertyDescriptor : beanDescriptor.getPropertyDescriptors().values()) {
        Field protoField = message.getField(propertyDescriptor.getName());
        if (protoField == null) {
            LOGGER.info("java field {}:{} not exist in proto message {}, ignore it.", beanDescriptor.getJavaType().getRawClass().getName(), propertyDescriptor.getName(), message.getCanonicalName());
            continue;
        }
        if (propertyDescriptor.getSetter() == null) {
            LOGGER.info("no setter for java field {}:{} in proto message {}, ignore it.", beanDescriptor.getJavaType().getRawClass().getName(), propertyDescriptor.getName(), message.getCanonicalName());
            continue;
        }
        FieldSchema<T> fieldSchema = deserializerSchemaManager.createSchemaField(protoField, propertyDescriptor);
        fieldSchemas.add(fieldSchema);
    }
    this.fieldMap = FieldMapEx.createFieldMap(fieldSchemas);
}
Also used : Field(io.protostuff.compiler.model.Field) PropertyDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyDescriptor) BeanDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor) FieldSchema(io.protostuff.runtime.FieldSchema) ArrayList(java.util.ArrayList)

Example 4 with BeanDescriptor

use of org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor 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);
}
Also used : Field(io.protostuff.compiler.model.Field) PropertyDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyDescriptor) BeanDescriptor(org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor) FieldSchema(io.protostuff.runtime.FieldSchema) ArrayList(java.util.ArrayList)

Aggregations

Field (io.protostuff.compiler.model.Field)4 FieldSchema (io.protostuff.runtime.FieldSchema)4 ArrayList (java.util.ArrayList)4 BeanDescriptor (org.apache.servicecomb.foundation.protobuf.internal.bean.BeanDescriptor)4 PropertyDescriptor (org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyDescriptor)4