Java Code Examples for com.google.protobuf.Descriptors#EnumDescriptor
The following examples show how to use
com.google.protobuf.Descriptors#EnumDescriptor .
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 Project: metastore File: ProtoDomain.java License: Apache License 2.0 | 6 votes |
public Collection<Descriptors.EnumDescriptor> findEnumDescriptorsByOption(String optionName) { Descriptors.FieldDescriptor fieldDescriptor = optionsCatalog.getEnumOptionByName(optionName); return enumMap.values().stream() .filter( descriptor -> { DescriptorProtos.EnumOptions 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 Project: metastore File: ProtoLanguageFileWriter.java License: Apache License 2.0 | 6 votes |
private void writeEnumDescriptor( Descriptors.EnumDescriptor enumType, PathLocation parent, int indent) { PathLocation location = parent.addEnum(enumType); writeLeadingComment(commentIndexer.getLocation(location), indent); indent(indent); writer.print("enum "); writer.print(enumType.getName()); writer.println(" {"); writeOptionsForBlock(enumType.getOptions(), indent + 1, "Enum"); for (Descriptors.EnumValueDescriptor value : enumType.getValues()) { indent(indent + 1); writer.print(value.getName()); writer.print(" = "); writer.print(value.getNumber()); writeOptionsForList(value.getOptions(), indent + 1, "EnumValue"); writer.println(";"); } indent(indent); writer.print("}"); writeTrailingComment(commentIndexer.getLocation(location), indent); }
Example 3
Source Project: metastore File: ProtoToAvroSchema.java License: Apache License 2.0 | 6 votes |
private AvroSchemaItem toEnumField( List<Descriptors.EnumDescriptor> enumTypes, String enumFullName) { AvroSchemaItem enumField = new AvroSchemaItem(); final Optional<Descriptors.EnumDescriptor> first = enumTypes.stream().filter(f -> f.getFullName().startsWith(enumFullName)).findFirst(); enumField.setType("enum"); enumField.setName(first.get().getName()); List<String> values = new ArrayList<>(); first.get().getValues().forEach(item -> values.add(item.getName())); enumField.setSymbols(values); return enumField; }
Example 4
Source Project: xresloader File: DataDstPb.java License: MIT License | 6 votes |
static Descriptors.EnumValueDescriptor get_enum_value(PbInfoSet pbs, Descriptors.EnumDescriptor enum_desc, Integer val) { String name = enum_desc.getFullName(); while (!name.isEmpty() && '.' == name.charAt(0)) { name = name.substring(1); } HashMap<Integer, Descriptors.EnumValueDescriptor> cache_set = pbs.enum_values_descs.getOrDefault(name, null); if (cache_set == null) { cache_set = new HashMap<Integer, Descriptors.EnumValueDescriptor>(); pbs.enum_values_descs.put(name, cache_set); for (Descriptors.EnumValueDescriptor enum_val : enum_desc.getValues()) { cache_set.put(Integer.valueOf(enum_val.getNumber()), enum_val); } } return cache_set.getOrDefault(val, null); }
Example 5
Source Project: metastore File: ProtoDomainTest.java License: Apache License 2.0 | 5 votes |
@Test public void findEnumDescriptorsByOption() throws IOException { ProtoDomain domain = TestSets.baseMultipleOptions(); Collection<Descriptors.EnumDescriptor> options = domain.findEnumDescriptorsByOption("test.v1.enum_option"); // TODO Add more sets with enums Assert.assertEquals(0, options.size()); }
Example 6
Source Project: metastore File: ProtoToJsonSchema.java License: Apache License 2.0 | 5 votes |
private void addToEnumsMap( ObjectMapper mapper, String fieldName, List<Descriptors.EnumDescriptor> enums) { enums.forEach( item -> { addToEnumsMap(mapper, fieldName, item); }); }
Example 7
Source Project: metastore File: ProtoToJsonSchema.java License: Apache License 2.0 | 5 votes |
private void addToEnumsMap( ObjectMapper mapper, String fieldName, Descriptors.EnumDescriptor item) { ObjectNode nodeEnum = mapper.createObjectNode(); ArrayNode nodeArray = nodeEnum.putArray("enum"); item.getValues() .forEach( e -> { nodeArray.add(e.getName()); }); String key = fieldName == null ? item.getFullName() : fieldName; enumMaps.put(key, nodeEnum); }
Example 8
Source Project: parquet-mr File: ProtoMessageConverter.java License: Apache License 2.0 | 5 votes |
/** * Fills lookup structure for translating between parquet enum values and Protocol buffer enum values. * */ private Map<Binary, Descriptors.EnumValueDescriptor> makeLookupStructure(Descriptors.FieldDescriptor enumFieldType) { Descriptors.EnumDescriptor enumType = enumFieldType.getEnumType(); Map<Binary, Descriptors.EnumValueDescriptor> lookupStructure = new HashMap<Binary, Descriptors.EnumValueDescriptor>(); List<Descriptors.EnumValueDescriptor> enumValues = enumType.getValues(); for (Descriptors.EnumValueDescriptor value : enumValues) { String name = value.getName(); lookupStructure.put(Binary.fromString(name), enumType.findValueByName(name)); } return lookupStructure; }
Example 9
Source Project: metastore File: ValidationResults.java License: Apache License 2.0 | 5 votes |
private EnumResultContainer getOrCreateEnum(Descriptors.EnumDescriptor enumDescriptor) { String fileName = enumDescriptor.getFullName(); EnumResultContainer enumResult = enumMap.get(fileName); if (enumResult == null) { enumResult = new EnumResultContainer(); enumResult.packageName = enumDescriptor.getFile().getPackage(); enumResult.fullName = fileName; enumMap.put(fileName, enumResult); } return enumResult; }
Example 10
Source Project: flink-statefun File: ProtobufDescriptorMap.java License: Apache License 2.0 | 5 votes |
private static void addEnums( Map<String, Descriptors.GenericDescriptor> descriptors, Descriptors.FileDescriptor descriptor, String packageName) { for (Descriptors.EnumDescriptor message : descriptor.getEnumTypes()) { String fullName = packageName + message.getName(); descriptors.put(fullName, message); } }
Example 11
Source Project: metastore File: ProtoDomain.java License: Apache License 2.0 | 4 votes |
public Descriptors.EnumDescriptor getEnumDescriptorByName(String messageName) { return enumMap.get(messageName); }
Example 12
Source Project: metastore File: ProtoLanguageFileWriter.java License: Apache License 2.0 | 4 votes |
private void writeFieldType(Descriptors.FieldDescriptor field) { if (field.isRepeated() && !isMap(field)) { writer.print("repeated "); } switch (field.getType()) { case UINT64: writer.print("uint64"); break; case INT32: writer.print("int32"); break; case INT64: writer.print("int64"); break; case FIXED64: writer.print("fixed64"); break; case FIXED32: writer.print("fixed32"); break; case BOOL: writer.print("bool"); break; case STRING: writer.print("string"); break; case GROUP: // TODO figure out if we need to support this (proto2) writer.print("GROUP"); break; case MESSAGE: { Descriptors.Descriptor messageType = field.getMessageType(); if (messageType.getFile() == fd) { if (isMap(field)) { writer.print("map<"); writeFieldType(messageType.findFieldByNumber(1)); writer.print(", "); writeFieldType(messageType.findFieldByNumber(2)); writer.print(">"); } else { writer.print(messageType.getName()); } } else { writer.print(messageType.getFullName()); } break; } case BYTES: writer.print("bytes"); break; case UINT32: writer.print("uint32"); break; case ENUM: { Descriptors.EnumDescriptor enumType = field.getEnumType(); if (enumType.getFile() == fd) { writer.print(enumType.getName()); } else { writer.print(enumType.getFullName()); } break; } case SFIXED32: writer.print("sfixed32"); break; case SFIXED64: writer.print("sfixed64"); break; case SINT32: writer.print("sint32"); break; case SINT64: writer.print("sint64"); break; case DOUBLE: writer.print("double"); break; case FLOAT: writer.print("float"); break; } }
Example 13
Source Project: metastore File: ProtoLanguageFileWriter.java License: Apache License 2.0 | 4 votes |
private void write() { PathLocation location = new PathLocation(); writeLeadingComment(commentIndexer.getSyntaxLocation(), 0); switch (fd.getSyntax()) { case PROTO2: writer.print("syntax = \"proto2\";"); break; case PROTO3: writer.print("syntax = \"proto3\";"); break; default: break; } writeTrailingComment(commentIndexer.getSyntaxLocation(), 0); writer.println(); if (!fd.getPackage().isEmpty()) { writeLeadingComment(commentIndexer.getPackageLocation(), 0); writer.print("package "); writer.print(fd.getPackage()); writer.print(";"); writeTrailingComment(commentIndexer.getPackageLocation(), 0); writer.println(); } List<Descriptors.FileDescriptor> dependencies = fd.getDependencies(); if (dependencies.size() > 0) { int index = 0; for (Descriptors.FileDescriptor dependency : dependencies) { writeLeadingComment(commentIndexer.importLocations.get(index++), 0); writer.print("import \""); writer.print(dependency.getName()); writer.print("\";"); writeTrailingComment(commentIndexer.importLocations.get(index++), 0); } writer.println(); } writeOptionsForBlock(fd.getOptions(), 0, "File"); extensions(); for (Descriptors.EnumDescriptor enumDescriptor : fd.getEnumTypes()) { writer.println(); writeEnumDescriptor(enumDescriptor, location, 0); } for (Descriptors.ServiceDescriptor serviceDescriptor : fd.getServices()) { writer.println(); writeServiceDescriptor(serviceDescriptor, location); } for (Descriptors.Descriptor messageType : fd.getMessageTypes()) { writer.println(); writeMessageDescriptor(messageType, location, 0); } }
Example 14
Source Project: metastore File: ProtoLanguageFileWriter.java License: Apache License 2.0 | 4 votes |
PathLocation addEnum(Descriptors.EnumDescriptor type) { return add('E', type.getIndex()); }
Example 15
Source Project: jigsaw-payment File: XmlFormat.java License: Apache License 2.0 | 4 votes |
private Object handlePrimitive(Tokenizer tokenizer, FieldDescriptor field) throws ParseException { Object value = null; switch (field.getType()) { case INT32: case SINT32: case SFIXED32: value = tokenizer.consumeInt32(); break; case INT64: case SINT64: case SFIXED64: value = tokenizer.consumeInt64(); break; case UINT32: case FIXED32: value = tokenizer.consumeUInt32(); break; case UINT64: case FIXED64: value = tokenizer.consumeUInt64(); break; case FLOAT: value = tokenizer.consumeFloat(); break; case DOUBLE: value = tokenizer.consumeDouble(); break; case BOOL: value = tokenizer.consumeBoolean(); break; case STRING: value = tokenizer.consumeString(); break; case BYTES: value = tokenizer.consumeByteString(); break; case ENUM: { Descriptors.EnumDescriptor enumType = field.getEnumType(); if (tokenizer.lookingAtInteger()) { int number = tokenizer.consumeInt32(); value = enumType.findValueByNumber(number); if (value == null) { throw tokenizer.parseExceptionPreviousToken("Enum type \"" + enumType.getFullName() + "\" has no value with number " + number + "."); } } else { String id = tokenizer.consumeIdentifier(); value = enumType.findValueByName(id); if (value == null) { throw tokenizer.parseExceptionPreviousToken("Enum type \"" + enumType.getFullName() + "\" has no value named \"" + id + "\"."); } } break; } case MESSAGE: case GROUP: throw new RuntimeException("Can't get here."); } return value; }
Example 16
Source Project: metastore File: ValidationResults.java License: Apache License 2.0 | 4 votes |
void setPatch(Descriptors.EnumDescriptor fd, ChangeInfo patch) { EnumResultContainer resultContainer = getOrCreateEnum(fd); resultContainer.setPatch(patch); }
Example 17
Source Project: js-dossier File: ProtoDescriptorsToJs.java License: Apache License 2.0 | 4 votes |
private static Map<String, ?> asRecord(Descriptors.EnumDescriptor descriptor) { return ImmutableMap.of( "enum", descriptor.toProto(), "name", descriptor.getFullName()); }
Example 18
Source Project: beam File: ProtoDynamicMessageSchema.java License: Apache License 2.0 | 4 votes |
@Override Object convertToProtoValue(FieldDescriptor fieldDescriptor, Object value) { Descriptors.EnumDescriptor enumType = fieldDescriptor.getEnumType(); return enumType.findValueByNumber(((EnumerationType.Value) value).getValue()); }
Example 19
Source Project: grpc-swagger File: OpenApiDefinitionHandler.java License: MIT License | 4 votes |
private FieldProperty parseFieldProperty(Descriptors.FieldDescriptor fieldDescriptor) { Descriptors.FieldDescriptor.Type type = fieldDescriptor.getType(); FieldTypeEnum fieldTypeEnum = FieldTypeEnum.getByFieldType(type); FieldProperty fieldProperty = new FieldProperty(); if (fieldDescriptor.isRepeated()) { // map if (type == Descriptors.FieldDescriptor.Type.MESSAGE && fieldDescriptor.getMessageType().getOptions().getMapEntry()) { fieldProperty.setType(FieldTypeEnum.OBJECT.getType()); Descriptor messageType = fieldDescriptor.getMessageType(); Descriptors.FieldDescriptor mapValueType = messageType.getFields().get(1); fieldProperty.setAdditionalProperties(parseFieldProperty(mapValueType)); } else { // array fieldProperty.setType(FieldTypeEnum.ARRAY.getType()); Items items = new Items(); items.setType(fieldTypeEnum.getType()); items.setFormat(fieldTypeEnum.getFormat()); if (fieldTypeEnum == FieldTypeEnum.OBJECT) { items.setRef(findRefByType(fieldDescriptor.getMessageType())); } fieldProperty.setItems(items); } } // object reference else if (fieldTypeEnum == FieldTypeEnum.OBJECT) { fieldProperty.setRef(findRefByType(fieldDescriptor.getMessageType())); } // enum else if (fieldTypeEnum == FieldTypeEnum.ENUM) { fieldProperty.setType(FieldTypeEnum.ENUM.getType()); List<String> enums = new ArrayList<>(); Descriptors.EnumDescriptor enumDescriptor = fieldDescriptor.getEnumType(); enumDescriptor.getValues().forEach(enumValueDescriptor -> enums.add(enumValueDescriptor.getName())); fieldProperty.setEnums(enums); } // other simple types else { fieldProperty.setType(fieldTypeEnum.getType()); fieldProperty.setFormat(fieldTypeEnum.getFormat()); } return fieldProperty; }
Example 20
Source Project: metastore File: ProtoLint.java License: Apache License 2.0 | votes |
private void lintOnEnum(Descriptors.EnumDescriptor enu) {}