@Override public void encode(ProtoWriter writer, RedactedChild value) throws IOException { if (value.a != null) ProtoAdapter.STRING.encodeWithTag(writer, 1, value.a); if (value.b != null) Redacted.ADAPTER.encodeWithTag(writer, 2, value.b); if (value.c != null) NotRedacted.ADAPTER.encodeWithTag(writer, 3, value.c); writer.writeBytes(value.unknownFields()); }
@Override public RedactedChild decode(ProtoReader reader) throws IOException { Builder builder = new Builder(); long token = reader.beginMessage(); for (int tag; (tag = reader.nextTag()) != -1; ) { switch (tag) { case 1: builder.a(ProtoAdapter.STRING.decode(reader)); break; case 2: builder.b(Redacted.ADAPTER.decode(reader)); break; case 3: builder.c(NotRedacted.ADAPTER.decode(reader)); break; default: { FieldEncoding fieldEncoding = reader.peekFieldEncoding(); Object value = fieldEncoding.rawProtoAdapter().decode(reader); builder.addUnknownField(tag, fieldEncoding, value); } } } reader.endMessage(token); return builder.build(); }
@Override public int encodedSize(RedactedChild value) { return (value.a != null ? ProtoAdapter.STRING.encodedSizeWithTag(1, value.a) : 0) + (value.b != null ? Redacted.ADAPTER.encodedSizeWithTag(2, value.b) : 0) + (value.c != null ? NotRedacted.ADAPTER.encodedSizeWithTag(3, value.c) : 0) + value.unknownFields().size(); }
@Override public RedactedChild redact(RedactedChild value) { Builder builder = value.newBuilder(); if (builder.b != null) builder.b = Redacted.ADAPTER.redact(builder.b); if (builder.c != null) builder.c = NotRedacted.ADAPTER.redact(builder.c); builder.clearUnknownFields(); return builder.build(); }