/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package org.fcrepo.server.storage.types;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.jrdf.graph.Triple;
import org.trippi.TripleIterator;
import org.trippi.TrippiException;
public class TupleArrayTripleIterator
extends TripleIterator {
private static final HashMap<String, String> DEFAULT_NS = new HashMap<String, String>(2);
static {
DEFAULT_NS.put("rel", "info:fedora/fedora-system:def/relations-external#");
DEFAULT_NS.put("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
}
Iterator<RelationshipTuple> m_tuples = null;
Map<String, String> m_map = null;
public TupleArrayTripleIterator(Iterator<RelationshipTuple> tuples,
Map<String, String> map) {
m_tuples = tuples;
m_map = map;
}
public TupleArrayTripleIterator(List<RelationshipTuple> array,
Map<String, String> map) {
this(array.iterator(), map);
}
public TupleArrayTripleIterator(List<RelationshipTuple> array) {
this(array, DEFAULT_NS);
}
@Override
public boolean hasNext() throws TrippiException {
return m_tuples.hasNext();
}
@Override
public Triple next() throws TrippiException {
RelationshipTuple tuple = m_tuples.next();
try {
return tuple.toTriple(m_map);
} catch (URISyntaxException e) {
throw new TrippiException("Invalid URI in Triple", e);
}
}
@Override
public void close() throws TrippiException {
// no-op
}
}