Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDNamespace.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDNamespace.java314
1 files changed, 0 insertions, 314 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDNamespace.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDNamespace.java
deleted file mode 100644
index 043ffe7d5..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDNamespace.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagElement;
-import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.Namespace;
-import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.persistence.SerializableTLDNamespace;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-/**
- * Represents a JSP tag library namespace
- *
- * @author cbateman
- *
- */
-public class TLDNamespace extends Namespace
-{
- /**
- *
- */
- private static final long serialVersionUID = 9206460825737988441L;
- private TLDNamespaceData _tldData;
-
- /**
- * @param tldDoc
- * @param tagResolver
- */
- public TLDNamespace(
- final TLDDocument tldDoc,
- final ITagResolvingStrategy<TLDElementDeclaration, String> tagResolver)
- {
- _tldData = new DocumentTLDNamespaceData(tldDoc, tagResolver);
- }
-
- @Override
- public final String getDisplayName()
- {
- return _tldData.getDisplayName();
- }
-
- @Override
- public final String getNSUri()
- {
- return _tldData.getUri();
- }
-
- @Override
- public boolean isInitialized()
- {
- return _tldData.isInitialized();
- }
-
- public final ITagElement getViewElement(final String name)
- {
- // // bias the table small if this creates it
- // final Map<String, ITagElement> tags = getOrCreateMap(3);
- //
- // return _tldData.getOrCreateTagElement(name, tags);
- return _tldData.getViewElement(name);
- }
-
- @Override
- public final Collection<? extends ITagElement> getViewElements()
- {
- return Collections.unmodifiableCollection(_tldData.getAllViewElements().values());
- }
-
- /**
- * Differs from getViewElements because it won't include those elements
- * that haven't been lazily loaded.
- *
- * @return an unmodifiable map of all elements currently calculated for
- * this namespaces
- */
- public final Map<String, ITagElement> getCurrentElements()
- {
- return Collections.unmodifiableMap(_tldData.getCurrentElements());
- }
-
- @Override
- public final boolean hasViewElements()
- {
- return _tldData.getNumTags() > 0;
- }
-
-
- private Object writeReplace()
- {
- return new SerializableTLDNamespace(this);
- }
-
- private static class DocumentTLDNamespaceData extends TLDNamespaceData
- {
- /**
- *
- */
- private static final long serialVersionUID = -1098872687238068584L;
- private final transient TLDDocument _tldDoc;
- private final transient ITagResolvingStrategy<TLDElementDeclaration, String> _tagResolver;
- private final transient ILock _tagMapReadWriteLock;
- // should only be accessed directly in getOrCreateMap;
- private Map<String, ITagElement> _tags; // lazy init in initializeTags
-
- public DocumentTLDNamespaceData(
- final TLDDocument tldDoc,
- final ITagResolvingStrategy<TLDElementDeclaration, String> tagResolver)
- {
- _tldDoc = tldDoc;
- _tagResolver = tagResolver;
- _tagMapReadWriteLock = Job.getJobManager().newLock();
- }
-
- @Override
- public String getDisplayName()
- {
- String displayName = _tldDoc.getDisplayName();
- if (displayName == null || "".equals(displayName.trim())) //$NON-NLS-1$
- {
- displayName = getUri();
- }
- return displayName;
- }
-
- @Override
- public String getUri()
- {
- return _tldDoc.getUri();
- }
-
- @Override
- public int getNumTags()
- {
- return _tldDoc.getElements().getLength();
- }
-
- private ITagElement createTagElement(final String name)
- {
- CMNode cmNode = _tldDoc.getElements().getNamedItem(name);
- ITagElement tagElement = null;
- if (cmNode instanceof TLDElementDeclaration)
- {
- tagElement = _tagResolver
- .resolve((TLDElementDeclaration) cmNode);
-
- if (tagElement == _tagResolver.getNotFoundIndicator())
- {
- // the not-found indicator may not be null.
- tagElement = null;
- }
- }
- return tagElement;
- }
-
- public final Map<String, ITagElement> getAllViewElements()
- {
- final CMNamedNodeMap elementMap = _tldDoc.getElements();
- final Map<String, ITagElement> tags = getOrCreateMap(elementMap
- .getLength());
- if (!isInitialized())
- {
- // if we create the table with this call, bias the table size
- // to be 1 bigger than the number of tags, since we know if it's
- // smaller, it'll cause at least one buffer resize
-
-
- for (int i = 0; i < elementMap.getLength(); i++)
- {
- final CMNode cmNode = elementMap.item(i);
- getViewElement(cmNode.getNodeName());
- }
- }
- return tags;
- }
-
- public ITagElement getViewElement(final String name)
- {
- ITagElement tagElement = null;
-
- _tagMapReadWriteLock.acquire();
- final Map<String, ITagElement> tags = getOrCreateMap(_tldDoc.getElements().getLength());
- try
- {
- tagElement = tags.get(name);
-
- if (tagElement == null)
- {
- tagElement = createTagElement(name);
-
- if (tagElement != null)
- {
- tags.put(tagElement.getName(), tagElement);
- }
- }
- }
- finally
- {
- _tagMapReadWriteLock.release();
- }
-
- return tagElement;
- }
-
- /**
- * mapSizeHint will be used
- *
- * @param mapSizeHint
- * @return the map
- */
- private synchronized Map<String, ITagElement> getOrCreateMap(
- final int mapSizeHint)
- {
- if (_tags == null)
- {
- final float loadFactor = 0.75f;
- final int initSize = ((int) (mapSizeHint / loadFactor)) + 1;
- _tags = Collections
- .synchronizedMap(new HashMap<String, ITagElement>(
- initSize));
- }
- return _tags;
- }
-
- @Override
- public boolean isInitialized()
- {
- int numTags = getNumTags();
- int tagMapSize = getOrCreateMap(3).size();
-
- // we are only initialized if the tag map is the equal in size
- // to the number of tags in the tld.
- return numTags == tagMapSize;
- }
-
- @Override
- public Map<String, ITagElement> getCurrentElements()
- {
- return getOrCreateMap(3);
- }
- }
-
- /**
- * Encapsulates all the data for a TLDNamespace. Allows the model
- * to be separated from the Namespace interface for ease of serialization and
- * controlled subclassing.
- *
- */
- public abstract static class TLDNamespaceData implements Serializable
- {
- /**
- *
- */
- private static final long serialVersionUID = -1284294636936289804L;
-
- /**
- * @return the displayb
- */
- public abstract String getDisplayName();
-
-// public abstract ITagElement getOrCreateTagElement(String name,
-// Map<String, ITagElement> tags);
-
- /**
- * @return the number of tags
- */
- public abstract int getNumTags();
-
- /**
- * @return the namespace uri
- */
- public abstract String getUri();
-
- /**
- * @param name
- * @return the view element for name or null if not found.
- */
- public abstract ITagElement getViewElement(final String name);
-
- /**
- * May be long running since it will lazily calculate all unloaded
- * tags.
- * @return all view elements for this namespace
- */
- public abstract Map<String, ITagElement> getAllViewElements();
-
- /**
- * @return true if all elements have been lazily loaded
- */
- public abstract boolean isInitialized();
-
- /**
- * @return just the currently loaded elements for this namespace.
- */
- public abstract Map<String, ITagElement> getCurrentElements();
- }
-}

Back to the top