/* (non-Javadoc)
   * @see org.swows.producer.GraphProducer#createGraph(org.apache.jena.sparql.core.DatasetGraph)
   */
  @Override
  public DynamicGraph createGraph(final DynamicDataset inputDataset) {

    Query query = queryProducer.createQuery(inputDataset);
    if (query == null) throw new RuntimeException("Query not found");

    //		DatasetGraph queryDatasetGraph =
    //			new DatasetGraphCollection() {
    //				private Map<Node, Graph> loadedNamedGraphs = new HashMap<Node, Graph>();
    //				private Graph loadedDefaultGraph = null;
    //				@Override
    //				public Graph getGraph(Node graphNode) {
    //					if (loadedNamedGraphs.containsKey(graphNode))
    //						return loadedNamedGraphs.get(graphNode);
    //					if (prodMap.containsKey(graphNode)) {
    //						Graph newGraph = prodMap.get(graphNode).createGraph(inputDataset);
    //						loadedNamedGraphs.put(graphNode, newGraph);
    //						return newGraph;
    //					}
    //					throw new RuntimeException("Named Graph " + graphNode.getURI() + " not found");
    //				}
    //				@Override
    //				public Graph getDefaultGraph() {
    //					if (loadedDefaultGraph != null)
    //						return loadedDefaultGraph;
    //					loadedDefaultGraph = Graph.emptyGraph;
    //					if (defaultProd != null) {
    //						loadedDefaultGraph = defaultProd.createGraph(inputDataset);
    //					}
    //					return loadedDefaultGraph;
    //				}
    //				@Override
    //				public Iterator<Node> listGraphNodes() {
    //					return prodMap.keySet().iterator();
    //				}
    //			};
    // Dataset queryDataset = DatasetFactory.create(queryDatasetGraph);
    /*
    QueryExecution queryExecution =
    	ARQFactory.get().createQueryExecution(query, queryDataset, null);
    Graph resultGraph = queryExecution.execConstruct().getGraph();
    */

    DynamicDataset queryDatasetGraph = inputProducer.createDataset(inputDataset);
    return new SparqlConstructGraph(query, queryDatasetGraph);
  }
 /* (non-Javadoc)
  * @see org.swows.producer.Producer#dependsFrom(org.swows.producer.Producer)
  */
 public boolean dependsFrom(RDFProducer producer) {
   return (inputProducer != null && inputProducer.dependsFrom(producer));
   //				|| (queryProducer != null && configProducer.dependsFrom(producer));
 }