test_class.declarator: query
test_class.modifier: @Mock
test_class.original_string: @Mock
    Query query;
test_class.type: Query
test_class.var_name: query
test_class.declarator: andCriteria
test_class.modifier: @Mock
test_class.original_string: @Mock
    AndCriteria andCriteria;
test_class.type: AndCriteria
test_class.var_name: andCriteria
test_class.declarator: orCriteria
test_class.modifier: @Mock
test_class.original_string: @Mock
    OrCriteria orCriteria;
test_class.type: OrCriteria
test_class.var_name: orCriteria
test_class.declarator: diffCriteria
test_class.modifier: @Mock
test_class.original_string: @Mock
    DiffCriteria diffCriteria;
test_class.type: DiffCriteria
test_class.var_name: diffCriteria
test_class.declarator: arithmeticCriteria
test_class.modifier: @Mock
test_class.original_string: @Mock
    ArithmeticCriteria arithmeticCriteria;
test_class.type: ArithmeticCriteria
test_class.var_name: arithmeticCriteria
test_class.declarator: criteria
test_class.modifier: @Mock
test_class.original_string: @Mock
    Criteria criteria;
test_class.type: Criteria
test_class.var_name: criteria
test_class.declarator: indexes
test_class.modifier: @Mock
test_class.original_string: @Mock
    Map<String, CacheIndex> indexes;
test_class.type: Map<String, CacheIndex>
test_class.var_name: indexes
test_class.declarator: cacheIndex
test_class.modifier: @Mock
test_class.original_string: @Mock
    CacheIndex cacheIndex;
test_class.type: CacheIndex
test_class.var_name: cacheIndex
test_class.declarator: handler
test_class.original_string: DefaultIndexHandler<Object, Object> handler;
test_class.type: DefaultIndexHandler<Object, Object>
test_class.var_name: handler
test_class.file: imcache-core/src/test/java/com/cetsoft/imcache/cache/search/DefaultIndexHandlerTest.java
test_class.identifier: DefaultIndexHandlerTest
test_case.body: @Test
    public void remove() {
      String attributeName = "name";
      MyObject object = new MyObject();
      object.name = attributeName;
      Set<String> keySet = new HashSet<String>();
      keySet.add(attributeName);
      doReturn(keySet).when(indexes).keySet();
      doReturn(cacheIndex).when(indexes).get(attributeName);
      doNothing().when(cacheIndex).remove(object, object);
      handler.remove(object, object);
  
      verify(cacheIndex).remove(attributeName, object);
      verify(indexes).get(attributeName);
    }
