diff --git a/java/src/main/java/org/msgpack/Packer.java b/java/src/main/java/org/msgpack/Packer.java index 704481da..a10bf192 100644 --- a/java/src/main/java/org/msgpack/Packer.java +++ b/java/src/main/java/org/msgpack/Packer.java @@ -23,6 +23,7 @@ import java.nio.ByteBuffer; import java.util.List; import java.util.Set; import java.util.Map; +import java.util.Collection; import java.math.BigInteger; import org.msgpack.annotation.MessagePackDelegate; @@ -480,6 +481,11 @@ public class Packer { pack(e.getValue()); } return this; + } else if(o instanceof Collection) { + Collection l = (Collection)o; + packArray(l.size()); + for(Object i : l) { pack(i); } + return this; //} else if(o instanceof Boolean) { // if((Boolean)o) { // return packTrue(); diff --git a/java/src/main/java/org/msgpack/Templates.java b/java/src/main/java/org/msgpack/Templates.java index b6938400..270f59bb 100644 --- a/java/src/main/java/org/msgpack/Templates.java +++ b/java/src/main/java/org/msgpack/Templates.java @@ -30,6 +30,10 @@ public class Templates { return new MapTemplate(keyTemplate, valueTemplate); } + public static Template tCollection(Template elementTemplate) { + return new CollectionTemplate(elementTemplate); + } + public static Template tClass(Class target) { return new ClassTemplate(target); } @@ -84,5 +88,6 @@ public class Templates { public static Template tByteArray() { return TByteArray; } + }