/* * 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. */ /* This file includes contributions by: * (c) Copyright 2003, Plugged In Software * See end of file for BSD-style license. */ package org.apache.jena.rdfxml.xmlinput; /**Extended callbacks from a reader to an RDF application. * This reports: * <ul> * <li> when a blank node goes out of scope, allowing its anonymous * ID to be freed by external applications. * <li> when a rdf:RDF start and end tag is seen */ public interface ExtendedHandler { /** After this call, no more triples will be reported * which use <code>bnode</code>. * This is called exactly once for each blank nodes. * Whether this includes nodes with an <code>rdf:nodeID</code> * is controlled by {@link #discardNodesWithNodeID}. * *<p> *The contract is robust against syntax errors in input, *and exceptions being thrown by the StatementHandler. * @param bnode A blank node going out of scope. */ public void endBNodeScope(AResource bnode ); /** * This method is used to modify the behaviour * of ARP concerning its reporting of bnode scope * {@link #endBNodeScope}. * <p> * If this returns true then blank nodes with an <code>rdf:nodeID</code> * are not reported as they go out of scope at the end * of file. This eliminates the unbounded memory cost * of remembering such nodes. * <p> * If this returns false then the contract of * {@link #endBNodeScope} is honoured uniformly * independent of whether a blank node has a nodeID or not. * <p> * If this method returns different values during the parsing * of a single file, then the behaviour is undefined. * @return Desired behaviour of endBNodeScope. */ public boolean discardNodesWithNodeID(); /** * Called when the <rdf:RDF> tag is seen. * (Also called when there is an implicit start of RDF content * when the file consists only of RDF but omits the rdf:RDF tag). */ public void startRDF(); /** * Called when the </rdf:RDF> tag is seen. * (Also called when there is an implicit end of RDF content * e.g. when the file consists only of RDF but omits the rdf:RDF tag, * or if there is an unrecoverable syntax error mid-file). *<p> *Robust against syntax errors in input, *and exceptions being thrown by the StatementHandler. */ public void endRDF(); } /* * (c) Copyright 2003, Plugged In Software * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */