diff --git a/proto/compiler/src/Message.kt b/proto/compiler/src/Message.kt deleted file mode 100644 index 3b6f26c6630..00000000000 --- a/proto/compiler/src/Message.kt +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Created by user on 7/8/16. - */ - -interface Message { - fun writeTo(output: CodedOutputStream) - fun getBuilder() : Builder - - //TODO: think about something similar to static method getDefaultInstance() - - interface Builder { - fun build(): Message - } -} diff --git a/proto/compiler/src/TestAddressbook.kt b/proto/compiler/src/TestAddressbook.kt deleted file mode 100644 index 72101a2abb0..00000000000 --- a/proto/compiler/src/TestAddressbook.kt +++ /dev/null @@ -1,54 +0,0 @@ -import java.io.ByteArrayInputStream -import java.io.ByteArrayOutputStream - -/** - * Created by user on 7/8/16. - */ -object AddressbookTests { - fun testMessageSerialization() { - // Messages work only with CodedStream classes, provided by ProtoKot-runtime library. - // One can create CodedStream passing any instance of corresponding Stream from Java's library. - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - - // All messages are immutable. Use Builders for creating new messages - val msg = Person.BuilderPerson() - .setEmail("wtf@dasda.com") // all setters return this builder, so you could chain modifiers in LINQ-style - .setId(42) - .setName("John Doe") - .addPhoneNumber(// repeated fields stored as Array<>, so use arrayOf() for creating repeated fields - Person.PhoneNumber.BuilderPhoneNumber() - .setNumber("342143-23423-42") - .setType(Person.PhoneType.HOME) - .build() - ) - .addPhoneNumber( - Person.PhoneNumber.BuilderPhoneNumber() - .setNumber("8-800-555-35-35") - .setType(Person.PhoneType.WORK) - .build() - ) - .build() // don't forget to call build() to produce message - msg.writeTo(outs) - - // Now let's use output stream as input to read our message from it! - var ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - - // Create default instance of message - var readMsg = Person.BuilderPerson().build() - // Read in that message data from input stream. - readMsg.mergeFrom(ins) - - // Note, that currently mergeFrom is the only way to mutate instance of message. - // Don't rely on it, probably mergeFrom will be refactored lately to guarantee full immutability of mesages. - - // Better way to read a message: - ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - readMsg = Person.BuilderPerson().readFrom(ins).build() - assert(msg == readMsg) - } -} -fun main(args: Array) { - AddressbookTests.testMessageSerialization() - println("OK") -} diff --git a/proto/compiler/src/TestNestedMsg.kt b/proto/compiler/src/TestNestedMsg.kt deleted file mode 100644 index a445a5bd1dc..00000000000 --- a/proto/compiler/src/TestNestedMsg.kt +++ /dev/null @@ -1,37 +0,0 @@ -import java.io.ByteArrayOutputStream - -/** - * Created by user on 7/18/16. - */ - -object NestedMsgTests { - val msg1 = Level1.BuilderLevel1() - .setField1( - Level1.Level2.BuilderLevel2() - .setField2( - Level1.Level2.Level3.BuilderLevel3() - .setField3( - Level1.Level2.Level3.Level4.BuilderLevel4() - .setField4("Hello!") - .build() - ) - .build() - ) - .build() - ) - .build() - - fun testMessageSerialization() { - val s = ByteArrayOutputStream() - val output = CodedOutputStream(s) - - msg1.writeTo(output) - - val readMsg = Level1.BuilderLevel1().build() - - } -} -fun main(args: Array) { - NestedMsgTests.testMessageSerialization() - println("OK") -} diff --git a/proto/compiler/src/TestStreams.kt b/proto/compiler/src/TestStreams.kt deleted file mode 100644 index 0c8dfeb58e5..00000000000 --- a/proto/compiler/src/TestStreams.kt +++ /dev/null @@ -1,157 +0,0 @@ -import java.io.ByteArrayInputStream -import java.io.ByteArrayOutputStream - -/** - * Created by user on 7/7/16. - */ - -fun testTrivialPositiveVarInts() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeInt32(1, 42) - outs.writeInt32(16, 1) - outs.writeInt32(2, -2) - outs.writeInt32(3, -21321) - outs.writeInt64(5, 42L) - outs.writeInt64(6, 1232132131212321L) - outs.writeInt64(7, -2) - outs.writeInt64(8, -21321L) - outs.writeInt64(9, -32132132132131L) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(42, ins.readInt32(1)) - assertSuccessfulRead(1, ins.readInt32(16)) - assertSuccessfulRead(-2, ins.readInt32(2)) - assertSuccessfulRead(-21321, ins.readInt32(3)) - assertSuccessfulRead(42L, ins.readInt64(5)) - assertSuccessfulRead(1232132131212321L, ins.readInt64(6)) - assertSuccessfulRead(-2, ins.readInt64(7)) - assertSuccessfulRead(-21321L, ins.readInt64(8)) - assertSuccessfulRead(-32132132132131L, ins.readInt64(9)) -} - - -fun testMinPossibleVarInts() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeInt32(1, Int.MIN_VALUE) - outs.writeInt64(2, Long.MIN_VALUE) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(Int.MIN_VALUE, ins.readInt32(1)) - assertSuccessfulRead(Long.MIN_VALUE, ins.readInt64(2)) -} - -fun testMaxPossibleVarInts() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeInt32(1, Int.MAX_VALUE) - outs.writeInt64(2, Long.MAX_VALUE) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(Int.MAX_VALUE, ins.readInt32(1)) - assertSuccessfulRead(Long.MAX_VALUE, ins.readInt64(2)) -} - -fun testMaxPossibleFieldNumber() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeInt64(536870911, Long.MAX_VALUE) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(Long.MAX_VALUE, ins.readInt64(536870911)) -} - -fun testZigZag32() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeSInt32(5, -213123) - outs.writeSInt32(1, 3123123) - outs.writeSInt32(4, -12345675) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(-213123, ins.readSInt32(5)) - assertSuccessfulRead(3123123, ins.readSInt32(1)) - assertSuccessfulRead(-12345675, ins.readSInt32(4)) -} - -fun testZigZag64() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeSInt64(5, -213123L) - outs.writeSInt64(1, 3123123L) - outs.writeSInt64(4, -12345675L) - outs.writeSInt64(12, -123456789012L) - outs.writeSInt64(42, 483567314231L) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(-213123L, ins.readSInt64(5)) - assertSuccessfulRead(3123123L, ins.readSInt64(1)) - assertSuccessfulRead(-12345675L, ins.readSInt64(4)) - assertSuccessfulRead(-123456789012L, ins.readSInt64(12)) - assertSuccessfulRead(483567314231L, ins.readSInt64(42)) -} - -fun testBoolean() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeBool(1, true) - outs.writeBool(2, false) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(true, ins.readBool(1)) - assertSuccessfulRead(false, ins.readBool(2)) -} - -fun testEnum() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeEnum(1, WireType.END_GROUP.ordinal) - outs.writeEnum(2, WireType.FIX_64.ordinal) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(WireType.END_GROUP.ordinal, ins.readEnum(1)) - assertSuccessfulRead(WireType.FIX_64.ordinal, ins.readEnum(2)) -} - -fun testFloatAndDouble() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeDouble(42, 123212.34282) - outs.writeDouble(15, Math.PI) - outs.writeFloat(14, -1.32131321f) - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead(123212.34282, ins.readDouble(42)) - assertSuccessfulRead(Math.PI, ins.readDouble(15)) - assertSuccessfulRead(-1.32131321f, ins.readFloat(14)) -} - -fun testStrings() { - val s = ByteArrayOutputStream() - val outs = CodedOutputStream(s) - outs.writeString(42, "dasddasd asd ") - outs.writeString(15, """!@#$%^&*()QWERTYUI выфвфывфы""") - - val ins = CodedInputStream(ByteArrayInputStream(s.toByteArray())) - assertSuccessfulRead("dasddasd asd ", ins.readString(42)) - assertSuccessfulRead("""!@#$%^&*()QWERTYUI выфвфывфы""", ins.readString(15)) -} - -fun assertSuccessfulRead(value: T, actualValue: T) { - assert(actualValue == value) -} - -fun main(args: Array) { - testTrivialPositiveVarInts() - testMinPossibleVarInts() - testMaxPossibleVarInts() - testMaxPossibleFieldNumber() - testZigZag32() - testZigZag64() - testBoolean() - testEnum() - testFloatAndDouble() - testStrings() - print("OK") -} \ No newline at end of file diff --git a/proto/compiler/src/addressbook.kt b/proto/compiler/src/addressbook.kt deleted file mode 100644 index 6ea425f7226..00000000000 --- a/proto/compiler/src/addressbook.kt +++ /dev/null @@ -1,451 +0,0 @@ -class Person private constructor (name: String = "", id: Int = 0, email: String = "", phones: MutableList = mutableListOf(), someBytes: ByteArray = ByteArray(0)) { - var name : String - private set - - var id : Int - private set - - var email : String - private set - - var phones : MutableList - private set - - var someBytes : ByteArray - private set - - - init { - this.name = name - this.id = id - this.email = email - this.phones = phones - this.someBytes = someBytes - } - enum class PhoneType(val ord: Int) { - MOBILE (0), - HOME (1), - WORK (2); - - companion object { - fun fromIntToPhoneType (ord: Int): PhoneType { - return when (ord) { - 0 -> PhoneType.MOBILE - 1 -> PhoneType.HOME - 2 -> PhoneType.WORK - else -> throw InvalidProtocolBufferException("Error: got unexpected int ${ord} while parsing PhoneType "); - } - } - } - } - class PhoneNumber private constructor (number: String = "", type: Person.PhoneType = Person.PhoneType.fromIntToPhoneType(0)) { - var number : String - private set - - var type : Person.PhoneType - private set - - - init { - this.number = number - this.type = type - } - - fun writeTo (output: CodedOutputStream): Unit { - output.writeString (1, number) - output.writeEnum (2, type.ord) - } - - class BuilderPhoneNumber constructor (number: String = "", type: Person.PhoneType = Person.PhoneType.fromIntToPhoneType(0)) { - var number : String - private set - fun setNumber(value: String): Person.PhoneNumber.BuilderPhoneNumber { - number = value - return this - } - - var type : Person.PhoneType - private set - fun setType(value: Person.PhoneType): Person.PhoneNumber.BuilderPhoneNumber { - type = value - return this - } - - - init { - this.number = number - this.type = type - } - - fun readFrom (input: CodedInputStream): Person.PhoneNumber.BuilderPhoneNumber { - number = input.readString(1) - type = Person.PhoneType.fromIntToPhoneType(input.readEnum(2)) - return this -} - - fun build(): Person.PhoneNumber { - return Person.PhoneNumber(number, type) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 1 -> number = input.readStringNoTag() - 2 -> type = Person.PhoneType.fromIntToPhoneType(input.readEnumNoTag()) - } - return true} - fun parseFrom(input: CodedInputStream): Person.PhoneNumber.BuilderPhoneNumber { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(1, number) - size += WireFormat.getEnumSize(2, type.ord) - return size - } - } - - - fun mergeWith (other: Person.PhoneNumber) { - number = other.number - type = other.type - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Person.PhoneNumber.BuilderPhoneNumber() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(1, number) - size += WireFormat.getEnumSize(2, type.ord) - return size - } - } - - - fun writeTo (output: CodedOutputStream): Unit { - output.writeString (1, name) - output.writeInt32 (2, id) - output.writeString (3, email) - if (phones.size > 0) { - output.writeTag(4, WireType.LENGTH_DELIMITED) - var arrayByteSize = 0 - run { - var arraySize = 0 - for (item in phones) { - arraySize += item.getSize() + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - arrayByteSize += arraySize - } - output.writeInt32NoTag(arrayByteSize) - for (item in phones) { - output.writeTag(4, WireType.LENGTH_DELIMITED) - output.writeInt32NoTag(item.getSize()) - item.writeTo(output) - } - } - output.writeBytes (5, someBytes) - } - - class BuilderPerson constructor (name: String = "", id: Int = 0, email: String = "", phones: MutableList = mutableListOf(), someBytes: ByteArray = ByteArray(0)) { - var name : String - private set - fun setName(value: String): Person.BuilderPerson { - name = value - return this - } - - var id : Int - private set - fun setId(value: Int): Person.BuilderPerson { - id = value - return this - } - - var email : String - private set - fun setEmail(value: String): Person.BuilderPerson { - email = value - return this - } - - var phones : MutableList - private set - fun setPhones(value: MutableList ): Person.BuilderPerson { - phones = value - return this - } - fun setPhoneNumber(index: Int, value: PhoneNumber): Person.BuilderPerson { - phones[index] = value - return this - } - fun addPhoneNumber(value: PhoneNumber): Person.BuilderPerson { - phones.add(value) - return this - } - fun addAllPhoneNumber(value: Iterable): Person.BuilderPerson { - for (item in value) { - phones.add(item) - } - return this - } - - var someBytes : ByteArray - private set - fun setSomeBytes(value: ByteArray): Person.BuilderPerson { - someBytes = value - return this - } - - - init { - this.name = name - this.id = id - this.email = email - this.phones = phones - this.someBytes = someBytes - } - - fun readFrom (input: CodedInputStream): Person.BuilderPerson { - name = input.readString(1) - id = input.readInt32(2) - email = input.readString(3) - val tag = input.readTag(4, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - var readSize = 0 - while(readSize != expectedSize) { - val tmp: Person.PhoneNumber = Person.PhoneNumber.BuilderPhoneNumber().build() - input.readTag(4, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - tmp.mergeFrom(input) - if (expectedSize != tmp.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${tmp.getSize()}") } - readSize += tmp.getSize() + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(tmp.getSize()) - phones.add(tmp) - } - someBytes = input.readBytes(5) - return this -} - - fun build(): Person { - return Person(name, id, email, phones, someBytes) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 1 -> name = input.readStringNoTag() - 2 -> id = input.readInt32NoTag() - 3 -> email = input.readStringNoTag() - 4 -> { - val expectedSize = input.readInt32NoTag() - var readSize = 0 - while(readSize != expectedSize) { - val tmp: Person.PhoneNumber = Person.PhoneNumber.BuilderPhoneNumber().build() - input.readTag(4, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - tmp.mergeFrom(input) - if (expectedSize != tmp.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${tmp.getSize()}") } - readSize += tmp.getSize() + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(tmp.getSize()) - phones.add(tmp) - } - } - 5 -> someBytes = input.readBytesNoTag() - } - return true} - fun parseFrom(input: CodedInputStream): Person.BuilderPerson { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(1, name) - size += WireFormat.getInt32Size(2, id) - size += WireFormat.getStringSize(3, email) - run { - var arraySize = 0 - for (item in phones) { - arraySize += item.getSize() + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - size += arraySize + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(arraySize) - } - size += WireFormat.getBytesSize(5, someBytes) - return size - } - } - - - fun mergeWith (other: Person) { - name = other.name - id = other.id - email = other.email - phones.addAll(other.phones) - someBytes.plus(other.someBytes) - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Person.BuilderPerson() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(1, name) - size += WireFormat.getInt32Size(2, id) - size += WireFormat.getStringSize(3, email) - run { - var arraySize = 0 - for (item in phones) { - arraySize += item.getSize() + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - size += arraySize + WireFormat.getTagSize(4, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(arraySize) - } - size += WireFormat.getBytesSize(5, someBytes) - return size - } -} - - -class AddressBook private constructor (people: MutableList = mutableListOf()) { - var people : MutableList - private set - - - init { - this.people = people - } - - fun writeTo (output: CodedOutputStream): Unit { - if (people.size > 0) { - output.writeTag(1, WireType.LENGTH_DELIMITED) - var arrayByteSize = 0 - run { - var arraySize = 0 - for (item in people) { - arraySize += item.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - arrayByteSize += arraySize - } - output.writeInt32NoTag(arrayByteSize) - for (item in people) { - output.writeTag(1, WireType.LENGTH_DELIMITED) - output.writeInt32NoTag(item.getSize()) - item.writeTo(output) - } - } - } - - class BuilderAddressBook constructor (people: MutableList = mutableListOf()) { - var people : MutableList - private set - fun setPeople(value: MutableList ): AddressBook.BuilderAddressBook { - people = value - return this - } - fun setPerson(index: Int, value: Person): AddressBook.BuilderAddressBook { - people[index] = value - return this - } - fun addPerson(value: Person): AddressBook.BuilderAddressBook { - people.add(value) - return this - } - fun addAllPerson(value: Iterable): AddressBook.BuilderAddressBook { - for (item in value) { - people.add(item) - } - return this - } - - - init { - this.people = people - } - - fun readFrom (input: CodedInputStream): AddressBook.BuilderAddressBook { - val tag = input.readTag(1, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - var readSize = 0 - while(readSize != expectedSize) { - val tmp: Person = Person.BuilderPerson().build() - input.readTag(1, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - tmp.mergeFrom(input) - if (expectedSize != tmp.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${tmp.getSize()}") } - readSize += tmp.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(tmp.getSize()) - people.add(tmp) - } - return this -} - - fun build(): AddressBook { - return AddressBook(people) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 1 -> { - val expectedSize = input.readInt32NoTag() - var readSize = 0 - while(readSize != expectedSize) { - val tmp: Person = Person.BuilderPerson().build() - input.readTag(1, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - tmp.mergeFrom(input) - if (expectedSize != tmp.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${tmp.getSize()}") } - readSize += tmp.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(tmp.getSize()) - people.add(tmp) - } - } - } - return true} - fun parseFrom(input: CodedInputStream): AddressBook.BuilderAddressBook { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - run { - var arraySize = 0 - for (item in people) { - arraySize += item.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - size += arraySize + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(arraySize) - } - return size - } - } - - - fun mergeWith (other: AddressBook) { - people.addAll(other.people) - } - - fun mergeFrom (input: CodedInputStream) { - val builder = AddressBook.BuilderAddressBook() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - run { - var arraySize = 0 - for (item in people) { - arraySize += item.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(item.getSize()) - } - size += arraySize + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(arraySize) - } - return size - } -} - - diff --git a/proto/compiler/src/nested-msg.kt b/proto/compiler/src/nested-msg.kt deleted file mode 100644 index b17f6e407d7..00000000000 --- a/proto/compiler/src/nested-msg.kt +++ /dev/null @@ -1,315 +0,0 @@ -class Level1 private constructor (field1: Level1.Level2 = Level1.Level2.BuilderLevel2().build()) { - var field1 : Level1.Level2 - private set - - - init { - this.field1 = field1 - } - class Level2 private constructor (field2: Level1.Level2.Level3 = Level1.Level2.Level3.BuilderLevel3().build()) { - var field2 : Level1.Level2.Level3 - private set - - - init { - this.field2 = field2 - } - class Level3 private constructor (field3: Level1.Level2.Level3.Level4 = Level1.Level2.Level3.Level4.BuilderLevel4().build()) { - var field3 : Level1.Level2.Level3.Level4 - private set - - - init { - this.field3 = field3 - } - class Level4 private constructor (field4: String = "") { - var field4 : String - private set - - - init { - this.field4 = field4 - } - - fun writeTo (output: CodedOutputStream): Unit { - output.writeString (4, field4) - } - - class BuilderLevel4 constructor (field4: String = "") { - var field4 : String - private set - fun setField4(value: String): Level1.Level2.Level3.Level4.BuilderLevel4 { - field4 = value - return this - } - - - init { - this.field4 = field4 - } - - fun readFrom (input: CodedInputStream): Level1.Level2.Level3.Level4.BuilderLevel4 { - field4 = input.readString(4) - return this -} - - fun build(): Level1.Level2.Level3.Level4 { - return Level1.Level2.Level3.Level4(field4) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 4 -> field4 = input.readStringNoTag() - } - return true} - fun parseFrom(input: CodedInputStream): Level1.Level2.Level3.Level4.BuilderLevel4 { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(4, field4) - return size - } - } - - - fun mergeWith (other: Level1.Level2.Level3.Level4) { - field4 = other.field4 - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Level1.Level2.Level3.Level4.BuilderLevel4() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += WireFormat.getStringSize(4, field4) - return size - } - } - - - fun writeTo (output: CodedOutputStream): Unit { - output.writeTag(3, WireType.LENGTH_DELIMITED) - output.writeInt32NoTag(field3.getSize()) - field3.writeTo(output) - } - - class BuilderLevel3 constructor (field3: Level1.Level2.Level3.Level4 = Level1.Level2.Level3.Level4.BuilderLevel4().build()) { - var field3 : Level1.Level2.Level3.Level4 - private set - fun setField3(value: Level1.Level2.Level3.Level4): Level1.Level2.Level3.BuilderLevel3 { - field3 = value - return this - } - - - init { - this.field3 = field3 - } - - fun readFrom (input: CodedInputStream): Level1.Level2.Level3.BuilderLevel3 { - input.readTag(3, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field3.mergeFrom(input) - if (expectedSize != field3.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field3.getSize()}") } - return this -} - - fun build(): Level1.Level2.Level3 { - return Level1.Level2.Level3(field3) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 3 -> { - input.readTag(3, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field3.mergeFrom(input) - if (expectedSize != field3.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field3.getSize()}") } - } - } - return true} - fun parseFrom(input: CodedInputStream): Level1.Level2.Level3.BuilderLevel3 { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += field3.getSize() + WireFormat.getTagSize(3, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field3.getSize()) - return size - } - } - - - fun mergeWith (other: Level1.Level2.Level3) { - field3 = other.field3 - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Level1.Level2.Level3.BuilderLevel3() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += field3.getSize() + WireFormat.getTagSize(3, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field3.getSize()) - return size - } - } - - - fun writeTo (output: CodedOutputStream): Unit { - output.writeTag(2, WireType.LENGTH_DELIMITED) - output.writeInt32NoTag(field2.getSize()) - field2.writeTo(output) - } - - class BuilderLevel2 constructor (field2: Level1.Level2.Level3 = Level1.Level2.Level3.BuilderLevel3().build()) { - var field2 : Level1.Level2.Level3 - private set - fun setField2(value: Level1.Level2.Level3): Level1.Level2.BuilderLevel2 { - field2 = value - return this - } - - - init { - this.field2 = field2 - } - - fun readFrom (input: CodedInputStream): Level1.Level2.BuilderLevel2 { - input.readTag(2, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field2.mergeFrom(input) - if (expectedSize != field2.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field2.getSize()}") } - return this -} - - fun build(): Level1.Level2 { - return Level1.Level2(field2) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 2 -> { - input.readTag(2, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field2.mergeFrom(input) - if (expectedSize != field2.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field2.getSize()}") } - } - } - return true} - fun parseFrom(input: CodedInputStream): Level1.Level2.BuilderLevel2 { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += field2.getSize() + WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field2.getSize()) - return size - } - } - - - fun mergeWith (other: Level1.Level2) { - field2 = other.field2 - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Level1.Level2.BuilderLevel2() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += field2.getSize() + WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field2.getSize()) - return size - } - } - - - fun writeTo (output: CodedOutputStream): Unit { - output.writeTag(1, WireType.LENGTH_DELIMITED) - output.writeInt32NoTag(field1.getSize()) - field1.writeTo(output) - } - - class BuilderLevel1 constructor (field1: Level1.Level2 = Level1.Level2.BuilderLevel2().build()) { - var field1 : Level1.Level2 - private set - fun setField1(value: Level1.Level2): Level1.BuilderLevel1 { - field1 = value - return this - } - - - init { - this.field1 = field1 - } - - fun readFrom (input: CodedInputStream): Level1.BuilderLevel1 { - input.readTag(1, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field1.mergeFrom(input) - if (expectedSize != field1.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field1.getSize()}") } - return this -} - - fun build(): Level1 { - return Level1(field1) - } - - fun parseFieldFrom(input: CodedInputStream): Boolean { - if (input.isAtEnd()) { return false } - val tag = input.readInt32NoTag() - if (tag == 0) { return false } - val fieldNumber = WireFormat.getTagFieldNumber(tag) - val wireType = WireFormat.getTagWireType(tag) - when(fieldNumber) { - 1 -> { - input.readTag(1, WireType.LENGTH_DELIMITED) - val expectedSize = input.readInt32NoTag() - field1.mergeFrom(input) - if (expectedSize != field1.getSize()) { throw InvalidProtocolBufferException ("Expected size ${expectedSize} got ${field1.getSize()}") } - } - } - return true} - fun parseFrom(input: CodedInputStream): Level1.BuilderLevel1 { - while(parseFieldFrom(input)) {} - return this - } - fun getSize(): Int { - var size = 0 - size += field1.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field1.getSize()) - return size - } - } - - - fun mergeWith (other: Level1) { - field1 = other.field1 - } - - fun mergeFrom (input: CodedInputStream) { - val builder = Level1.BuilderLevel1() - mergeWith(builder.parseFrom(input).build())} - fun getSize(): Int { - var size = 0 - size += field1.getSize() + WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED) + WireFormat.getVarint32Size(field1.getSize()) - return size - } -} - -