com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto Java Examples

The following examples show how to use com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto. 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: Descriptors.java    From play-store-api with GNU General Public License v3.0 6 votes vote down vote up
private EnumValueDescriptor(
    final FileDescriptor file,
    final EnumDescriptor parent,
    final Integer number) {
  String name = "UNKNOWN_ENUM_VALUE_" + parent.getName() + "_" + number;
  EnumValueDescriptorProto proto = EnumValueDescriptorProto
      .newBuilder().setName(name).setNumber(number).build();
  this.index = -1;
  this.proto = proto;
  this.file = file;
  this.type = parent;
  this.fullName = parent.getFullName() + '.' + proto.getName();
  this.number = number;

  // Don't add this descriptor into pool.
}
 
Example #2
Source File: TypesBuilderFromDescriptor.java    From api-compiler with Apache License 2.0 6 votes vote down vote up
/**
 * TODO (guptasu): Only needed to create NullValue enum.  Check if this can be removed.
 * Create the Protobuf.Enum instance from enumDescriptorProto.
 */
private static Enum createEnum(String enumName,
    EnumDescriptorProto enumDescriptorProto, String fileName) {

  com.google.protobuf.Enum.Builder coreEnumBuilder =
      com.google.protobuf.Enum.newBuilder().setName(enumName);

  coreEnumBuilder.setSyntax(Syntax.SYNTAX_PROTO3);

  for (EnumValueDescriptorProto value : enumDescriptorProto.getValueList()) {
    com.google.protobuf.EnumValue.Builder coreEnumValueBuilder =
        com.google.protobuf.EnumValue.newBuilder();
    coreEnumValueBuilder.setName(value.getName()).setNumber(value.getNumber());
    coreEnumBuilder.addEnumvalue(coreEnumValueBuilder.build());
  }

  coreEnumBuilder.setSourceContext(SourceContext.newBuilder().setFileName(fileName));
  return coreEnumBuilder.build();
}
 
Example #3
Source File: DescriptorGenerator.java    From api-compiler with Apache License 2.0 5 votes vote down vote up
private EnumDescriptorProto generateEnum(Enum e) {
  EnumDescriptorProto.Builder builder = EnumDescriptorProto.newBuilder();
  builder.setName(getSimpleName(e.getName()));
  for (EnumValue value : e.getEnumvalueList()) {
    EnumValueDescriptorProto.Builder valueBuilder = EnumValueDescriptorProto.newBuilder();
    valueBuilder.setName(value.getName());
    valueBuilder.setNumber(value.getNumber());
    valueBuilder.setOptions(generateEnumValueOptions(value));
    builder.addValue(valueBuilder.build());
  }
  builder.setOptions(generateEnumOptions(e));
  return builder.build();
}
 
Example #4
Source File: EnumType.java    From api-compiler with Apache License 2.0 5 votes vote down vote up
private EnumType(ProtoContainerElement parent, EnumDescriptorProto proto, String path) {
  super(parent, proto.getName(), path);
  this.proto = proto;

  // Build values.
  ImmutableList.Builder<EnumValue> valuesBuilder = ImmutableList.builder();
  List<EnumValueDescriptorProto> valueProtos = proto.getValueList();
  for (int i = 0; i < valueProtos.size(); i++) {
    EnumValueDescriptorProto value = valueProtos.get(i);
    String childPath = buildPath(path, EnumDescriptorProto.VALUE_FIELD_NUMBER, i);
    valuesBuilder.add(EnumValue.create(this, value, childPath));
  }
  values = valuesBuilder.build();
}
 
Example #5
Source File: ProtobufDecompiler.java    From sql-layer with GNU Affero General Public License v3.0 5 votes vote down vote up
protected void decompile(EnumDescriptorProto enumDescriptor) throws IOException {
    indentedFormat("enum %s {", enumDescriptor.getName());
    indent++;
    if (enumDescriptor.hasOptions()) {
        decompileOptions(enumDescriptor.getOptions());
    }
    for (EnumValueDescriptorProto value : enumDescriptor.getValueList()) {
        indentedFormat("%s = %d%s;", value.getName(), value.getNumber(),
                       value.hasOptions() ? bracketedOptions(value.getOptions()) : "");
    }
    indent--;
    indentedFormat("}");
}
 
Example #6
Source File: Descriptors.java    From play-store-api with GNU General Public License v3.0 5 votes vote down vote up
private EnumValueDescriptor(final EnumValueDescriptorProto proto,
                            final FileDescriptor file,
                            final EnumDescriptor parent,
                            final int index)
                     throws DescriptorValidationException {
  this.index = index;
  this.proto = proto;
  this.file = file;
  type = parent;

  fullName = parent.getFullName() + '.' + proto.getName();

  file.pool.addSymbol(this);
  file.pool.addEnumValueByNumber(this);
}
 
