view src/ie/oshiro/messagepack/practice/MSInterFaceTest.java @ 3:5b77974d641b

add ListValue.java
author one
date Sat, 08 Jun 2013 20:43:52 +0900
parents 79c8067c34ec
children
line wrap: on
line source

package ie.oshiro.messagepack.practice;

import java.io.IOException;
import java.util.LinkedList;

import org.msgpack.MessagePack;
import org.msgpack.template.ListTemplate;
import org.msgpack.template.ValueTemplate;
import org.msgpack.type.Value;

import java.util.List;

public class MSInterFaceTest {
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws IOException {
		/* No Error : Int Array, Class Array */
		MessagePack msgpack = new MessagePack();
		MyClass m = new MyClass(5);
		m.setIntArray(new int[]{8,9,10});
		MyClass[] myClassArray = {new MyClass(11), new MyClass(12)};
		m.setMyClassArray(myClassArray);
		Value v = msgpack.unconvert(m);
		MyClass mm = (MyClass)msgpack.convert(v, MyClass.class);
		System.out.println("mm.getNum() = " + mm.getNum());
		int[] intArray = mm.getIntArray();
		for (int i=0; i<intArray.length; i++) {
			System.out.println("intArray["+i+"] = "+ intArray[i]);
		}
		MyClass[] myClassArray2 =mm.getMyClassArray();
		for (int i=0; i<myClassArray2.length; i++) {
			System.out.println("myClassArray2 getNum() : "+ myClassArray2[i].getNum());
		}
		
		/* No Error : List*/
		LinkedList<MyClass> list = new LinkedList<MyClass>();
		list.add(new MyClass(1));
		list.add(new MyClass(2));
		list.add(new MyClass(3));
		MessagePack msgpack2 = new MessagePack();
		byte[] bytes;
		bytes = msgpack2.write(list);
		msgpack2.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
		for(Value v2: (List<Value>) msgpack2.read(bytes, List.class)) {
			MyClass m2 = msgpack2.convert(v2, MyClass.class);
			System.out.println("m2 = "+m2.getNum());
		}
		
		/* Error: Iterable in Class */
		MessagePack msgpack3 = new MessagePack();
 		MyClass m3 = new MyClass(3);
		LinkedList<Value> list2 = new LinkedList<Value>();
		list2.add(v);
 		m3.setIter(list2);
		/* convert into unknown type is invalid */
		byte[] bytes2;
		bytes2 = msgpack3.write(m3);
		MyClass mm3 = msgpack3.read(bytes2, MyClass.class); 
//		Value v3 = msgpack.unconvert(m3);
//		MyClass mm3 = (MyClass)msgpack.convert(v3, MyClass.class);
		System.out.println("mm3.getNum() = "+mm3.getNum());

	}
}