package org.skyscreamer.yoga.builder; import org.skyscreamer.yoga.view.AbstractYogaView; import org.skyscreamer.yoga.view.JsonSelectorView; import org.skyscreamer.yoga.view.SelectorBuilderView; import org.skyscreamer.yoga.view.StreamingJsonSelectorView; import org.skyscreamer.yoga.view.XhtmlSelectorView; import org.skyscreamer.yoga.view.XmlSelectorView; public class YogaBuilderViewFactory { YogaBuilder builder; public YogaBuilderViewFactory() { } public YogaBuilderViewFactory( YogaBuilder builder ) { this.builder = builder; } public void setBuilder( YogaBuilder builder ) { this.builder = builder; } public XmlSelectorView createXmlSelectorView() { return injectViewDependencies( new XmlSelectorView() ); } public JsonSelectorView createJsonSelectorView() { return injectViewDependencies( new JsonSelectorView() ); } public StreamingJsonSelectorView createStreamingJsonSelectorView() { return injectViewDependencies( new StreamingJsonSelectorView() ); } public XhtmlSelectorView createXhtmlSelectorView() { return injectViewDependencies( new XhtmlSelectorView() ); } public SelectorBuilderView createSelectorBuilderView() { return injectViewDependencies( new SelectorBuilderView() ); } public <T extends AbstractYogaView> T injectViewDependencies( T yogaView ) { builder.finalize(); yogaView.setRegistry( builder.getRegistry() ); yogaView.setClassFinderStrategy( builder.getClassFinderStrategy() ); yogaView.setSelectorResolver( builder.getSelectorResolver() ); return yogaView; } }