Package org.openrdf.sail.federation.signatures

Source Code of org.openrdf.sail.federation.signatures.SignedGraphQuery

/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2008-2009.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.sail.federation.signatures;

import org.openrdf.model.Statement;
import org.openrdf.query.GraphQuery;
import org.openrdf.result.GraphResult;
import org.openrdf.result.impl.GraphResultImpl;
import org.openrdf.rio.RDFHandler;
import org.openrdf.rio.RDFHandlerException;
import org.openrdf.rio.helpers.RDFHandlerWrapper;
import org.openrdf.store.StoreException;

/**
* @author James Leigh
*/
public class SignedGraphQuery extends SignedQuery implements GraphQuery {

  public SignedGraphQuery(GraphQuery query, BNodeSigner signer) {
    super(query, signer);
  }

  @Override
  protected GraphQuery getQuery() {
    return (GraphQuery)super.getQuery();
  }

  public GraphResult evaluate()
    throws StoreException
  {
    GraphResult result = getQuery().evaluate();
    return new GraphResultImpl(result.getNamespaces(), getSigner().sign(result));
  }

  public <H extends RDFHandler> H evaluate(H handler)
    throws StoreException, RDFHandlerException
  {
    getQuery().evaluate(new RDFHandlerWrapper(handler) {

      @Override
      public void handleStatement(Statement st)
        throws RDFHandlerException
      {
        st = getSigner().sign(st);
        super.handleStatement(st);
      }
    });

    return handler;
  }
}
TOP

Related Classes of org.openrdf.sail.federation.signatures.SignedGraphQuery

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.