package com.tinkerpop.blueprints.util.wrappers.id; import com.tinkerpop.blueprints.CloseableIterable; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Index; /** * @author Joshua Shinavier (http://fortytwo.net) */ public class IdEdgeIndex implements Index<Edge> { private final Index<Edge> baseIndex; private final IdGraph idGraph; public IdEdgeIndex(final Index<Edge> baseIndex, final IdGraph idGraph) { if (null == baseIndex) { throw new IllegalArgumentException("null base index"); } this.idGraph = idGraph; this.baseIndex = baseIndex; } public String getIndexName() { return baseIndex.getIndexName(); } public Class<Edge> getIndexClass() { return baseIndex.getIndexClass(); } public void put(String key, Object value, Edge element) { baseIndex.put(key, value, getBaseElement(element)); } public CloseableIterable<Edge> get(String key, Object value) { return new IdEdgeIterable(baseIndex.get(key, value), this.idGraph); } public CloseableIterable<Edge> query(String key, Object query) { return new IdEdgeIterable(baseIndex.query(key, query), this.idGraph); } public long count(String key, Object value) { return baseIndex.count(key, value); } public void remove(String key, Object value, Edge element) { baseIndex.remove(key, value, getBaseElement(element)); } private Edge getBaseElement(final Edge e) { return (Edge) ((IdEdge) e).baseElement; } }