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