test_class.file: code/src/test/java/com/googlecode/cqengine/index/hash/HashIndexTest.java
test_class.identifier: HashIndexTest
test_case.body: @Test
      public void testOnSemiUniqueAttribute() throws Exception{
          HashIndex<Integer, Car> hashIndex = HashIndex.onSemiUniqueAttribute(Car.CAR_ID);
          // Validate that the HashIndex was configured with CompactValueSetFactory.
          // We have to use reflection to do this
          // because the valueSetFactory has protected access in AbstractMapBasedAttributeIndex.
          // This is a bit hacky, but OTOH we should not break encapsulation of AbstractMapBasedAttributeIndex...
          Field valueSetFactoryField = AbstractMapBasedAttributeIndex.class.getDeclaredField("valueSetFactory");
          valueSetFactoryField.setAccessible(true);
          Assert.assertTrue("HashIndex should be configured with CompactValueSetFactory",
                  valueSetFactoryField.get(hashIndex) instanceof HashIndex.CompactValueSetFactory);
      }
test_case.class_method_signature: HashIndexTest.testOnSemiUniqueAttribute()
test_case.full_signature: @Test public void testOnSemiUniqueAttribute()
test_case.identifier: testOnSemiUniqueAttribute
test_case.invocations: onSemiUniqueAttribute getDeclaredField setAccessible assertTrue get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOnSemiUniqueAttribute()
focal_class.declarator: INDEX_RETRIEVAL_COST = 30
focal_class.modifier: protected static final
focal_class.original_string: protected static final int INDEX_RETRIEVAL_COST = 30;
focal_class.type: int
focal_class.var_name: INDEX_RETRIEVAL_COST
focal_class.file: code/src/main/java/com/googlecode/cqengine/index/hash/HashIndex.java
focal_class.identifier: HashIndex
focal_class.interfaces: implements KeyStatisticsAttributeIndex<A, O>, OnHeapTypeIndex
focal_class.class_method_signature: HashIndex.HashIndex(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.full_signature: protected  HashIndex(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.identifier: HashIndex
focal_class.modifiers: protected
focal_class.parameters: (Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.signature:  HashIndex(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.class_method_signature: HashIndex.isMutable()
focal_class.full_signature: @Override public boolean isMutable()
focal_class.identifier: isMutable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isMutable()
focal_class.class_method_signature: HashIndex.getEffectiveIndex()
focal_class.full_signature: @Override public Index<O> getEffectiveIndex()
focal_class.identifier: getEffectiveIndex
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Index<O>
focal_class.signature: Index<O> getEffectiveIndex()
focal_class.class_method_signature: HashIndex.retrieve(final Query<O> query, final QueryOptions queryOptions)
focal_class.full_signature: @Override public ResultSet<O> retrieve(final Query<O> query, final QueryOptions queryOptions)
focal_class.identifier: retrieve
focal_class.modifiers: @Override public
focal_class.parameters: (final Query<O> query, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieve(final Query<O> query, final QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.retrieveIn(final In<O, A> in, final QueryOptions queryOptions)
focal_class.full_signature: protected ResultSet<O> retrieveIn(final In<O, A> in, final QueryOptions queryOptions)
focal_class.identifier: retrieveIn
focal_class.modifiers: protected
focal_class.parameters: (final In<O, A> in, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveIn(final In<O, A> in, final QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.retrieveEqual(final Equal<O, A> equal, final QueryOptions queryOptions)
focal_class.full_signature: protected ResultSet<O> retrieveEqual(final Equal<O, A> equal, final QueryOptions queryOptions)
focal_class.identifier: retrieveEqual
focal_class.modifiers: protected
focal_class.parameters: (final Equal<O, A> equal, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveEqual(final Equal<O, A> equal, final QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.filterForQuantization(ResultSet<O> storedResultSet, Query<O> query, QueryOptions queryOptions)
focal_class.full_signature: protected ResultSet<O> filterForQuantization(ResultSet<O> storedResultSet, Query<O> query, QueryOptions queryOptions)
focal_class.identifier: filterForQuantization
focal_class.modifiers: protected
focal_class.parameters: (ResultSet<O> storedResultSet, Query<O> query, QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> filterForQuantization(ResultSet<O> storedResultSet, Query<O> query, QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.getCountForKey(A key, QueryOptions queryOptions)
focal_class.full_signature: @Override public Integer getCountForKey(A key, QueryOptions queryOptions)
focal_class.identifier: getCountForKey
focal_class.modifiers: @Override public
focal_class.parameters: (A key, QueryOptions queryOptions)
focal_class.return: Integer
focal_class.signature: Integer getCountForKey(A key, QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.getDistinctKeys(QueryOptions queryOptions)
focal_class.full_signature: @Override public CloseableIterable<A> getDistinctKeys(QueryOptions queryOptions)
focal_class.identifier: getDistinctKeys
focal_class.modifiers: @Override public
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: CloseableIterable<A>
focal_class.signature: CloseableIterable<A> getDistinctKeys(QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.getCountOfDistinctKeys(QueryOptions queryOptions)
focal_class.full_signature: @Override public Integer getCountOfDistinctKeys(QueryOptions queryOptions)
focal_class.identifier: getCountOfDistinctKeys
focal_class.modifiers: @Override public
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: Integer
focal_class.signature: Integer getCountOfDistinctKeys(QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.getStatisticsForDistinctKeys(QueryOptions queryOptions)
focal_class.full_signature: @Override public CloseableIterable<KeyStatistics<A>> getStatisticsForDistinctKeys(QueryOptions queryOptions)
focal_class.identifier: getStatisticsForDistinctKeys
focal_class.modifiers: @Override public
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: CloseableIterable<KeyStatistics<A>>
focal_class.signature: CloseableIterable<KeyStatistics<A>> getStatisticsForDistinctKeys(QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.getKeysAndValues(QueryOptions queryOptions)
focal_class.full_signature: @Override public CloseableIterable<KeyValue<A, O>> getKeysAndValues(QueryOptions queryOptions)
focal_class.identifier: getKeysAndValues
focal_class.modifiers: @Override public
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: CloseableIterable<KeyValue<A, O>>
focal_class.signature: CloseableIterable<KeyValue<A, O>> getKeysAndValues(QueryOptions queryOptions)
focal_class.class_method_signature: HashIndex.onAttribute(Attribute<O, A> attribute)
focal_class.full_signature: public static HashIndex<A, O> onAttribute(Attribute<O, A> attribute)
focal_class.identifier: onAttribute
focal_class.modifiers: public static
focal_class.parameters: (Attribute<O, A> attribute)
focal_class.return: HashIndex<A, O>
focal_class.signature: HashIndex<A, O> onAttribute(Attribute<O, A> attribute)
focal_class.class_method_signature: HashIndex.onSemiUniqueAttribute(Attribute<O, A> attribute)
focal_class.full_signature: public static HashIndex<A, O> onSemiUniqueAttribute(Attribute<O, A> attribute)
focal_class.identifier: onSemiUniqueAttribute
focal_class.modifiers: public static
focal_class.parameters: (Attribute<O, A> attribute)
focal_class.return: HashIndex<A, O>
focal_class.signature: HashIndex<A, O> onSemiUniqueAttribute(Attribute<O, A> attribute)
focal_class.class_method_signature: HashIndex.onAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.full_signature: public static HashIndex<A, O> onAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.identifier: onAttribute
focal_class.modifiers: public static
focal_class.parameters: (Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.return: HashIndex<A, O>
focal_class.signature: HashIndex<A, O> onAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, Attribute<O, A> attribute)
focal_class.class_method_signature: HashIndex.withQuantizerOnAttribute(final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.full_signature: public static HashIndex<A, O> withQuantizerOnAttribute(final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.identifier: withQuantizerOnAttribute
focal_class.modifiers: public static
focal_class.parameters: (final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.return: HashIndex<A, O>
focal_class.signature: HashIndex<A, O> withQuantizerOnAttribute(final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.class_method_signature: HashIndex.withQuantizerOnAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.full_signature: public static HashIndex<A, O> withQuantizerOnAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.identifier: withQuantizerOnAttribute
focal_class.modifiers: public static
focal_class.parameters: (Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.return: HashIndex<A, O>
focal_class.signature: HashIndex<A, O> withQuantizerOnAttribute(Factory<ConcurrentMap<A, StoredResultSet<O>>> indexMapFactory, Factory<StoredResultSet<O>> valueSetFactory, final Quantizer<A> quantizer, Attribute<O, A> attribute)
focal_class.superclass: extends AbstractMapBasedAttributeIndex<A, O, ConcurrentMap<A, StoredResultSet<O>>>
focal_method.body: public static <A, O> HashIndex<A, O> onSemiUniqueAttribute(Attribute<O, A> attribute) {
          return onAttribute(new DefaultIndexMapFactory<A, O>(), new CompactValueSetFactory<O>(), attribute);
      }
focal_method.class_method_signature: HashIndex.onSemiUniqueAttribute(Attribute<O, A> attribute)
focal_method.full_signature: public static HashIndex<A, O> onSemiUniqueAttribute(Attribute<O, A> attribute)
focal_method.identifier: onSemiUniqueAttribute
focal_method.invocations: onAttribute
focal_method.modifiers: public static
focal_method.parameters: (Attribute<O, A> attribute)
focal_method.return: HashIndex<A, O>
focal_method.signature: HashIndex<A, O> onSemiUniqueAttribute(Attribute<O, A> attribute)