public <T extends Element> Index<T> createManualIndex( final String indexName, final Class<T> indexClass, final Parameter... indexParameters) { final Neo4jBatchIndex<T> index; final Map<String, String> map = generateParameterMap(indexParameters); if (indexParameters.length == 0) { map.put(Neo4jBatchTokens.TYPE, Neo4jBatchTokens.EXACT); } map.put(Neo4jBatchTokens.BLUEPRINTS_TYPE, Index.Type.MANUAL.toString()); if (Vertex.class.isAssignableFrom(indexClass)) { index = new Neo4jBatchIndex<T>( this, indexProvider.nodeIndex(indexName, map), indexName, indexClass); } else { index = new Neo4jBatchIndex<T>( this, indexProvider.relationshipIndex(indexName, map), indexName, indexClass); } this.indices.put(indexName, index); return index; }
public <T extends Element> AutomaticIndex<T> createAutomaticIndex( final String indexName, final Class<T> indexClass, final Set<String> indexKeys, final Parameter... indexParameters) { final Neo4jBatchAutomaticIndex<T> index; final Map<String, String> map = generateParameterMap(indexParameters); if (indexParameters.length == 0) { map.put(Neo4jBatchTokens.TYPE, Neo4jBatchTokens.EXACT); } map.put(Neo4jBatchTokens.BLUEPRINTS_TYPE, Index.Type.AUTOMATIC.toString()); map.put(Neo4jBatchTokens.BLUEPRINTS_AUTOKEYS, makeAutoIndexKeys(indexKeys)); if (indexClass.equals(Vertex.class)) { index = new Neo4jBatchAutomaticIndex<T>( this, indexProvider.nodeIndex(indexName, map), indexName, indexClass, indexKeys); } else { index = new Neo4jBatchAutomaticIndex<T>( this, indexProvider.relationshipIndex(indexName, map), indexName, indexClass, indexKeys); } this.indices.put(indexName, index); if (Vertex.class.isAssignableFrom(indexClass)) { this.automaticVertexIndices.put( indexName, (Neo4jBatchAutomaticIndex<Neo4jBatchVertex>) index); } else { this.automaticEdgeIndices.put(indexName, (Neo4jBatchAutomaticIndex<Neo4jBatchEdge>) index); } return index; }