package org.lucci.madhoc.script;
import java.util.Collection;
import java.util.Iterator;
import org.lucci.config.TypedConfiguration;
import org.lucci.madhoc.simulation.MadhocSimulation;
import org.lucci.madhoc.simulation.Monitor;
import org.lucci.madhoc.simulation.measure.Sensor;
import org.lucci.madhoc.util.Utilities;
public class PrintAvailableSensors
{
public static void main(String[] args)
throws Throwable
{
TypedConfiguration config = Utilities.getConfiguration(args);
Iterator keyIterator = config.getKeys().iterator();
while (keyIterator.hasNext())
{
String key = (String) keyIterator.next();
if (key.endsWith("_measures_regex"))
{
config.getRelation().remove(key);
config.add(key, ".*");
}
}
MadhocSimulation simulation = Utilities.getSimulation(config);
Iterator appIterator = simulation.getNetwork().getMonitorMap().values().iterator();
while (appIterator.hasNext())
{
Monitor app = (Monitor) appIterator.next();
showMeasures(app);
if (appIterator.hasNext())
{
System.out.println("\n");
}
}
}
public static void showMeasures(Monitor app)
{
Collection measures = app.getSensorMap().values();
System.out.println("Application '" + app.getName() + "' defines " + measures.size() + " sensors.");
if (!measures.isEmpty())
{
Iterator measureIterator = measures.iterator();
while (measureIterator.hasNext())
{
Sensor measure = (Sensor) measureIterator.next();
showMeasure(measure);
}
}
}
public static void showMeasure(Sensor m)
{
System.out.println("\t" + m.getName());
}
}