test_class.file: code/src/test/java/com/googlecode/cqengine/engine/CollectionQueryEngineTest.java
test_class.identifier: CollectionQueryEngineTest
test_case.body: @Test
      public void testRemoveIndex() {
          CollectionQueryEngine<Car> queryEngine = new CollectionQueryEngine<Car>();
          queryEngine.init(emptyObjectStore(), queryOptionsWithOnHeapPersistence());
  
          HashIndex<String, Car> index1 = HashIndex.onAttribute(Car.MANUFACTURER);
          queryEngine.addIndex(index1, noQueryOptions());
  
          UniqueIndex<Integer, Car> index2 = UniqueIndex.onAttribute(Car.CAR_ID);
          queryEngine.addIndex(index2, noQueryOptions());
  
          StandingQueryIndex<Car> index3 = StandingQueryIndex.onQuery(equal(Car.MODEL, "Focus"));
          queryEngine.addIndex(index3, noQueryOptions());
  
          CompoundIndex<Car> index4 = CompoundIndex.onAttributes(Car.MANUFACTURER, Car.MODEL);
          queryEngine.addIndex(index4, noQueryOptions());
  
          HashIndex<Boolean, Car> index5 = HashIndex.onAttribute(forStandingQuery(equal(Car.MANUFACTURER, "Ford")));
          queryEngine.addIndex(index5, noQueryOptions());
  
          Assert.assertEquals(5, countElements(queryEngine.getIndexes()));
  
          queryEngine.removeIndex(index1, noQueryOptions());
          Assert.assertEquals(4, countElements(queryEngine.getIndexes()));
  
          queryEngine.removeIndex(index2, noQueryOptions());
          Assert.assertEquals(3, countElements(queryEngine.getIndexes()));
  
          queryEngine.removeIndex(index3, noQueryOptions());
          Assert.assertEquals(2, countElements(queryEngine.getIndexes()));
  
          queryEngine.removeIndex(index4, noQueryOptions());
          Assert.assertEquals(1, countElements(queryEngine.getIndexes()));
  
          queryEngine.removeIndex(index5, noQueryOptions());
          Assert.assertEquals(0, countElements(queryEngine.getIndexes()));
      }
