view src/main/java/alice/topology/node/TopologyNodeConfig.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 2aac0644f92d
children
line wrap: on
line source

package alice.topology.node;

import java.util.ArrayList;
import java.util.LinkedList;

import alice.daemon.Config;
import org.apache.log4j.Level;

public class TopologyNodeConfig extends Config {

    private String managerHostName;
    private int managerPort = 20000;
    public String cookie;
    private ArrayList<Class> eventList = new ArrayList<Class>();

    public TopologyNodeConfig() {
        super(new String[]{});
    }
    public TopologyNodeConfig(String[] args) {
        super(args);
        for (int i = 0; i< args.length; i++) {
            if ("-host".equals(args[i])) {
                setManagerHostName(args[++i]);
            } else if ("-port".equals(args[i])) {
                setManagerPort(Integer.parseInt(args[++i]));
            } else if ("-cookie".equals(args[i])) {
                cookie = args[++i];
            }
        }
    }

    public LinkedList<TopologyNodeConfig> MultiTopologyNodeCongingFactory(String[] args) {
        LinkedList<TopologyNodeConfig> configList = new LinkedList<TopologyNodeConfig>();
        LinkedList<String> nodeConfigArgs = new LinkedList<String>();

        for (int i = 0; i < args.length; ++i) {
            if ("-host".equals(args[i])) {
                if (!nodeConfigArgs.isEmpty()) {
                    configList.add(new TopologyNodeConfig(nodeConfigArgs.toArray(new String[]{})));
                    nodeConfigArgs = new LinkedList<String>();
                }
                ++i;
                nodeConfigArgs.add("-host");
                nodeConfigArgs.add(args[i]);
            } else if ("-port".equals(args[i])) {
                ++i;
                nodeConfigArgs.add("-port");
                nodeConfigArgs.add(args[i]);
            } else if ("-cookie".equals(args[i])) {
                ++i;
                nodeConfigArgs.add("-cookie");
                nodeConfigArgs.add(args[i]);
            } else {
                nodeConfigArgs.addAll(setConfig(i, args));
            }
        }

        configList.add(new TopologyNodeConfig(nodeConfigArgs.toArray(new String[] {})));

        return configList;

    }

    public String getManagerHostName() {
        return managerHostName;
    }

    public void setManagerHostName(String managerHostName) {
        this.managerHostName = managerHostName;
    }

    public int getManagerPort() {
        return managerPort;
    }

    public void setManagerPort(int managerPort) {
        this.managerPort = managerPort;
    }

    public void register(Class clazz) {
        if ("CodeSegment".equals(clazz.getSuperclass().getSimpleName()))
            eventList.add(clazz);
    }

    public void executeEvent() {
        for (Class clazz : eventList)
            try {
                clazz.newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e){

            }
    }

}