// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/commons/EChartType.java
// public enum EChartType {
//     PLOT, LINE
// }
// 
// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/interfaces/IAgentPlotChart.java
// public interface IAgentPlotChart {
//     /**
//      * Add the point (xMax+1, y) to the first serie of the chart.
//      * 
//      * @param y
//      */
//     public void add(double y);
// 
//     /**
//      * Add the point (x,y) to the first serie of the chart.
//      * 
//      * @param x
//      * @param y
//      */
//     public void add(double x, double y);
// 
//     /**
//      * Add the point (xMax+1, y) to the serie of the chart.
//      * 
//      * @param serieName
//      * @param y
//      */
//     public void add(String serieName, double y);
// 
//     /**
//      * Add the point (x, y) to the serie of the chart.
//      * 
//      * @param serieName
//      * @param x
//      * @param y
//      */
//     public void add(String serieName, double x, double y);
// 
//     /**
//      * Close the chart on the server.
//      */
//     public void close();
// }
// 
// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/interfaces/IAgentPlotServer.java
// public interface IAgentPlotServer {
//     /**
//      * Get or create the chart which is called _name.
//      * 
//      * @param name
//      * @return
//      */
//     public IAgentPlotChart getChart(String name);
// 
//     /**
//      * Preconfigure the chart _name with a chart's type and a number of series
//      * that will be displayed.
//      * 
//      * @param name
//      * @param chartType
//      */
//     public void configChart(String name, EChartType chartType);
// }


import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Map;
import java.util.TreeMap;
import fr.irit.smac.libs.tooling.plot.commons.EChartType;
import fr.irit.smac.libs.tooling.plot.interfaces.IAgentPlotChart;
import fr.irit.smac.libs.tooling.plot.interfaces.IAgentPlotServer;
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public IAgentPlotChart getChart(String name) {
        if (!charts.containsKey(name)) {
            charts.put(name, new AgentPlotChart(name));
        }
        return charts.get(name);
    }

    @Override
    public void run() {
        while (running) {
            try {
                Socket clientSocket = socket.accept();
                new AgentPlotConnectedClient(clientSocket, this);
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }

    @Override
// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/commons/EChartType.java
// public enum EChartType {
//     PLOT, LINE
// }
// 
// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/interfaces/IAgentPlotChart.java
// public interface IAgentPlotChart {
//     /**
//      * Add the point (xMax+1, y) to the first serie of the chart.
//      * 
//      * @param y
//      */
//     public void add(double y);
// 
//     /**
//      * Add the point (x,y) to the first serie of the chart.
//      * 
//      * @param x
//      * @param y
//      */
//     public void add(double x, double y);
// 
//     /**
//      * Add the point (xMax+1, y) to the serie of the chart.
//      * 
//      * @param serieName
//      * @param y
//      */
//     public void add(String serieName, double y);
// 
//     /**
//      * Add the point (x, y) to the serie of the chart.
//      * 
//      * @param serieName
//      * @param x
//      * @param y
//      */
//     public void add(String serieName, double x, double y);
// 
//     /**
//      * Close the chart on the server.
//      */
//     public void close();
// }
// 
// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/interfaces/IAgentPlotServer.java
// public interface IAgentPlotServer {
//     /**
//      * Get or create the chart which is called _name.
//      * 
//      * @param name
//      * @return
//      */
//     public IAgentPlotChart getChart(String name);
// 
//     /**
//      * Preconfigure the chart _name with a chart's type and a number of series
//      * that will be displayed.
//      * 
//      * @param name
//      * @param chartType
//      */
//     public void configChart(String name, EChartType chartType);
// }


// Path: agent-plot/src/main/java/fr/irit/smac/libs/tooling/plot/server/AgentPlotServer.java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Map;
import java.util.TreeMap;
import fr.irit.smac.libs.tooling.plot.commons.EChartType;
import fr.irit.smac.libs.tooling.plot.interfaces.IAgentPlotChart;
import fr.irit.smac.libs.tooling.plot.interfaces.IAgentPlotServer;

        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public IAgentPlotChart getChart(String name) {
        if (!charts.containsKey(name)) {
            charts.put(name, new AgentPlotChart(name));
        }
        return charts.get(name);
    }

    @Override
    public void run() {
        while (running) {
            try {
                Socket clientSocket = socket.accept();
                new AgentPlotConnectedClient(clientSocket, this);
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }

    @Override
    public void configChart(String name, EChartType chartType) {