Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

nl.aidministrator.rdf.ral.ordbms
Class RecursiveSqlResourceIterator  view RecursiveSqlResourceIterator download RecursiveSqlResourceIterator.java

java.lang.Object
  extended bynl.aidministrator.rdf.ral.ordbms.RecursiveSqlResourceIterator
All Implemented Interfaces:
nl.aidministrator.rdf.ral.ResourceIterator

public class RecursiveSqlResourceIterator
extends java.lang.Object
implements nl.aidministrator.rdf.ral.ResourceIterator

A ResourceIterator that executes SQL queries recursively by re-inserting part of the query's results into the query. The query should contain EXACTLY ONE in-parameter (i.e. there is one '?' in the query) and the ResultSet should contain the following columns: id (int), isResource (boolean), namespace (string) and localname (string). The first value (the id) will be re-inserted into the query.


Field Summary
protected  java.sql.Connection _dbConn
          Connection to the database.
protected  java.util.List _resultsQueue
          Queue containing the results.
protected  java.sql.PreparedStatement _st
          The query in the form of a PreparedStatement.
 
Constructor Summary
RecursiveSqlResourceIterator(java.sql.Connection dbConn, java.lang.String query, IdValue initialValue)
          Calls the supplied query recursively by re-inserting obtained values as arguments into the query.
 
Method Summary
private  void _fillQueue(int value)
           
 void close()
          Closes all connections to the repository.
protected  void finalize()
          Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
 boolean hasNext()
          Checks whether there are any more results available.
 nl.aidministrator.rdf.sail.model.Value next()
          Gets the next result.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_dbConn

protected java.sql.Connection _dbConn
Connection to the database.


_st

protected java.sql.PreparedStatement _st
The query in the form of a PreparedStatement.


_resultsQueue

protected java.util.List _resultsQueue
Queue containing the results.

Constructor Detail

RecursiveSqlResourceIterator

public RecursiveSqlResourceIterator(java.sql.Connection dbConn,
                                    java.lang.String query,
                                    IdValue initialValue)
                             throws java.sql.SQLException
Calls the supplied query recursively by re-inserting obtained values as arguments into the query. See class comments for more information.

Method Detail

_fillQueue

private void _fillQueue(int value)

hasNext

public boolean hasNext()
Checks whether there are any more results available.

Specified by:
hasNext in interface nl.aidministrator.rdf.ral.ResourceIterator

next

public nl.aidministrator.rdf.sail.model.Value next()
Gets the next result.

Specified by:
next in interface nl.aidministrator.rdf.ral.ResourceIterator

close

public void close()
Description copied from interface: nl.aidministrator.rdf.ral.ResourceIterator
Closes all connections to the repository.

Specified by:
close in interface nl.aidministrator.rdf.ral.ResourceIterator

finalize

protected void finalize()
Description copied from class: java.lang.Object
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a java.lang.Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.