package screens; import correlation.Distribution2D; import java.util.ArrayList; import java.util.HashMap; /** * * @author Tristan Goffman(tgoffman@gmail.com) */ public abstract class ManyCorrelationScreen extends AbstractStrictScreen { /** * Instance variables */ private HashMap<Enum, Distribution2D> graphs = null; /** *Returns first Enum class that contains the word 'Constant' & 'Screen' * @return */ Class<Enum> getDistributionNamesEnum() { Class<?>[] classes = this.getClass().getClasses(); for (Class<?> clazz : classes) { final String name = clazz.getName(); if (clazz.isEnum()) { //Build distributions for first enum found within a class return (Class<Enum>) clazz; } } return null; } protected Distribution2D getDistribution(Enum name){ if(graphs == null){ buildDistributions(); } return graphs.get(name); } private void buildDistributions() { Class<Enum> clazz = getDistributionNamesEnum(); graphs = new HashMap<Enum, Distribution2D>(); for (Enum n : clazz.getEnumConstants()) { graphs.put(n, new Distribution2D()); } } }