/*******************************************************************************
* Copyright (c) 2010-2012, Abel Hegedus, Istvan Rath and Daniel Varro
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Abel Hegedus - initial API and implementation
*******************************************************************************/
package org.eclipse.incquery.runtime.triggerengine.firing;
import java.util.HashSet;
import java.util.Set;
/**
* @author Abel Hegedus
*
*/
public abstract class UpdateCompleteProvider implements IUpdateCompleteProvider {
private final Set<IUpdateCompleteListener> listeners;
public UpdateCompleteProvider() {
listeners = new HashSet<IUpdateCompleteListener>();
}
@Override
public boolean addUpdateCompleteListener(IUpdateCompleteListener listener, boolean fireNow) {
boolean added = listeners.add(listener);
if (added) {
listener.updateComplete();
}
return added;
}
@Override
public boolean removeUpdateCompleteListener(IUpdateCompleteListener listener) {
return this.listeners.remove(listener);
}
protected void updateCompleted() {
for (IUpdateCompleteListener listener : this.listeners) {
listener.updateComplete();
}
}
@Override
public void dispose() {
listeners.clear();
}
}