package nodebox.client.visualizer; import com.google.common.collect.ImmutableList; public class VisualizerFactory { private static final Visualizer DEFAULT_VISUALIZER = LastResortVisualizer.INSTANCE; private static final ImmutableList<Visualizer> visualizers; static { visualizers = ImmutableList.of(CanvasVisualizer.INSTANCE, GrobVisualizer.INSTANCE, PointVisualizer.INSTANCE, ColorVisualizer.INSTANCE); } public static Visualizer getDefaultVisualizer() { return DEFAULT_VISUALIZER; } public static Visualizer getVisualizer(Iterable<?> objects, Class listClass) { for (Visualizer visualizer : visualizers) { if (visualizer.accepts(objects, listClass)) return visualizer; } return DEFAULT_VISUALIZER; } }