test_case.class_method_signature: CollectionQueryEngineTest.testRemoveIndex()
test_case.full_signature: @Test public void testRemoveIndex()
test_case.identifier: testRemoveIndex
test_case.invocations: init emptyObjectStore queryOptionsWithOnHeapPersistence onAttribute addIndex noQueryOptions onAttribute addIndex noQueryOptions onQuery equal addIndex noQueryOptions onAttributes addIndex noQueryOptions onAttribute forStandingQuery equal addIndex noQueryOptions assertEquals countElements getIndexes removeIndex noQueryOptions assertEquals countElements getIndexes removeIndex noQueryOptions assertEquals countElements getIndexes removeIndex noQueryOptions assertEquals countElements getIndexes removeIndex noQueryOptions assertEquals countElements getIndexes removeIndex noQueryOptions assertEquals countElements getIndexes
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRemoveIndex()
focal_class.declarator: ROOT_QUERY = "ROOT_QUERY"
focal_class.modifier: public static final
focal_class.original_string: public static final String ROOT_QUERY = "ROOT_QUERY";
focal_class.type: String
focal_class.var_name: ROOT_QUERY
focal_class.declarator: persistence
focal_class.modifier: private volatile
focal_class.original_string: private volatile Persistence<O, ? extends Comparable> persistence;
focal_class.type: Persistence<O, ? extends Comparable>
focal_class.var_name: persistence
focal_class.declarator: objectStore
focal_class.modifier: private volatile
focal_class.original_string: private volatile ObjectStore<O> objectStore;
focal_class.type: ObjectStore<O>
focal_class.var_name: objectStore
focal_class.declarator: attributeIndexes = new ConcurrentHashMap<Attribute<O, ?>, Set<Index<O>>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<Attribute<O, ?>, Set<Index<O>>> attributeIndexes = new ConcurrentHashMap<Attribute<O, ?>, Set<Index<O>>>();
focal_class.type: ConcurrentMap<Attribute<O, ?>, Set<Index<O>>>
focal_class.var_name: attributeIndexes
focal_class.declarator: uniqueIndexes = new ConcurrentHashMap<Attribute<O, ?>, Index<O>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<Attribute<O, ?>, Index<O>> uniqueIndexes = new ConcurrentHashMap<Attribute<O, ?>, Index<O>>();
focal_class.type: ConcurrentMap<Attribute<O, ?>, Index<O>>
focal_class.var_name: uniqueIndexes
focal_class.declarator: compoundIndexes = new ConcurrentHashMap<CompoundAttribute<O>, CompoundIndex<O>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<CompoundAttribute<O>, CompoundIndex<O>> compoundIndexes = new ConcurrentHashMap<CompoundAttribute<O>, CompoundIndex<O>>();
focal_class.type: ConcurrentMap<CompoundAttribute<O>, CompoundIndex<O>>
focal_class.var_name: compoundIndexes
focal_class.declarator: standingQueryIndexes = new ConcurrentHashMap<Query<O>, Index<O>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<Query<O>, Index<O>> standingQueryIndexes = new ConcurrentHashMap<Query<O>, Index<O>>();
focal_class.type: ConcurrentMap<Query<O>, Index<O>>
focal_class.var_name: standingQueryIndexes
focal_class.declarator: fallbackIndex = new FallbackIndex<O>()
focal_class.modifier: private final
focal_class.original_string: private final FallbackIndex<O> fallbackIndex = new FallbackIndex<O>();
focal_class.type: FallbackIndex<O>
focal_class.var_name: fallbackIndex
focal_class.declarator: immutableIndexes = Collections.newSetFromMap(new ConcurrentHashMap<>())
focal_class.modifier: private final
focal_class.original_string: private final Set<Index<O>> immutableIndexes = Collections.newSetFromMap(new ConcurrentHashMap<>());
focal_class.type: Set<Index<O>>
focal_class.var_name: immutableIndexes
focal_class.file: code/src/main/java/com/googlecode/cqengine/engine/CollectionQueryEngine.java
focal_class.identifier: CollectionQueryEngine
focal_class.interfaces: implements QueryEngineInternal<O>
focal_class.class_method_signature: CollectionQueryEngine.CollectionQueryEngine()
focal_class.full_signature: public  CollectionQueryEngine()
focal_class.identifier: CollectionQueryEngine
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  CollectionQueryEngine()
focal_class.class_method_signature: CollectionQueryEngine.init(final ObjectStore<O> objectStore, final QueryOptions queryOptions)
focal_class.full_signature: @Override public void init(final ObjectStore<O> objectStore, final QueryOptions queryOptions)
focal_class.identifier: init
focal_class.modifiers: @Override public
focal_class.parameters: (final ObjectStore<O> objectStore, final QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void init(final ObjectStore<O> objectStore, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.destroy(QueryOptions queryOptions)
focal_class.full_signature: @Override public void destroy(QueryOptions queryOptions)
focal_class.identifier: destroy
focal_class.modifiers: @Override public
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void destroy(QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.addIndex(Index<O> index, QueryOptions queryOptions)
focal_class.full_signature: @Override public void addIndex(Index<O> index, QueryOptions queryOptions)
focal_class.identifier: addIndex
focal_class.modifiers: @Override public
focal_class.parameters: (Index<O> index, QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void addIndex(Index<O> index, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.addAttributeIndex(AttributeIndex<A, O> attributeIndex, QueryOptions queryOptions)
focal_class.full_signature:  void addAttributeIndex(AttributeIndex<A, O> attributeIndex, QueryOptions queryOptions)
focal_class.identifier: addAttributeIndex
focal_class.parameters: (AttributeIndex<A, O> attributeIndex, QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void addAttributeIndex(AttributeIndex<A, O> attributeIndex, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.addStandingQueryIndex(Index<O> standingQueryIndex, Query<O> standingQuery, QueryOptions queryOptions)
focal_class.full_signature:  void addStandingQueryIndex(Index<O> standingQueryIndex, Query<O> standingQuery, QueryOptions queryOptions)
focal_class.identifier: addStandingQueryIndex
focal_class.parameters: (Index<O> standingQueryIndex, Query<O> standingQuery, QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void addStandingQueryIndex(Index<O> standingQueryIndex, Query<O> standingQuery, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.addCompoundIndex(CompoundIndex<O> compoundIndex, CompoundAttribute<O> compoundAttribute, QueryOptions queryOptions)
focal_class.full_signature:  void addCompoundIndex(CompoundIndex<O> compoundIndex, CompoundAttribute<O> compoundAttribute, QueryOptions queryOptions)
focal_class.identifier: addCompoundIndex
focal_class.parameters: (CompoundIndex<O> compoundIndex, CompoundAttribute<O> compoundAttribute, QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void addCompoundIndex(CompoundIndex<O> compoundIndex, CompoundAttribute<O> compoundAttribute, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.removeIndex(Index<O> index, QueryOptions queryOptions)
focal_class.full_signature: @Override public void removeIndex(Index<O> index, QueryOptions queryOptions)
focal_class.identifier: removeIndex
focal_class.modifiers: @Override public
focal_class.parameters: (Index<O> index, QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void removeIndex(Index<O> index, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.getIndexes()
focal_class.full_signature: @Override public Iterable<Index<O>> getIndexes()
focal_class.identifier: getIndexes
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterable<Index<O>>
focal_class.signature: Iterable<Index<O>> getIndexes()
focal_class.class_method_signature: CollectionQueryEngine.getIndexesOnAttribute(Attribute<O, ?> attribute)
focal_class.full_signature:  Iterable<Index<O>> getIndexesOnAttribute(Attribute<O, ?> attribute)
focal_class.identifier: getIndexesOnAttribute
focal_class.parameters: (Attribute<O, ?> attribute)
focal_class.return: Iterable<Index<O>>
focal_class.signature: Iterable<Index<O>> getIndexesOnAttribute(Attribute<O, ?> attribute)
focal_class.class_method_signature: CollectionQueryEngine.getEntireCollectionAsResultSet(final Query<O> query, final QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> getEntireCollectionAsResultSet(final Query<O> query, final QueryOptions queryOptions)
focal_class.identifier: getEntireCollectionAsResultSet
focal_class.parameters: (final Query<O> query, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> getEntireCollectionAsResultSet(final Query<O> query, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveSimpleQuery(SimpleQuery<O, A> query, QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveSimpleQuery(SimpleQuery<O, A> query, QueryOptions queryOptions)
focal_class.identifier: retrieveSimpleQuery
focal_class.parameters: (SimpleQuery<O, A> query, QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveSimpleQuery(SimpleQuery<O, A> query, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveComparativeQuery(ComparativeQuery<O, A> query, QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveComparativeQuery(ComparativeQuery<O, A> query, QueryOptions queryOptions)
focal_class.identifier: retrieveComparativeQuery
focal_class.parameters: (ComparativeQuery<O, A> query, QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveComparativeQuery(ComparativeQuery<O, A> query, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.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: CollectionQueryEngine.retrieveWithoutIndexOrdering(Query<O> query, QueryOptions queryOptions, OrderByOption<O> orderByOption)
focal_class.full_signature:  ResultSet<O> retrieveWithoutIndexOrdering(Query<O> query, QueryOptions queryOptions, OrderByOption<O> orderByOption)
focal_class.identifier: retrieveWithoutIndexOrdering
focal_class.parameters: (Query<O> query, QueryOptions queryOptions, OrderByOption<O> orderByOption)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveWithoutIndexOrdering(Query<O> query, QueryOptions queryOptions, OrderByOption<O> orderByOption)
focal_class.class_method_signature: CollectionQueryEngine.retrieveWithIndexOrdering(final Query<O> query, final QueryOptions queryOptions, final OrderByOption<O> orderByOption, final SortedKeyStatisticsIndex<?, O> indexForOrdering)
focal_class.full_signature:  ResultSet<O> retrieveWithIndexOrdering(final Query<O> query, final QueryOptions queryOptions, final OrderByOption<O> orderByOption, final SortedKeyStatisticsIndex<?, O> indexForOrdering)
focal_class.identifier: retrieveWithIndexOrdering
focal_class.parameters: (final Query<O> query, final QueryOptions queryOptions, final OrderByOption<O> orderByOption, final SortedKeyStatisticsIndex<?, O> indexForOrdering)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveWithIndexOrdering(final Query<O> query, final QueryOptions queryOptions, final OrderByOption<O> orderByOption, final SortedKeyStatisticsIndex<?, O> indexForOrdering)
focal_class.class_method_signature: CollectionQueryEngine.retrieveWithIndexOrderingMainResults(final Query<O> query, QueryOptions queryOptions, SortedKeyStatisticsIndex<?, O> indexForOrdering, List<AttributeOrder<O>> allSortOrders, RangeBounds<?> rangeBoundsFromQuery, boolean attributeCanHaveMoreThanOneValue, boolean primarySortDescending)
focal_class.full_signature:  Iterator<O> retrieveWithIndexOrderingMainResults(final Query<O> query, QueryOptions queryOptions, SortedKeyStatisticsIndex<?, O> indexForOrdering, List<AttributeOrder<O>> allSortOrders, RangeBounds<?> rangeBoundsFromQuery, boolean attributeCanHaveMoreThanOneValue, boolean primarySortDescending)
focal_class.identifier: retrieveWithIndexOrderingMainResults
focal_class.parameters: (final Query<O> query, QueryOptions queryOptions, SortedKeyStatisticsIndex<?, O> indexForOrdering, List<AttributeOrder<O>> allSortOrders, RangeBounds<?> rangeBoundsFromQuery, boolean attributeCanHaveMoreThanOneValue, boolean primarySortDescending)
focal_class.return: Iterator<O>
focal_class.signature: Iterator<O> retrieveWithIndexOrderingMainResults(final Query<O> query, QueryOptions queryOptions, SortedKeyStatisticsIndex<?, O> indexForOrdering, List<AttributeOrder<O>> allSortOrders, RangeBounds<?> rangeBoundsFromQuery, boolean attributeCanHaveMoreThanOneValue, boolean primarySortDescending)
focal_class.class_method_signature: CollectionQueryEngine.retrieveWithIndexOrderingMissingResults(final Query<O> query, QueryOptions queryOptions, Attribute<O, Comparable> primarySortAttribute, List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue)
focal_class.full_signature:  Iterator<O> retrieveWithIndexOrderingMissingResults(final Query<O> query, QueryOptions queryOptions, Attribute<O, Comparable> primarySortAttribute, List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue)
focal_class.identifier: retrieveWithIndexOrderingMissingResults
focal_class.parameters: (final Query<O> query, QueryOptions queryOptions, Attribute<O, Comparable> primarySortAttribute, List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue)
focal_class.return: Iterator<O>
focal_class.signature: Iterator<O> retrieveWithIndexOrderingMissingResults(final Query<O> query, QueryOptions queryOptions, Attribute<O, Comparable> primarySortAttribute, List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue)
focal_class.class_method_signature: CollectionQueryEngine.filterIndexOrderingCandidateResults(final Iterator<O> sortedCandidateResults, final Query<O> query, final QueryOptions queryOptions)
focal_class.full_signature:  Iterator<O> filterIndexOrderingCandidateResults(final Iterator<O> sortedCandidateResults, final Query<O> query, final QueryOptions queryOptions)
focal_class.identifier: filterIndexOrderingCandidateResults
focal_class.parameters: (final Iterator<O> sortedCandidateResults, final Query<O> query, final QueryOptions queryOptions)
focal_class.return: Iterator<O>
focal_class.signature: Iterator<O> filterIndexOrderingCandidateResults(final Iterator<O> sortedCandidateResults, final Query<O> query, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.getPersistenceFromQueryOptions(QueryOptions queryOptions)
focal_class.full_signature: static Persistence<O, A> getPersistenceFromQueryOptions(QueryOptions queryOptions)
focal_class.identifier: getPersistenceFromQueryOptions
focal_class.modifiers: static
focal_class.parameters: (QueryOptions queryOptions)
focal_class.return: Persistence<O, A>
focal_class.signature: Persistence<O, A> getPersistenceFromQueryOptions(QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.determineAdditionalSortOrdersForIndexOrdering(List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue, Index<O> index, QueryOptions queryOptions)
focal_class.full_signature: static List<AttributeOrder<O>> determineAdditionalSortOrdersForIndexOrdering(List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue, Index<O> index, QueryOptions queryOptions)
focal_class.identifier: determineAdditionalSortOrdersForIndexOrdering
focal_class.modifiers: static
focal_class.parameters: (List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue, Index<O> index, QueryOptions queryOptions)
focal_class.return: List<AttributeOrder<O>>
focal_class.signature: List<AttributeOrder<O>> determineAdditionalSortOrdersForIndexOrdering(List<AttributeOrder<O>> allSortOrders, boolean attributeCanHaveMoreThanOneValue, Index<O> index, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.getKeysAndValuesInRange(SortedKeyStatisticsIndex<A, O> index, RangeBounds<?> queryBounds, boolean descending, QueryOptions queryOptions)
focal_class.full_signature: static CloseableIterator<KeyValue<A, O>> getKeysAndValuesInRange(SortedKeyStatisticsIndex<A, O> index, RangeBounds<?> queryBounds, boolean descending, QueryOptions queryOptions)
focal_class.identifier: getKeysAndValuesInRange
focal_class.modifiers: static
focal_class.parameters: (SortedKeyStatisticsIndex<A, O> index, RangeBounds<?> queryBounds, boolean descending, QueryOptions queryOptions)
focal_class.return: CloseableIterator<KeyValue<A, O>>
focal_class.signature: CloseableIterator<KeyValue<A, O>> getKeysAndValuesInRange(SortedKeyStatisticsIndex<A, O> index, RangeBounds<?> queryBounds, boolean descending, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.getBoundsFromQuery(Query<O> query, Attribute<O, A> attribute)
focal_class.full_signature: static RangeBounds getBoundsFromQuery(Query<O> query, Attribute<O, A> attribute)
focal_class.identifier: getBoundsFromQuery
focal_class.modifiers: static
focal_class.parameters: (Query<O> query, Attribute<O, A> attribute)
focal_class.return: RangeBounds
focal_class.signature: RangeBounds getBoundsFromQuery(Query<O> query, Attribute<O, A> attribute)
focal_class.class_method_signature: CollectionQueryEngine.retrieveRecursive(Query<O> query, final QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveRecursive(Query<O> query, final QueryOptions queryOptions)
focal_class.identifier: retrieveRecursive
focal_class.parameters: (Query<O> query, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveRecursive(Query<O> query, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveIntersectionOfSimpleQueries(Collection<SimpleQuery<O, ?>> queries, QueryOptions queryOptions, boolean indexMergeStrategyEnabled)
focal_class.full_signature:  ResultSet<O> retrieveIntersectionOfSimpleQueries(Collection<SimpleQuery<O, ?>> queries, QueryOptions queryOptions, boolean indexMergeStrategyEnabled)
focal_class.identifier: retrieveIntersectionOfSimpleQueries
focal_class.parameters: (Collection<SimpleQuery<O, ?>> queries, QueryOptions queryOptions, boolean indexMergeStrategyEnabled)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveIntersectionOfSimpleQueries(Collection<SimpleQuery<O, ?>> queries, QueryOptions queryOptions, boolean indexMergeStrategyEnabled)
focal_class.class_method_signature: CollectionQueryEngine.retrieveIntersectionOfComparativeQueries(Collection<ComparativeQuery<O, ?>> queries, QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveIntersectionOfComparativeQueries(Collection<ComparativeQuery<O, ?>> queries, QueryOptions queryOptions)
focal_class.identifier: retrieveIntersectionOfComparativeQueries
focal_class.parameters: (Collection<ComparativeQuery<O, ?>> queries, QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveIntersectionOfComparativeQueries(Collection<ComparativeQuery<O, ?>> queries, QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveUnionOfSimpleQueries(final Collection<SimpleQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveUnionOfSimpleQueries(final Collection<SimpleQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.identifier: retrieveUnionOfSimpleQueries
focal_class.parameters: (final Collection<SimpleQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveUnionOfSimpleQueries(final Collection<SimpleQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveUnionOfComparativeQueries(final Collection<ComparativeQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveUnionOfComparativeQueries(final Collection<ComparativeQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.identifier: retrieveUnionOfComparativeQueries
focal_class.parameters: (final Collection<ComparativeQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveUnionOfComparativeQueries(final Collection<ComparativeQuery<O, ?>> queries, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.retrieveFromStandingQueryIndexIfAvailable(Query<O> query, final QueryOptions queryOptions)
focal_class.full_signature:  ResultSet<O> retrieveFromStandingQueryIndexIfAvailable(Query<O> query, final QueryOptions queryOptions)
focal_class.identifier: retrieveFromStandingQueryIndexIfAvailable
focal_class.parameters: (Query<O> query, final QueryOptions queryOptions)
focal_class.return: ResultSet<O>
focal_class.signature: ResultSet<O> retrieveFromStandingQueryIndexIfAvailable(Query<O> query, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.addAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.full_signature: @Override public boolean addAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.identifier: addAll
focal_class.modifiers: @Override public
focal_class.parameters: (final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.return: boolean
focal_class.signature: boolean addAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.removeAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.full_signature: @Override public boolean removeAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.identifier: removeAll
focal_class.modifiers: @Override public
focal_class.parameters: (final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.return: boolean
focal_class.signature: boolean removeAll(final ObjectSet<O> objectSet, final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.clear(final QueryOptions queryOptions)
focal_class.full_signature: @Override public void clear(final QueryOptions queryOptions)
focal_class.identifier: clear
focal_class.modifiers: @Override public
focal_class.parameters: (final QueryOptions queryOptions)
focal_class.return: void
focal_class.signature: void clear(final QueryOptions queryOptions)
focal_class.class_method_signature: CollectionQueryEngine.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: CollectionQueryEngine.ensureMutable()
focal_class.full_signature:  void ensureMutable()
focal_class.identifier: ensureMutable
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void ensureMutable()
focal_class.class_method_signature: CollectionQueryEngine.forEachIndexDo(IndexOperation<O> indexOperation)
focal_class.full_signature:  boolean forEachIndexDo(IndexOperation<O> indexOperation)
focal_class.identifier: forEachIndexDo
focal_class.parameters: (IndexOperation<O> indexOperation)
focal_class.return: boolean
focal_class.signature: boolean forEachIndexDo(IndexOperation<O> indexOperation)
focal_class.class_method_signature: CollectionQueryEngine.getClassNameNullSafe(Object object)
focal_class.full_signature: static String getClassNameNullSafe(Object object)
focal_class.identifier: getClassNameNullSafe
focal_class.modifiers: static
focal_class.parameters: (Object object)
focal_class.return: String
focal_class.signature: String getClassNameNullSafe(Object object)
focal_class.class_method_signature: CollectionQueryEngine.shouldUseIndexMergeStrategy(boolean strategyRequested, boolean comparativeQueriesPresent, Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.full_signature: static boolean shouldUseIndexMergeStrategy(boolean strategyRequested, boolean comparativeQueriesPresent, Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.identifier: shouldUseIndexMergeStrategy
focal_class.modifiers: static
focal_class.parameters: (boolean strategyRequested, boolean comparativeQueriesPresent, Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.return: boolean
focal_class.signature: boolean shouldUseIndexMergeStrategy(boolean strategyRequested, boolean comparativeQueriesPresent, Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.class_method_signature: CollectionQueryEngine.indexesAvailableForAllResultSets(Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.full_signature: static boolean indexesAvailableForAllResultSets(Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.identifier: indexesAvailableForAllResultSets
focal_class.modifiers: static
focal_class.parameters: (Iterable<ResultSet<O>> resultSetsToMerge)
focal_class.return: boolean
focal_class.signature: boolean indexesAvailableForAllResultSets(Iterable<ResultSet<O>> resultSetsToMerge)
focal_method.body: @Override
      public void removeIndex(Index<O> index, QueryOptions queryOptions) {
          boolean removed;
          if (index instanceof StandingQueryIndex) {
              @SuppressWarnings({"unchecked"})
              StandingQueryIndex<O> standingQueryIndex = (StandingQueryIndex<O>) index;
  
              removed = standingQueryIndexes.remove(standingQueryIndex.getStandingQuery(), standingQueryIndex);
          }
          else if (index instanceof CompoundIndex) {
              @SuppressWarnings({"unchecked"})
              CompoundIndex<O> compoundIndex = (CompoundIndex<O>) index;
              CompoundAttribute<O> compoundAttribute = compoundIndex.getAttribute();
  
              removed = compoundIndexes.remove(compoundAttribute, compoundIndex);
          }
          else if (index instanceof AttributeIndex) {
              @SuppressWarnings({"unchecked"})
              AttributeIndex<?, O> attributeIndex = (AttributeIndex<?, O>) index;
              Attribute<O, ?> indexedAttribute = attributeIndex.getAttribute();
  
              if (indexedAttribute instanceof StandingQueryAttribute) {
                  @SuppressWarnings("unchecked")
                  StandingQueryAttribute<O> standingQueryAttribute = (StandingQueryAttribute<O>) indexedAttribute;
                  Query<O> standingQuery = standingQueryAttribute.getQuery();
  
                  removed = standingQueryIndexes.remove(standingQuery, index);
              }
              else {
                  Set<Index<O>> indexesOnThisAttribute = attributeIndexes.get(indexedAttribute);
  
                  removed = indexesOnThisAttribute.remove(attributeIndex);
  
                  if (attributeIndex instanceof UniqueIndex) {
                      // Remove from UniqueIndexes as well...
                      removed = uniqueIndexes.remove(indexedAttribute, attributeIndex) || removed;
                  }
  
                  if (indexesOnThisAttribute.isEmpty()) {
                      // If there are no more indexes left on this attribute,
                      // remove the Set which was used to store indexes on the attribute also...
                      attributeIndexes.remove(indexedAttribute);
                  }
              }
          }
          else {
              throw new IllegalStateException("Unexpected type of index: " + (index == null ? null : index.getClass().getName()));
          }
          if (removed && !index.isMutable()) {
              // Remove from the set of immutable indexes; this is used by ensureMutable() and the isMutable() method...
              immutableIndexes.remove(index);
          }
          // Notify the index that it has been removed, so that it can delete underlying storage used if necessary...
          index.destroy(queryOptions);
      }
focal_method.class_method_signature: CollectionQueryEngine.removeIndex(Index<O> index, QueryOptions queryOptions)
focal_method.full_signature: @Override public void removeIndex(Index<O> index, QueryOptions queryOptions)
focal_method.identifier: removeIndex
focal_method.invocations: remove getStandingQuery getAttribute remove getAttribute getQuery remove get remove remove isEmpty remove getName getClass isMutable remove destroy
focal_method.modifiers: @Override public
focal_method.parameters: (Index<O> index, QueryOptions queryOptions)
focal_method.return: void
focal_method.signature: void removeIndex(Index<O> index, QueryOptions queryOptions)