package sk.stuba.fiit.perconik.eclipse.core.resources;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.runtime.CoreException;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* TODO
*
* @author Pavol Zbell
* @since 1.0
*/
public abstract class ParametricResourceEventResolver<P> extends ResourceEventResolver {
private final P parameter;
protected ParametricResourceEventResolver(final P parameter) {
this.parameter = checkNotNull(parameter);
}
@Override
protected final boolean resolveEvent(final IResourceChangeEvent event) throws CoreException {
return this.resolveEvent(this.parameter, event);
}
@Override
protected final boolean resolveDelta(final IResourceDelta delta) throws CoreException {
return this.resolveDelta(this.parameter, delta);
}
@Override
protected final boolean resolveResource(final IResource resource) throws CoreException {
return this.resolveResource(this.parameter, resource);
}
protected abstract boolean resolveEvent(P parameter, IResourceChangeEvent event) throws CoreException;
protected abstract boolean resolveDelta(P parameter, IResourceDelta delta) throws CoreException;
protected abstract boolean resolveResource(P parameter, IResource resource) throws CoreException;
@Override
protected final void preResolve() {
this.preResolve(this.parameter);
}
@Override
protected final void postResolve() {
this.postResolve(this.parameter);
}
protected void preResolve(@SuppressWarnings("unused") final P parameter) {}
protected void postResolve(@SuppressWarnings("unused") final P parameter) {}
}