diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources')
24 files changed, 0 insertions, 1772 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java deleted file mode 100644 index b0d5df80e..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/AbstractJSFResourceLocator.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jst.jsf.common.internal.locator.AbstractLocator; -import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener; -import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent; - -/** - * A locator that finds JSF resources. - * - * @author cbateman - * - */ -public abstract class AbstractJSFResourceLocator extends - AbstractLocator<List<IJSFResourceFragment>, IProject, String> implements - IJSFResourceLocator -{ - - /** - * @param id - * @param displayName - * @param noResultValue - * @param mutableListenerList - */ - protected AbstractJSFResourceLocator(String id, String displayName, - List<IJSFResourceFragment> noResultValue, - CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList) - { - super(id, displayName, noResultValue, mutableListenerList); - } - - protected abstract List<IJSFResourceFragment> doLocate(IProject context); - - /** - * TODO: would be better to have a private interface to call fire. - * - * @param event - */ - protected void fireChangeEvent(final JSFResourceChangedEvent event) - { - super.fireChangeEvent(event); - } - - public void addListener(JSFResourceChangeListener listener) - { - super.addListener(listener); - } - - public void removeListener(JSFResourceChangeListener listener) - { - super.removeListener(listener); - } - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java deleted file mode 100644 index 7ece953b8..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResource.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * Represents a JSF loadable resource (spec 2.6). - * - * @author cbateman - * - */ -public interface IJSFResource extends IJSFResourceFragment -{ - /** - * @param contentTypeName - * @return true if the resources matches the content type indicated by the - * contentTypeName. - */ - public abstract boolean isContentType(final String contentTypeName); - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java deleted file mode 100644 index e65ff0194..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceContainer.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * A JSF Resource fragment that is a container for other fragments. - * @author cbateman - * - */ -public interface IJSFResourceContainer extends IJSFResourceFragment -{ - // do nothing. Tagging for now. -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java deleted file mode 100644 index 71d474c7b..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceFragment.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * An object that backs a fragment of a JSF resource. A fragment may be a full - * fledged JSF resource or a may be another interesting related object such as - * the library folder that holds a resource. - * - * @author cbateman - * - */ -public interface IJSFResourceFragment -{ - - /** - * @return true if the fragment is accessible - */ - public abstract boolean isAccessible(); - - /** - * @return the type of this fragment. - */ - public abstract Type getType(); - - /** - * @return the id of the fragment - */ - public ResourceFragmentIdentifier getId(); - - /** - * The type of a fragment - * - */ - public enum Type - { - /** - * A fragment of this type is a full-fledged JSF Resource. A fragment of - * this type can always be cast to IJSFResource. - */ - RESOURCE, - /** - * A fragment of this type is a container for actual RESOURCE's or other - * fragments (or both). A fragment of this type can always be cast to - * IJSFResourceContainer. - */ - CONTAINER; - } - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java deleted file mode 100644 index c44673cfe..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJSFResourceLocator.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.util.List; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jst.jsf.common.internal.locator.ILocator; - -/** - * A JSF resource locator. - * - * @author cbateman - * - */ -public interface IJSFResourceLocator extends ILocator<List<IJSFResourceFragment>, IProject, String> -{ - /** - * @param listener - */ - public void addListener(final JSFResourceChangeListener listener); - /** - * @param listener - */ - public void removeListener(final JSFResourceChangeListener listener); -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java deleted file mode 100644 index 76bcf6270..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IJarBasedJSFResource.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.net.URL; - -/** - * @author cbateman - * - */ -public interface IJarBasedJSFResource extends IJSFResource -{ - /** - * @return the uri of the jar where the resource lives - */ - public abstract URL getJarURL(); - - /** - * @return the zipEntry into the jar where the resource is. - */ - public abstract String getJarEntryName(); -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java deleted file mode 100644 index d0d4a8a4b..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/IWorkspaceJSFResourceFragment.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.resources.IResource; - -/** - * A JSF fragment whose design time object(s) of interest are in the workspace - * @author cbateman - * - */ -public interface IWorkspaceJSFResourceFragment extends IJSFResourceFragment -{ - - /** - * @return the corresponding design time workspace resource. - */ - public IResource getResource(); - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java deleted file mode 100644 index ccd37fe52..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResource.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; - -/** - * Represents a JSF loadable resource (spec 2.6). - * - * @author cbateman - * - */ -public abstract class JSFResource extends JSFResourceFragment implements IJSFResource -{ - private final ContentTypeResolver _contentTypeResolver; - - /** - * @param id - * @param contentTypeResolver - */ - public JSFResource(final ResourceIdentifier id, - final ContentTypeResolver contentTypeResolver) - { - super(id, Type.RESOURCE); - _contentTypeResolver = contentTypeResolver; - } - - /** - * @return the identifier for this resource. - */ - public final ResourceIdentifier getId() - { - return (ResourceIdentifier) super.getId(); - } - - /** - * @return true if this jsf resource is currently accessible. - */ - @Override - public abstract boolean isAccessible(); - - public boolean isContentType(final String contentTypeName) - { - return _contentTypeResolver.matchesType(contentTypeName, getId() - .getResourceName()); - } - - @Override - public String toString() - { - return getId().toString(); - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java deleted file mode 100644 index f7004c550..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceChangeListener.java +++ /dev/null @@ -1,110 +0,0 @@ -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); -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java deleted file mode 100644 index 3ffaf5885..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceContainer.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * A container for JSFResource's. This is a fragment in that it's identifier - * may not point to a valid JSFResource but rather a portion of that nonetheless - * maps to some interesting underlying contain object such as an IFolder. - * - * @author cbateman - * - */ -public abstract class JSFResourceContainer extends JSFResourceFragment implements IJSFResourceContainer -{ - - /** - * @param id - */ - public JSFResourceContainer(ResourceFragmentIdentifier id) - { - super(id, Type.CONTAINER); - } - - @Override - public abstract boolean isAccessible(); - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java deleted file mode 100644 index 4de62aef6..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JSFResourceFragment.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * - * @author cbateman - * - */ -public abstract class JSFResourceFragment implements IJSFResourceFragment -{ - private final ResourceFragmentIdentifier _id; - private final Type _type; - - /** - * @param id - * @param type - */ - public JSFResourceFragment(final ResourceFragmentIdentifier id, - final Type type) - { - _id = id; - _type = type; - } - - public ResourceFragmentIdentifier getId() - { - return _id; - } - - public final Type getType() - { - return _type; - } - - public abstract boolean isAccessible(); - - public String toString() - { - String toString = _id != null ? _id.toString() : "?"; //$NON-NLS-1$ - return String.format("%s[%s]", toString, _type.toString()); //$NON-NLS-1$ - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java deleted file mode 100644 index 3cad67ee9..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResource.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.io.IOException; -import java.net.JarURLConnection; -import java.net.URL; -import java.net.URLConnection; -import java.util.jar.JarFile; -import java.util.zip.ZipEntry; - -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; - -/** - * A JSF Resource that references an entry in the jar. Because of changes in the - * underlying system since it was created, there is no guarantee that the jarURI - * is still valid. Callers should call isAccessible to determine this. - * - * @author cbateman - * - */ -public class JarBasedJSFResource extends JSFResource implements IJarBasedJSFResource -{ - - private final URL _jarURL; - - /** - * @param id - * @param jarURL - * @param contentTypeResolver - */ - public JarBasedJSFResource(final ResourceIdentifier id, final URL jarURL, - final ContentTypeResolver contentTypeResolver) - { - super(id, contentTypeResolver); - _jarURL = jarURL; - } - - /** - * @return the uri pointing in the the jar where the resource lives. - */ - public URL getJarURL() - { - return _jarURL; - } - - /** - * @return the jar entry name for this resource. - */ - public String getJarEntryName() - { - return String.format("META-INF/resources/%s", getId().toString()); //$NON-NLS-1$ - } - - private ZipEntry getZipEntry(final JarFile jarFile) - { - return jarFile.getEntry(getJarEntryName()); - } - - /** - * @return true if is accessible. - */ - @Override - public boolean isAccessible() - { - JarFile jarFile = null; - try - { - jarFile = getJarFile(); - if (jarFile != null) - { - final ZipEntry entry = getZipEntry(jarFile); - return entry != null; - } - } finally - { - if (jarFile != null) - { - try - { - jarFile.close(); - } catch (IOException ioex) - { - JSFCorePlugin.log("Error closing jar file", ioex); //$NON-NLS-1$ - } - } - } - return false; - } - - private JarFile getJarFile() - { - URLConnection connection; - try - { - connection = _jarURL.openConnection(); - connection.connect(); - if (connection instanceof JarURLConnection) - { - return ((JarURLConnection) connection).getJarFile(); - } - } catch (IOException e) - { - // fall through - } - return null; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java deleted file mode 100644 index aa48cea55..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/JarBasedJSFResourceLocator.java +++ /dev/null @@ -1,178 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher; -import org.eclipse.jst.jsf.common.internal.finder.acceptor.JarEntryMatchingAcceptor; -import org.eclipse.jst.jsf.common.internal.finder.matcher.TaglibJarEntryFinder; -import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener; -import org.eclipse.jst.jsf.common.internal.resource.ClasspathJarFile; -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; -import org.eclipse.jst.jsf.common.internal.resource.IJarLocator; -import org.eclipse.jst.jsf.common.internal.util.JarUtilities; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; -import org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory.InvalidIdentifierException; - -/** - * A JSF resource locator that finds resources in jars. - * - * @author cbateman - * - */ -public class JarBasedJSFResourceLocator extends AbstractJSFResourceLocator -{ - private final IJarLocator _provider; - private final ContentTypeResolver _contentTypeResolver; - private static final Pattern _resourcePathPattern = Pattern - .compile("META-INF/resources/(.*)"); //$NON-NLS-1$ - private static final TaglibJarEntryFinder _resourceFinder = new TaglibJarEntryFinder( - _resourcePathPattern); - - /** - * @param id - * @param displayName - * @param noResultValue - * @param mutableListenerList - * @param provider - * @param contentTypeResolver - */ - public JarBasedJSFResourceLocator( - final String id, - final String displayName, - final List<IJSFResourceFragment> noResultValue, - final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList, - final IJarLocator provider, - final ContentTypeResolver contentTypeResolver) - { - super(id, displayName, noResultValue, mutableListenerList); - _provider = provider; - _contentTypeResolver = contentTypeResolver; - } - - /** - * @param noResultValue - * @param mutableListenerList - * @param provider - * @param contentTypeResolver - */ - public JarBasedJSFResourceLocator( - final List<IJSFResourceFragment> noResultValue, - final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList, - final IJarLocator provider, - final ContentTypeResolver contentTypeResolver) - { - this( - "", "", noResultValue, mutableListenerList, provider, contentTypeResolver); //$NON-NLS-1$//$NON-NLS-2$ - } - - @Override - public void start(final IProject initialContext) - { - _provider.start(initialContext); - super.start(initialContext); - } - - @Override - public void stop() - { - _provider.stop(); - super.stop(); - } - - @Override - protected List<IJSFResourceFragment> doLocate(final IProject project) - { - final List<IJSFResourceFragment> resourcesFound = new ArrayList<IJSFResourceFragment>(); - final Collection<? extends ClasspathJarFile> jars = _provider - .getJars(project); - for (final ClasspathJarFile classpathJarFile : jars) - { - final JarFile jarFile = classpathJarFile.getJarFile(); - if (jarFile != null) - { - resourcesFound.addAll(processJar(jarFile)); - } - } - return resourcesFound; - } - - /** - * @param entry - * @param defaultDtdStream - * @throws Exception - */ - private List<JSFResource> processJar(final JarFile jarFile) - { - final List<JSFResource> tagLibsFound = new ArrayList<JSFResource>(); - try - { - if (jarFile != null) - { - final JarEntryMatchingAcceptor acceptor = new JarEntryMatchingAcceptor(); - final VisitorMatcher<JarFile, JarEntry, String> matcher = new VisitorMatcher<JarFile, JarEntry, String>( - "", "", acceptor, Collections.singletonList(_resourceFinder)); //$NON-NLS-1$//$NON-NLS-2$ - final Collection<? extends JarEntry> matchingEntries = matcher - .find(jarFile); - for (final JarEntry jarEntry : matchingEntries) - { - try - { - final Matcher patternMatcher = _resourcePathPattern - .matcher(jarEntry.getName()); - if (patternMatcher.matches()) - { - final String group = patternMatcher.group(1); - if (group != null && group.trim().length() > 0) - { - final ResourceIdentifier libRes = new ResourceIdentifierFactory() - .createLibraryResource(group); - final URL jarUrl = JarUtilities.INSTANCE - .createJarUrl(jarFile); - tagLibsFound.add(new JarBasedJSFResource( - libRes, jarUrl, _contentTypeResolver)); - } - } - } catch (final InvalidIdentifierException e) - { - JSFCorePlugin.log(IStatus.INFO, "Ignoring invalid id: "+e.getId()); //$NON-NLS-1$ - } - catch (final Exception e) - { - JSFCorePlugin.log( - "Error initializing facelet registry entry", //$NON-NLS-1$ - e); - } - } - } - } catch (final Exception e) - { - JSFCorePlugin.log(e, - "While locating jar based facelet tag libraries"); //$NON-NLS-1$ - } finally - { - if (jarFile != null) - { - try - { - jarFile.close(); - } catch (final IOException ioe) - { - JSFCorePlugin.log("Error closing jar file", ioe); //$NON-NLS-1$ - } - } - } - return tagLibsFound; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java deleted file mode 100644 index 744f0b1b6..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceFragmentIdentifier.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; - -/** - * A fragment identifier for a library folder. - * - * @author cbateman - * - */ -public class LibraryResourceFragmentIdentifier extends - ResourceFragmentIdentifier -{ - private final String _libraryName; - - /** - * @param libraryName - */ - public LibraryResourceFragmentIdentifier(final String libraryName) - { - super(); - _libraryName = libraryName; - } - - @Override - public String getLibraryName() - { - return _libraryName; - } - @Override - public IStatus validate() - { - return Status.OK_STATUS; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java deleted file mode 100644 index 8d782731d..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/LibraryResourceIdentifier.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -/** - * A resource identifier for a library. - * @author cbateman - * - */ -public class LibraryResourceIdentifier extends ResourceIdentifier -{ - private final String _libraryName; - - /** - * @param resName - * @param libraryName - */ - public LibraryResourceIdentifier(final String resName, final String libraryName) - { - super(resName); - _libraryName = libraryName; - } - - @Override - public String getLibraryName() - { - return _libraryName; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java deleted file mode 100644 index d08cae68a..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/Messages.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.osgi.util.NLS; - -/** - * NLS for resource identifier messages. - * @author cbateman - * - */ -public class Messages extends NLS -{ - private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.designtime.internal.resources.messages"; //$NON-NLS-1$ - /** - * see messages.properties - */ - public static String ResourceIdentifier_0; - static - { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, Messages.class); - } - - private Messages() - { - // no external instantiation - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java deleted file mode 100644 index db87d34d5..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceFragmentIdentifier.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.runtime.IStatus; - -/** - * Represents a piece of a resource identifier. - * - * [localePrefix/][libraryName/][libraryVersion/][resourceName][/resourceVersion] - * - * @author cbateman - * - */ -public abstract class ResourceFragmentIdentifier -{ - - /** - * @return true if validate().isOk - */ - public boolean isValid() - { - return validate().isOK(); - } - - /** - * @return a validation status for the current value of this identifier - */ - public abstract IStatus validate(); - - /** - * @return the resource name or null if none. - */ - public String getResourceName() - { - return null; - } - - /** - * @return the locale prefix or null if none. - */ - public String getLocalePrefix() - { - return null; - } - - /** - * @return the library name or null if none. - */ - public String getLibraryName() - { - return null; - } - - /** - * @return the library version or null if none. - */ - public String getLibraryVersion() - { - return null; - } - - /** - * @return the resource version or null if none. - */ - public String getResourceVersion() - { - return null; - } - - @Override - public boolean equals(Object obj) - { - if (super.equals(obj)) - { - return true; - } - - if (obj instanceof ResourceIdentifier) - { - String meToString = toString(); - String otherToString = obj.toString(); - return meToString != null && meToString.equals(otherToString); - } - return false; - } - - @Override - public int hashCode() - { - String toString = toString(); - return toString != null ? toString.hashCode() : 0; - } - - - @Override - public String toString() - { - String toString = ""; //$NON-NLS-1$ - - toString = append(toString, getLocalePrefix()); - toString = append(toString, getLibraryName()); - toString = append(toString, getLibraryVersion()); - toString = append(toString, getResourceName()); - toString = append(toString, getResourceVersion()); - return toString; - } - - /** - * @param appendStr - * @param toAppend - * @return a string with to toAppend appended to appendStr if it is not null. - * If appendStr is not append, a '/' is added between the two concatenated strings. - */ - protected String append(String appendStr, final String toAppend) - { - if (toAppend != null) - { - if (appendStr.length() > 0) - { - appendStr += "/"; //$NON-NLS-1$ - } - appendStr += toAppend; - } - return appendStr; - } - /** - * @return true if this identifier represents only a fragment of an identifier. - */ - public boolean isFragment() - { - return true; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java deleted file mode 100644 index 19f86efa9..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifier.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; - -/** - * Encapsulates the concept of a JSF (2.0+) resource identifier per 2.6.1 of the - * specification. The class does not ensure validity of the identifier. - * - * You can call validate to determine if the contents are correct. - * - * @author cbateman - * - */ -public class ResourceIdentifier extends ResourceFragmentIdentifier -{ - /** - * Resource name is not optional on identifiers. - */ - public static final int RESOURCE_NAME_MUST_NOT_BE_EMPTY = 0; - /** - * The namespace for validation diagnositics created by validate. - */ - public static final String ResourceIdentifierValidationNamespace = JSFCorePlugin.PLUGIN_ID - + "_JSFResourceIdentifier"; //$NON-NLS-1$ - private final String _resName; - - /** - * @param resName - */ - public ResourceIdentifier(String resName) - { - super(); - _resName = resName; - } - - /** - * Allow fragments to be - */ - protected ResourceIdentifier() - { - super(); - _resName = null; - } - /** - * @return the resource name or null if none. - */ - @Override - public String getResourceName() - { - return _resName; - } - - /** - * @return a status object multi-value that contains the results of - * validating this resoure identifier. - */ - @Override - public IStatus validate() - { - final String id = ResourceIdentifierValidationNamespace; - final MultiStatus status = new MultiStatus(id, 0, - "Resource identifier problems", null); //$NON-NLS-1$ - - if (getResourceName() == null) - { - status.add(new Status(IStatus.ERROR, id, - RESOURCE_NAME_MUST_NOT_BE_EMPTY, - Messages.ResourceIdentifier_0, null)); - } - - return status; - } - - @Override - public String toString() - { - if (!validate().isOK()) - { - throw new IllegalStateException(); - } - String idString = getResourceName(); - if (getResourceVersion() != null) - { - idString = String.format("%s/%s", getResourceVersion(), idString); //$NON-NLS-1$ - } - if (getLibraryName() != null) - { - idString = String.format("%s/%s", getLibraryName(), idString); //$NON-NLS-1$ - } - - if (getLocalePrefix() != null) - { - idString = String.format("%s/%s", getLocalePrefix(), idString); //$NON-NLS-1$ - } - - if (getResourceVersion() != null) - { - idString += "/" + getResourceVersion(); //$NON-NLS-1$ - } - return idString; - } - - @Override - public final boolean isFragment() - { - return false; - } - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java deleted file mode 100644 index 004083b2c..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/ResourceIdentifierFactory.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.util.regex.Pattern; - -/** - * Creates a resource identifier from a string. Because id strings are ambiguous, - * the caller must used specific methods to resolve the ambiguity. - * - * @author cbateman - * - */ -public class ResourceIdentifierFactory -{ - /** - * The regular expression for version matching - */ - public static final String VersionRegex = "[0-9]+(_[0-9]+)*"; //$NON-NLS-1$ - /** - * A precompiled regex pattern for matching resource version. - */ - public static final Pattern VersionPattern = Pattern.compile(VersionRegex); - - /** - * @param idString - * @return a LibraryResourceIdentifier based on the string. The call - * assumes that the identifier contains a library name. If the idString - * can't be resolved for correctness, InvalidIdentifierException will be thrown. - * @throws InvalidIdentifierException - */ - public ResourceIdentifier createLibraryResource(final String idString) throws InvalidIdentifierException - { - final String[] parts = idString.split("/"); //$NON-NLS-1$ - String resName = null; - String libraryName = null; - switch(parts.length) - { - case 1: - // The whole string is the resource name. There is no library name. - resName = parts[0]; - break; - case 2: - // the first part is the libraryName and the second is the res name - // TODO: this is ambiguous with locale/resourceName - resName = parts[1]; - libraryName = parts[0]; - break; - case 3: - // is it of form libraryName/libraryVersion/resourceName? - if (VersionPattern.matcher(parts[1]).matches()) - { - resName = parts[2]; - libraryName = parts[0]; - break; - } - // if no, then this is invalid - throw new InvalidIdentifierException(idString); - case 4: - // is it of the form locale/libraryName/libraryVersion/resourceName - if (VersionPattern.matcher(parts[2]).matches()) - { - resName = parts[3]; - libraryName = parts[1]; - break; - } - // no? then is it libraryName/libraryVersion/resourceName/resourceVersion - else if (VersionPattern.matcher(parts[1]).matches()) - { - resName = parts[2]; - libraryName = parts[0]; - break; - } - // no? then assume it is locale/libraryName/resourceName/resourceVersion - else - { - resName = parts[2]; - libraryName = parts[1]; - break; - } - case 5: - // this is the full one: locale/libraryName/libraryVersion/resourceName/resourceVersion - resName = parts[3]; - libraryName = parts[1]; - break; - } - - if (resName == null) - { - throw new InvalidIdentifierException(idString); - } - - return new LibraryResourceIdentifier(resName, libraryName); - } - - /** - * @param libraryName - * @return a new resource fragment identifier for a library folder. - */ - public ResourceFragmentIdentifier createLibraryFragment(final String libraryName) - { - return new LibraryResourceFragmentIdentifier(libraryName); - } - - /** - * Indicates an invalid id. - * - * @author cbateman - * - */ - public static class InvalidIdentifierException extends Exception - { - - private final String _id; - - /** - * @param id - */ - public InvalidIdentifierException(final String id) - { - super(); - _id = id; - } - - /** - * @param message - * @param cause - * @param id - */ - public InvalidIdentifierException(final String message, final Throwable cause, final String id) - { - super(message, cause); - _id = id; - } - - /** - * @param message - * @param id - */ - public InvalidIdentifierException(final String message, final String id) - { - super(message); - _id = id; - } - - /** - * @param cause - * @param id - */ - public InvalidIdentifierException(final Throwable cause, final String id) - { - super(cause); - _id = id; - } - - /** - * @return the id that was found to be invalid. - */ - public final String getId() - { - return _id; - } - - /** - * - */ - private static final long serialVersionUID = -8926293207447823901L; - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java deleted file mode 100644 index c0d48e838..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResource.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.resources.IResource; -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; - -/** - * A JSF resource that corresponds to an object in the workspace. - * @author cbateman - * - */ -public class WorkspaceJSFResource extends JSFResource implements IWorkspaceJSFResourceFragment -{ - private final IResource _res; - - /** - * @param id - * @param res - * @param contentTypeResolver - */ - public WorkspaceJSFResource(final ResourceIdentifier id, final IResource res, final ContentTypeResolver contentTypeResolver) - { - super(id, contentTypeResolver); - _res = res; - } - - public final IResource getResource() - { - return _res; - } - - - public final boolean isAccessible() - { - return _res.isAccessible(); - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java deleted file mode 100644 index aa9be8422..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceContainer.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import org.eclipse.core.resources.IContainer; - -/** - * A concrete JSFResourceContainer that maps to a container object in the - * workspace. - * - * @author cbateman - * - */ -public class WorkspaceJSFResourceContainer extends JSFResourceContainer implements IWorkspaceJSFResourceFragment -{ - - private final IContainer _container; - - /** - * @param id - * @param container - */ - public WorkspaceJSFResourceContainer(final ResourceFragmentIdentifier id, - final IContainer container) - { - super(id); - _container = container; - } - - @Override - public boolean isAccessible() - { - return _container.isAccessible(); - } - - /** - * @return the container resource - */ - public IContainer getResource() - { - return _container; - } - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java deleted file mode 100644 index 425e9e92a..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceJSFResourceLocator.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery; -import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener; -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; - -/** - * @author cbateman - * - */ -public class WorkspaceJSFResourceLocator extends AbstractJSFResourceLocator -{ - private final AbstractVirtualComponentQuery _vcQuery; - private final ContentTypeResolver _contentTypeResolver; - private WorkspaceResourceManager _workspaceResourceManager; - - /** - * @param id - * @param displayName - * @param noResultValue - * @param mutableListenerList - * @param vcQuery - * @param contentTypeResolver - * @param workspace - */ - public WorkspaceJSFResourceLocator( - final String id, - final String displayName, - final List<IJSFResourceFragment> noResultValue, - final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList, - final AbstractVirtualComponentQuery vcQuery, - final ContentTypeResolver contentTypeResolver, - final IWorkspace workspace) - { - super(id, displayName, noResultValue, mutableListenerList); - _vcQuery = vcQuery; - _contentTypeResolver = contentTypeResolver; - } - - /** - * @param noResultValue - * @param mutableListenerList - * @param vcQuery - * @param contentTypeResolver - * @param workspace - */ - public WorkspaceJSFResourceLocator( - final List<IJSFResourceFragment> noResultValue, - final CopyOnWriteArrayList<ILocatorChangeListener> mutableListenerList, - final AbstractVirtualComponentQuery vcQuery, - final ContentTypeResolver contentTypeResolver, - final IWorkspace workspace) - { - this( - "", "", noResultValue, mutableListenerList, vcQuery, contentTypeResolver, workspace); //$NON-NLS-1$//$NON-NLS-2$ - } - - @Override - public void start(final IProject initialContext) - { - _workspaceResourceManager = new WorkspaceResourceManager( - initialContext, _vcQuery, this, _contentTypeResolver); - _workspaceResourceManager.initResources(); - super.start(initialContext); - } - - @Override - protected List<IJSFResourceFragment> doLocate(final IProject project) - { - return _workspaceResourceManager.getJSFResources(); - } - -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java deleted file mode 100644 index ac9127625..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/WorkspaceResourceManager.java +++ /dev/null @@ -1,406 +0,0 @@ -package org.eclipse.jst.jsf.designtime.internal.resources; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.jst.jsf.common.internal.componentcore.AbstractVirtualComponentQuery; -import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.AlwaysMatcher; -import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher; -import org.eclipse.jst.jsf.common.internal.finder.acceptor.FileMatchingAcceptor; -import org.eclipse.jst.jsf.common.internal.resource.ContentTypeResolver; -import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent; -import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.ReasonType; -import org.eclipse.jst.jsf.common.internal.resource.ResourceManager; -import org.eclipse.jst.jsf.common.internal.resource.ResourceTracker; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; -import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent; -import org.eclipse.jst.jsf.designtime.internal.resources.JSFResourceChangeListener.JSFResourceChangedEvent.CHANGE_TYPE; -import org.eclipse.jst.jsf.designtime.internal.resources.ResourceIdentifierFactory.InvalidIdentifierException; -import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; - -/** - * Resource Manager that tracks JSF resources in a workspace. - * - * @author cbateman - * - */ -public class WorkspaceResourceManager extends ResourceManager<IResource> -{ - private final AbstractVirtualComponentQuery _vcQuery; - private final IProject _project; - private final AbstractJSFResourceLocator _locator; - private final ContentTypeResolver _contentTypeResolver; - private final ResourceIdentifierFactory _factory; - - /** - * @param project - * @param vcQuery - * @param locator - * @param contentTypeResolver - */ - public WorkspaceResourceManager(final IProject project, - final AbstractVirtualComponentQuery vcQuery, - final AbstractJSFResourceLocator locator, - final ContentTypeResolver contentTypeResolver) - { - super(project.getWorkspace()); - _project = project; - _vcQuery = vcQuery; - _locator = locator; - _contentTypeResolver = contentTypeResolver; - _factory = new ResourceIdentifierFactory(); - } - - @Override - protected JSFResourceTracker createNewInstance(final IResource resource) - { - final boolean isJSFResource = !getRootResourceFolder().getParent() - .equals(resource); - return new JSFResourceTracker(resource, isJSFResource); - } - - @Override - public void initResources() - { - final IFolder folder = getRootResourceFolder(); - if (folder != null) - { - try - { - track(folder.getParent()); - track(folder); - } catch (final Exception e1) - { - JSFCorePlugin - .log(e1, - "While trying to locate JSF resources in the workspace"); //$NON-NLS-1$ - } - if (folder.isAccessible()) - { - trackAllInFolder(folder); - } - } - } - - private List<IWorkspaceJSFResourceFragment> trackAllInFolder( - final IContainer folder) - { - final VisitorMatcher<IContainer, IResource, String> matcher = new VisitorMatcher<IContainer, IResource, String>( - "", "", //$NON-NLS-1$ //$NON-NLS-2$ - new FileMatchingAcceptor(), - Collections.singletonList(new AlwaysMatcher())); - final List<IWorkspaceJSFResourceFragment> newFragments = new ArrayList<IWorkspaceJSFResourceFragment>(); - try - { - final Collection<? extends IResource> foundResources = matcher - .find(folder); - for (final IResource res : foundResources) - { - try - { - newFragments.add(track(res)); - } catch (final InvalidIdentifierException e) - { - JSFCorePlugin.log(IStatus.INFO, - "Ignoring invalid JSF resource: "+res); //$NON-NLS-1$ - } - catch (final ManagedObjectException e) - { - JSFCorePlugin.log(e, - "Problem adding managed object for resource: "+res); //$NON-NLS-1$ - } - } - } catch (final Exception e) - { - JSFCorePlugin.log(e, - "While trying to locate JSF resources in the workspace"); //$NON-NLS-1$ - } - return newFragments; - } - - private IWorkspaceJSFResourceFragment track(final IResource res) - throws ManagedObjectException, InvalidIdentifierException - { - final IPath fullPath = res.getFullPath().makeRelativeTo( - getRootResourceFolder().getFullPath()); - // cause the resource to get tracked - final JSFResourceTracker tracker = (JSFResourceTracker) getInstance(res); - IWorkspaceJSFResourceFragment jsfRes = null; - if (res.getType() == IResource.FILE) - { - try - { - jsfRes = new WorkspaceJSFResource( - _factory.createLibraryResource(fullPath.toString()), res, - _contentTypeResolver); - } - catch (InvalidIdentifierException e) - { - // ensure that the tracker gets released before we throw the exception. - unmanageResource(res); - tracker.dispose(); - throw e; - } - } else - { - jsfRes = new WorkspaceJSFResourceContainer( - _factory.createLibraryFragment(fullPath.toString()), - (IContainer) res); - } - tracker.setJsfResource(jsfRes); - addLifecycleEventListener(tracker); - return jsfRes; - } - - /** - * @return the root folder for resources in the workspace. - */ - public IFolder getRootResourceFolder() - { - final IVirtualFolder webContentFolder = _vcQuery - .getWebContentFolder(_project); - if (webContentFolder != null - && webContentFolder.getUnderlyingFolder().isAccessible()) - { - return webContentFolder.getUnderlyingFolder().getFolder( - new Path("resources")); //$NON-NLS-1$ - } - return null; - } - - @Override - public List<IResource> getResources() - { - return new ArrayList(getManagedResources()); - } - - /** - * @return the jsf resource currently known. List is a copy but the - * contained JSFResource references are not. - */ - public List<IJSFResourceFragment> getJSFResources() - { - final List<IJSFResourceFragment> jsfResources = new ArrayList<IJSFResourceFragment>(); - final Map<IResource, ManagedResourceObject<ResourceTracker<IResource>>> jsfResourceTrackers = getPerResourceObjects(); - for (final Map.Entry<IResource, ManagedResourceObject<ResourceTracker<IResource>>> entry : jsfResourceTrackers - .entrySet()) - { - final JSFResourceTracker jsfResourceTracker = (JSFResourceTracker) entry - .getValue().getManagedObject(); - if (jsfResourceTracker.isJSFResource()) - { - jsfResources.add(jsfResourceTracker.getJsfResource()); - } - } - return jsfResources; - } - - private class JSFResourceTracker extends ResourceTracker<IResource> - { - private IWorkspaceJSFResourceFragment _jsfResource; - private final boolean _isJSFResource; - - /** - * @param resource - * @param isJSFResource - * if false, indicates that the resource being tracked is - * related to JSF resources but not an actual JSF resource - * (i.e. web root). - */ - public JSFResourceTracker(final IResource resource, - final boolean isJSFResource) - { - super(resource); - _isJSFResource = isJSFResource; - } - - public boolean isJSFResource() - { - return _isJSFResource; - } - - @Override - protected void fireResourceInAccessible( - final IResource affectedResource, final ReasonType reasonType) - { - if (reasonType == ReasonType.RESOURCE_DELETED_FROM_CONTAINER - || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER) - { - try - { - final List<JSFResourceTracker> trackers = getTrackers(affectedResource); - for (final JSFResourceTracker tracker : trackers) - { - final IWorkspaceJSFResourceFragment jsfResource = tracker - .getJsfResource(); - removeLifecycleEventListener(tracker); - _locator.fireChangeEvent(new JSFResourceChangedEvent( - _locator, jsfResource, null, - CHANGE_TYPE.REMOVED)); - } - } catch (final ManagedObjectException e) - { - JSFCorePlugin.log(e, - "Processing an inaccessible resource event"); //$NON-NLS-1$ - } - } - } - - private List<JSFResourceTracker> getTrackers(final IResource res) - throws ManagedObjectException - { - final JSFResourceTracker tracker = (JSFResourceTracker) getInstance(res); - final List<JSFResourceTracker> allChildren = new ArrayList<JSFResourceTracker>(); - allChildren.add(tracker); - if (res instanceof IContainer) - { - final IPath parentPath = res.getFullPath(); - for (final Entry<IResource, ManagedResourceObject<ResourceTracker<IResource>>> trackerEntry : getPerResourceObjects() - .entrySet()) - { - final IPath trackerPath = trackerEntry.getKey() - .getFullPath(); - if (parentPath.isPrefixOf(trackerPath) - && !parentPath.equals(trackerPath)) - { - allChildren.add((JSFResourceTracker) trackerEntry - .getValue().getManagedObject()); - } - } - } - return allChildren; - } - - @Override - protected void fireResourceChanged(final IResource affectedResource, - final ReasonType reasonType) - { - _locator.fireChangeEvent(new JSFResourceChangedEvent(_locator, - _jsfResource, _jsfResource, CHANGE_TYPE.CHANGED)); - } - - @Override - protected void fireResourceAdded(final IResource affectedResource, - final ReasonType reasonType) - { - if (reasonType == ReasonType.RESOURCE_ADDED_TO_CONTAINER - || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER) - { - final IContainer parent = affectedResource.getParent(); - if (parent != null && parent.isAccessible()) - { - try - { - final IWorkspaceJSFResourceFragment newJsfRes = track(affectedResource); - fireNewJSFResourceEvent(newJsfRes); - if (reasonType == ReasonType.RESOURCE_MOVED_CONTAINER - && affectedResource instanceof IContainer) - { - final List<IWorkspaceJSFResourceFragment> newFragments = trackAllInFolder((IContainer) affectedResource); - for (final IWorkspaceJSFResourceFragment frag : newFragments) - { - fireNewJSFResourceEvent(frag); - } - } - } catch (final ManagedObjectException e) - { - JSFCorePlugin - .log(e, - "While adding new resource " + affectedResource); //$NON-NLS-1$ - } catch (final InvalidIdentifierException e) - { - JSFCorePlugin - .log(IStatus.INFO, - "While adding new resource " + affectedResource); //$NON-NLS-1$ - } - } - } - } - - private void fireNewJSFResourceEvent( - final IWorkspaceJSFResourceFragment newJsfRes) - { - final JSFResourceChangedEvent event = new JSFResourceChangedEvent( - _locator, null, newJsfRes, CHANGE_TYPE.ADDED); - _locator.fireChangeEvent(event); - } - - @Override - protected boolean isInteresting(final ResourceLifecycleEvent event) - { - boolean isInteresting = false; - final ReasonType reasonType = event.getReasonType(); - switch (event.getEventType()) - { - case RESOURCE_ADDED: - { - final IResource resource = getResource(); - isInteresting = (reasonType == ReasonType.RESOURCE_ADDED_TO_CONTAINER || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER) - && event.getAffectedResource().getParent() - .equals(resource); - // ignore if my resource is web content and this is trying - // to add something other than resources folder - if (resource.equals(_vcQuery.getWebContentFolder(_project) - .getUnderlyingFolder())) - { - isInteresting &= event.getAffectedResource().equals( - getRootResourceFolder()); - } - } - break; - case RESOURCE_INACCESSIBLE: - { - final IResource resource = getResource(); - // if the resource made inaccessible was deleted or moved - // from its container - // and it's parent is me, then it is interesting. - isInteresting = (reasonType == ReasonType.RESOURCE_DELETED_FROM_CONTAINER || reasonType == ReasonType.RESOURCE_MOVED_CONTAINER) - && event.getAffectedResource().getParent() - .equals(resource); - // ignore if my resource is web content and this is trying - // to add something other than resources folder - if (resource.equals(_vcQuery.getWebContentFolder(_project) - .getUnderlyingFolder())) - { - isInteresting &= event.getAffectedResource().equals( - getRootResourceFolder()); - } -// isInteresting &= (_isJSFResource || (resource.getType() == IResource.FOLDER && "resources".equals(resource.getName()))); //$NON-NLS-1$ - // or if the resource being delted or moved is the root - // folder and that is my resource. - // isInteresting |= (reasonType == - // ReasonType.RESOURCE_DELETED || reasonType == - // ReasonType.RESOURCE_MOVED_CONTAINER) - // && (resource.equals(event.getAffectedResource()) && - // resource.equals(getRootResourceFolder())); - } - break; - default: - isInteresting = super.isInteresting(event); - } - return isInteresting; - } - - public final IWorkspaceJSFResourceFragment getJsfResource() - { - return _jsfResource; - } - - public final void setJsfResource( - final IWorkspaceJSFResourceFragment jsfResource) - { - _jsfResource = jsfResource; - } - } -} diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties deleted file mode 100644 index 093c3b94c..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resources/messages.properties +++ /dev/null @@ -1 +0,0 @@ -ResourceIdentifier_0=Resource name must not be empty |