package com.tinkerpop.blueprints.util.wrappers.wrapped;
import com.tinkerpop.blueprints.Element;
import com.tinkerpop.blueprints.Index;
import com.tinkerpop.blueprints.IndexableGraph;
import com.tinkerpop.blueprints.Parameter;
import com.tinkerpop.blueprints.util.wrappers.WrapperGraph;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class WrappedIndexableGraph<T extends IndexableGraph> extends WrappedGraph<T> implements IndexableGraph, WrapperGraph<T> {
public WrappedIndexableGraph(final T baseIndexableGraph) {
super(baseIndexableGraph);
}
public void dropIndex(final String indexName) {
baseGraph.dropIndex(indexName);
}
public Iterable<Index<? extends Element>> getIndices() {
return new WrappedIndexIterable(baseGraph.getIndices());
}
public <T extends Element> Index<T> getIndex(final String indexName, final Class<T> indexClass) {
final Index<T> index = baseGraph.getIndex(indexName, indexClass);
if (null == index)
return null;
else {
return new WrappedIndex<T>(index);
}
}
public <T extends Element> Index<T> createIndex(final String indexName, final Class<T> indexClass, final Parameter... indexParameters) {
return new WrappedIndex<T>(baseGraph.createIndex(indexName, indexClass, indexParameters));
}
}