Example #7
Source File: EnumDefinition.java    From protobuf-dynamic with Apache License 2.0 4 votes vote down vote up
public Builder addValue(String name, int num) {
	EnumValueDescriptorProto.Builder enumValBuilder = EnumValueDescriptorProto.newBuilder();
	enumValBuilder.setName(name).setNumber(num);
	mEnumTypeBuilder.addValue(enumValBuilder.build());
	return this;
}
 
Example #8
Source File: PrintEnumFile.java    From saluki with Apache License 2.0 4 votes vote down vote up
public void setEnumFields(List<EnumValueDescriptorProto> enumFields) {
    this.enumFields = enumFields;
}
 
Example #9
Source File: DescriptorsTest.java    From travelguide with Apache License 2.0 4 votes vote down vote up
/**
 * Tests the translate/crosslink for an example with a more complex namespace
 * referencing.
 */
public void testComplexNamespacePublicDependency() throws Exception {
  FileDescriptorProto fooProto = FileDescriptorProto.newBuilder()
      .setName("bar.proto")
      .setPackage("a.b.c.d.bar.shared")
      .addEnumType(EnumDescriptorProto.newBuilder()
          .setName("MyEnum")
          .addValue(EnumValueDescriptorProto.newBuilder()
              .setName("BLAH")
              .setNumber(1)))
      .build();
  FileDescriptorProto barProto = FileDescriptorProto.newBuilder()
      .setName("foo.proto")
      .addDependency("bar.proto")
      .setPackage("a.b.c.d.foo.shared")
      .addMessageType(DescriptorProto.newBuilder()
          .setName("MyMessage")
          .addField(FieldDescriptorProto.newBuilder()
              .setLabel(FieldDescriptorProto.Label.LABEL_REPEATED)
              .setTypeName("bar.shared.MyEnum")
              .setName("MyField")
              .setNumber(1)))
      .build();
  // translate and crosslink
  FileDescriptor fooFile = Descriptors.FileDescriptor.buildFrom(
      fooProto, new FileDescriptor[0]);
  FileDescriptor barFile = Descriptors.FileDescriptor.buildFrom(
      barProto, new FileDescriptor[]{fooFile});
  // verify resulting descriptors
  assertNotNull(barFile);
  List<Descriptor> msglist = barFile.getMessageTypes();
  assertNotNull(msglist);
  assertTrue(msglist.size() == 1);
  Descriptor desc = msglist.get(0);
  if (desc.getName().equals("MyMessage")) {
    assertNotNull(desc.getFields());
    List<FieldDescriptor> fieldlist = desc.getFields();
    assertNotNull(fieldlist);
    assertTrue(fieldlist.size() == 1);
    FieldDescriptor field = fieldlist.get(0);
    assertTrue(field.getType() == FieldDescriptor.Type.ENUM);
    assertTrue(field.getEnumType().getName().equals("MyEnum"));
    assertTrue(field.getEnumType().getFile().getName().equals("bar.proto"));
    assertTrue(field.getEnumType().getFile().getPackage().equals(
        "a.b.c.d.bar.shared"));
  }   
}
 
Example #10
Source File: Descriptors.java    From play-store-api with GNU General Public License v3.0 4 votes vote down vote up
/** See {@link FileDescriptor#setProto}. */
private void setProto(final EnumValueDescriptorProto proto) {
  this.proto = proto;
}
 
Example #11
Source File: Descriptors.java    From play-store-api with GNU General Public License v3.0 4 votes vote down vote up
/** Convert the descriptor to its protocol message representation. */
@Override
public EnumValueDescriptorProto toProto() {
  return proto;
}
 
Example #12
Source File: BuilderVisitor.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
@Accepts
protected void accept(EnumValueDescriptorProto.Builder val) {
  pushParent(BuilderVisitorNodeInfo.create(val, currentFile));
  visit(val.getOptionsBuilder());
  popExpectedParent(val);
}
 
Example #13
Source File: EnumValue.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
/**
 * Returns the underlying proto representation.
 */
public EnumValueDescriptorProto getProto() {
  return proto;
}
 
Example #14
Source File: EnumValue.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
private EnumValue(EnumType parent, EnumValueDescriptorProto proto, String path) {
  super(parent, proto.getName(), path);
  this.proto = proto;
}
 
Example #15
Source File: EnumValue.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
/**
 * Creates an enum value backed up by the given proto.
 */
public static EnumValue create(EnumType parent, EnumValueDescriptorProto proto, String path) {
  return new EnumValue(parent, proto, path);
}
 
Example #16
Source File: DescriptorNormalization.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
public static List<Option> getOptions(EnumValueDescriptorProto descriptor, boolean withDefaults) {
  return toCoreOptions(maybeCombineOptionsWithDefault(withDefaults,
      descriptor.getOptions().getAllFields(), DEFAULT_ENUM_VALUE_OPTIONS));
}
 
Example #17
Source File: DescriptorNormalization.java    From api-compiler with Apache License 2.0 4 votes vote down vote up
public static List<Option> getOptions(EnumValueDescriptorProto descriptor) {
  return getOptions(descriptor, true);
}