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

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

本文整理了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

/**
 * Converts a list of MapEntry messages into a Map used for equals() and
 * hashCode().
 */
@SuppressWarnings({"rawtypes", "unchecked"})
private static Map convertMapEntryListToMap(List list) {
 if (list.isEmpty()) {
  return Collections.emptyMap();
 }
 Map result = new HashMap();
 Iterator iterator = list.iterator();
 Message entry = (Message) iterator.next();
 Descriptors.Descriptor descriptor = entry.getDescriptorForType();
 Descriptors.FieldDescriptor key = descriptor.findFieldByName("key");
 Descriptors.FieldDescriptor value = descriptor.findFieldByName("value");
 Object fieldValue = entry.getField(value);
 if (fieldValue instanceof EnumValueDescriptor) {
  fieldValue = ((EnumValueDescriptor) fieldValue).getNumber();
 }
 result.put(entry.getField(key), fieldValue);
 while (iterator.hasNext()) {
  entry = (Message) iterator.next();
  fieldValue = entry.getField(value);
  if (fieldValue instanceof EnumValueDescriptor) {
   fieldValue = ((EnumValueDescriptor) fieldValue).getNumber();
  }
  result.put(entry.getField(key), fieldValue);
 }
 return result;
}

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

@Override
protected Object getField(Object record, String name, int pos, Object state) {
 Message m = (Message)record;
 FieldDescriptor f = ((FieldDescriptor[])state)[pos];
 switch (f.getType()) {
 case MESSAGE:
  if (!f.isRepeated() && !m.hasField(f))
   return null;
 default:
  return m.getField(f);
 }
}

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

private static void writeMessageValue(Message message, JsonWriter writer) {
  MessageType messageType = MessageType.of(message);
  if (messageType.doesWrapRepeated) {
   Descriptors.FieldDescriptor repeatedDescriptor = messageType.fieldDescriptors[0];
   if (repeatedDescriptor.isMapField()) {
    writeMap((Collection<MapEntry>) message.getField(repeatedDescriptor), writer);
   } else {
    writeArray(writer, repeatedDescriptor, (Collection) message.getField(repeatedDescriptor));
   }
  } else {
   writer.beginObject();
   writeMessage(message, writer);
   writer.endObject();
  }
 }
}

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

private static void writeMessage(Message message, JsonWriter writer) {
 MessageType type = MessageType.of(message);
 for (Descriptors.FieldDescriptor fieldDescriptor : type.fieldDescriptors) {
  if (fieldDescriptor.isRepeated()) {
   writer.name(fieldDescriptor.getName());
   if (fieldDescriptor.isMapField()) {
    writeMap((Collection<MapEntry>) message.getField(fieldDescriptor), writer);
   } else {
    writeArray(writer, fieldDescriptor, (Collection) message.getField(fieldDescriptor));
   }
  } else if (message.hasField(fieldDescriptor)) {
   writer.name(fieldDescriptor.getName());
   Object fieldValue = message.getField(fieldDescriptor);
   writeFieldValue(fieldDescriptor, fieldValue, writer);
  }
 }
}

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

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

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

public long extractTimestampMillis(String topic, final byte[] bytes) throws IOException {
    if (timestampFieldPath != null) {
      com.google.protobuf.Message decodedMessage = protobufUtil.decodeProtobufOrJsonMessage(topic,
          bytes);
      int i = 0;
      for (; i < timestampFieldPath.length - 1; ++i) {
        decodedMessage = (com.google.protobuf.Message) decodedMessage
            .getField(decodedMessage.getDescriptorForType().findFieldByName(timestampFieldPath[i]));
      }
      Object timestampObject = decodedMessage
          .getField(decodedMessage.getDescriptorForType().findFieldByName(timestampFieldPath[i]));
      if (timestampObject instanceof com.google.protobuf.Timestamp){
        return Timestamps.toMillis((com.google.protobuf.Timestamp) timestampObject);
      }else {
        return toMillis((Long) timestampObject);
      }
    } else {
      // Assume that the timestamp field is the first field, is required,
      // and is a uint64.

      CodedInputStream input = CodedInputStream.newInstance(bytes);
      // Don't really care about the tag, but need to read it to get, to
      // the payload.
      input.readTag();
      return toMillis(input.readUInt64());
    }
  }
}

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

actualFields.get(fieldDescriptor),
expectedFields.get(fieldDescriptor),
actual.getDefaultInstanceForType().getField(fieldDescriptor),
shouldCompare == FieldScopeResult.EXCLUDED_NONRECURSIVELY,
fieldDescriptor,

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

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

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

Message result = channel.callBlockingMethod(methodDescriptorContainer, message);
FieldDescriptor errorMessageField = methodDescriptorContainer.getOutputField("errorMessage");
String errorMessage = (String) result.getField(errorMessageField);
if (errorMessage.equals("OKE")) {
  if (result.getDescriptorForType().getName().equals("VoidResponse")) {
  } else {
    FieldDescriptor outputField = methodDescriptorContainer.getOutputField("value");
    Object value = result.getField(outputField);
    if (outputField.isRepeated()) {
      if (value instanceof Collection) {

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

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

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

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

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

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

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

Message subMessage =
  (Message)message.getField(
    message.getDescriptorForType().findFieldByName("bar"));
return subMessage.getField(
  subMessage.getDescriptorForType().findFieldByName("a"));

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

@Override
public K map(M input) {
 if (input == null) {
  throw new IllegalArgumentException("Null inputs not supported by Protos.ExtractKeyFn");
 } else if (fd == null) {
  fd = input.getDescriptorForType().findFieldByName(fieldName);
  if (fd == null) {
   throw new IllegalStateException("Could not find field: " + fieldName + " in message: " + input);
  }
 }
 return (K) input.getField(fd);
}

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

@Override
public K map(M input) {
 if (input == null) {
  throw new IllegalArgumentException("Null inputs not supported by Protos.ExtractKeyFn");
 } else if (fd == null) {
  fd = input.getDescriptorForType().findFieldByName(fieldName);
  if (fd == null) {
   throw new IllegalStateException("Could not find field: " + fieldName + " in message: " + input);
  }
 }
 return (K) input.getField(fd);
}

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

@Override
SoyValue soyFromProto(Object field) {
 @SuppressWarnings("unchecked")
 List<Message> entries = (List<Message>) field;
 Map<SoyValue, SoyValueProvider> map = Maps.newHashMapWithExpectedSize(entries.size());
 for (Message message : entries) {
  SoyValue key = keyField.soyFromProto(message.getField(keyDescriptor)).resolve();
  map.put(key, valueField.soyFromProto(message.getField(valueDescriptor)));
 }
 return SoyMapImpl.forProviderMap(map);
}

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

@Override
SoyValue soyFromProto(Object field) {
 @SuppressWarnings("unchecked")
 List<Message> entries = (List<Message>) field;
 ImmutableMap.Builder<SoyValue, SoyValueProvider> builder = ImmutableMap.builder();
 for (Message message : entries) {
  SoyValue key = keyField.soyFromProto(message.getField(keyDescriptor)).resolve();
  builder.put(key, valueField.soyFromProto(message.getField(valueDescriptor)));
 }
 return SoyMapImpl.forProviderMap(builder.build());
}

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

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

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

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

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

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

相关文章