/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.n3.turtle; import org.apache.jena.graph.Graph ; import org.apache.jena.graph.Node ; import org.apache.jena.graph.Triple ; public class TurtleRDFGraphInserter implements TurtleEventHandler { Graph graph = null ; public TurtleRDFGraphInserter(Graph graph) { this.graph = graph ; } @Override public void triple(int line, int col, Triple triple) { //Check it's valid triple. Node s = triple.getSubject() ; Node p = triple.getPredicate() ; Node o = triple.getObject() ; if ( ! ( s.isURI() || s.isBlank() ) ) throw new TurtleParseException("["+line+", "+col+"] : Error: Subject is not a URI or blank node") ; if ( ! p.isURI() ) throw new TurtleParseException("["+line+", "+col+"] : Error: Predicate is not a URI") ; if ( ! ( o.isURI() || o.isBlank() || o.isLiteral() ) ) throw new TurtleParseException("["+line+", "+col+"] : Error: Object is not a URI, blank node or literal") ; graph.add(triple) ; } @Override public void startFormula(int line, int col) { throw new TurtleParseException("["+line+", "+col+"] : Error: Formula found") ; } @Override public void endFormula(int line, int col) { throw new TurtleParseException("["+line+", "+col+"] : Error: Formula found") ; } @Override public void prefix(int line, int col, String prefix, String iri) { graph.getPrefixMapping().setNsPrefix(prefix, iri) ; } }