static ImmutableList<Extensions> fromElements(ImmutableList<ExtensionsElement> elements) { ImmutableList.Builder<Extensions> extensions = ImmutableList.builder(); for (ExtensionsElement element : elements) { extensions.add(new Extensions(element.location(), element.documentation(), element.start(), element.end())); } return extensions.build(); }
public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("extensions ") .append(start()); if (start() != end()) { builder.append(" to "); if (end() < Util.MAX_TAG_VALUE) { builder.append(end()); } else { builder.append("max"); } } return builder.append(";\n").toString(); } }
static ImmutableList<ExtensionsElement> toElements(ImmutableList<Extensions> extensions) { ImmutableList.Builder<ExtensionsElement> elements = new ImmutableList.Builder<>(); for (Extensions extension : extensions) { elements.add(ExtensionsElement.create(extension.location, extension.start, extension.end, extension.documentation)); } return elements.build(); }
builder.append('\n'); for (ExtensionsElement extension : extensions()) { appendIndented(builder, extension.toSchema());
public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("extensions ") .append(start()); if (start() != end()) { builder.append(" to "); if (end() < Util.MAX_TAG_VALUE) { builder.append(end()); } else { builder.append("max"); } } return builder.append(";\n").toString(); } }
/** Reads extensions like "extensions 101;" or "extensions 101 to max;". */ private ExtensionsElement readExtensions(Location location, String documentation) { int start = reader.readInt(); // Range start. int end = start; if (reader.peekChar() != ';') { if (!"to".equals(reader.readWord())) throw reader.unexpected("expected ';' or 'to'"); String s = reader.readWord(); // Range end. if (s.equals("max")) { end = Util.MAX_TAG_VALUE; } else { end = Integer.parseInt(s); } } reader.require(';'); return ExtensionsElement.create(location, start, end, documentation); }
builder.append('\n'); for (ExtensionsElement extension : extensions()) { appendIndented(builder, extension.toSchema());
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof ExtensionsElement) { ExtensionsElement that = (ExtensionsElement) o; return (this.location.equals(that.location())) && (this.documentation.equals(that.documentation())) && (this.start == that.start()) && (this.end == that.end()); } return false; }
public final String toSchema() { StringBuilder builder = new StringBuilder(); appendDocumentation(builder, documentation()); builder.append("extensions ") .append(start()); if (start() != end()) { builder.append(" to "); if (end() < Util.MAX_TAG_VALUE) { builder.append(end()); } else { builder.append("max"); } } return builder.append(";\n").toString(); } }
@Test public void addMultipleExtensions() { ExtensionsElement fives = ExtensionsElement.create(location, 500, 501, ""); ExtensionsElement sixes = ExtensionsElement.create(location, 600, 601, ""); MessageElement element = MessageElement.builder(location) .name("Message") .fields(ImmutableList.of( FieldElement.builder(location) .label(REQUIRED) .type("string") .name("name") .tag(1) .build())) .extensions(ImmutableList.of(fives, sixes)) .build(); assertThat(element.extensions()).hasSize(2); }
builder.append('\n'); for (ExtensionsElement extension : extensions()) { appendIndented(builder, extension.toSchema());
static ImmutableList<Extensions> fromElements(ImmutableList<ExtensionsElement> elements) { ImmutableList.Builder<Extensions> extensions = ImmutableList.builder(); for (ExtensionsElement element : elements) { extensions.add(new Extensions(element.location(), element.documentation(), element.start(), element.end())); } return extensions.build(); }
@Test public void simpleWithExtensionsToSchema() { TypeElement element = MessageElement.builder(location) .name("Message") .fields(ImmutableList.of(FieldElement.builder(location) .label(REQUIRED) .type("string") .name("name") .tag(1) .build())) .extensions(ImmutableList.of( ExtensionsElement.create(location, 500, 501, ""))) .build(); String expected = "" + "message Message {\n" + " required string name = 1;\n" + "\n" + " extensions 500 to 501;\n" + "}\n"; assertThat(element.toSchema()).isEqualTo(expected); }
static ImmutableList<Extensions> fromElements(ImmutableList<ExtensionsElement> elements) { ImmutableList.Builder<Extensions> extensions = ImmutableList.builder(); for (ExtensionsElement element : elements) { extensions.add(new Extensions(element.location(), element.documentation(), element.start(), element.end())); } return extensions.build(); }
.nestedTypes(ImmutableList.of(enumElement)) .extensions(ImmutableList.of( ExtensionsElement.create(location.at(7, 3), 500, 500, "Clients can define custom options in extensions of this message. See above."), ExtensionsElement.create(location.at(8, 3), 1000, Util.MAX_TAG_VALUE, ""))) .build(); ProtoFileElement expected = ProtoFileElement.builder(location)