view src/main/java/alice/topology/node/ExecuteEvent.java @ 602:8a9fd716c335 dispose

change topology class extends CodeSegment from MetaCodeSegment, Chat minor fix
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 03 May 2016 20:09:45 +0900
parents 3284428f525e
children
line wrap: on
line source

package alice.topology.node;

import java.util.List;

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

public class ExecuteEvent<T> extends CodeSegment {

    public Receiver info = ids.create(CommandType.TAKE);
    public Receiver info1 = ids.create(CommandType.TAKE);

    public ExecuteEvent() {
        info.setKey("_DEVENTLIST");
        info1.setKey("_DISCONNECT");
    }

    @SuppressWarnings("unchecked")
    @Override
    public void run() {
        List<Class<T>> eventList = info.asClass(List.class);
        try {
            for (Class<T> clazz : eventList){
                // set MetaInfo
                if ("CloseEventCodeSegment".equals(clazz.getSuperclass().getSimpleName())) {
                    CloseEventCodeSegment obj = (CloseEventCodeSegment) clazz.newInstance();
                    obj.metaInfo = info1;
                    obj.ids.setKey();
                    obj.ids.receive();
                } else if ("CodeSegment".equals(clazz.getSuperclass().getSimpleName())){
                    clazz.newInstance();
                }
            }
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        }
        ods.put(info.key, info.getReceiveData());
    }

}