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); }
public FieldMapEx<Map<Object, Object>> createMapFields(Message message) { List<FieldSchema<Map<Object, Object>>> fieldSchemas = new ArrayList<>(); for (Field protoField : message.getFields()) { PropertyDescriptor propertyDescriptor = new PropertyDescriptor(); propertyDescriptor.setJavaType(ProtoConst.OBJECT_TYPE); 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); }
private void messageToString(Message message, StringBuilder sb) { commentsToString(message.getCommentLines(), sb, 0); appendLine(sb, "message %s {", message.getName()); for (Field field : message.getFields()) { sb.append(" "); fieldToString(field, field.isRepeated(), sb); } appendLine(sb, "}\n"); }
public static boolean hasFields(Message message) { return !message.getFields().isEmpty(); }
public static boolean hasFields(Message message) { return !message.getFields().isEmpty(); }
@Override public Field getField(int tag) { for (Field field : getFields()) { if (tag == field.getTag()) { return field; } } return null; }
@Override public Field getField(int tag) { for (Field field : getFields()) { if (tag == field.getTag()) { return field; } } return null; }
@Override public Field getField(String name) { for (Field field : getFields()) { if (name.equals(field.getName())) { return field; } } return null; }
@Override public Field getField(String name) { for (Field field : getFields()) { if (name.equals(field.getName())) { return field; } } return null; }
private void walk(Message message) { for (Processor<Field> fieldProcessor : fieldProcessors) { for (Field field : message.getFields()) { fieldProcessor.run(context, field); } } for (Processor<Oneof> processor : oneofProcessors) { for (Oneof oneof : message.getOneofs()) { processor.run(context, oneof); } } }
private void walk(Message message) { for (Processor<Field> fieldProcessor : fieldProcessors) { for (Field field : message.getFields()) { fieldProcessor.run(context, field); } } for (Processor<Oneof> processor : oneofProcessors) { for (Oneof oneof : message.getOneofs()) { processor.run(context, oneof); } } }
private void messageToString(Message message, StringBuilder sb) { appendLine(sb, "message %s {", message.getName()); for (Field field : message.getFields()) { sb.append(" "); fieldToString(field, field.isRepeated(), sb); } appendLine(sb, "}\n"); }
protected MessageSchema createSchema(SchemaCreateContext context, Message message) { MessageSchema schema = context.getSchemas().get(message.getName()); if (schema != null) { return schema; } schema = new MessageSchema(); context.getSchemas().put(message.getName(), schema); List<io.protostuff.runtime.Field<Object>> fieldSchemas = new ArrayList<>(); for (Field protoField : message.getFields()) { FieldSchema fieldSchema = createSchemaField(context, protoField, protoField.isRepeated()); fieldSchemas.add(fieldSchema); } schema.init(protoMapper, fieldSchemas, message); return schema; }
private void processMessage(Message message) { List<Field> fields = message.getFields(); checkInvalidFieldTags(fields); checkDuplicateFieldTags(fields); checkDuplicateFieldNames(fields); checkReservedFieldTags(message, fields); checkReservedFieldNames(message, fields); checkFieldModifier(message, fields); }
private void processMessage(Message message) { List<Field> fields = message.getFields(); checkInvalidFieldTags(fields); checkDuplicateFieldTags(fields); checkDuplicateFieldNames(fields); checkReservedFieldTags(message, fields); checkReservedFieldNames(message, fields); checkFieldModifier(message, fields); }
@SuppressWarnings("unchecked") protected void doCreateSchemaToMap(SchemaCreateContext context, MessageSchema schema, JavaType mapJavaType, Message message) { List<io.protostuff.runtime.Field<Object>> fieldSchemas = new ArrayList<>(); for (Field protoField : message.getFields()) { FieldSchema fieldSchema = createSchemaField(context, mapJavaType, protoField, protoField.isRepeated()); fieldSchema.setGetter(new MapGetter(protoField.getName())); fieldSchema.setSetter(new MapSetter(protoField.getName())); fieldSchema.setFactory(BeanFactory.createFactory(protoField)); fieldSchemas.add(fieldSchema); } schema.init(protoMapper, (Class<Object>) mapJavaType.getRawClass(), fieldSchemas, RuntimeEnv.newInstantiator((Class<Object>) (Object) LinkedHashMap.class), message); }
.build()) .collect(Collectors.toList())) .addAllFields(message.getFields().stream() .map(field -> { ImmutableMessageField.Builder builder = ImmutableMessageField.builder()
.build()) .collect(Collectors.toList())) .addAllFields(message.getFields().stream() .map(field -> { ImmutableMessageField.Builder builder = ImmutableMessageField.builder()
/** * Build usage index for given collection of proto files. */ public static UsageIndex build(Collection<Proto> protos) { UsageIndex usageIndex = new UsageIndex(); for (Proto proto : protos) { ProtoWalker.newInstance(proto.getContext()) .onMessage(message -> { for (Field field : message.getFields()) { usageIndex.register(field.getType(), message); } }) .onService(service -> { for (ServiceMethod serviceMethod : service.getMethods()) { usageIndex.register(serviceMethod.getArgType(), service); usageIndex.register(serviceMethod.getReturnType(), service); } }) .walk(); } return usageIndex; }
/** * Build usage index for given collection of proto files. */ public static UsageIndex build(Collection<Proto> protos) { UsageIndex usageIndex = new UsageIndex(); for (Proto proto : protos) { ProtoWalker.newInstance(proto.getContext()) .onMessage(message -> { for (Field field : message.getFields()) { usageIndex.register(field.getType(), message); } }) .onService(service -> { for (ServiceMethod serviceMethod : service.getMethods()) { usageIndex.register(serviceMethod.getArgType(), service); usageIndex.register(serviceMethod.getReturnType(), service); } }) .walk(); } return usageIndex; }