cdt/cdt_6_0_x/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java
changeset 133 996f2f4e33c7
parent 52 42077b7eab6e
equal deleted inserted replaced
131:6cbf17faf712 133:996f2f4e33c7
   229 		}
   229 		}
   230 
   230 
   231 		public boolean handlesEvent(int eventType){
   231 		public boolean handlesEvent(int eventType){
   232 			return (eventType & fEventTypes) != 0;
   232 			return (eventType & fEventTypes) != 0;
   233 		}
   233 		}
   234 		@Override
   234 		
   235 		public int hashCode() {
   235 		// Can't use these due to implementation of CopyOnWriteArraySet.remove()
   236 			return fListener.hashCode();
   236 //		@Override
   237 		}
   237 //		public int hashCode() {
   238 		@Override
   238 //			return fListener.hashCode();
   239 		public boolean equals(Object obj) {
   239 //		}
   240 			return fListener.equals(obj);
   240 //		@Override
   241 		}
   241 //		public boolean equals(Object obj) {
       
   242 //			return fListener.equals(obj);
       
   243 //		}
   242 	}
   244 	}
   243 
   245 
   244 	private volatile Map<String, CConfigurationDataProviderDescriptor> fProviderMap;
   246 	private volatile Map<String, CConfigurationDataProviderDescriptor> fProviderMap;
   245 	private volatile CProjectConverterDesciptor fConverters[];
   247 	private volatile CProjectConverterDesciptor fConverters[];
   246 	/** Set of Listeners listening for Project Description Deltas */
   248 	/** Set of Listeners listening for Project Description Deltas */
  2086 	public void addCProjectDescriptionListener(ICProjectDescriptionListener listener, int eventTypes) {
  2088 	public void addCProjectDescriptionListener(ICProjectDescriptionListener listener, int eventTypes) {
  2087 		fListeners.add(new ListenerDescriptor(listener, eventTypes));
  2089 		fListeners.add(new ListenerDescriptor(listener, eventTypes));
  2088 	}
  2090 	}
  2089 
  2091 
  2090 	public void removeCProjectDescriptionListener(ICProjectDescriptionListener listener) {
  2092 	public void removeCProjectDescriptionListener(ICProjectDescriptionListener listener) {
  2091 		fListeners.remove(listener);
  2093 //		fListeners.remove(listener);
       
  2094 //		Note: can't use remove directly due to the implementation of CopyOnWriteArraySet.remove()
       
  2095 		for (ListenerDescriptor listenerDescriptor : fListeners) {
       
  2096 			if (listenerDescriptor.fListener.equals(listener)) {
       
  2097 				fListeners.remove(listenerDescriptor);
       
  2098 				break;
       
  2099 			}
       
  2100 		}
  2092 	}
  2101 	}
  2093 
  2102 
  2094 	public void notifyListeners(CProjectDescriptionEvent event){
  2103 	public void notifyListeners(CProjectDescriptionEvent event){
  2095 		int eventType = event.getEventType();
  2104 		int eventType = event.getEventType();
  2096 		for (ListenerDescriptor listener : fListeners) {
  2105 		for (ListenerDescriptor listener : fListeners) {