mirror of
https://github.com/msgpack/msgpack-python.git
synced 2026-02-08 10:49:59 +00:00
import MessagePack for Java implementation plan 2
This commit is contained in:
parent
93a95725fc
commit
e39e1d4f60
48 changed files with 3676 additions and 0 deletions
61
java-plan2/src/org/msgpack/schema/ArraySchema.java
Normal file
61
java-plan2/src/org/msgpack/schema/ArraySchema.java
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
package org.msgpack.schema;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.io.IOException;
|
||||
import org.msgpack.*;
|
||||
|
||||
public class ArraySchema extends Schema {
|
||||
private Schema elementType;
|
||||
|
||||
public ArraySchema(Schema elementType)
|
||||
{
|
||||
super("array");
|
||||
this.elementType = elementType;
|
||||
}
|
||||
|
||||
public Schema getElementType()
|
||||
{
|
||||
return elementType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFullName()
|
||||
{
|
||||
return "ArrayList<"+elementType.getFullName()+">";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getExpression()
|
||||
{
|
||||
return "(array "+elementType.getExpression()+")";
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void pack(Packer pk, Object obj) throws IOException
|
||||
{
|
||||
if(obj == null) {
|
||||
pk.packNil();
|
||||
return;
|
||||
}
|
||||
List<Object> d = (List<Object>)obj;
|
||||
pk.packArray(d.size());
|
||||
for(Object e : d) {
|
||||
elementType.pack(pk, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Object convert(GenericObject obj)
|
||||
{
|
||||
List<GenericObject> d = obj.asArray();
|
||||
List<Object> g = new ArrayList<Object>();
|
||||
for(GenericObject o : d) {
|
||||
g.add( elementType.convert(o) );
|
||||
}
|
||||
return g;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue