Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JSFResourceBasedTagRecord.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JSFResourceBasedTagRecord.java341
1 files changed, 0 insertions, 341 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JSFResourceBasedTagRecord.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JSFResourceBasedTagRecord.java
deleted file mode 100644
index 02f6fe857..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JSFResourceBasedTagRecord.java
+++ /dev/null
@@ -1,341 +0,0 @@
-package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.jsf.designtime.internal.resources.IJSFResource;
-import org.eclipse.jst.jsf.designtime.internal.resources.IJSFResourceContainer;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.Listener.TaglibChangedEvent;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.Listener.TaglibChangedEvent.CHANGE_TYPE;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
-
-/**
- * A facelet tag record is derived from a JSF locatable resource (ezcomp).
- *
- * @author cbateman
- *
- */
-public class JSFResourceBasedTagRecord extends FaceletTagRecord
-{
- private final List<FaceletTaglibTag> _tags;
- private final String _uri;
-
- /**
- * @param uri
- * @param tags
- */
- public JSFResourceBasedTagRecord(final String uri,
- final List<FaceletTaglibTag> tags)
- {
- _uri = uri;
- _tags = tags;
- }
-
- /**
- *
- */
- private static final long serialVersionUID = 5944923828112777373L;
-
- public int getNumTags()
- {
- return _tags.size();
- }
-
- @Override
- public String getURI()
- {
- return _uri;
- }
-
- @Override
- public FaceletTaglibTag getTag(final String name)
- {
- for (final FaceletTaglibTag tag : _tags)
- {
- if (tag.getTagName().equals(name))
- {
- return tag;
- }
- }
- return null;
- }
-
- @Override
- public Collection<? extends FaceletTaglibTag> getTags()
- {
- return Collections.unmodifiableCollection(_tags);
- }
-
- /**
- * Merge my tags with 'withThese'. Tags in my list will be replaced with
- * those in 'withThese' if their names match.
- *
- * @param withThese
- */
- /* package */JSFResourceBasedTagRecord mergeTags(
- final List<FaceletTaglibTag> withThese)
- {
- final List<FaceletTaglibTag> tags = new ArrayList<FaceletTaglibTag>(
- _tags);
- for (final FaceletTaglibTag mergeTag : withThese)
- {
- final FaceletTaglibTag tag = getTag(mergeTag.getTagName());
- if (tag != null)
- {
- tags.remove(tag);
- }
- tags.add(mergeTag);
- }
- return new JSFResourceBasedTagRecord(_uri, tags);
- }
-
- /* package */JSFResourceBasedTagRecord removeTags(
- final List<FaceletTaglibTag> removeThese)
- {
- final List<FaceletTaglibTag> tags = new ArrayList<FaceletTaglibTag>(
- _tags);
- for (final FaceletTaglibTag mergeTag : removeThese)
- {
- final FaceletTaglibTag tag = getTag(mergeTag.getTagName());
- if (tag != null)
- {
- tags.remove(tag);
- }
- }
- return new JSFResourceBasedTagRecord(_uri, tags);
- }
-
- /**
- * A builder for tag record.
- *
- * @author cbateman
- *
- */
- public static class Builder
- {
- private static final List<FaceletTaglibTag> WHOLE_LIBRARY = new ArrayList<FaceletTaglibTag>(
- 0);
- private final Map<String, List<FaceletTaglibTag>> _tags = new HashMap<String, List<FaceletTaglibTag>>();
- private static final String FACELET_FILE_CONTENT_TYPE = "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$
-
- /**
- * @param jsfResource
- * @param changeType
- */
- public void addTag(final IJSFResource jsfResource,
- final CHANGE_TYPE changeType)
- {
- final String libraryName = jsfResource.getId().getLibraryName();
- if (libraryName == null)
- {
- return;
- }
- final String uri = String.format(
- "http://java.sun.com/jsf/composite/%s", libraryName); //$NON-NLS-1$
- List<FaceletTaglibTag> tags = _tags.get(uri);
- if (tags == null)
- {
- tags = new ArrayList<FaceletTaglibTag>();
- _tags.put(uri, tags);
- }
- final String resourceName = jsfResource.getId().getResourceName();
- final IPath resourceNamePath = new Path(resourceName)
- .removeFileExtension();
- final FaceletTaglibTag tag = FaceletTaglibFactory.eINSTANCE
- .createFaceletTaglibTag();
- tag.setTagName(resourceNamePath.toString());
-
- switch (changeType)
- {
- case ADDED:
- case CHANGED:
- // only add to the list on a add/change if the resource
- // exists
- // and is the right type
- if (jsfResource.isAccessible()
- && jsfResource
- .isContentType(FACELET_FILE_CONTENT_TYPE))
- {
- tags.add(tag);
- }
- break;
- case REMOVED:
- // add all comers to the remove list. There will only be
- // removal
- // on merge if ADDED/CHANGED path decided they should be
- // there.
- tags.add(tag);
- break;
- }
- }
-
- /**
- * @param jsfResource
- * @param changeType
- */
- public void addLibrary(final IJSFResourceContainer jsfResource,
- final CHANGE_TYPE changeType)
- {
- final String libraryName = jsfResource.getId().getLibraryName();
- if (libraryName == null)
- {
- return;
- }
- final String uri = String.format(
- "http://java.sun.com/jsf/composite/%s", libraryName); //$NON-NLS-1$
- if (changeType == CHANGE_TYPE.REMOVED)
- {
- _tags.put(uri, WHOLE_LIBRARY);
- } else
- {
- List<FaceletTaglibTag> tags = _tags.get(uri);
- if (tags == null)
- {
- tags = new ArrayList<FaceletTaglibTag>();
- _tags.put(uri, tags);
- }
- }
- }
-
- /**
- * @return the built list of tag records.
- */
- public Map<String, JSFResourceBasedTagRecord> build()
- {
- final Map<String, JSFResourceBasedTagRecord> records = new HashMap<String, JSFResourceBasedTagRecord>();
- for (final Map.Entry<String, List<FaceletTaglibTag>> entry : _tags
- .entrySet())
- {
- final JSFResourceBasedTagRecord newRecord = new JSFResourceBasedTagRecord(
- entry.getKey(), entry.getValue());
- records.put(entry.getKey(), newRecord);
- }
-
- return records;
- }
-
- /**
- * @param locator
- * @param records
- * @return a list of taglib change events that reflect what will happen
- * when my tags are merged into the map 'records'.
- */
- public List<TaglibChangedEvent> createMerge(
- final AbstractFaceletTaglibLocator locator,
- final Map<String, JSFResourceBasedTagRecord> records)
- {
- final Map<String, JSFResourceBasedTagRecord> newRecords = build();
- final List<TaglibChangedEvent> mergeEvents = new ArrayList<TaglibChangedEvent>();
- for (final Map.Entry<String, JSFResourceBasedTagRecord> entry : newRecords
- .entrySet())
- {
- TaglibChangedEvent event = null;
- if (!records.containsKey(entry.getKey()))
- {
- event = new TaglibChangedEvent(locator, null, entry
- .getValue(), CHANGE_TYPE.ADDED);
- } else
- {
- final JSFResourceBasedTagRecord oldRecord = records
- .get(entry.getKey());
- final JSFResourceBasedTagRecord newRecord = oldRecord
- .mergeTags(entry.getValue()._tags);
- event = new TaglibChangedEvent(locator, oldRecord,
- newRecord, CHANGE_TYPE.CHANGED);
- }
- mergeEvents.add(event);
- }
- return mergeEvents;
- }
-
- /**
- * @param locator
- * @param records
- * @return a list of change events that will result from removing my
- * _tags from records.
- */
- public List<TaglibChangedEvent> createRemove(
- final AbstractFaceletTaglibLocator locator,
- final Map<String, JSFResourceBasedTagRecord> records)
- {
- final Map<String, JSFResourceBasedTagRecord> newRecords = build();
- final List<TaglibChangedEvent> mergeEvents = new ArrayList<TaglibChangedEvent>();
- for (final Map.Entry<String, JSFResourceBasedTagRecord> entry : newRecords
- .entrySet())
- {
- TaglibChangedEvent event = null;
- final JSFResourceBasedTagRecord oldRecord = records
- .get(entry.getKey());
- if (oldRecord != null)
- {
- final List<FaceletTaglibTag> tags = entry.getValue()._tags;
- if (tags == WHOLE_LIBRARY)
- {
- event = new TaglibChangedEvent(locator, oldRecord,
- null, CHANGE_TYPE.REMOVED);
- } else
- {
- final JSFResourceBasedTagRecord newRecord = oldRecord
- .removeTags(entry.getValue()._tags);
- event = new TaglibChangedEvent(locator, oldRecord,
- newRecord, CHANGE_TYPE.CHANGED);
- }
- }
- if (event != null)
- {
- mergeEvents.add(event);
- }
- }
- return mergeEvents;
- }
-
- /**
- * @param events
- * @param withThese
- * @return a new merged map that contains withThese plus everything
- * here.
- */
- public Map<String, JSFResourceBasedTagRecord> merge(
- final List<TaglibChangedEvent> events,
- final Map<String, JSFResourceBasedTagRecord> withThese)
- {
- final Map<String, JSFResourceBasedTagRecord> newMap = new HashMap<String, JSFResourceBasedTagRecord>(
- withThese);
- for (final TaglibChangedEvent event : events)
- {
- switch (event.getChangeType())
- {
- case ADDED:
- case CHANGED:
- {
- final IFaceletTagRecord newRecord = event.getNewValue();
- // doubles as null check
- if (newRecord instanceof JSFResourceBasedTagRecord)
- {
- newMap.put(newRecord.getURI(),
- (JSFResourceBasedTagRecord) newRecord);
- }
- }
- break;
- case REMOVED:
- {
- final IFaceletTagRecord oldRecord = event.getOldValue();
- if (oldRecord != null)
- {
- newMap.remove(oldRecord.getURI());
- }
- }
- break;
- }
- }
- return newMap;
- }
- }
-}

Back to the top