| package org.eclipse.jst.jsf.designtime.internal.resources; |
| |
| import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener; |
| |
| /** |
| * |
| * @author cbateman |
| * |
| */ |
| public abstract class JSFResourceChangeListener implements ILocatorChangeListener |
| { |
| |
| /** |
| * Indicates that a tag library has changed |
| * @author cbateman |
| * |
| */ |
| public static class JSFResourceChangedEvent extends LocatorChangeEvent |
| { |
| /** |
| * |
| */ |
| private static final long serialVersionUID = -1546380081551499245L; |
| |
| /** |
| * TODO: what happens if one locator has a namespace collision with |
| * another one? |
| */ |
| public enum CHANGE_TYPE |
| { |
| /** |
| * Indicates that the resource is new |
| */ |
| ADDED, |
| |
| /** |
| * Indicates that the resource was removed. |
| */ |
| REMOVED, |
| |
| /** |
| * Indicates that the resource is not new, but it's content |
| * has changed |
| */ |
| CHANGED |
| } |
| |
| private final CHANGE_TYPE _changeType; |
| private final IJSFResourceFragment _oldValue; |
| private final IJSFResourceFragment _newValue; |
| |
| /** |
| * @param source |
| * @param oldValue |
| * @param newValue |
| * @param changeType |
| */ |
| public JSFResourceChangedEvent( |
| final AbstractJSFResourceLocator source, |
| final IJSFResourceFragment oldValue, |
| final IJSFResourceFragment newValue, |
| final CHANGE_TYPE changeType) |
| { |
| super(source); |
| _changeType = changeType; |
| _oldValue = oldValue; |
| _newValue = newValue; |
| } |
| |
| @Override |
| public IJSFResourceLocator getSource() |
| { |
| return (IJSFResourceLocator) super.getSource(); |
| } |
| |
| /** |
| * @return the type of the change |
| */ |
| public final CHANGE_TYPE getChangeType() |
| { |
| return _changeType; |
| } |
| |
| /** |
| * @return the old value. This is null if the event is ADDED |
| */ |
| public final IJSFResourceFragment getOldValue() |
| { |
| return _oldValue; |
| } |
| |
| /** |
| * @return the new value. This is null if the event is REMOVED |
| */ |
| public final IJSFResourceFragment getNewValue() |
| { |
| return _newValue; |
| } |
| } |
| |
| public final void changed(final LocatorChangeEvent event) |
| { |
| changed((JSFResourceChangedEvent)event); |
| } |
| |
| /** |
| * @param event |
| */ |
| public abstract void changed(final JSFResourceChangedEvent event); |
| } |