/* * 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.sparql.util.graph; import java.util.Iterator ; import java.util.List ; import org.apache.jena.graph.Graph ; import org.apache.jena.graph.GraphEvents ; import org.apache.jena.graph.GraphListener ; import org.apache.jena.graph.Triple ; /** Convert the full, wide GraphListener interface into something more specific to loading * including flagging the start and finish of a load operation. */ public abstract class GraphListenerBase implements GraphListener { // ToDo: notifyAddGraph, notifyDeleteGraph public GraphListenerBase() {} @Override public void notifyAddTriple(Graph g, Triple t) { addEvent(t) ; } @Override public void notifyAddArray(Graph g, Triple[] triples) { for ( Triple triple : triples ) { addEvent( triple ); } // for ( Triple t : triples ) // addEvent(t) ; } @Override public void notifyAddList(Graph g, List<Triple> triples) { notifyAddIterator(g, triples.iterator()) ; } @Override public void notifyAddIterator(Graph g, Iterator<Triple> it) { for ( ; it.hasNext() ; ) addEvent(it.next()) ; } @Override public void notifyAddGraph(Graph g, Graph added) {} @Override public void notifyDeleteTriple(Graph g, Triple t) { deleteEvent(t) ; } @Override public void notifyDeleteList(Graph g, List<Triple> triples) { notifyDeleteIterator(g, triples.iterator()) ; } @Override public void notifyDeleteArray(Graph g, Triple[] triples) { for ( Triple triple : triples ) { deleteEvent( triple ); } // for ( Triple t : triples ) // deleteEvent(t) ; } @Override public void notifyDeleteIterator(Graph g, Iterator<Triple> it) { for ( ; it.hasNext() ; ) deleteEvent(it.next()) ; } @Override public void notifyDeleteGraph(Graph g, Graph removed) {} protected abstract void addEvent(Triple t) ; protected abstract void deleteEvent(Triple t) ; // -------- // @Override @Override public void notifyEvent(Graph source, Object value) { if ( value.equals(GraphEvents.startRead) ) startRead() ; else if ( value.equals(GraphEvents.finishRead) ) finishRead() ; //super.notifyEvent(source, value) ; } protected void startRead() {} protected void finishRead() {} }