All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tinkerpop.blueprints.KeyIndexableGraph Maven / Gradle / Ivy

The newest version!
package com.tinkerpop.blueprints;

import java.util.Set;

/**
 * A KeyIndexableGraph is a graph that supports basic index functionality around the key/value pairs of the elements of the graph.
 * By creating key indices for a particular property key, that key is indexed on all the elements of the graph.
 * This has ramifications for quick lookups on methods like getVertices(String, Object) and getEdges(String, Object).
 *
 * @author Marko A. Rodriguez (http://markorodriguez.com)
 */
public interface KeyIndexableGraph extends Graph {

    /**
     * Remove an automatic indexing structure associated with indexing provided key for element class.
     *
     * @param key          the key to drop the index for
     * @param elementClass the element class that the index is for
     * @param           the element class specification
     */
    public  void dropKeyIndex(String key, Class elementClass);

    /**
     * Create an automatic indexing structure for indexing provided key for element class.
     *
     * @param key             the key to create the index for
     * @param elementClass    the element class that the index is for
     * @param indexParameters a collection of parameters for the underlying index implementation
     * @param              the element class specification
     */
    public  void createKeyIndex(String key, Class elementClass, final Parameter... indexParameters);

    /**
     * Return all the index keys associated with a particular element class.
     *
     * @param elementClass the element class that the index is for
     * @param           the element class specification
     * @return the indexed keys as a Set
     */
    public  Set getIndexedKeys(Class elementClass);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy