Java Code Examples for com.google.protobuf.Descriptors#FieldDescriptor
The following examples show how to use
com.google.protobuf.Descriptors#FieldDescriptor .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ProtoDomain.java From metastore with Apache License 2.0 | 7 votes |
public Collection<Descriptors.Descriptor> findDescriptorsByOption(String optionName) { Descriptors.FieldDescriptor fieldDescriptor = optionsCatalog.getMessageOptionByName(optionName); return descriptorMap.values().stream() .filter( descriptor -> { DescriptorProtos.MessageOptions options = descriptor.getOptions(); UnknownFieldSet.Field unknown = options.getUnknownFields().getField(fieldDescriptor.getNumber()); if (unknown.getLengthDelimitedList().size() + unknown.getFixed64List().size() + unknown.getFixed32List().size() + unknown.getVarintList().size() > 0) { return true; } return options.getAllFields().containsKey(fieldDescriptor); }) .collect(Collectors.toList()); }
Example 2
Source File: DataDstPb.java From xresloader with MIT License | 6 votes |
private void filterMissingFields(LinkedList<String> missingFields, HashMap<String, String> oneofField, Descriptors.FieldDescriptor fd, boolean isMissing) throws ConvException { if (missingFields == null && oneofField == null) { return; } Descriptors.OneofDescriptor oneof = fd.getContainingOneof(); if (isMissing && oneof == null && missingFields != null) { missingFields.push(fd.getName()); } if (!isMissing && oneof != null && oneofField.containsKey(oneof.getFullName())) { String old_field = oneofField.get(oneof.getFullName()); if (old_field != null) { setLastErrorMessage( "field \"%s\" in oneof descriptor \"%s\" already exists, can not add another field \"%s\" with the same oneof descriptor", old_field, oneof.getFullName(), fd.getName()); throw new ConvException(getLastErrorMessage()); } oneofField.replace(oneof.getFullName(), fd.getName()); } }
Example 3
Source File: ProtoDomain.java From metastore with Apache License 2.0 | 6 votes |
public Collection<Descriptors.FileDescriptor> findFileDescriptorsByOption(String optionName) { Descriptors.FieldDescriptor fieldDescriptor = optionsCatalog.getFileOptionByName(optionName); return fileDescriptorMap.values().stream() .filter( descriptor -> { DescriptorProtos.FileOptions options = descriptor.getOptions(); UnknownFieldSet.Field unknown = options.getUnknownFields().getField(fieldDescriptor.getNumber()); if (unknown.getLengthDelimitedList().size() + unknown.getFixed64List().size() + unknown.getFixed32List().size() + unknown.getVarintList().size() > 0) { return true; } return options.getAllFields().containsKey(fieldDescriptor); }) .collect(Collectors.toList()); }
Example 4
Source File: ProtoDiff.java From metastore with Apache License 2.0 | 6 votes |
private void diffOptionsFromField( Descriptors.FieldDescriptor descriptorRef, Descriptors.FieldDescriptor descriptorNew) { DescriptorProtos.FieldOptions optionsRef = descriptorRef.getOptions(); DescriptorProtos.FieldOptions optionsNew = descriptorNew.getOptions(); diffExtensionOptions( OptionChangeInfo.OptionType.FIELD_OPTION, descriptorRef, optionsRef.getAllFields(), descriptorNew, optionsNew.getAllFields()); diffUnknownOptions( OptionChangeInfo.OptionType.FIELD_OPTION, descriptorRef, optionsRef.getUnknownFields(), descriptorNew, optionsNew.getUnknownFields()); }
Example 5
Source File: GrpcResponseFactory.java From sofa-jraft with Apache License 2.0 | 6 votes |
@Override public Message newResponse(final Message parent, final int code, final String fmt, final Object... args) { final RpcRequests.ErrorResponse.Builder eBuilder = RpcRequests.ErrorResponse.newBuilder(); eBuilder.setErrorCode(code); if (fmt != null) { eBuilder.setErrorMsg(String.format(fmt, args)); } if (parent == null || parent instanceof RpcRequests.ErrorResponse) { return eBuilder.build(); } final Descriptors.FieldDescriptor errFd = parent // .getDescriptorForType() // .findFieldByNumber(ERROR_RESPONSE_NUM); Requires.requireNonNull(errFd, "errFd"); final Message.Builder builder = parent.toBuilder(); for (final Descriptors.FieldDescriptor fd : parent.getDescriptorForType().getFields()) { builder.setField(fd, parent.getField(fd)); } return builder // .setField(errFd, eBuilder.build()) // .build(); }
Example 6
Source File: ValidationResults.java From metastore with Apache License 2.0 | 5 votes |
private FieldResultContainer getOrCreateFieldContainer(Descriptors.FieldDescriptor field) { FieldResultContainer fieldResultContainer = fieldMap.get(field.getName()); if (fieldResultContainer == null) { fieldResultContainer = new FieldResultContainer(); fieldResultContainer.name = field.getName(); fieldResultContainer.number = field.getNumber(); fieldMap.put(field.getName(), fieldResultContainer); } return fieldResultContainer; }
Example 7
Source File: PersistedCassandraClusterHealthCheckHistory.java From cassandra-mesos-deprecated with Apache License 2.0 | 5 votes |
static boolean isSimilarEntry(@NotNull final CassandraFrameworkProtos.HealthCheckDetails existing, @NotNull final CassandraFrameworkProtos.HealthCheckDetails current) { for (final Descriptors.FieldDescriptor f : existing.getDescriptorForType().getFields()) { if (!"info".equals(f.getName())) { if (!objEquals(existing.getField(f), current.getField(f))) { return false; } } else { if (!isSimilarEntry(existing.getInfo(), current.getInfo())) { return false; } } } return true; }
Example 8
Source File: Key.java From fdb-record-layer with Apache License 2.0 | 5 votes |
/** * Convert a field descriptor into a expression. Assumes FanOut for repeated keys. * @param fieldDescriptor a field in a record type. * @return a new {@code Field} to get the value of the given field descriptor. */ @Nonnull public static FieldKeyExpression fromDescriptor(@Nonnull Descriptors.FieldDescriptor fieldDescriptor) { final FieldKeyExpression field = fieldDescriptor.isRepeated() ? Expressions.field(fieldDescriptor.getName(), KeyExpression.FanType.FanOut) : Expressions.field(fieldDescriptor.getName()); field.validate(fieldDescriptor.getContainingType(), fieldDescriptor, false); return field; }
Example 9
Source File: JavaPropsFormat.java From jigsaw-payment with Apache License 2.0 | 5 votes |
public void printField(final Descriptors.FieldDescriptor field, final Object value, final Appendable output) throws IOException { final JavaPropsGenerator generator = new JavaPropsGenerator(output); printField(field, value, generator); }
Example 10
Source File: ProtobufTypeUtil.java From datacollector with Apache License 2.0 | 5 votes |
private static void handleMapField( Record record, Field field, String fieldPath, Map<String, Set<Descriptors.FieldDescriptor>> messageTypeToExtensionMap, Map<String, Object> defaultValueMap, Descriptors.FieldDescriptor fieldDescriptor, DynamicMessage.Builder builder ) throws DataGeneratorException { Descriptors.Descriptor mapEntryDescriptor = fieldDescriptor.getMessageType(); // MapEntry contains key and value fields Map<String, Field> sdcMapField = field.getValueAsMap(); for (Map.Entry<String, Field> entry : sdcMapField.entrySet()) { builder.addRepeatedField(fieldDescriptor, DynamicMessage.newBuilder(mapEntryDescriptor) .setField(mapEntryDescriptor.findFieldByName(KEY), entry.getKey()) .setField( mapEntryDescriptor.findFieldByName(VALUE), getValue( mapEntryDescriptor.findFieldByName(VALUE), entry.getValue(), record, fieldPath + FORWARD_SLASH + entry.getKey(), messageTypeToExtensionMap, defaultValueMap ) ) .build() ); } }
Example 11
Source File: GeoPointWithinDistanceComponent.java From fdb-record-layer with Apache License 2.0 | 5 votes |
@Nullable private Double getCoordinateField(@Nullable Message message, @Nonnull String fieldName) { if (message == null) { return null; } final Descriptors.FieldDescriptor field = message.getDescriptorForType().findFieldByName(fieldName); if (field == null) { throw new Query.InvalidExpressionException("Missing field " + fieldName); } return (Double)message.getField(field); }
Example 12
Source File: JavaPropsFormat.java From jigsaw-payment with Apache License 2.0 | 5 votes |
public String printFieldToString(final Descriptors.FieldDescriptor field, final Object value) { try { final StringBuilder text = new StringBuilder(); printField(field, value, text); return text.toString(); } catch (IOException e) { throw new RuntimeException( "Writing to a StringBuilder threw an IOException (should never " + "happen).", e); } }
Example 13
Source File: ProtoDiff.java From metastore with Apache License 2.0 | 5 votes |
private boolean isDeprecated(Descriptors.MethodDescriptor fieldDescriptor) { Map<Descriptors.FieldDescriptor, Object> allFields = fieldDescriptor.getOptions().getAllFields(); if (allFields.size() > 0) { for (Map.Entry<Descriptors.FieldDescriptor, Object> entry : allFields.entrySet()) { Descriptors.FieldDescriptor f = entry.getKey(); switch (f.getFullName()) { case "google.protobuf.MethodOptions.deprecated": return true; } } } return false; }
Example 14
Source File: DataDstPbHelper.java From xresloader with MIT License | 4 votes |
private static <T extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<T>> HashMap<String, Object> dumpMessageExtensions( T msg, Map<Descriptors.FieldDescriptor, Object> options, com.google.protobuf.ExtensionRegistry custom_extensions) { HashMap<String, Object> ret = null; if (null == custom_extensions) { return ret; } if (options != null && !options.isEmpty()) { ret = new HashMap<String, Object>(); for (Map.Entry<Descriptors.FieldDescriptor, Object> kv : options.entrySet()) { ret.put(kv.getKey().getName(), convertMessageFieldIntoObject(kv.getKey(), kv.getValue(), true)); } } Map<Integer, com.google.protobuf.UnknownFieldSet.Field> all_unknown_fields = msg.getUnknownFields().asMap(); if (all_unknown_fields.isEmpty()) { return ret; } Set<ExtensionInfo> all_ext_types = custom_extensions .getAllImmutableExtensionsByExtendedType(msg.getDescriptorForType().getFullName()); if (all_ext_types.isEmpty()) { return ret; } for (ExtensionInfo ext_type : all_ext_types) { com.google.protobuf.UnknownFieldSet.Field field_data = all_unknown_fields .getOrDefault(ext_type.descriptor.getNumber(), null); if (field_data == null) { continue; } if (ret != null && ret.containsKey(ext_type.descriptor.getName())) { continue; } try { Object val; val = pickMessageField(field_data, ext_type.descriptor, ext_type.defaultInstance, true); if (null != val) { if (ret == null) { ret = new HashMap<String, Object>(); } ret.put(ext_type.descriptor.getName(), val); } } catch (InvalidProtocolBufferException | UnsupportedEncodingException e) { // Ignore error } } return ret; }
Example 15
Source File: FieldKeyExpression.java From fdb-record-layer with Apache License 2.0 | 4 votes |
public List<Descriptors.FieldDescriptor> validate(@Nonnull Descriptors.Descriptor parentDescriptor, boolean allowMessageType) { final Descriptors.FieldDescriptor fieldDescriptor = parentDescriptor.findFieldByName(fieldName); validate(parentDescriptor, fieldDescriptor, allowMessageType); return Collections.singletonList(fieldDescriptor); }
Example 16
Source File: ProtoDomain.java From metastore with Apache License 2.0 | 4 votes |
public Descriptors.FieldDescriptor getFileOptionByName(String fullName) { return findByName(fileOptionMap, fullName); }
Example 17
Source File: ElementKeyExpression.java From fdb-record-layer with Apache License 2.0 | 4 votes |
@Override public List<Descriptors.FieldDescriptor> validate(@Nonnull Descriptors.Descriptor descriptor) { throw new UnsupportedOperationException(); }
Example 18
Source File: ProtoDomain.java From metastore with Apache License 2.0 | 4 votes |
Map<Integer, Descriptors.FieldDescriptor> getFileOptionMap() { return Collections.unmodifiableMap(fileOptionMap); }
Example 19
Source File: MessageToBean.java From krpc with Apache License 2.0 | 4 votes |
static void parseSingleField(Descriptors.FieldDescriptor field, Object value, Object bean, boolean isArray) { String name = field.getName(); switch (field.getType()) { case INT32: case SINT32: case SFIXED32: addToResults(name, value, bean, isArray); break; case INT64: case SINT64: case SFIXED64: addToResults(name, value, bean, isArray); break; case BOOL: addToResults(name,value, bean, isArray); break; case FLOAT: addToResults(name,value, bean, isArray); break; case DOUBLE: addToResults(name,value, bean, isArray); break; case UINT32: case FIXED32: addToResults(name, unsignedToLong((Integer) value), bean, isArray); break; case UINT64: case FIXED64: addToResults(name, unsignedToBigInteger((Long) value), bean, isArray); break; case STRING: addToResults(name,value, bean, isArray); break; case BYTES: { if (value instanceof ByteString) { addToResults(name, value, bean, isArray); } if (value instanceof String) { byte[] bb = getBytes((String) value); if (bb != null) { addToResults(name, ByteString.copyFrom(bb), bean, isArray); } } if (value instanceof byte[]) { addToResults(name, ByteString.copyFrom((byte[]) value), bean, isArray); } } break; case ENUM: addToResults(name, ((Descriptors.EnumValueDescriptor) value).getNumber(), bean, isArray); break; case MESSAGE: Object sub = getFieldInstance(name,bean); copyProperties((Message) value, sub); addToResults(name, sub, bean, isArray); break; default: break; } }
Example 20
Source File: FDBTypedRecordStore.java From fdb-record-layer with Apache License 2.0 | 3 votes |
/** * Create a new typed record store builder. * * @param fieldDescriptor field descriptor for the union field used to hold the target record type * @param builderSupplier builder for the union message type * @param tester predicate to determine whether an instance of the union message has the target record type * @param getter accessor to get record message instance from union message instance * @param setter access to store record message instance into union message instance * @param <M> generated Protobuf class for the record message type * @param <U> generated Protobuf class for the union message * @param <B> generated Protobuf class for the union message's builder * @return a builder using the given functions */ @Nonnull public static <M extends Message, U extends Message, B extends Message.Builder> Builder<M> newBuilder(@Nonnull Descriptors.FieldDescriptor fieldDescriptor, @Nonnull Supplier<B> builderSupplier, @Nonnull Predicate<U> tester, @Nonnull Function<U, M> getter, @Nonnull BiConsumer<B, M> setter) { RecordSerializer<M> typedSerializer = new TypedRecordSerializer<>(fieldDescriptor, builderSupplier, tester, getter, setter); RecordSerializer<Message> untypedSerializer = new MessageBuilderRecordSerializer(builderSupplier::get); return newBuilder(typedSerializer).setUntypedSerializer(untypedSerializer); }