package com.tinkerpop.blueprints.impls.neo4j2.index;
import java.util.Map;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.index.Index;
import org.neo4j.graphdb.index.IndexHits;
import com.tinkerpop.blueprints.CloseableIterable;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Parameter;
import com.tinkerpop.blueprints.impls.neo4j2.Neo4j2Edge;
import com.tinkerpop.blueprints.impls.neo4j2.Neo4j2Graph;
import com.tinkerpop.blueprints.impls.neo4j2.iterate.Neo4j2EdgeIterable;
public class Neo4j2EdgeIndex extends Neo4j2ElementIndex<Edge, Relationship> {
public Neo4j2EdgeIndex(String indexName, Neo4j2Graph graph, Parameter<?,?>... indexParameters) {
super(indexName, graph, indexParameters);
}
@Override
protected Index<Relationship> createRawIndex(Map<String, String> customConfig) {
return this.graph.getRawGraph().index().forRelationships(getIndexName(), customConfig);
}
@Override
public Class<Edge> getIndexClass() {
return Edge.class;
}
@Override
protected Relationship getRawElement(Edge element) {
return ((Neo4j2Edge)element).getRawElement();
}
@Override
protected CloseableIterable<Edge> wrapIndexHits(IndexHits<Relationship> indexHits) {
return new Neo4j2EdgeIterable(indexHits, graph);
}
}