package rocks.inspectit.ui.rcp.editor.graph;
import rocks.inspectit.ui.rcp.editor.graph.plot.DefaultClassesPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.DefaultCpuPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.DefaultMemoryPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.DefaultThreadsPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.HttpTimerPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.JmxPlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.PlotController;
import rocks.inspectit.ui.rcp.editor.graph.plot.TimerPlotController;
import rocks.inspectit.ui.rcp.model.SensorTypeEnum;
/**
* The factory for the plot creation.
*
* @author Patrice Bouillet
*
*/
public final class PlotFactory {
/**
* The private constructor.
*/
private PlotFactory() {
}
/**
* Creates and returns an instance of {@link PlotController}.
*
* @param sensorTypeEnum
* The {@link SensorTypeEnum}.
* @return An instance of {@link PlotController}.
*/
public static PlotController createDefaultPlotController(SensorTypeEnum sensorTypeEnum) {
switch (sensorTypeEnum) {
case CHARTING_TIMER:
case CHARTING_MULTI_TIMER:
return new TimerPlotController();
case CLASSLOADING_INFORMATION:
return new DefaultClassesPlotController();
case COMPILATION_INFORMATION:
return null;
case MEMORY_INFORMATION:
return new DefaultMemoryPlotController();
case CPU_INFORMATION:
return new DefaultCpuPlotController();
case RUNTIME_INFORMATION:
return null;
case SYSTEM_INFORMATION:
return null;
case THREAD_INFORMATION:
return new DefaultThreadsPlotController();
case CHARTING_HTTP_TIMER_SENSOR:
return new HttpTimerPlotController();
case CHARTING_JMX_SENSOR_DATA:
return new JmxPlotController();
default:
return null;
}
}
/**
* Returns an instance of {@link PlotController}.
*
* @param fqn
* The fully-qualified-name.
* @return An instance of {@link PlotController}.
*/
public static PlotController createDefaultPlotController(String fqn) {
return createDefaultPlotController(SensorTypeEnum.get(fqn));
}
}