package de.ovgu.cide.typing.model; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; public abstract class AbstractTypingProvider implements ITypingProvider { private final List<ITypingCheckListener> listeners = new ArrayList<ITypingCheckListener>(); private final IProject project; protected AbstractTypingProvider(IProject project) { this.project = project; } public void addTypingCheckListener(ITypingCheckListener listener) { listeners.add(listener); } public IProject getProject() { return project; } public void removeTypingCheckListener(ITypingCheckListener listener) { listeners.remove(listener); } protected void fireTypingCheckChanged(Collection<ITypingCheck> added, Collection<ITypingCheck> obsolete, IProgressMonitor monitor) { if (added.size() > 0 || obsolete.size() > 0) for (ITypingCheckListener listener : listeners) listener.changedTypingChecks(new TypeCheckChangeEvent(this, added, obsolete), monitor); } }