Java 类com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto 实例源码

项目:api-compiler    文件:TypesBuilderFromDescriptor.java   
/**
 * 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();
}
项目:play-store-api    文件:Descriptors.java   
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.
}
项目:vsminecraft    文件:DescriptorsTest.java   
public void testPackedEnumField() throws Exception {
  FileDescriptorProto fileDescriptorProto = FileDescriptorProto.newBuilder()
      .setName("foo.proto")
      .addEnumType(EnumDescriptorProto.newBuilder()
        .setName("Enum")
        .addValue(EnumValueDescriptorProto.newBuilder()
          .setName("FOO")
          .setNumber(1)
          .build())
        .build())
      .addMessageType(DescriptorProto.newBuilder()
        .setName("Message")
        .addField(FieldDescriptorProto.newBuilder()
          .setName("foo")
          .setTypeName("Enum")
          .setNumber(1)
          .setLabel(FieldDescriptorProto.Label.LABEL_REPEATED)
          .setOptions(DescriptorProtos.FieldOptions.newBuilder()
            .setPacked(true)
            .build())
          .build())
        .build())
      .build();
  Descriptors.FileDescriptor.buildFrom(
      fileDescriptorProto, new FileDescriptor[0]);
}
项目:bazel    文件:DescriptorsTest.java   
public void testPackedEnumField() throws Exception {
  FileDescriptorProto fileDescriptorProto = FileDescriptorProto.newBuilder()
      .setName("foo.proto")
      .addEnumType(EnumDescriptorProto.newBuilder()
        .setName("Enum")
        .addValue(EnumValueDescriptorProto.newBuilder()
          .setName("FOO")
          .setNumber(1)
          .build())
        .build())
      .addMessageType(DescriptorProto.newBuilder()
        .setName("Message")
        .addField(FieldDescriptorProto.newBuilder()
          .setName("foo")
          .setTypeName("Enum")
          .setNumber(1)
          .setLabel(FieldDescriptorProto.Label.LABEL_REPEATED)
          .setOptions(DescriptorProtos.FieldOptions.newBuilder()
            .setPacked(true)
            .build())
          .build())
        .build())
      .build();
  Descriptors.FileDescriptor.buildFrom(
      fileDescriptorProto, new FileDescriptor[0]);
}
项目:api-compiler    文件:DescriptorGenerator.java   
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();
}
项目:api-compiler    文件:EnumType.java   
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();
}
项目:play-store-api    文件:Descriptors.java   
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);
}
项目:sql-layer    文件:ProtobufDecompiler.java   
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("}");
}
项目:Beam    文件:Descriptors.java   
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);
}
项目:protobuf-el    文件:ProtoFileParser.java   
@Override
public void exitEnumField(final EnumFieldContext ctx) {
  final EnumValueDescriptorProto.Builder enumValueBuilder =
      EnumValueDescriptorProto.Builder.class.cast(scopes.getProtoBuilder());
  enumValueBuilder.setName(ctx.identifier().getText()).setNumber(
      Integer.decode(ctx.enumValue().getText()));
  scopes.popScope();
}
项目:protobuf-el    文件:OptionResolver.java   
private void buildAllOptions(final EnumDescriptorProto.Builder proto) {
  if (!buildOptions(proto.getOptionsBuilder())) {
    proto.clearOptions();
  }

  for (final EnumValueDescriptorProto.Builder enumValueProto : proto.getValueBuilderList()) {
    if (!buildOptions(enumValueProto.getOptionsBuilder())) {
      enumValueProto.clearOptions();
    }
  }
}
项目:protobuf-el    文件:FileDescriptorEx.java   
private boolean isCanonical(final EnumDescriptorProto enumProto) {
  if (enumProto.hasOptions() && enumProto.getOptions().getUninterpretedOptionCount() > 0) {
    return false;
  }

  for (final EnumValueDescriptorProto enumValue : enumProto.getValueList()) {
    if (enumValue.hasOptions() && enumValue.getOptions().getUninterpretedOptionCount() > 0) {
      return false;
    }
  }

  return true;
}
项目:saluki    文件:PrintEnumFile.java   
public void setEnumFields(List<EnumValueDescriptorProto> enumFields) {
    this.enumFields = enumFields;
}
项目:api-compiler    文件:DescriptorNormalization.java   
public static List<Option> getOptions(EnumValueDescriptorProto descriptor) {
  return getOptions(descriptor, true);
}
项目:api-compiler    文件:DescriptorNormalization.java   
public static List<Option> getOptions(EnumValueDescriptorProto descriptor, boolean withDefaults) {
  return toCoreOptions(maybeCombineOptionsWithDefault(withDefaults,
      descriptor.getOptions().getAllFields(), DEFAULT_ENUM_VALUE_OPTIONS));
}
项目:api-compiler    文件:EnumValue.java   
/**
 * 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);
}
项目:api-compiler    文件:EnumValue.java   
private EnumValue(EnumType parent, EnumValueDescriptorProto proto, String path) {
  super(parent, proto.getName(), path);
  this.proto = proto;
}
项目:api-compiler    文件:EnumValue.java   
/**
 * Returns the underlying proto representation.
 */
