EnumConstantElement toElement() { return EnumConstantElement.builder(location) .documentation(documentation) .name(name) .tag(tag) .options(options.toElements()) .build(); }
static EnumConstant fromElement(EnumConstantElement element) { return new EnumConstant(element.location(), element.name(), element.tag(), element.documentation(), new Options(Options.ENUM_VALUE_OPTIONS, element.options())); }
@Test public void trailingSinglelineComment() { String proto = "" + "enum Test {\n" + " FOO = 1; /* Test all the things! */ \n" + " BAR = 2;/*Test all the things!*/\n" + "}"; ProtoFileElement parsed = ProtoParser.parse(location, proto); EnumElement enumElement = (EnumElement) parsed.types().get(0); EnumConstantElement foo = enumElement.constants().get(0); assertThat(foo.documentation()).isEqualTo("Test all the things!"); EnumConstantElement bar = enumElement.constants().get(1); assertThat(bar.documentation()).isEqualTo("Test all the things!"); }
@Override public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("enum ") .append(name()) .append(" {"); if (!options().isEmpty()) { builder.append('\n'); for (OptionElement option : options()) { appendIndented(builder, option.toSchemaDeclaration()); } } if (!constants().isEmpty()) { builder.append('\n'); for (EnumConstantElement constant : constants()) { appendIndented(builder, constant.toSchema()); } } return builder.append("}\n").toString(); }
@Test public void enumValueLeadingAndTrailingCommentsAreCombined() { String proto = "" + "enum Test {\n" + " // Test all...\n" + " FOO = 1; // ...the things!\n" + "}"; ProtoFileElement parsed = ProtoParser.parse(location, proto); EnumElement enumElement = (EnumElement) parsed.types().get(0); EnumConstantElement value = enumElement.constants().get(0); assertThat(value.documentation()).isEqualTo("Test all...\n...the things!"); }
@Override public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("enum ") .append(name()) .append(" {"); if (!options().isEmpty()) { builder.append('\n'); for (OptionElement option : options()) { appendIndented(builder, option.toSchemaDeclaration()); } } if (!constants().isEmpty()) { builder.append('\n'); for (EnumConstantElement constant : constants()) { appendIndented(builder, constant.toSchema()); } } return builder.append("}\n").toString(); }
public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append(name()) .append(" = ") .append(tag()); if (!options().isEmpty()) { builder.append(" "); Util.appendOptions(builder, options()); } return builder.append(";\n").toString(); }
@Test public void addMultipleConstants() { EnumConstantElement one = EnumConstantElement.builder(location).name("ONE").tag(1).build(); EnumConstantElement two = EnumConstantElement.builder(location).name("TWO").tag(2).build(); EnumConstantElement six = EnumConstantElement.builder(location).name("SIX").tag(6).build(); EnumElement element = EnumElement.builder(location) .name("Enum") .constants(ImmutableList.of(one, two, six)) .build(); assertThat(element.constants()).hasSize(3); }
@Test public void enumValueTrailingComment() { String proto = "" + "enum Test {\n" + " FOO = 1; // Test all the things! \n" + "}"; ProtoFileElement parsed = ProtoParser.parse(location, proto); EnumElement enumElement = (EnumElement) parsed.types().get(0); EnumConstantElement value = enumElement.constants().get(0); assertThat(value.documentation()).isEqualTo("Test all the things!"); }
@Override public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("enum ") .append(name()) .append(" {"); if (!options().isEmpty()) { builder.append('\n'); for (OptionElement option : options()) { appendIndented(builder, option.toSchemaDeclaration()); } } if (!constants().isEmpty()) { builder.append('\n'); for (EnumConstantElement constant : constants()) { appendIndented(builder, constant.toSchema()); } } return builder.append("}\n").toString(); }
Builder(EnumConstantElement source) { this.location = source.location(); this.name = source.name(); this.tag = source.tag(); this.documentation = source.documentation(); this.options = source.options(); } @Override
@Test public void simpleToSchema() { EnumElement element = EnumElement.builder(location) .name("Enum") .constants(ImmutableList.of( EnumConstantElement.builder(location).name("ONE").tag(1).build(), EnumConstantElement.builder(location).name("TWO").tag(2).build(), EnumConstantElement.builder(location).name("SIX").tag(6).build())) .build(); String expected = "" + "enum Enum {\n" + " ONE = 1;\n" + " TWO = 2;\n" + " SIX = 6;\n" + "}\n"; assertThat(element.toSchema()).isEqualTo(expected); }
@Test public void fieldWithOptionsToSchema() { EnumConstantElement value = EnumConstantElement.builder(location) .name("NAME") .tag(1) .options(ImmutableList.of( OptionElement.create("kit", STRING, "kat", true), OptionElement.create("tit", STRING, "tat"))) .build(); String expected = "NAME = 1 [\n" + " (kit) = \"kat\",\n" + " tit = \"tat\"\n" + "];\n"; assertThat(value.toSchema()).isEqualTo(expected); } }
@Test public void trailingMultilineComment() { String proto = "" + "enum Test {\n" + " FOO = 1; /* Test all the\n" + "things! */ \n" + "}"; ProtoFileElement parsed = ProtoParser.parse(location, proto); EnumElement enumElement = (EnumElement) parsed.types().get(0); EnumConstantElement value = enumElement.constants().get(0); assertThat(value.documentation()).isEqualTo("Test all the\nthings!"); }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof EnumConstantElement) { EnumConstantElement that = (EnumConstantElement) o; return (this.location.equals(that.location())) && (this.name.equals(that.name())) && (this.tag == that.tag()) && (this.documentation.equals(that.documentation())) && (this.options.equals(that.options())); } return false; }
@Test public void simpleWithDocumentationToSchema() { EnumElement element = EnumElement.builder(location) .name("Enum") .documentation("Hello") .constants(ImmutableList.of( EnumConstantElement.builder(location).name("ONE").tag(1).build(), EnumConstantElement.builder(location).name("TWO").tag(2).build(), EnumConstantElement.builder(location).name("SIX").tag(6).build())) .build(); String expected = "" + "// Hello\n" + "enum Enum {\n" + " ONE = 1;\n" + " TWO = 2;\n" + " SIX = 6;\n" + "}\n"; assertThat(element.toSchema()).isEqualTo(expected); }
@Test public void trailingCommentNotCombinedWhenEmpty() { String proto = "" + "enum Test {\n" + " // Test all...\n" + " FOO = 1; // \n" + "}"; ProtoFileElement parsed = ProtoParser.parse(location, proto); EnumElement enumElement = (EnumElement) parsed.types().get(0); EnumConstantElement value = enumElement.constants().get(0); assertThat(value.documentation()).isEqualTo("Test all..."); }
static EnumConstant fromElement(EnumConstantElement element) { return new EnumConstant(element.location(), element.name(), element.tag(), element.documentation(), new Options(Options.ENUM_VALUE_OPTIONS, element.options())); }