view src/main/java/alice/datasegment/Receiver.java @ 417:aadea6a59376 dispose

create MetaCodeSegment use reflection
author sugi
date Tue, 15 Jul 2014 00:06:10 +0900
parents 8f71c3e6f11d
children f68d103498e0
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();
    }

}