public EnumValueDescriptorProto getProto() {
  return proto;
}
项目:api-compiler    文件:BuilderVisitor.java   
@Accepts
protected void accept(EnumValueDescriptorProto.Builder val) {
  pushParent(BuilderVisitorNodeInfo.create(val, currentFile));
  visit(val.getOptionsBuilder());
  popExpectedParent(val);
}
项目:play-store-api    文件:Descriptors.java   
/** Convert the descriptor to its protocol message representation. */
@Override
public EnumValueDescriptorProto toProto() {
  return proto;
}
项目:play-store-api    文件:Descriptors.java   
/** See {@link FileDescriptor#setProto}. */
private void setProto(final EnumValueDescriptorProto proto) {
  this.proto = proto;
}
项目:protobuf-dynamic    文件:EnumDefinition.java   
public Builder addValue(String name, int num) {
    EnumValueDescriptorProto.Builder enumValBuilder = EnumValueDescriptorProto.newBuilder();
    enumValBuilder.setName(name).setNumber(num);
    mEnumTypeBuilder.addValue(enumValBuilder.build());
    return this;
}
项目:vsminecraft    文件:DescriptorsTest.java   
/**
 * 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"));
  }   
}
项目:Beam    文件:Descriptors.java   
/**
 * Convert the descriptor to its protocol message representation.
 */
public EnumValueDescriptorProto toProto () {
    return proto;
}
项目:Beam    文件:Descriptors.java   
/**
 * See {@link FileDescriptor#setProto}.
 */
private void setProto (final EnumValueDescriptorProto proto) {
    this.proto = proto;
}
项目:protobuf-el    文件:Scopes.java   
public EnumValueDescriptorProto.Builder addEnumValue() {
  final EnumValueDescriptorProto.Builder builder = currentScope.addEnumValue();
  pushScope(new EnumValueScope(builder, currentScope));
  return builder;
}
项目:protobuf-el    文件:Scopes.java   
protected EnumValueDescriptorProto.Builder addEnumValue() {
  throw new RuntimeException(NOT_APPLICABLE_IN_CURRENT_SCOPE);
}
项目:protobuf-el    文件:Scopes.java   
@Override
protected EnumValueDescriptorProto.Builder addEnumValue() {
  return protoBuilder.addValueBuilder();
}
项目:protobuf-el    文件:Scopes.java   
private EnumValueScope(final EnumValueDescriptorProto.Builder protoBuilder,
    final Scope<?> parent) {
  super(protoBuilder, parent);
}
项目:protobuf-el    文件:AbstractMessageUtils.java   
public static boolean compareProto(final EnumValueDescriptorProto me, final @Nullable Object other) {
  return compareMessage(me, other, new ProtoFilter());
}
项目:bazel    文件:DescriptorsTest.java   
/**
 * 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"));
  }   
}
项目:bazel    文件:DescriptorsTest.java   
/**
 * 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"));
  }
}