view src/main/java/alice/datasegment/Receiver.java @ 345:8f71c3e6f11d

Change directory structure Maven standard
author sugi
date Wed, 16 Apr 2014 18:26:07 +0900
parents
children aadea6a59376
line wrap: on
line source

package alice.datasegment;


import alice.codesegment.InputDataSegment;

/**
 * MessagePack implementation and DataSegment Receiver
 * @author kazz
 *
 */
public class Receiver {
	private ReceiverData data = new ReceiveRemoteData();
	public InputDataSegment ids;
	public int index;
	public String from;
	public CommandType type;
	public String managerKey;
	public String key;

	public Receiver(InputDataSegment ids, CommandType type) {
		this.ids = ids;
		this.type = type;
		ids.register();
		
	}
	
	public void setQuickKey(String managerKey, String key){
		setQuickKey(managerKey, key, 0);
	}
	
	public void setQuickKey(String managerKey, String key, int index) {
		this.managerKey = managerKey;
		this.key = key;
		switch (type) {
		case PEEK:
			ids.quickPeek(this);
			break;
		case TAKE:
			ids.quickTake(this);
			break;
		default:
			break;
		}
		ids.setKey();
	}
	
	public void setKey(String managerKey, String key) {
		setKey(managerKey, key, 0);
	}

	public void setKey(String managerKey, String key, int index) {
		this.managerKey = managerKey;
		this.key = key;
		this.index = index;
		switch (type) {
		case PEEK:
			ids.peek(this);
			break;
		case TAKE:
			ids.take(this);
			break;
		default:
			break;
		}
		ids.setKey();
	}
	
	public void setKey(String key) {
		setKey(key, 0);
	}

	public void setKey(String key, int index) {
		this.key = key;
		this.index = index;
		switch (type) {
		case PEEK:
			ids.peek(this);
			break;
		case TAKE:
			ids.take(this);
			break;
		default:
			break;
		}
		ids.setKey();
	}

	public void setData(ReceiverData r) {
		data = r;
	}

	public int asInteger() {
		return data.asInteger();
	}

	public String asString() {
		return data.asString();
	}
	
	public <T> T asClass(Class<T> clazz) {
		return data.asClass(clazz);
	}
	
	public Object getObj() {
		return data.getObj();
	}

	public Object getVal() {
		return data.getVal();
	}
	
}