view src/alice/datasegment/ReceiveRemoteData.java @ 217:b5c642ba998e working

change as** method and remove "local" key in TEST
author sugi
date Wed, 27 Mar 2013 20:02:38 +0900
parents 21bd8af1cf26
children
line wrap: on
line source

package alice.datasegment;

import java.io.IOException;

import org.msgpack.type.ArrayValue;
import org.msgpack.type.Value;
import org.msgpack.type.ValueType;

import alice.codesegment.SingletonMessage;

public class ReceiveRemoteData implements ReceiverData {
	public Value val;

	public ReceiveRemoteData() {
	}

	public ReceiveRemoteData(Value val2) {
		this.val = val2;
	}

	public String asString() {
		if (val.getType() == ValueType.RAW) {
			return val.asRawValue().getString();
		}
		return null;
	}

	public int asInteger() {
		if (val.getType() == ValueType.INTEGER) {
			return val.asIntegerValue().getInt();
		}
		return 0;
	}

	public Float asFloat() {
		if (val.getType() == ValueType.FLOAT) {
			return val.asFloatValue().getFloat();
		}
		return 0.0f;
	}

	public ArrayValue asArray(){
		if (val.getType() == ValueType.ARRAY){
			return val.asArrayValue();
		}
		return null;
	}
	
	public <T> T asClass(Class<T> clazz) {
		try {
			return SingletonMessage.getInstance().convert(val, clazz);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;

	}

	@Override
	public Value getVal() {
		return val;
	}

	@Override
	public Object getObj() {
		return val;
	}
	
}