package org.aksw.sparqlify.config.v0_2.bridge; import java.util.List; import org.aksw.jena_sparql_api.views.CandidateViewSelector; import org.aksw.sparqlify.config.syntax.Config; import org.aksw.sparqlify.config.syntax.ViewDefinition; import org.aksw.sparqlify.core.cast.EffectiveViewGenerator; import org.aksw.sparqlify.validation.Validation; import org.slf4j.Logger; public class ConfiguratorCandidateSelector { // Post-process incoming view definitions, such as adding ... IS NOT NULL constraints. private static EffectiveViewGenerator effectiveViewGenerator = new EffectiveViewGenerator(); // TODO Use SyntaxBridge.bridge and remove duplicated code here public static void configure(Config config, SyntaxBridge bridge, CandidateViewSelector<org.aksw.sparqlify.core.domain.input.ViewDefinition> candidateSelector, Logger logger) { for(ViewDefinition item : config.getViewDefinitions()) { org.aksw.sparqlify.core.domain.input.ViewDefinition virtualGraph = bridge.create(item); if(logger != null) { Validation.validateView(virtualGraph, logger); } //candidateSelector.addView(virtualGraph); List<org.aksw.sparqlify.core.domain.input.ViewDefinition> effectiveViewDefs = effectiveViewGenerator.transform(virtualGraph); for(org.aksw.sparqlify.core.domain.input.ViewDefinition effectiveViewDef : effectiveViewDefs) { //System.out.println("Effective View\n" + effectiveViewDef); candidateSelector.addView(effectiveViewDef); } } } }