package com.tinkerpop.blueprints.util.wrappers.id; import com.tinkerpop.blueprints.CloseableIterable; import com.tinkerpop.blueprints.Index; import com.tinkerpop.blueprints.Vertex; /** * @author Joshua Shinavier (http://fortytwo.net) */ public class IdVertexIndex implements Index<Vertex> { private final Index<Vertex> baseIndex; private final IdGraph idGraph; public IdVertexIndex(final Index<Vertex> 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<Vertex> getIndexClass() { return baseIndex.getIndexClass(); } public void put(String key, Object value, Vertex element) { baseIndex.put(key, value, getBaseElement(element)); } public CloseableIterable<Vertex> get(String key, Object value) { return new IdVertexIterable(baseIndex.get(key, value), this.idGraph); } public CloseableIterable<Vertex> query(String key, Object query) { return new IdVertexIterable(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, Vertex element) { baseIndex.remove(key, value, getBaseElement(element)); } private Vertex getBaseElement(final Vertex e) { return (Vertex) ((IdVertex) e).baseElement; } }