Package org.openrdf.query.algebra.evaluation.cursors

Source Code of org.openrdf.query.algebra.evaluation.cursors.StatementBindingSetCursor

/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2009.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.query.algebra.evaluation.cursors;

import org.openrdf.cursor.ConvertingCursor;
import org.openrdf.cursor.Cursor;
import org.openrdf.model.Statement;
import org.openrdf.query.BindingSet;
import org.openrdf.query.algebra.StatementPattern;
import org.openrdf.query.algebra.Var;
import org.openrdf.query.algebra.evaluation.QueryBindingSet;

/**
* converts the statements to var bindings
*
* @author James Leigh
*/
public class StatementBindingSetCursor extends ConvertingCursor<Statement, BindingSet> {

  private BindingSet bindings;

  private Var subjVar;

  private Var predVar;

  private Var objVar;

  private Var conVar;

  public StatementBindingSetCursor(Cursor<? extends Statement> delegate, StatementPattern sp,
      BindingSet bindings)
  {
    super(delegate);
    this.bindings = bindings;
    subjVar = sp.getSubjectVar();
    predVar = sp.getPredicateVar();
    objVar = sp.getObjectVar();
    conVar = sp.getContextVar();
  }

  @Override
  protected BindingSet convert(Statement st) {
    QueryBindingSet result = new QueryBindingSet(bindings);

    if (subjVar != null && !result.hasBinding(subjVar.getName())) {
      result.addBinding(subjVar.getName(), st.getSubject());
    }
    if (predVar != null && !result.hasBinding(predVar.getName())) {
      result.addBinding(predVar.getName(), st.getPredicate());
    }
    if (objVar != null && !result.hasBinding(objVar.getName())) {
      result.addBinding(objVar.getName(), st.getObject());
    }
    if (conVar != null && !result.hasBinding(conVar.getName()) && st.getContext() != null) {
      result.addBinding(conVar.getName(), st.getContext());
    }

    return result;
  }
}
TOP

Related Classes of org.openrdf.query.algebra.evaluation.cursors.StatementBindingSetCursor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.