com.google.protobuf.Message.getField()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(252)

本文整理了Java中com.google.protobuf.Message.getField()方法的一些代码示例,展示了Message.getField()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getField()方法的具体详情如下:
包路径:com.google.protobuf.Message
类名称:Message
方法名:getField

Message.getField介绍

暂无

代码示例

代码示例来源:origin: com.google.protobuf/protobuf-java

  1. /**
  2. * Converts a list of MapEntry messages into a Map used for equals() and
  3. * hashCode().
  4. */
  5. @SuppressWarnings({"rawtypes", "unchecked"})
  6. private static Map convertMapEntryListToMap(List list) {
  7. if (list.isEmpty()) {
  8. return Collections.emptyMap();
  9. }
  10. Map result = new HashMap();
  11. Iterator iterator = list.iterator();
  12. Message entry = (Message) iterator.next();
  13. Descriptors.Descriptor descriptor = entry.getDescriptorForType();
  14. Descriptors.FieldDescriptor key = descriptor.findFieldByName("key");
  15. Descriptors.FieldDescriptor value = descriptor.findFieldByName("value");
  16. Object fieldValue = entry.getField(value);
  17. if (fieldValue instanceof EnumValueDescriptor) {
  18. fieldValue = ((EnumValueDescriptor) fieldValue).getNumber();
  19. }
  20. result.put(entry.getField(key), fieldValue);
  21. while (iterator.hasNext()) {
  22. entry = (Message) iterator.next();
  23. fieldValue = entry.getField(value);
  24. if (fieldValue instanceof EnumValueDescriptor) {
  25. fieldValue = ((EnumValueDescriptor) fieldValue).getNumber();
  26. }
  27. result.put(entry.getField(key), fieldValue);
  28. }
  29. return result;
  30. }

代码示例来源:origin: apache/avro

  1. @Override
  2. protected Object getField(Object record, String name, int pos, Object state) {
  3. Message m = (Message)record;
  4. FieldDescriptor f = ((FieldDescriptor[])state)[pos];
  5. switch (f.getType()) {
  6. case MESSAGE:
  7. if (!f.isRepeated() && !m.hasField(f))
  8. return null;
  9. default:
  10. return m.getField(f);
  11. }
  12. }

代码示例来源:origin: SonarSource/sonarqube

  1. private static void writeMessageValue(Message message, JsonWriter writer) {
  2. MessageType messageType = MessageType.of(message);
  3. if (messageType.doesWrapRepeated) {
  4. Descriptors.FieldDescriptor repeatedDescriptor = messageType.fieldDescriptors[0];
  5. if (repeatedDescriptor.isMapField()) {
  6. writeMap((Collection<MapEntry>) message.getField(repeatedDescriptor), writer);
  7. } else {
  8. writeArray(writer, repeatedDescriptor, (Collection) message.getField(repeatedDescriptor));
  9. }
  10. } else {
  11. writer.beginObject();
  12. writeMessage(message, writer);
  13. writer.endObject();
  14. }
  15. }
  16. }

代码示例来源:origin: SonarSource/sonarqube

  1. private static void writeMessage(Message message, JsonWriter writer) {
  2. MessageType type = MessageType.of(message);
  3. for (Descriptors.FieldDescriptor fieldDescriptor : type.fieldDescriptors) {
  4. if (fieldDescriptor.isRepeated()) {
  5. writer.name(fieldDescriptor.getName());
  6. if (fieldDescriptor.isMapField()) {
  7. writeMap((Collection<MapEntry>) message.getField(fieldDescriptor), writer);
  8. } else {
  9. writeArray(writer, fieldDescriptor, (Collection) message.getField(fieldDescriptor));
  10. }
  11. } else if (message.hasField(fieldDescriptor)) {
  12. writer.name(fieldDescriptor.getName());
  13. Object fieldValue = message.getField(fieldDescriptor);
  14. writeFieldValue(fieldDescriptor, fieldValue, writer);
  15. }
  16. }
  17. }