test_case.class_method_signature: DefaultIndexHandlerTest.remove()
test_case.full_signature: @Test public void remove()
test_case.identifier: remove
test_case.invocations: add keySet when doReturn get when doReturn remove when doNothing remove remove verify get verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void remove()
focal_class.declarator: fields = new ConcurrentHashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, Field> fields = new ConcurrentHashMap<>();
focal_class.type: Map<String, Field>
focal_class.var_name: fields
focal_class.declarator: indexes
focal_class.modifier: protected
focal_class.original_string: protected Map<String, CacheIndex> indexes;
focal_class.type: Map<String, CacheIndex>
focal_class.var_name: indexes
focal_class.file: imcache-core/src/main/java/com/cetsoft/imcache/cache/search/DefaultIndexHandler.java
focal_class.identifier: DefaultIndexHandler
focal_class.interfaces: implements IndexHandler<K, V>
focal_class.class_method_signature: DefaultIndexHandler.DefaultIndexHandler()
focal_class.full_signature: public  DefaultIndexHandler()
focal_class.identifier: DefaultIndexHandler
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  DefaultIndexHandler()
focal_class.class_method_signature: DefaultIndexHandler.addIndex(final String attributeName, final IndexType type)
focal_class.full_signature: public void addIndex(final String attributeName, final IndexType type)
focal_class.identifier: addIndex
focal_class.modifiers: public
focal_class.parameters: (final String attributeName, final IndexType type)
focal_class.return: void
focal_class.signature: void addIndex(final String attributeName, final IndexType type)
focal_class.class_method_signature: DefaultIndexHandler.add(final K key, final V value)
focal_class.full_signature: public void add(final K key, final V value)
focal_class.identifier: add
focal_class.modifiers: public
focal_class.parameters: (final K key, final V value)
focal_class.return: void
focal_class.signature: void add(final K key, final V value)
focal_class.class_method_signature: DefaultIndexHandler.remove(final K key, final V value)
focal_class.full_signature: public void remove(final K key, final V value)
focal_class.identifier: remove
focal_class.modifiers: public
focal_class.parameters: (final K key, final V value)
focal_class.return: void
focal_class.signature: void remove(final K key, final V value)
focal_class.class_method_signature: DefaultIndexHandler.clear()
focal_class.full_signature: public void clear()
focal_class.identifier: clear
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_class.class_method_signature: DefaultIndexHandler.execute(final Query query)
focal_class.full_signature: @SuppressWarnings("unchecked") public List<K> execute(final Query query)
focal_class.identifier: execute
focal_class.modifiers: @SuppressWarnings("unchecked") public
focal_class.parameters: (final Query query)
focal_class.return: List<K>
focal_class.signature: List<K> execute(final Query query)
focal_class.class_method_signature: DefaultIndexHandler.execute(final Criteria criteria)
focal_class.full_signature: protected List<Object> execute(final Criteria criteria)
focal_class.identifier: execute
focal_class.modifiers: protected
focal_class.parameters: (final Criteria criteria)
focal_class.return: List<Object>
focal_class.signature: List<Object> execute(final Criteria criteria)
focal_class.class_method_signature: DefaultIndexHandler.executeArithmetic(final ArithmeticCriteria arithmeticCriteria)
focal_class.full_signature: protected List<Object> executeArithmetic(final ArithmeticCriteria arithmeticCriteria)
focal_class.identifier: executeArithmetic
focal_class.modifiers: protected
focal_class.parameters: (final ArithmeticCriteria arithmeticCriteria)
focal_class.return: List<Object>
focal_class.signature: List<Object> executeArithmetic(final ArithmeticCriteria arithmeticCriteria)
focal_class.class_method_signature: DefaultIndexHandler.executeAnd(final AndCriteria andCriteria)
focal_class.full_signature: protected List<Object> executeAnd(final AndCriteria andCriteria)
focal_class.identifier: executeAnd
focal_class.modifiers: protected
focal_class.parameters: (final AndCriteria andCriteria)
focal_class.return: List<Object>
focal_class.signature: List<Object> executeAnd(final AndCriteria andCriteria)
focal_class.class_method_signature: DefaultIndexHandler.getObjects(List<Object> results, List<Object> result)
focal_class.full_signature: private List<Object> getObjects(List<Object> results, List<Object> result)
focal_class.identifier: getObjects
focal_class.modifiers: private
focal_class.parameters: (List<Object> results, List<Object> result)
focal_class.return: List<Object>
focal_class.signature: List<Object> getObjects(List<Object> results, List<Object> result)
focal_class.class_method_signature: DefaultIndexHandler.executeDiff(final DiffCriteria diffCriteria)
focal_class.full_signature: protected List<Object> executeDiff(final DiffCriteria diffCriteria)
focal_class.identifier: executeDiff
focal_class.modifiers: protected
focal_class.parameters: (final DiffCriteria diffCriteria)
focal_class.return: List<Object>
focal_class.signature: List<Object> executeDiff(final DiffCriteria diffCriteria)
focal_class.class_method_signature: DefaultIndexHandler.executeOr(final OrCriteria orCriteria)
focal_class.full_signature: protected List<Object> executeOr(final OrCriteria orCriteria)
focal_class.identifier: executeOr
focal_class.modifiers: protected
focal_class.parameters: (final OrCriteria orCriteria)
focal_class.return: List<Object>
focal_class.signature: List<Object> executeOr(final OrCriteria orCriteria)
focal_method.body: public void remove(final K key, final V value) {
      for (final String attributeName : indexes.keySet()) {
        final Object indexedKey = getFieldValue(attributeName, value);
        if (indexedKey == null) {
          throw new NullPointerException();
        }
        indexes.get(attributeName).remove(indexedKey, key);
      }
    }
focal_method.class_method_signature: DefaultIndexHandler.remove(final K key, final V value)
focal_method.full_signature: public void remove(final K key, final V value)
focal_method.identifier: remove
focal_method.invocations: keySet getFieldValue remove get
focal_method.modifiers: public
focal_method.parameters: (final K key, final V value)
focal_method.return: void
focal_method.signature: void remove(final K key, final V value)