package com.yoursway.ide.application.controllers; import static com.google.common.collect.Lists.newArrayList; import java.util.Collection; import com.yoursway.ide.application.view.ViewDefinitionFactory; public class ViewRegistry { private Collection<ViewComponentFactoryFactory> factories = newArrayList(); public void add(ViewComponentFactoryFactory factory) { if (factory == null) throw new NullPointerException("factory is null"); factories.add(factory); } public ViewRegistry2 instantiate(ViewDefinitionFactory definitionFactory) { Collection<ViewComponentFactory> result = newArrayList(); for (ViewComponentFactoryFactory factory : factories) result.add(factory.create(definitionFactory)); return new ViewRegistry2(result); } }