代码示例来源:origin: com.google.protobuf/protobuf-java

  1. message.getDescriptorForType().getFields()) {
  2. if (field.isRequired() && !fields.containsKey(field)) {
  3. fields.put(field, message.getField(field));

代码示例来源:origin: pinterest/secor

  1. public long extractTimestampMillis(String topic, final byte[] bytes) throws IOException {
  2. if (timestampFieldPath != null) {
  3. com.google.protobuf.Message decodedMessage = protobufUtil.decodeProtobufOrJsonMessage(topic,
  4. bytes);
  5. int i = 0;
  6. for (; i < timestampFieldPath.length - 1; ++i) {
  7. decodedMessage = (com.google.protobuf.Message) decodedMessage
  8. .getField(decodedMessage.getDescriptorForType().findFieldByName(timestampFieldPath[i]));
  9. }
  10. Object timestampObject = decodedMessage
  11. .getField(decodedMessage.getDescriptorForType().findFieldByName(timestampFieldPath[i]));
  12. if (timestampObject instanceof com.google.protobuf.Timestamp){
  13. return Timestamps.toMillis((com.google.protobuf.Timestamp) timestampObject);
  14. }else {
  15. return toMillis((Long) timestampObject);
  16. }
  17. } else {
  18. // Assume that the timestamp field is the first field, is required,
  19. // and is a uint64.
  20. CodedInputStream input = CodedInputStream.newInstance(bytes);
  21. // Don't really care about the tag, but need to read it to get, to
  22. // the payload.
  23. input.readTag();
  24. return toMillis(input.readUInt64());
  25. }
  26. }
  27. }

代码示例来源:origin: google/truth

  1. actualFields.get(fieldDescriptor),
  2. expectedFields.get(fieldDescriptor),
  3. actual.getDefaultInstanceForType().getField(fieldDescriptor),
  4. shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
  5. fieldDescriptor,

代码示例来源:origin: opensourceBIM/BIMserver

  1. for (FieldDescriptor fieldDescriptor : descriptor.getFields()) {
  2. if (fieldDescriptor.getName().equals("__actual_type")) {
  3. sClass = sClass.getServicesMap().getSType((String)message.getField(fieldDescriptor));
  4. newInstance = sClass.newInstance();
  5. } else if (fieldDescriptor.getName().startsWith("__")) {
  6. if (fieldDescriptor.getName().substring(2).equals(sClass.getSimpleName())) {
  7. subTypeMessage = (Message) message.getField(fieldDescriptor);
  8. Object val = message.getField(fieldDescriptor);
  9. SField field = newInstance.getSClass().getField(fieldDescriptor.getName());
  10. if (field == null) {

代码示例来源:origin: opensourceBIM/BIMserver

  1. Message result = channel.callBlockingMethod(methodDescriptorContainer, message);
  2. FieldDescriptor errorMessageField = methodDescriptorContainer.getOutputField("errorMessage");
  3. String errorMessage = (String) result.getField(errorMessageField);
  4. if (errorMessage.equals("OKE")) {
  5. if (result.getDescriptorForType().getName().equals("VoidResponse")) {
  6. } else {
  7. FieldDescriptor outputField = methodDescriptorContainer.getOutputField("value");
  8. Object value = result.getField(outputField);
  9. if (outputField.isRepeated()) {
  10. if (value instanceof Collection) {

代码示例来源:origin: opensourceBIM/BIMserver

  1. for (FieldDescriptor fieldDescriptor : inputType.getFields()) {
  2. SParameter sParameter = sMethod.getParameter(i);
  3. Object value = request.getField(fieldDescriptor);
  4. if (value instanceof EnumValueDescriptor) {
  5. EnumValueDescriptor enumValueDescriptor = (EnumValueDescriptor)value;

代码示例来源:origin: com.twitter.elephantbird/elephant-bird-pig

  1. protected Object getObjectAt(int idx) {
  2. FieldDescriptor fieldDescriptor = fieldDescriptors_.get(idx);
  3. Object fieldValue = msg_.getField(fieldDescriptor);
  4. return protoConv_.fieldToPig(fieldDescriptor, fieldValue);
  5. }

代码示例来源:origin: xyz.codemeans.protobuf4j/protobuf4j-core

  1. @Override
  2. public Object getFieldValue(T msg, String fieldName) {
  3. Descriptors.FieldDescriptor fd = checkFieldDescriptor(fieldName);
  4. return msg.getField(fd);
  5. }

代码示例来源:origin: stackoverflow.com

  1. Message subMessage =
  2. (Message)message.getField(
  3. message.getDescriptorForType().findFieldByName("bar"));
  4. return subMessage.getField(
  5. subMessage.getDescriptorForType().findFieldByName("a"));

代码示例来源:origin: org.apache.crunch/crunch-core

  1. @Override
  2. public K map(M input) {
  3. if (input == null) {
  4. throw new IllegalArgumentException("Null inputs not supported by Protos.ExtractKeyFn");
  5. } else if (fd == null) {
  6. fd = input.getDescriptorForType().findFieldByName(fieldName);
  7. if (fd == null) {
  8. throw new IllegalStateException("Could not find field: " + fieldName + " in message: " + input);
  9. }
  10. }
  11. return (K) input.getField(fd);
  12. }

代码示例来源:origin: org.apache.crunch/crunch

  1. @Override
  2. public K map(M input) {
  3. if (input == null) {
  4. throw new IllegalArgumentException("Null inputs not supported by Protos.ExtractKeyFn");
  5. } else if (fd == null) {
  6. fd = input.getDescriptorForType().findFieldByName(fieldName);
  7. if (fd == null) {
  8. throw new IllegalStateException("Could not find field: " + fieldName + " in message: " + input);
  9. }
  10. }
  11. return (K) input.getField(fd);
  12. }

代码示例来源:origin: google/closure-templates

  1. @Override
  2. SoyValue soyFromProto(Object field) {
  3. @SuppressWarnings("unchecked")
  4. List<Message> entries = (List<Message>) field;
  5. Map<SoyValue, SoyValueProvider> map = Maps.newHashMapWithExpectedSize(entries.size());
  6. for (Message message : entries) {
  7. SoyValue key = keyField.soyFromProto(message.getField(keyDescriptor)).resolve();
  8. map.put(key, valueField.soyFromProto(message.getField(valueDescriptor)));
  9. }
  10. return SoyMapImpl.forProviderMap(map);
  11. }

代码示例来源:origin: com.google.template/soy

  1. @Override
  2. SoyValue soyFromProto(Object field) {
  3. @SuppressWarnings("unchecked")
  4. List<Message> entries = (List<Message>) field;
  5. ImmutableMap.Builder<SoyValue, SoyValueProvider> builder = ImmutableMap.builder();
  6. for (Message message : entries) {
  7. SoyValue key = keyField.soyFromProto(message.getField(keyDescriptor)).resolve();
  8. builder.put(key, valueField.soyFromProto(message.getField(valueDescriptor)));
  9. }
  10. return SoyMapImpl.forProviderMap(builder.build());
  11. }

代码示例来源:origin: org.bitbucket.iamkenos/cissnei-commons

  1. public static JsonObject protoAsJson(JsonObject template, Message source) {
  2. JsonObject body = template.deepCopy();
  3. source.getDescriptorForType().getFields().forEach(item ->
  4. body.add(item.getJsonName(), new Gson().toJsonTree(source.getField(item)).getAsJsonPrimitive()));
  5. return body;
  6. }

代码示例来源:origin: xyz.codemeans.protobuf4j/protobuf4j-core

  1. @Override
  2. public boolean isFieldSet(T msg, String fieldName) {
  3. Descriptors.FieldDescriptor fd = checkFieldDescriptor(fieldName);
  4. if (fd.isRepeated()) {
  5. return !((Collection<?>) msg.getField(fd)).isEmpty();
  6. }
  7. return msg.hasField(fd);
  8. }

代码示例来源:origin: FoundationDB/fdb-record-layer

  1. protected List<Object> fetchResultValues(RecordQueryPlan plan, final int fieldNumber, Opener opener,
  2. TestHelpers.DangerousConsumer<FDBRecordContext> checkDiscarded) throws Exception {
  3. return fetchResultValues(plan, opener,
  4. rec -> rec.getField(rec.getDescriptorForType().findFieldByNumber(fieldNumber)), checkDiscarded);
  5. }

相关文章