package de.ovgu.cide.features;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.resources.IProject;
import de.ovgu.cide.CIDECorePlugin;
import de.ovgu.cide.ColorListChangedEvent;
public abstract class AbstractFeatureModel implements IFeatureModelWithID {
protected IProject project;
// private final List<IFeatureModelChangeListener> listeners = new LinkedList<IFeatureModelChangeListener>();
protected AbstractFeatureModel(IProject project) {
assert project != null && project.exists();
this.project = project;
}
// public void addListener(IFeatureModelChangeListener listener) {
// listeners.add(listener);
// }
public IProject getProject() {
return project;
}
// public void removeListener(IFeatureModelChangeListener listener) {
// listeners.remove(listener);
// }
protected void fireFeatureModelChanged(ColorListChangedEvent event) {
CIDECorePlugin.getDefault().notifyListeners(event);
// for (IFeatureModelChangeListener listener : listeners)
// listener.colorListChanged(event);
}
public Set<IFeature> getVisibleFeatures() {
Set<IFeature> result = new HashSet<IFeature>();
for (IFeature feature : getFeatures()) {
if (feature.isVisible())
result.add(feature);
}
return Collections.unmodifiableSet(result);
}
}