@Override void linkOptions(Linker linker) { options.link(linker); for (EnumConstant constant : constants) { constant.linkOptions(linker); } allowAlias = options.get(ALLOW_ALIAS); }
void linkOptions(Linker linker) { options.link(linker); javaPackage = options().get(JAVA_PACKAGE); }
void linkOptions(Linker linker) { linker = linker.withContext(this); options.link(linker); deprecated = options().get(DEPRECATED); packed = options().get(PACKED); // We allow any package name to be used as long as it ends with '.redacted'. redacted = options().optionMatches(".*\\.redacted", "true"); }
fieldBuilder.addJavadoc("$L\n", sanitizeJavadoc(constant.documentation())); if ("true".equals(constant.options().get(ENUM_DEPRECATED))) { fieldBuilder.addAnnotation(Deprecated.class);
@Test public void fieldOptions() throws Exception { Schema schema = new RepoBuilder() .add("message.proto", "" + "import \"google/protobuf/descriptor.proto\";\n" + "message Message {\n" + " optional int32 a = 1;\n" + " optional int32 b = 2 [color=red, deprecated=true, packed=true];\n" + "}\n" + "extend google.protobuf.FieldOptions {\n" + " optional string color = 60001;\n" + "}\n") .schema(); MessageType message = (MessageType) schema.getType("Message"); Options aOptions = message.field("a").options(); assertThat(aOptions.get(ProtoMember.get(FIELD_OPTIONS, "color"))).isNull(); assertThat(aOptions.get(ProtoMember.get(FIELD_OPTIONS, "deprecated"))).isNull(); assertThat(aOptions.get(ProtoMember.get(FIELD_OPTIONS, "packed"))).isNull(); Options bOptions = message.field("b").options(); assertThat(bOptions.get(ProtoMember.get(FIELD_OPTIONS, "color"))).isEqualTo("red"); assertThat(bOptions.get(ProtoMember.get(FIELD_OPTIONS, "deprecated"))).isEqualTo("true"); assertThat(bOptions.get(ProtoMember.get(FIELD_OPTIONS, "packed"))).isEqualTo("true"); }
if ("true".equals(constant.options().get(ENUM_DEPRECATED))) { constantBuilder.addAnnotation(Deprecated.class);
@Test public void excludedFieldPrunesNestedOption() throws Exception { Schema schema = new RepoBuilder() .add("service.proto", "" + "import \"google/protobuf/descriptor.proto\";\n" + "message SomeFieldOptions {\n" + " optional string a = 1;\n" + " optional string b = 2;\n" + "}\n" + "extend google.protobuf.FieldOptions {\n" + " optional SomeFieldOptions some_field_options = 22001;\n" + "}\n" + "message Message {\n" + " optional string f = 1 [some_field_options = { a: \"a\", b: \"b\" }];\n" + "}\n") .schema(); Schema pruned = schema.prune(new IdentifierSet.Builder() .exclude("SomeFieldOptions#b") .build()); Field field = ((MessageType) pruned.getType("Message")).field("f"); Map<?, ?> map = (Map<?, ?>) field.options().get( ProtoMember.get(FIELD_OPTIONS, "some_field_options")); Map.Entry<?, ?> onlyOption = getOnlyElement(map.entrySet()); assertThat(((ProtoMember) onlyOption.getKey()).member()).isEqualTo("a"); assertThat(onlyOption.getValue()).isEqualTo("a"); }
@Test public void excludeRepeatedOptions() throws Exception { Schema schema = new RepoBuilder() .add("service.proto", "" + "import \"google/protobuf/descriptor.proto\";\n" + "extend google.protobuf.MessageOptions {\n" + " repeated string a = 22001;\n" + " repeated string b = 22002;\n" + "}\n" + "message Message {\n" + " option (a) = \"a1\";\n" + " option (a) = \"a2\";\n" + " option (b) = \"b1\";\n" + " option (b) = \"b2\";\n" + " optional string f = 1;\n" + "}\n") .schema(); Schema pruned = schema.prune(new IdentifierSet.Builder() .exclude("google.protobuf.MessageOptions#a") .build()); MessageType message = (MessageType) pruned.getType("Message"); assertThat(message.options().get(ProtoMember.get(MESSAGE_OPTIONS, "a"))).isNull(); assertThat(message.options().get(ProtoMember.get(MESSAGE_OPTIONS, "b"))) .isEqualTo(ImmutableList.of("b1", "b2")); }
@Test public void excludedFieldPrunesTopLevelOption() throws Exception { Schema schema = new RepoBuilder() .add("service.proto", "" + "import \"google/protobuf/descriptor.proto\";\n" + "extend google.protobuf.FieldOptions {\n" + " optional string a = 22001;\n" + " optional string b = 22002;\n" + "}\n" + "message Message {\n" + " optional string f = 1 [a = \"a\", b = \"b\"];\n" + "}\n") .schema(); Schema pruned = schema.prune(new IdentifierSet.Builder() .exclude("google.protobuf.FieldOptions#b") .build()); Field field = ((MessageType) pruned.getType("Message")).field("f"); assertThat(field.options().get(ProtoMember.get(FIELD_OPTIONS, "a"))).isEqualTo("a"); assertThat(field.options().get(ProtoMember.get(FIELD_OPTIONS, "b"))).isNull(); }
public static String readStringOption(Options options, ProtoMember key, String defaultValue) { Object value = options.get(key); if (value instanceof String) { return (String) value; } return defaultValue; }
void linkOptions(Linker linker) { options.link(linker); javaPackage = options().get(JAVA_PACKAGE); }
@Override void linkOptions(Linker linker) { options.link(linker); for (EnumConstant constant : constants) { constant.linkOptions(linker); } allowAlias = options.get(ALLOW_ALIAS); }
@Override void linkOptions(Linker linker) { options.link(linker); for (EnumConstant constant : constants) { constant.linkOptions(linker); } allowAlias = options.get(ALLOW_ALIAS); }
void linkOptions(Linker linker) { options.link(linker); javaPackage = options().get(JAVA_PACKAGE); }
void linkOptions(Linker linker) { linker = linker.withContext(this); options.link(linker); deprecated = options().get(DEPRECATED); packed = options().get(PACKED); // We allow any package name to be used as long as it ends with '.redacted'. redacted = options().optionMatches(".*\\.redacted", "true"); }
void linkOptions(Linker linker) { linker = linker.withContext(this); options.link(linker); deprecated = options().get(DEPRECATED); packed = options().get(PACKED); // We allow any package name to be used as long as it ends with '.redacted'. redacted = options().optionMatches(".*\\.redacted", "true"); }
if ("true".equals(constant.options().get(ENUM_DEPRECATED))) { constantBuilder.addAnnotation(Deprecated.class);
if ("true".equals(constant.options().get(ENUM_DEPRECATED))) { constantBuilder.addAnnotation(Deprecated.class);