view src/main/java/alice/topology/node/TopologyNodeConfig.java @ 557:1a860019b2fe dispose

add ip to HostMessage.class
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Fri, 20 Nov 2015 17:57:55 +0900
parents 5a9b83c64ddf
children 0259a8aba18c
line wrap: on
line source

package alice.topology.node;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import alice.daemon.Config;

public class TopologyNodeConfig extends Config {

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


    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];
            } else if ("-ip".equals(args[i])){
                setManagerHostIP(args[++i]);
            }
        }
    }

    public void setManagerHostIP(String args) {
        try {
            managerHostIP = InetAddress.getByName(args);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

    public InetAddress getManagerHostIP(){
        if (managerHostIP == null){
            try {
                managerHostIP = InetAddress.getByName(getManagerHostName());
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
        }
        return managerHostIP;
    }

    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){

            }
    }

}