blob: cc435e2c5e7dffc840af3d3d612199e409a28a4c [file] [log] [blame]
package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.ReasonType;
import org.eclipse.jst.jsf.common.internal.resource.ResourceTracker;
class TaglibFileTracker extends ResourceTracker<IFile>
{
private String _uri;
private TaglibResourceManager _manager;
private final ILibraryChangeHandler _handler;
public TaglibFileTracker(final IFile file, final TaglibResourceManager manager,
final ILibraryChangeHandler handler)
{
super(file);
_manager = manager;
_manager.addListener(this);
_handler = handler;
}
public String getUri()
{
return _uri;
}
public final void setUri(final String uri)
{
_uri = uri;
}
@Override
public void dispose()
{
_manager.removeListener(this);
_manager = null;
}
@Override
protected void fireResourceInAccessible(final IResource resource, final ReasonType reasonType)
{
// removed resources kick a remove event
_handler.removed(_uri, getResource());
}
@Override
protected void fireResourceChanged(final IResource resource, final ReasonType reasonType)
{
// changed resources kick a change event
_handler.changed(_uri, getResource());
}
@Override
protected void fireResourceAdded(final IResource affectedResource, final ReasonType reasonType)
{
// added resources kick an add event.
_handler.added(getResource());
}
}