@@ -0,0 +1,2002 @@
+package com.onextent.augie;%0A%0Aimport java.util.AbstractSet;%0Aimport java.util.Iterator;%0Aimport java.util.LinkedHashMap;%0Aimport java.util.Map;%0A%0Apublic class AugiementRegistry extends AbstractSet%3CAugiement%3E %7B%0A    %0A    private final Map%3CString, Augiement%3E active;%0A    private final Map%3CString, Augiement%3E waiting;%0A    %0A    public AugiementRegistry() %7B%0A        active = new LinkedHashMap%3CString, Augiement%3E();%0A        waiting = new LinkedHashMap%3CString, Augiement%3E();%0A    %7D%0A%0A    ////////////////////////////////////////////////////////////////////////////////////%0A    %0A    @Override%0A    public boolean add(Augiement object) %7B%0A        // TODO Auto-generated method stub%0A        //make sure deps are satisfied, if no, waiting%0A        //if yes, active, then loop through waiting again%0A        return super.add(object);%0A    %7D%0A%0A    private class ARIterator implements Iterator%3CAugiement%3E %7B%0A       %0A        final Iterator%3CAugiement%3E actives;%0A        Augiement last;%0A        %0A        ARIterator() %7B%0A            %0A            actives = active.values().iterator();%0A            last = null;%0A        %7D%0A%0A        @Override%0A        public boolean hasNext() %7B%0A            return actives.hasNext();%0A        %7D%0A%0A        @Override%0A        public Augiement next() %7B%0A            last = actives.next();%0A            return last;%0A        %7D%0A%0A        @Override%0A        public void remove() %7B%0A            Augiement a = active.remove(last);%0A            if (a != null) %7B%0A                //move dependencies to waiting%0A                %0A            %7D%0A        %7D%0A    %7D%0A    %0A    @Override%0A    public Iterator%3CAugiement%3E iterator() %7B%0A        return new ARIterator();%0A    %7D%0A%0A    ////////////////////////////////////////////////////////////////////////////////////%0A    %0A    @Override%0A    public int size() %7B%0A        return active.size();%0A    %7D%0A%0A    @Override%0A    public boolean contains(Object object) %7B%0A        return active.values().contains(object);%0A    %7D%0A%0A    @Override%0A    public boolean isEmpty() %7B%0A        return active.isEmpty();%0A    %7D%0A%7D%0A

refactor for dependency mgr