Skip to main content
summaryrefslogtreecommitdiffstats
blob: cc435e2c5e7dffc840af3d3d612199e409a28a4c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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());
    }
}

Back to the top