public class SModelNodeListeners {
private final ModelChangeListener myModelChangeListener;
private final SRepositoryListener myRepositoryListener;
private final MyGenerationStatusListener myGenStatusListener;
private EventsCollector myEventsListener;
<BUG>private final ConcurrentHashMap<SModelReference, SModelTreeNode> myTreeNodes = new ConcurrentHashMap<SModelReference, SModelTreeNode>();
private final TreeUpdateVisitor[] myUpdates; // shall be CompositeVisitor, but I'm lazy for that</BUG>
public SModelNodeListeners(TreeUpdateVisitor genStatusUpdate, TreeUpdateVisitor errorVisitor, TreeUpdateVisitor modifiedMarker) {
myUpdates = new TreeUpdateVisitor[3];
myUpdates[0] = genStatusUpdate;

public class SModelNodeListeners {
private final ModelChangeListener myModelChangeListener;
private final SRepositoryListener myRepositoryListener;
private final MyGenerationStatusListener myGenStatusListener;
private EventsCollector myEventsListener;
private final Map<SModelReference, Collection<SModelTreeNode>> myTreeNodes = new HashMap<SModelReference, Collection<SModelTreeNode>>();
private final TreeUpdateVisitor[] myUpdates; // shall be CompositeVisitor, but I'm lazy for that
public SModelNodeListeners(TreeUpdateVisitor genStatusUpdate, TreeUpdateVisitor errorVisitor, TreeUpdateVisitor modifiedMarker) {
myUpdates = new TreeUpdateVisitor[3];
myUpdates[0] = genStatusUpdate;
