org_aspectj_testing_util_StructureModelUtilTest_java
org.aspectj.asm.internal.AspectJElementHierarchy
public void forget(IProgramElement compilationUnitNode, IProgramElement typeNode) {
        String k = null;
        AspectJElementHierarchy aspectJElementHierarchy = this;
        synchronized (aspectJElementHierarchy) {
            for (Map.Entry<String, IProgramElement> typeMapEntry : this.typeMap.entrySet()) {
                if (typeMapEntry.getValue() != typeNode) continue;
                k = typeMapEntry.getKey();
                break;
            }
            if (k != null) {
                this.typeMap.remove(k);
            }
        }
        if (compilationUnitNode != null) {
            k = null;
            for (Map.Entry entry : this.fileMap.entrySet()) {
                if (entry.getValue() != compilationUnitNode) continue;
                k = (String)entry.getKey();
                break;
            }
            if (k != null) {
                this.fileMap.remove(k);
            }
        }
    }
 -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object
 [CALL] -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object [EXIT]