本文整理了Java中com.google.protobuf.Message.getField()
方法的一些代码示例,展示了Message.getField()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getField()
方法的具体详情如下:
包路径:com.google.protobuf.Message
类名称: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);
}
内容来源于网络,如有侵权,请联系作者删除!