diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:29 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:29 -0800 |
commit | e61379af83d28b36d9085ac181b01e4852fcd171 (patch) | |
tree | d4cb43564a29e74a382f27c75bc46921c4287688 | |
parent | 15bf10329ff5ed4b039918df3f053eaf67851e1b (diff) | |
download | external_protobuf-e61379af83d28b36d9085ac181b01e4852fcd171.zip external_protobuf-e61379af83d28b36d9085ac181b01e4852fcd171.tar.gz external_protobuf-e61379af83d28b36d9085ac181b01e4852fcd171.tar.bz2 |
auto import from //depot/cupcake/@137055
-rw-r--r-- | src/com/google/common/io/protocol/ProtoBuf.java | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/src/com/google/common/io/protocol/ProtoBuf.java b/src/com/google/common/io/protocol/ProtoBuf.java index 8ebd1b9..ff7a324 100644 --- a/src/com/google/common/io/protocol/ProtoBuf.java +++ b/src/com/google/common/io/protocol/ProtoBuf.java @@ -145,6 +145,28 @@ public class ProtoBuf { } /** + * Adds a new protobuf for the specified tag, setting the child protobuf's + * type correctly for the tag. + * @param tag the tag for which to create a new protobuf + * @return the newly created protobuf + */ + public ProtoBuf addNewProtoBuf(int tag) { + ProtoBuf child = newProtoBufForTag(tag); + addProtoBuf(tag, child); + return child; + } + + /** + * Creates and returns a new protobuf for the specified tag, setting the new + * protobuf's type correctly for the tag. + * @param tag the tag for which to create a new protobuf + * @return the newly created protobuf + */ + public ProtoBuf newProtoBufForTag(int tag) { + return new ProtoBuf((ProtoBufType) msgType.getData(tag)); + } + + /** * Appends the given (repeated) tag with the given String value. */ public void addString(int tag, String value){ @@ -181,7 +203,7 @@ public class ProtoBuf { return (byte[]) getObject(tag, index, ProtoBufType.TYPE_DATA); } - /** + /** * Returns the integer value for the given tag. */ public int getInt(int tag) { @@ -196,7 +218,7 @@ public class ProtoBuf { ProtoBufType.TYPE_INT32)).longValue(); } - /** + /** * Returns the long value for the given tag. */ public long getLong(int tag) { @@ -238,7 +260,7 @@ public class ProtoBuf { return Double.longBitsToDouble(getLong(tag, index)); } - /** + /** * Returns the group or nested message for the given tag. */ public ProtoBuf getProtoBuf(int tag) { @@ -269,7 +291,7 @@ public class ProtoBuf { return (String) getObject(tag, index, ProtoBufType.TYPE_TEXT); } - /** + /** * Returns the type definition of this protocol buffer or group -- if set. */ public ProtoBufType getType() { @@ -729,6 +751,18 @@ public class ProtoBuf { setObject(tag, pb); } + /** + * Sets a new protobuf for the specified tag, setting the child protobuf's + * type correctly for the tag. + * @param tag the tag for which to create a new protobuf + * @return the newly created protobuf + */ + public ProtoBuf setNewProtoBuf(int tag) { + ProtoBuf child = newProtoBufForTag(tag); + setProtoBuf(tag, child); + return child; + } + /** * Sets the given tag to the given String value. */ |