view src/main/java/alice/topology/node/RegisterEvent.java @ 546:15eeb439830c dispose

setAliceDaemon in setKey
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 04 Aug 2015 19:39:47 +0900
parents b31b1d197c42
children e91a574b69de
line wrap: on
line source

package alice.topology.node;

import java.util.List;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

public class RegisterEvent<T> extends CodeSegment {

    private Receiver info = ids.create(CommandType.TAKE);  // new event
    private Receiver info1 = ids.create(CommandType.TAKE); // event list

    public RegisterEvent() {
        info.setKey("_REGISTERDEVENT", arg1.index, this);
        info1.setKey("_DEVENTLIST", arg1.index, this);
    }

    @SuppressWarnings("unchecked")
    @Override
    public void run() {
        List<Class<T>> eventList = info1.asClass(List.class);
        Class<T> clazz = (Class<T>) info.getObj();

        // if put class type doesnt CodeSegment, not register
        if ("CloseEventCodeSegment".equals(clazz.getSuperclass().getSimpleName())||
                "CodeSegment".equals(clazz.getSuperclass().getSimpleName())) {
            eventList.add(clazz);
        }

        ods.put(info1.key, eventList);
    }

}