summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:29 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:29 -0800
commite61379af83d28b36d9085ac181b01e4852fcd171 (patch)
treed4cb43564a29e74a382f27c75bc46921c4287688
parent15bf10329ff5ed4b039918df3f053eaf67851e1b (diff)
downloadexternal_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.java42
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.
*/