diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java deleted file mode 100644 index f202b1fa2..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle Corporation. - * 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: - * Cameron Bateman - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.facelet.core.internal.registry; - -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.resources.IProject; -import org.eclipse.emf.common.util.EList; -import org.eclipse.jst.jsf.common.dom.TagIdentifier; -import org.eclipse.jst.jsf.common.runtime.internal.model.component.ComponentTypeInfo; -import org.eclipse.jst.jsf.common.runtime.internal.model.decorator.ConverterTypeInfo; -import org.eclipse.jst.jsf.common.runtime.internal.model.decorator.ValidatorTypeInfo; -import org.eclipse.jst.jsf.common.runtime.internal.model.types.TypeInfo; -import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.IHandlerTagElement.TagHandlerType; -import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagElement; -import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; -import org.eclipse.jst.jsf.designtime.internal.Messages; -import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader; -import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataMapper; -import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.TagMapping; -import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.TagToViewObjectMapping; -import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.AbstractTagResolvingStrategy; -import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.DefaultTagTypeInfo; -import org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory; -import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute; -import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.ComponentTag; -import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.ConverterTag; -import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.HandlerTag; -import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.NoArchetypeFaceletTag; -import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.ValidatorTag; -import org.osgi.framework.Version; - -/** - * Resolves facelet tags from JSF framework metadata. - * - * @author cbateman - * - */ -public class FaceletMetaResolvingStrategy - extends - AbstractTagResolvingStrategy<IFaceletTagResolvingStrategy.TLDWrapper, String> - implements IFaceletTagResolvingStrategy -{ - - /** - * strategy id - */ - public final static String ID = "org.eclipse.jst.jsf.facelet.metadata.FaceletMetaResolvingStrategy"; //$NON-NLS-1$ - /** - * displayable nameb - */ - public final static String DISPLAY_NAME = Messages.DefaultJSPTagResolver_DisplayName; - - private final ViewMetadataLoader _loader; - private final ViewMetadataMapper _mapper; - private final FaceletDocumentFactory _factory; - - /** - * @param project - * @param factory - */ - public FaceletMetaResolvingStrategy(final IProject project, - final FaceletDocumentFactory factory) - { - _factory = factory; - _loader = new ViewMetadataLoader(project); - _mapper = new ViewMetadataMapper(); - } - - @Override - public ITagElement resolve( - final IFaceletTagResolvingStrategy.TLDWrapper elementDecl) - { - final String uri = elementDecl.getUri(); - final String tagName = elementDecl.getTagDefn().getTagName(); - final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper( - uri, tagName); - final TagMapping mapping = _loader.getTagToViewMapping(tagId); - - TypeInfo elementType = null; - if (mapping != null) - { - elementType = findTypeInfo(mapping, "1.1", null); //$NON-NLS-1$ - } - final List<FaceletTaglibTagAttribute> attributes = - elementDecl.getTagDefn().getAttribute(); - if (elementType instanceof ComponentTypeInfo) - { - return new ComponentTag(uri, tagName, - (ComponentTypeInfo) elementType, null, _factory, - new MetadataAttributeAdvisor(tagId, _loader, attributes)); - } - else if (elementType instanceof ConverterTypeInfo) - { - return new ConverterTag(uri, tagName, - (ConverterTypeInfo) elementType, null, _factory, - new MetadataAttributeAdvisor(tagId, _loader, attributes)); - } - else if (elementType instanceof ValidatorTypeInfo) - { - return new ValidatorTag(uri, tagName, - (ValidatorTypeInfo) elementType, null, _factory, - new MetadataAttributeAdvisor(tagId, _loader, attributes)); - } - else if (elementType instanceof TagHandlerType) - { - return new HandlerTag(uri, tagName, - (TagHandlerType) elementType, null, _factory, - new MetadataAttributeAdvisor( - tagId, _loader, attributes)); - } - else if (DefaultTagTypeInfo.isDefaultLib(tagId.getUri())) - { - return new NoArchetypeFaceletTag(uri, tagName, _factory, new MetadataAttributeAdvisor(tagId, _loader, attributes)); - } - - // not found - return null; - } - - private TypeInfo findTypeInfo(final TagMapping mapping, - final String jsfVersion, final String libVersion) - { - final EList list = mapping.getVersionedTagToViewMappings(); - - FIND_BY_VERSION: for (final Iterator<?> it = list.iterator(); it - .hasNext();) - { - Object obj = it.next(); - - if (obj instanceof TagToViewObjectMapping) - { - final TagToViewObjectMapping viewMapping = (TagToViewObjectMapping) obj; - - final String minJsfVersionString = viewMapping - .getMinJSFVersion(); - if (minJsfVersionString != null) - { - try - { - final Version version = new Version(jsfVersion); - final Version minVersion = Version - .parseVersion(minJsfVersionString); - - if (version.compareTo(minVersion) < 0) - { - // my version is less than the minimum specified - // by this meta-data - continue FIND_BY_VERSION; - } - } - catch (final IllegalArgumentException iae) - { - continue FIND_BY_VERSION; - } - } - final String minLibVersionString = viewMapping - .getMinLibraryVersion(); - if (libVersion != null && minLibVersionString != null) - { - try - { - final Version version = new Version(libVersion); - final Version minLibVersion = Version - .parseVersion(minLibVersionString); - - if (version.compareTo(minLibVersion) < 0) - { - // my lib version is less than the minimum specified - // by the meta-data - continue FIND_BY_VERSION; - } - } - catch (IllegalArgumentException iae) - { - continue FIND_BY_VERSION; - } - } - return _mapper.mapToFrameworkData(viewMapping.getTypeInfo()); - } - } - return null; - } - - @Override - public String getId() - { - return ID; - } - - public String getDisplayName() - { - return DISPLAY_NAME; - } - -} |