Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbateman2010-03-18 06:24:48 +0000
committercbateman2010-03-18 06:24:48 +0000
commit037f1243b0853a48714788a12ab4c3f7498dca6c (patch)
tree809c3aad652ae3ccf3e66ac9359619b9155ef608
parent26c1a6007bafd1907af48ff05b8efce9f3686bc1 (diff)
downloadwebtools.jsf-037f1243b0853a48714788a12ab4c3f7498dca6c.tar.gz
webtools.jsf-037f1243b0853a48714788a12ab4c3f7498dca6c.tar.xz
webtools.jsf-037f1243b0853a48714788a12ab4c3f7498dca6c.zip
[bug 301862] Change default severity of a missing variable to ignore.
[bug 305621] Add EMF model for JSF 2.0 taglib.xml and add support for getting attributes from these models to the content model. Fix issue where EL features don't work for tag defined variables. [bug 306319] WORKAROUND: comment out broken pagedesigntests test for h:commandButton.
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/AbstractTagAttribute.java25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagAttribute.java40
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagElement.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java8
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/webxml/WebXmlUtilsForJavaEE.java12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/MetadataContextResolver.java13
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/StructuredDocumentContextResolverFactory.java8
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/TaglibContextResolver.java3
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF7
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties2
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml1
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/schema/tagRegistryFactory.exsd106
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/AbstractTagRegistryFactoryProvider.java14
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/CompositeTagRegistryFactory.java120
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryInfo.java34
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryProvider.java16
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagLibraryRegistryLoader.java8
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryInfo.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryProviderLoader.java33
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contenttype/XMLDocumentElementAttributeContentDescriber.java184
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resolver/ViewBasedTaglibResolverFactory.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/DTComponentIntrospector.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/DefaultJSPTagResolver.java12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/IAttributeAdvisor.java14
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/MetadataAttributeAdvisor.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagAttribute.java60
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java39
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/ServletBeanProxyContributor.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/TagAnalyzer.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/ELValidationPreferences.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/.settings/org.eclipse.jdt.core.prefs13
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/META-INF/MANIFEST.MF14
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib-2_0.genmodel160
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib.xsd509
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.ecore4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.genmodel6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib_2_0.ecore877
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/javaee_5.xsd2099
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/namespace.ecore4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/AttributeCMAdapter.java15
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/CompositeTagInfo.java107
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ElementCMAdapter.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ExternalTagInfo.java16
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java46
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletTagInfo.java36
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/MetadataTagInfo.java105
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/NamespaceCMAdapter.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/TagInfo.java28
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/AbstractExternalMetadataStrategy.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/FaceletExternalMetadataStrategy.java138
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/IExternalMetadataStrategy.java7
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/InternalNamedNodeMap.java96
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/JSPExternalMetadataStrategy.java3
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/MDExternalMetadataStrategy.java83
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/Messages.java3
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/TagInfoStrategyComposite.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/messages.properties1
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletMetaResolvingStrategy.java27
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletTagResolvingStrategy.java18
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/IFaceletTagResolvingStrategy.java8
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/MetadataAttributeAdvisor.java24
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/VeryTemporaryDefaultFaceletResolver.java215
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/ContextParamSpecifiedFaceletTaglibLocator.java32
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagRecord.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/IFaceletTagRecord.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JarFileFaceletTaglibLocator.java37
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/LibraryClassBasedTagRecord.java720
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelLoader.java91
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelParser.java20
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagRecordFactory.java20
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord.java34
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord_Facelet10.java99
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Description.java42
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DisplayName.java44
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DocumentRoot.java114
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglib.java304
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibCanonicalName.java95
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFactory.java188
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFunction.java120
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibPackage.java3634
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTag.java323
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagAttribute.java303
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagBehavior.java109
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagBehaviorExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagComponent.java137
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagComponentExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagConverter.java109
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagConverterExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagValidator.java109
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibTagValidatorExtension.java82
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibVersion.java212
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FullyQualifiedClass.java36
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/GenericBoolean.java33
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/GenericBooleanBase.java287
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Icon.java215
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/IdentifiableLangStringValue.java84
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/IdentifiableStringValue.java96
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/JavaIdentifier.java33
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Path.java41
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/UserVisibleTaglibObject.java150
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/DescriptionImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/DisplayNameImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/DocumentRootImpl.java307
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibCanonicalNameImpl.java234
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibFactoryImpl.java505
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibFunctionImpl.java347
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibImpl.java694
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibPackageImpl.java2414
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagAttributeImpl.java671
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagBehaviorExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagBehaviorImpl.java317
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagComponentExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagComponentImpl.java391
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagConverterExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagConverterImpl.java317
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagImpl.java800
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagValidatorExtensionImpl.java237
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibTagValidatorImpl.java317
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FullyQualifiedClassImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/GenericBooleanImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/IconImpl.java399
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/IdentifiableLangStringValueImpl.java177
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/IdentifiableStringValueImpl.java234
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/JavaIdentifierImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/PathImpl.java45
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/UserVisibleTaglibObjectImpl.java284
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/Util.java86
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibAdapterFactory.java453
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibResourceFactoryImpl.java56
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibResourceImpl.java68
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibSwitch.java546
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibValidator.java698
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/util/FaceletTaglibXMLProcessor.java55
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/ComponentTagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/ComponentTagDefn.java)18
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/ConverterTagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/ConverterTagDefn.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletLibraryClassTagLib.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletLibraryClassTagLib.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletTaglibDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibDefn.java)6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletTaglibFactory.java128
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletTaglibPackage.java944
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletTaglib_1_0Factory.java128
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletTaglib_1_0Package.java944
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FaceletXMLDefnTaglib.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletXMLDefnTaglib.java)24
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/FunctionDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FunctionDefn.java)24
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/HandlerTagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/HandlerTagDefn.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/SourceTagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/SourceTagDefn.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/TagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/TagDefn.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/ValidatorTagDefn.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/ValidatorTagDefn.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/ComponentTagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/ComponentTagDefnImpl.java)37
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/ConverterTagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/ConverterTagDefnImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletLibraryClassTagLibImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletLibraryClassTagLibImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletTaglibDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletTaglibDefnImpl.java)12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletTaglibFactoryImpl.java228
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletTaglibPackageImpl.java557
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletTaglib_1_0FactoryImpl.java228
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletTaglib_1_0PackageImpl.java550
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FaceletXMLDefnTaglibImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FaceletXMLDefnTaglibImpl.java)55
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/FunctionDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/FunctionDefnImpl.java)49
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/HandlerTagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/HandlerTagDefnImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/SourceTagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/SourceTagDefnImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/TagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/TagDefnImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/impl/ValidatorTagDefnImpl.java (renamed from jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/impl/ValidatorTagDefnImpl.java)25
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/util/FaceletTaglibAdapterFactory.java323
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/util/FaceletTaglibSwitch.java371
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/util/FaceletTaglib_1_0AdapterFactory.java323
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib_1_0/util/FaceletTaglib_1_0Switch.java371
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/tagmodel/AttributeHandlerMapAdapter.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/tagmodel/FaceletAttribute.java59
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/tagmodel/FaceletNamespace.java14
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/tagmodel/FaceletTag.java12
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/util/ViewUtil.java21
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/validation/TaglibValidator.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/tagregistry/TagRegistryDetailsForm.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/tagregistry/TagRegistryMasterForm.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/tagregistry/TaglibContentProvider.java30
180 files changed, 29719 insertions, 1937 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/AbstractTagAttribute.java b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/AbstractTagAttribute.java
new file mode 100644
index 000000000..696113ae8
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/AbstractTagAttribute.java
@@ -0,0 +1,25 @@
+package org.eclipse.jst.jsf.common.runtime.internal.view.model.common;
+
+/**
+ * Super-class of all ITagAttribute concrete implementations.
+ *
+ * @author cbateman
+ *
+ */
+public abstract class AbstractTagAttribute implements ITagAttribute
+{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6364594863141579928L;
+
+ public abstract String getName();
+
+ public abstract String getTargetNamespace();
+
+ public abstract String getDescription();
+
+ public abstract String getDisplayName();
+
+ public abstract boolean isRequired();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagAttribute.java b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagAttribute.java
new file mode 100644
index 000000000..52fd6c2fb
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagAttribute.java
@@ -0,0 +1,40 @@
+package org.eclipse.jst.jsf.common.runtime.internal.view.model.common;
+
+import java.io.Serializable;
+
+/**
+ * Information about a tags attribute
+ * @author cbateman
+ *
+ */
+public interface ITagAttribute extends Serializable
+{
+ /**
+ * @return the name of the attribute. In XML this is the "local" name of
+ * the attribute: that is, it's name without any namespace qualification.
+ */
+ String getName();
+
+ /**
+ * @return the unique namespace of the attribute or null if it is always the
+ * same as it's owner (the typical case in JSF).
+ */
+ String getTargetNamespace();
+
+ /**
+ * @return a long-form piece of text, intended for end-user consumption,
+ * that describes the attribute
+ */
+ String getDescription();
+
+ /**
+ * @return a short, user visible label text for the attribute.
+ */
+ String getDisplayName();
+
+ /**
+ * @return true if the attribute is required to be populated on the
+ * element.
+ */
+ boolean isRequired();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagElement.java b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagElement.java
index 23a8098ea..e4d8298a5 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagElement.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/ITagElement.java
@@ -46,6 +46,10 @@ public interface ITagElement extends Serializable
public abstract Map getAttributeHandlers();
/**
+ * @return the attributes for the tag.
+ */
+ public abstract Map<String, ? extends ITagAttribute> getAttributes();
+ /**
* Signals that the tag element should make any mutable data immutable
* and throw exceptions if attempts are made to implement. Flag must
* latch and become irrevocable.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
index 594fa1a38..b694df572 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
@@ -22,7 +22,11 @@ import org.eclipse.jst.jsf.common.JSFCommonPlugin;
public abstract class AbstractSimpleClassExtensionRegistryReader<T> extends
AbstractRegistryReader<T>
{
-
+ /**
+ * Indicates no sorting of extension.
+ */
+ protected final static Comparator NO_SORT = null;
+
private final String _attributeName;
private final String _configElementName;
private final Comparator<SortableExecutableExtension<T>> _comparator;
@@ -88,7 +92,7 @@ public abstract class AbstractSimpleClassExtensionRegistryReader<T> extends
if (result.size() > 0)
{
- if (_comparator != null)
+ if (_comparator != NO_SORT)
{
Collections.sort(result, _comparator);
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/webxml/WebXmlUtilsForJavaEE.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/webxml/WebXmlUtilsForJavaEE.java
index c6ccd950e..59f58d0d7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/webxml/WebXmlUtilsForJavaEE.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/webxml/WebXmlUtilsForJavaEE.java
@@ -31,18 +31,6 @@ import org.eclipse.jst.javaee.web.WebFactory;
* @author Debajit Adhikary
*
*/
-/**
- * @author cbateman
- *
- */
-/**
- * @author cbateman
- *
- */
-/**
- * @author cbateman
- *
- */
public class WebXmlUtilsForJavaEE
{
/**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/MetadataContextResolver.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/MetadataContextResolver.java
index 495589f86..a1022e8fb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/MetadataContextResolver.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/MetadataContextResolver.java
@@ -22,6 +22,8 @@ import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelConte
import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
import org.eclipse.jst.jsf.context.IModelContext;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IMetadataContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.ITaglibContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.IStructuredDocumentContextResolverFactory2;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
@@ -36,12 +38,16 @@ import org.w3c.dom.Node;
class MetadataContextResolver implements IMetadataContextResolver
{
private final IStructuredDocumentContext _context;
+ private final IStructuredDocumentContextResolverFactory2 _factory;
/**
+ * @param factory
* @param context
*/
- public MetadataContextResolver(IStructuredDocumentContext context)
+ public MetadataContextResolver(final IStructuredDocumentContextResolverFactory2 factory,
+ final IStructuredDocumentContext context)
{
+ _factory = factory;
_context = context;
}
@@ -49,9 +55,8 @@ class MetadataContextResolver implements IMetadataContextResolver
{
final DOMContextResolver domResolver = new DOMContextResolver(_context);
final WorkspaceContextResolver wsResolver = new WorkspaceContextResolver(_context);
- final TaglibContextResolver tagResolver =
- new TaglibContextResolver(_context);
-
+ final ITaglibContextResolver tagResolver =
+ _factory.getTaglibContextResolverFromDelegates(_context);
final Node curNode = domResolver.getNode();
if (curNode instanceof Attr)
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/StructuredDocumentContextResolverFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/StructuredDocumentContextResolverFactory.java
index 2b0cf8ad3..acd55ae85 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/StructuredDocumentContextResolverFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/StructuredDocumentContextResolverFactory.java
@@ -242,11 +242,7 @@ IStructuredDocumentContextResolverFactory, IStructuredDocumentContextResolverFac
private ITaglibContextResolver internalGetTaglibContextResolver(
final IStructuredDocumentContext context)
{
- if (context.getStructuredDocument() instanceof IStructuredDocument)
- {
- return new TaglibContextResolver(context);
- }
-
+ // always delegate. No defaults.
return null;
}
@@ -295,7 +291,7 @@ IStructuredDocumentContextResolverFactory, IStructuredDocumentContextResolverFac
{
if (context.getStructuredDocument() instanceof IStructuredDocument)
{
- return new MetadataContextResolver(context);
+ return new MetadataContextResolver(this, context);
}
return null;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/TaglibContextResolver.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/TaglibContextResolver.java
index 2cd99fdce..4b10c020e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/TaglibContextResolver.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/context/resolver/structureddocument/internal/impl/TaglibContextResolver.java
@@ -34,7 +34,8 @@ import org.w3c.dom.NodeList;
* Default taglib context resolver
*
* @author cbateman
- *
+ * @deprecated Use ViewBasedTaglibResolver instead. This impl will be removed
+ * post-Helios.
*/
class TaglibContextResolver implements ITaglibContextResolver
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
index a6918014a..d1b9cb941 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
@@ -22,14 +22,11 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
org.eclipse.wst.html.core;bundle-version="[1.1.0,1.2.0)",
org.eclipse.wst.validation;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.3.0)",
org.eclipse.wst.common.emf;bundle-version="[1.1.103,2.0.0)",
org.eclipse.jem.util;bundle-version="[2.0.0,3.0.0)",
org.eclipse.emf.common;bundle-version="[2.2.0,3.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.2.0,3.0.0)",
org.eclipse.core.commands;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.swt;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
org.eclipse.emf.edit;bundle-version="[2.2.0,3.0.0)",
org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,2.0.0)",
@@ -39,11 +36,13 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
javax.servlet.jsp;bundle-version="[2.0.0,3.0.0)",
org.eclipse.jst.common.frameworks;bundle-version="[1.1.102,1.2.0)",
org.eclipse.wst.css.core;bundle-version="[1.1.200,1.2.0)",
- org.eclipse.debug.core;bundle-version="[3.5.0,4.0.0)"
+ org.eclipse.debug.core;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.ui;bundle-version="3.6.0"
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.jst.jsf.core,
org.eclipse.jst.jsf.core.internal;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
org.eclipse.jst.jsf.core.internal.contentassist.el;x-friends:="org.eclipse.jst.jsf.contentassist.tests",
+ org.eclipse.jst.jsf.core.internal.contenttype;x-internal:=true,
org.eclipse.jst.jsf.core.internal.jem;x-internal:=true,
org.eclipse.jst.jsf.core.internal.jsflibraryconfig;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui.tests,org.eclipse.jst.pagedesigner.tests",
org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
index 09f38424e..dc4c9ac17 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
@@ -50,6 +50,6 @@ noOpLibraryProviderWarning = Library configuration is disabled. Further classpat
noOpLibraryProviderMessage = This facet requires JSF implementation library to be present on project classpath. By disabling library configuration, user takes on responsibility of configuring classpath appropriately via alternate means.
extension-point.name.12 = Symbol Context Resolver Factory Delegate
-
+extension-point.name.13 = Tag Registry Factory
Facelet.name=Facelet
FaceletComposite.name=Facelet Composite Component \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
index b8801db4a..4af8e2f39 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
@@ -14,6 +14,7 @@
<extension-point id="customViewMapper" name="%extension-point.name.7" schema="schema/customViewMapper.exsd"/>
<extension-point id="jsfFacetConfiguration" name="%extension-point.name.11" schema="schema/jsfFacetConfiguration.exsd"/>
<extension-point id="symbolContextResolverFactory" name="%extension-point.name.12" schema="schema/symbolContextResolverFactory.exsd"/>
+ <extension-point id="tagRegistryFactory" name="%extension-point.name.13" schema="schema/tagRegistryFactory.exsd"/>
<extension point="org.eclipse.emf.ecore.generated_package">
<package
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/schema/tagRegistryFactory.exsd b/jsf/plugins/org.eclipse.jst.jsf.core/schema/tagRegistryFactory.exsd
new file mode 100644
index 000000000..5ed79d79a
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/schema/tagRegistryFactory.exsd
@@ -0,0 +1,106 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jst.jsf.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.jst.jsf.core" id="tagRegistryFactoryProvider" name="Tag Registry Factory Provider"/>
+ </appInfo>
+ <documentation>
+ Internal use only. Do not use.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="factoryProvider">
+ <annotation>
+ <documentation>
+ Define the factory used to create all available tag registries.
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ A provider used to override the default creation of tag registries by the CompositeTagRegistry.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jst.jsf.core.internal.AbstractTagRegistryFactory:"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
index f7337b3e0..a76ab5449 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/JSFVersion.java
@@ -17,7 +17,7 @@ import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-/**
+/**
* @author gekessle
*
*/
@@ -44,6 +44,8 @@ public enum JSFVersion {
*/
V2_0;
+ // WARNING: you MUST add newer versions to the end; the ordinal value of
+ // of the version is used in compareTo.
@Override
public String toString() {
switch(this)
@@ -144,5 +146,4 @@ public enum JSFVersion {
}
return null;
}
-
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/AbstractTagRegistryFactoryProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/AbstractTagRegistryFactoryProvider.java
new file mode 100644
index 000000000..5e2c01c16
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/AbstractTagRegistryFactoryProvider.java
@@ -0,0 +1,14 @@
+package org.eclipse.jst.jsf.core.internal;
+
+import java.util.Set;
+
+/**
+ * Sub-classed by all tag registry factories
+ * @author cbateman
+ *
+ */
+public abstract class AbstractTagRegistryFactoryProvider implements ITagRegistryFactoryProvider
+{
+ public abstract Set<ITagRegistryFactoryInfo> getTagRegistryFactories();
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/CompositeTagRegistryFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/CompositeTagRegistryFactory.java
index 456e58f23..10503bc8b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/CompositeTagRegistryFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/CompositeTagRegistryFactory.java
@@ -10,10 +10,12 @@
*******************************************************************************/
package org.eclipse.jst.jsf.core.internal;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -21,6 +23,8 @@ import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jst.jsf.common.internal.policy.CanonicallyOrderedIteratorPolicy;
import org.eclipse.jst.jsf.common.internal.policy.IIteratorPolicy;
+import org.eclipse.jst.jsf.common.internal.policy.IdentifierOrderedIteratorPolicy;
+import org.eclipse.jst.jsf.common.internal.strategy.AbstractIdentifiableStrategy;
import org.eclipse.jst.jsf.common.internal.strategy.IIdentifiableStrategy;
import org.eclipse.jst.jsf.common.internal.strategy.IteratorPolicyBasedStrategyComposite;
import org.eclipse.jst.jsf.designtime.internal.view.model.ITagRegistry;
@@ -37,6 +41,18 @@ public final class CompositeTagRegistryFactory
{
private static CompositeTagRegistryFactory INSTANCE;
+ private static ITagRegistryFactoryProvider TEST_PROVIDER;
+ /**
+ * For JUNIT TEST ONLY!!!!!
+ * @param factoryProvider
+ */
+ public synchronized void setTestInjectedProvider(final ITagRegistryFactoryProvider factoryProvider)
+ {
+ TEST_PROVIDER = factoryProvider;
+ // TODO: this is risky
+ _cachedExtensionsByType.clear();
+ }
+
/**
* @return the single instance of the registry factory
*/
@@ -49,8 +65,8 @@ public final class CompositeTagRegistryFactory
return INSTANCE;
}
- private final Map<IContentType, Set<TagRegistryFactoryInfo>> _cachedExtensionsByType =
- new HashMap<IContentType, Set<TagRegistryFactoryInfo>>(4);
+ private final Map<IContentType, Set<ITagRegistryFactoryInfo>> _cachedExtensionsByType =
+ new HashMap<IContentType, Set<ITagRegistryFactoryInfo>>(4);
private CompositeTagRegistryFactory()
{
@@ -64,10 +80,9 @@ public final class CompositeTagRegistryFactory
*/
public final ITagRegistry getRegistry(final TagRegistryIdentifier id)
{
- final Set<TagRegistryFactoryInfo> handlers = TagLibraryRegistryLoader
- .getAllHandlers();
+ final Set<ITagRegistryFactoryInfo> handlers = getAllTagRegistryFactories();
- final Set<TagRegistryFactoryInfo> matchingHandlers = findMatchingExtensions(
+ final Set<ITagRegistryFactoryInfo> matchingHandlers = findMatchingExtensions(
id, handlers);
if (matchingHandlers.size() > 0)
@@ -93,7 +108,7 @@ public final class CompositeTagRegistryFactory
final TagRegistrySelectionStrategy selectionStrategy = new TagRegistrySelectionStrategy(
new CanonicallyOrderedIteratorPolicy<String>());
- for (final Iterator<TagRegistryFactoryInfo> it = matchingHandlers
+ for (final Iterator<ITagRegistryFactoryInfo> it = matchingHandlers
.iterator(); it.hasNext();)
{
selectionStrategy.addStrategy(it.next().getTagRegistryFactory());
@@ -108,22 +123,82 @@ public final class CompositeTagRegistryFactory
/**
* @return get all tag registry factories
*/
- public Set<TagRegistryFactoryInfo> getAllTagRegistryFactories()
+ public Set<ITagRegistryFactoryInfo> getAllTagRegistryFactories()
{
- return TagLibraryRegistryLoader.getAllHandlers();
+ List<String> selectionOrder = new ArrayList<String>();
+ selectionOrder.add("testInjection"); //$NON-NLS-1$
+ selectionOrder.add("extensionPointInjection"); //$NON-NLS-1$
+ selectionOrder.add("platformDefault"); //$NON-NLS-1$
+
+ IdentifierOrderedIteratorPolicy<String> policy = new IdentifierOrderedIteratorPolicy<String>(selectionOrder);
+ // ignore iterator values that don't exist in the list of possible selections.
+ policy.setExcludeNonExplicitValues(true);
+ final TagRegistryFactoryProviderSelectionStrategy providerSelector
+ = new TagRegistryFactoryProviderSelectionStrategy(policy);
+ providerSelector.addStrategy(
+ new AbstractIdentifiableStrategy<IProject, ITagRegistryFactoryProvider, String>("testInjection", "FIXME: not for display", null) //$NON-NLS-1$ //$NON-NLS-2$
+ {
+ @Override
+ public ITagRegistryFactoryProvider perform(IProject input)
+ throws Exception
+ {
+ ITagRegistryFactoryProvider injectedProvider = null;
+ synchronized(CompositeTagRegistryFactory.class)
+ {
+ injectedProvider = TEST_PROVIDER;
+ }
+ if (injectedProvider != null)
+ {
+ final ITagRegistryFactoryProvider useMe = injectedProvider;
+ return new AbstractTagRegistryFactoryProvider()
+ {
+ @Override
+ public Set<ITagRegistryFactoryInfo> getTagRegistryFactories()
+ {
+ return useMe.getTagRegistryFactories();
+ }
+ };
+ }
+ return null;
+ }
+ });
+ providerSelector.addStrategy(
+ new AbstractIdentifiableStrategy<IProject, ITagRegistryFactoryProvider, String>("platformDefault", "FIXME: not for display", null) //$NON-NLS-1$ //$NON-NLS-2$
+ {
+ @Override
+ public ITagRegistryFactoryProvider perform(IProject input)
+ throws Exception
+ {
+ return new AbstractTagRegistryFactoryProvider()
+ {
+ @Override
+ public Set<ITagRegistryFactoryInfo> getTagRegistryFactories()
+ {
+ return TagLibraryRegistryLoader.getAllHandlers();
+ }
+ };
+ }
+ });
+
+ ITagRegistryFactoryProvider provider = providerSelector.perform(null);
+ if (provider != null)
+ {
+ return provider.getTagRegistryFactories();
+ }
+ return Collections.emptySet();
}
- private Set<TagRegistryFactoryInfo> findMatchingExtensions(
- TagRegistryIdentifier id, Set<TagRegistryFactoryInfo> handlers)
+ private Set<ITagRegistryFactoryInfo> findMatchingExtensions(
+ TagRegistryIdentifier id, Set<ITagRegistryFactoryInfo> handlers)
{
- Set<TagRegistryFactoryInfo> matching = _cachedExtensionsByType.get(id
+ Set<ITagRegistryFactoryInfo> matching = _cachedExtensionsByType.get(id
.getContentType());
if (matching == null)
{
- matching = new HashSet<TagRegistryFactoryInfo>(4);
+ matching = new HashSet<ITagRegistryFactoryInfo>(4);
- for (final TagRegistryFactoryInfo handler : handlers)
+ for (final ITagRegistryFactoryInfo handler : handlers)
{
if (handler.getContentTypes().contains(id.getContentType()))
{
@@ -221,4 +296,23 @@ public final class CompositeTagRegistryFactory
return NO_RESULT;
}
}
+
+ private static class TagRegistryFactoryProviderSelectionStrategy
+ extends
+ IteratorPolicyBasedStrategyComposite<IProject, ITagRegistryFactoryProvider, ITagRegistryFactoryProvider, String, IIdentifiableStrategy<IProject, ITagRegistryFactoryProvider, String>>
+ {
+ protected TagRegistryFactoryProviderSelectionStrategy(
+ IIteratorPolicy<String> policy)
+ {
+ super(policy);
+ }
+
+ private static final ITagRegistryFactoryProvider NO_RESULT = null;
+
+ @Override
+ public ITagRegistryFactoryProvider getNoResult()
+ {
+ return NO_RESULT;
+ }
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryInfo.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryInfo.java
new file mode 100644
index 000000000..8af623681
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryInfo.java
@@ -0,0 +1,34 @@
+package org.eclipse.jst.jsf.core.internal;
+
+import java.util.Set;
+
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jst.jsf.designtime.internal.view.model.TagRegistryFactory;
+
+/**
+ * @author cbateman
+ * @noimplement
+ */
+public interface ITagRegistryFactoryInfo
+{
+ /**
+ * @return the content types that the tag registry supports.
+ */
+ public abstract Set<IContentType> getContentTypes();
+
+ /**
+ * @return the tag registry factory.
+ */
+ public abstract TagRegistryFactory getTagRegistryFactory();
+
+ /**
+ * @return the unique id of the factory.
+ */
+ public abstract String getId();
+
+ /**
+ * @return the description of the tag registry factory.
+ */
+ public abstract String getDescription();
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryProvider.java
new file mode 100644
index 000000000..95ddab7b9
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/ITagRegistryFactoryProvider.java
@@ -0,0 +1,16 @@
+package org.eclipse.jst.jsf.core.internal;
+
+import java.util.Set;
+
+/**
+ * The factory provider interface for tag registries.
+ *
+ */
+public interface ITagRegistryFactoryProvider
+{
+ /**
+ * @return the set of tag registry factories to be used to construct
+ * tag registries.
+ */
+ Set<ITagRegistryFactoryInfo> getTagRegistryFactories();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
index 5eb1c5162..5d0aeeabc 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
@@ -49,6 +49,11 @@ public class JSFCorePlugin extends WTPPlugin
public static final String PLUGIN_ID = "org.eclipse.jst.jsf.core"; // org.eclipse.jst.jsf.core.internal.JSFCorePlugin"; //$NON-NLS-1$
// //$NON-NLS-1$
+ /**
+ * The extension point id (plugin relative) for the tag registry factory provider.
+ */
+ public static final String TAG_REGISTRY_FACTORY_PROVIDER_ID = "tagRegistryFactory"; //$NON-NLS-1$
+
// The shared instance.
private static JSFCorePlugin plugin;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagLibraryRegistryLoader.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagLibraryRegistryLoader.java
index 5bb43a94b..2bf72df9d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagLibraryRegistryLoader.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagLibraryRegistryLoader.java
@@ -30,13 +30,13 @@ import org.eclipse.core.runtime.IExtensionPoint;
private final static String EXTENSION_ID = "tagregistry"; //$NON-NLS-1$
private final static String ELEMENT_NAME = "tagRegistry"; //$NON-NLS-1$
- private static Set<TagRegistryFactoryInfo> _extensions;
+ private static Set<ITagRegistryFactoryInfo> _extensions;
/**
* @return the list of handlers. The list is not modifiable and will throw
* exceptions if it is attempted.
*/
- public static synchronized Set<TagRegistryFactoryInfo> getAllHandlers()
+ public static synchronized Set<ITagRegistryFactoryInfo> getAllHandlers()
{
if (_extensions == null)
{
@@ -46,9 +46,9 @@ import org.eclipse.core.runtime.IExtensionPoint;
}
- private static Set<TagRegistryFactoryInfo> readAllHandlers()
+ private static Set<ITagRegistryFactoryInfo> readAllHandlers()
{
- Set<TagRegistryFactoryInfo> result = new HashSet<TagRegistryFactoryInfo>();
+ Set<ITagRegistryFactoryInfo> result = new HashSet<ITagRegistryFactoryInfo>();
IExtensionPoint extensionPoint = JSFCorePlugin.getDefault()
.getExtension(EXTENSION_ID);
IExtension[] extensions = extensionPoint.getExtensions();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryInfo.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryInfo.java
index 9112b300c..8e581ef9e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryInfo.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryInfo.java
@@ -25,7 +25,7 @@ import org.eclipse.jst.jsf.designtime.internal.view.model.TagRegistryFactory;
* Encapsulates information about tag registry extensions
*
*/
-public final class TagRegistryFactoryInfo
+public final class TagRegistryFactoryInfo implements ITagRegistryFactoryInfo
{
private final String _description;
private final String _id;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryProviderLoader.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryProviderLoader.java
new file mode 100644
index 000000000..62217da71
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/TagRegistryFactoryProviderLoader.java
@@ -0,0 +1,33 @@
+package org.eclipse.jst.jsf.core.internal;
+
+import static org.eclipse.jst.jsf.core.internal.JSFCorePlugin.PLUGIN_ID;
+import static org.eclipse.jst.jsf.core.internal.JSFCorePlugin.TAG_REGISTRY_FACTORY_PROVIDER_ID;
+
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jst.jsf.common.internal.pde.AbstractSimpleClassExtensionRegistryReader;
+
+/**
+ * Loader class for the tag registry factory provider extension point.
+ *
+ */
+public class TagRegistryFactoryProviderLoader extends
+ AbstractSimpleClassExtensionRegistryReader<ITagRegistryFactoryProvider>
+{
+
+ /**
+ * @param listComparator
+ */
+ protected TagRegistryFactoryProviderLoader(
+ Comparator<org.eclipse.jst.jsf.common.internal.pde.AbstractSimpleClassExtensionRegistryReader.SortableExecutableExtension<ITagRegistryFactoryProvider>> listComparator)
+ {
+ super(PLUGIN_ID, TAG_REGISTRY_FACTORY_PROVIDER_ID, "factoryProvider", "class", NO_SORT); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ @Override
+ protected void handleLoadFailure(CoreException ce)
+ {
+ JSFCorePlugin.log(ce, "Loading tag registry factory provider extension points"); //$NON-NLS-1$
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contenttype/XMLDocumentElementAttributeContentDescriber.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contenttype/XMLDocumentElementAttributeContentDescriber.java
new file mode 100644
index 000000000..1521351e5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contenttype/XMLDocumentElementAttributeContentDescriber.java
@@ -0,0 +1,184 @@
+package org.eclipse.jst.jsf.core.internal.contenttype;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.ITextContentDescriber;
+import org.eclipse.wst.sse.core.utils.StringUtils;
+import org.eclipse.wst.xml.core.internal.parser.XMLTokenizer;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+
+
+
+/**
+ * Matches the first tag of the content using attribute/value regex pairs.
+ *
+ * Ex.:<br/>
+ * &lt;describer class="XMLDocumentElementAttributeContentDescriber"&gt;<br/>
+ * &nbsp;&lt;parameter name="xmlns:ns1" value="http://example.com/ns1" /&gt;<br/>
+ * &nbsp;&lt;parameter name="xmlns:.*" value="http://example.com/ns2" /&gt;<br/>
+ * &lt;/describer&gt;
+ */
+public final class XMLDocumentElementAttributeContentDescriber implements ITextContentDescriber, IExecutableExtension {
+ private static class AttributeValuePatternPair {
+ Pattern attribute;
+ Pattern value;
+
+ public AttributeValuePatternPair(Pattern attribute, Pattern value) {
+ super();
+ this.attribute = attribute;
+ this.value = value;
+ }
+
+ public String toString() {
+ return attribute + " : " + value; //$NON-NLS-1$
+ }
+ }
+ private static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
+ private static final String ATTRIBUTE_VALUE = "value"; //$NON-NLS-1$
+
+ // TODO: support all of the options of the standard HTML content describer?
+ private final static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.BYTE_ORDER_MARK};
+
+ /*
+ * Reads from from the stream. Note that the stream will not be
+ * repositioned when the method returns. Copied from
+ * org.eclipse.core.internal.content.Util
+ */
+ private static byte[] getByteOrderMark(InputStream input) throws IOException {
+ int first = input.read();
+ if (first == 0xEF) {
+ // look for the UTF-8 Byte Order Mark (BOM)
+ int second = input.read();
+ int third = input.read();
+ if (second == 0xBB && third == 0xBF)
+ return IContentDescription.BOM_UTF_8;
+ }
+ else if (first == 0xFE) {
+ // look for the UTF-16 BOM
+ if (input.read() == 0xFF)
+ return IContentDescription.BOM_UTF_16BE;
+ }
+ else if (first == 0xFF) {
+ if (input.read() == 0xFE)
+ return IContentDescription.BOM_UTF_16LE;
+ }
+ return null;
+ }
+
+ private AttributeValuePatternPair[] fPairs = null;
+
+ /**
+ *
+ */
+ public XMLDocumentElementAttributeContentDescriber() {
+ super();
+ }
+
+ private int checkCriteria(Reader contents) throws IOException {
+ if (fPairs == null || fPairs.length == 0)
+ return INVALID;
+
+ String attributeName = null;
+ String attributeValue = null;
+
+ XMLTokenizer tokenizer = new XMLTokenizer(contents);
+
+ String token = tokenizer.primGetNextToken();
+ while (token != null && !DOMRegionContext.XML_TAG_CLOSE.equals(token) && !DOMRegionContext.XML_EMPTY_TAG_CLOSE.equals(token)) {
+ if (DOMRegionContext.XML_TAG_ATTRIBUTE_NAME.equals(token)) {
+ attributeName = tokenizer.yytext();
+ }
+ else if (DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE.equals(token)) {
+ attributeValue = StringUtils.strip(tokenizer.yytext());
+ for (int i = 0; i < fPairs.length; i++) {
+ boolean nameMatched = fPairs[i].attribute.matcher(attributeName).matches();
+ if(nameMatched) {
+ boolean valueMatched = fPairs[i].value.matcher(attributeValue).matches();
+ if(valueMatched) {
+ return VALID;
+ }
+ }
+ }
+ }
+ token = tokenizer.primGetNextToken();
+ }
+ return INVALID;
+ }
+
+ public int describe(InputStream contents, IContentDescription description) throws IOException {
+ contents.reset();
+ byte[] bom = getByteOrderMark(contents);
+ if (bom != null && description != null)
+ description.setProperty(IContentDescription.BYTE_ORDER_MARK, bom);
+
+ Object value = description != null ? description.getProperty(IContentDescription.CHARSET) : null;
+ String charsetName = null;
+ if (value != null) {
+ charsetName = value.toString();
+ }
+ else {
+ if (Arrays.equals(IContentDescription.BOM_UTF_16BE, bom)) {
+ charsetName = "UTF-16BE"; //$NON-NLS-1$
+ }
+ else if (Arrays.equals(IContentDescription.BOM_UTF_16LE, bom)) {
+ charsetName = "UTF-16LE"; //$NON-NLS-1$
+ }
+ else {
+ charsetName = "UTF-8"; //$NON-NLS-1$
+ }
+ }
+ contents.reset();
+ // Check to see if we matched our criteria.
+ return checkCriteria(new InputStreamReader(contents, Charset.forName(charsetName)));
+ }
+
+ public int describe(Reader contents, IContentDescription description) throws IOException {
+ contents.reset();
+ // Check to see if we matched our criteria.
+ return checkCriteria(contents);
+ }
+
+ public QualifiedName[] getSupportedOptions() {
+ return SUPPORTED_OPTIONS;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void setInitializationData(final IConfigurationElement config, final String propertyName, final Object data) throws CoreException {
+ if (data instanceof Hashtable) {
+ IConfigurationElement describerElement = config.getChildren("describer")[0]; //$NON-NLS-1$
+ IConfigurationElement[] params = describerElement.getChildren("parameter"); //$NON-NLS-1$
+ List<AttributeValuePatternPair> pairs = new ArrayList<AttributeValuePatternPair>();
+ for (int i = 0; i < params.length; i++) {
+ String rawName = params[i].getAttribute(ATTRIBUTE_NAME);
+ String rawValue = params[i].getAttribute(ATTRIBUTE_VALUE);
+ if (rawName == null || rawValue == null)
+ continue;
+ Pattern attributeName = Pattern.compile(rawName);
+ Pattern attributeValue = Pattern.compile(rawValue);
+ pairs.add(new AttributeValuePatternPair(attributeName, attributeValue));
+ }
+ fPairs = pairs.toArray(new AttributeValuePatternPair[pairs.size()]);
+ }
+
+ if (fPairs == null || fPairs.length == 0) {
+ throw new CoreException(new Status(IStatus.ERROR, Platform.getBundle("org.eclipse.jst.jsf.contenttypes").getSymbolicName(), 0, "Attributes not specified", null)); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resolver/ViewBasedTaglibResolverFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resolver/ViewBasedTaglibResolverFactory.java
index a702db545..5e6d202f9 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resolver/ViewBasedTaglibResolverFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/resolver/ViewBasedTaglibResolverFactory.java
@@ -23,7 +23,6 @@ import org.eclipse.jst.jsf.context.resolver.structureddocument.ITaglibContextRes
import org.eclipse.jst.jsf.context.resolver.structureddocument.IWorkspaceContextResolver;
import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.ITextRegionContextResolver;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
import org.eclipse.jst.jsf.designtime.DTAppManagerUtil;
import org.eclipse.jst.jsf.designtime.internal.view.XMLViewDefnAdapter;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -201,10 +200,6 @@ IStructuredDocumentContextResolverFactory, IAdaptable
return adapter.mapToTagElement(element, _context
.getStructuredDocument());
}
- // shouldn't happen since the constuctor throws an exceptino
- // if can't get the adapter
- JSFCorePlugin.log("Unexpected case", //$NON-NLS-1$
- new Throwable(_file.toString()));
return null;
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/DTComponentIntrospector.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/DTComponentIntrospector.java
index 2e1a87bab..04c71e3a4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/DTComponentIntrospector.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/DTComponentIntrospector.java
@@ -306,6 +306,10 @@ public final class DTComponentIntrospector
public static boolean isTypeNameInstanceOfClass(final IType type,
final Set<String> checkInstanceOf)
{
+ if (checkInstanceOf == null)
+ {
+ throw new AssertionError();
+ }
if (type != null)
{
// first and foremost, are these exactly droids you're
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/DefaultJSPTagResolver.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/DefaultJSPTagResolver.java
index b0226e3e5..e34d56d1d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/DefaultJSPTagResolver.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/DefaultJSPTagResolver.java
@@ -90,22 +90,26 @@ public class DefaultJSPTagResolver extends JSPTagResolvingStrategy
if (elementType instanceof ComponentTypeInfo)
{
return new TLDComponentTagElement(elementDecl,
- (ComponentTypeInfo) elementType, new MetadataAttributeAdvisor(tagId, _loader));
+ (ComponentTypeInfo) elementType,
+ new MetadataAttributeAdvisor(tagId, _loader, elementDecl));
}
else if (elementType instanceof ConverterTypeInfo)
{
return new TLDConverterTagElement(elementDecl,
- (ConverterTypeInfo) elementType, new MetadataAttributeAdvisor(tagId, _loader));
+ (ConverterTypeInfo) elementType,
+ new MetadataAttributeAdvisor(tagId, _loader, elementDecl));
}
else if (elementType instanceof ValidatorTypeInfo)
{
return new TLDValidatorTagElement(elementDecl,
- (ValidatorTypeInfo) elementType, new MetadataAttributeAdvisor(tagId, _loader));
+ (ValidatorTypeInfo) elementType,
+ new MetadataAttributeAdvisor(tagId, _loader, elementDecl));
}
else if (elementType instanceof TagHandlerType)
{
return new TLDTagHandlerElement(elementDecl,
- (TagHandlerType) elementType, new MetadataAttributeAdvisor(tagId, _loader));
+ (TagHandlerType) elementType,
+ new MetadataAttributeAdvisor(tagId, _loader, elementDecl));
}
else if (DefaultTagTypeInfo.isDefaultLib(tagId.getUri()))
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/IAttributeAdvisor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/IAttributeAdvisor.java
index f473ab312..37596b2a9 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/IAttributeAdvisor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/IAttributeAdvisor.java
@@ -10,6 +10,10 @@
*******************************************************************************/
package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttributeHandler;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.TagAttributeHandler;
@@ -28,6 +32,11 @@ public interface IAttributeAdvisor
ITagAttributeHandler createAttributeHandler(String name) throws UnknownAttributeException;
/**
+ * @return a map of attributes indexed by local name
+ */
+ Map<String, ? extends ITagAttribute> getAttributes();
+
+ /**
* @author cbateman
*
*/
@@ -38,6 +47,11 @@ public interface IAttributeAdvisor
{
return new TagAttributeHandler(null, name, false);
}
+
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ return Collections.emptyMap();
+ }
}
/**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/MetadataAttributeAdvisor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/MetadataAttributeAdvisor.java
index c85ec8a28..df2c7ac1f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/MetadataAttributeAdvisor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/MetadataAttributeAdvisor.java
@@ -10,23 +10,32 @@
*******************************************************************************/
package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
+import java.util.HashMap;
+import java.util.Map;
+
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ComponentPropertyHandler;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttributeHandler;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.TagAttributeHandler;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.AttributeToPropertyMapping;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
/* package */class MetadataAttributeAdvisor implements IAttributeAdvisor
{
private final TagIdentifier _tagId;
private final ViewMetadataLoader _loader;
+ private final TLDElementDeclaration _tldElement;
public MetadataAttributeAdvisor(final TagIdentifier tagId,
- final ViewMetadataLoader loader)
+ final ViewMetadataLoader loader, TLDElementDeclaration tldElement)
{
_tagId = tagId;
_loader = loader;
+ _tldElement = tldElement;
}
public ITagAttributeHandler createAttributeHandler(final String name)
@@ -48,4 +57,20 @@ import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.Attribut
}
return new TagAttributeHandler(null, name, false);
}
+
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ final Map<String, TLDTagAttribute> attributes = new HashMap<String, TLDTagAttribute>();
+
+ for (int i = 0; i < _tldElement.getAttributes().getLength(); i++)
+ {
+ CMNode item = _tldElement.getAttributes().item(i);
+ if (item instanceof TLDAttributeDeclaration)
+ {
+ TLDTagAttribute attr = new TLDTagAttribute((TLDAttributeDeclaration) item);
+ attributes.put(attr.getName(), attr);
+ }
+ }
+ return attributes;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagAttribute.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagAttribute.java
new file mode 100644
index 000000000..4a284e87b
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagAttribute.java
@@ -0,0 +1,60 @@
+package org.eclipse.jst.jsf.designtime.internal.view.model.jsp;
+
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.AbstractTagAttribute;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
+
+/**
+ * Adapts a TLDAttributeDeclaration to the ITagAttribute interface.
+ *
+ * @author cbateman
+ *
+ */
+public class TLDTagAttribute extends AbstractTagAttribute
+{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 4327701042556836452L;
+
+ private final TLDAttributeDeclaration _decl;
+
+ /**
+ * @param decl
+ */
+ public TLDTagAttribute(final TLDAttributeDeclaration decl)
+ {
+ _decl = decl;
+ }
+
+ @Override
+ public String getName()
+ {
+ return _decl.getAttrName();
+ }
+
+ @Override
+ public String getTargetNamespace()
+ {
+ return null;
+ }
+
+ @Override
+ public String getDescription()
+ {
+ return _decl.getDescription();
+ }
+
+ @Override
+ public String getDisplayName()
+ {
+ return _decl.getAttrName();
+ }
+
+ @Override
+ public boolean isRequired()
+ {
+ return _decl.isRequired();
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
index a63468551..001e1aeb0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/TLDTagElement.java
@@ -17,6 +17,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttributeHandler;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.TagElement;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
@@ -96,9 +97,14 @@ public class TLDTagElement extends TagElement
@Override
public Map getAttributeHandlers()
{
- return _tldData.getAttributes();
+ return _tldData.getAttributeHandlers();
}
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ return _tldData.getAttributes();
+ }
+
private static class DocumentElementData extends TLDElementData
{
/**
@@ -107,12 +113,14 @@ public class TLDTagElement extends TagElement
private static final long serialVersionUID = -6160324802818766058L;
private final TLDElementDeclaration _tldDoc;
private final CMNodeNamedMapAdapter _adapter;
+ private Map<String, ? extends ITagAttribute> _tldAttributes;
public DocumentElementData(final TLDElementDeclaration tldDoc,
final IAttributeAdvisor advisor)
{
_tldDoc = tldDoc;
_adapter = new CMNodeNamedMapAdapter(tldDoc, advisor);
+ _tldAttributes = advisor.getAttributes();
}
@Override
@@ -142,7 +150,7 @@ public class TLDTagElement extends TagElement
private Object writeReplace()
{
return new SerializedTLDElementData(getName(), getTagHandlerClassName(), getUri()
- , _adapter);
+ , _adapter, _tldAttributes);
}
@SuppressWarnings("unused")
@@ -153,10 +161,16 @@ public class TLDTagElement extends TagElement
}
@Override
- public Map<String, ? extends ITagAttributeHandler> getAttributes()
+ public Map<String, ? extends ITagAttributeHandler> getAttributeHandlers()
{
return _adapter;
}
+
+ @Override
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ return _tldAttributes;
+ }
}
/**
@@ -173,6 +187,7 @@ public class TLDTagElement extends TagElement
private final String _uri;
private final String _tagHandlerClassName;
private final Map<String, ? extends ITagAttributeHandler> _tagAttributes;
+ private final Map<String, ? extends ITagAttribute> _actualTagAttributes;
/**
* @param name
@@ -182,7 +197,8 @@ public class TLDTagElement extends TagElement
*/
private SerializedTLDElementData(final String name,
final String tagHandlerClassName, final String uri,
- final Map<String, ? extends ITagAttributeHandler> tagAttributes)
+ final Map<String, ? extends ITagAttributeHandler> tagAttributes,
+ final Map<String, ? extends ITagAttribute> actualTagAttributes)
{
super();
_name = name;
@@ -190,6 +206,7 @@ public class TLDTagElement extends TagElement
_uri = uri;
// copy the map, because we don't if it is simply delta
_tagAttributes = new HashMap(tagAttributes);
+ _actualTagAttributes = new HashMap(actualTagAttributes);
}
@Override
@@ -211,10 +228,16 @@ public class TLDTagElement extends TagElement
}
@Override
- public Map<String, ? extends ITagAttributeHandler> getAttributes()
+ public Map<String, ? extends ITagAttributeHandler> getAttributeHandlers()
{
return _tagAttributes;
}
+
+ @Override
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ return _actualTagAttributes;
+ }
}
private static abstract class TLDElementData implements Serializable
@@ -226,6 +249,10 @@ public class TLDTagElement extends TagElement
public abstract String getTagHandlerClassName();
public abstract String getName();
public abstract String getUri();
- public abstract Map<String, ? extends ITagAttributeHandler> getAttributes();
+ public abstract Map<String, ? extends ITagAttributeHandler> getAttributeHandlers();
+ public abstract Map<String, ? extends ITagAttribute> getAttributes();
+
}
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/ServletBeanProxyContributor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/ServletBeanProxyContributor.java
index 19951a9a8..efe340da3 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/ServletBeanProxyContributor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/ServletBeanProxyContributor.java
@@ -25,7 +25,6 @@ import org.eclipse.jem.internal.proxy.core.ConfigurationContributorAdapter;
import org.eclipse.jem.internal.proxy.core.IConfigurationContributionController;
import org.eclipse.jst.jsf.core.JSFVersion;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
import org.osgi.framework.Bundle;
class ServletBeanProxyContributor extends ConfigurationContributorAdapter
@@ -101,31 +100,7 @@ class ServletBeanProxyContributor extends ConfigurationContributorAdapter
static JSFVersion getProjectVersion(final IProject project)
{
- try
- {
- if (FacetedProjectFramework.hasProjectFacet(project, "jst.jsf", //$NON-NLS-1$
- "1.0")) //$NON-NLS-1$
- {
- return JSFVersion.V1_0;
- }
- else if (FacetedProjectFramework.hasProjectFacet(project,
- "jst.jsf", "1.1")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- return JSFVersion.V1_1;
- }
- else if (FacetedProjectFramework.hasProjectFacet(project,
- "jst.jsf", "1.2")) //$NON-NLS-1$ //$NON-NLS-2$
- {
- return JSFVersion.V1_2;
- }
- }
- catch (final CoreException e)
- {
- JSFCorePlugin.log("checking project version", e); //$NON-NLS-1$
- // fall-through
- }
-
- return null;
+ return JSFVersion.valueOfProject(project);
}
} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/TagAnalyzer.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/TagAnalyzer.java
index ea1f16793..edaf97f2e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/TagAnalyzer.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/analyzer/TagAnalyzer.java
@@ -819,12 +819,16 @@ public final class TagAnalyzer
// v1.2(9.2.2): JSF component tags must sub-class UIComponentELTag
// the original two are included because we must be backward
// compatible
- else if (jsfVersion == JSFVersion.V1_2)
+ else if (jsfVersion == JSFVersion.V1_2 || jsfVersion == JSFVersion.V2_0)
{
componentTags = COMPONENT_TAG_HANDLER_TYPES_JSF12;
converterTags = CONVERTER_TAG_HANDLER_TYPES_JSF12;
validatorTags = VALIDATOR_TAG_HANDLER_TYPES_JSF12;
}
+ else
+ {
+ throw new IllegalArgumentException();
+ }
TagType tagType = null;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/ELValidationPreferences.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/ELValidationPreferences.java
index d66733274..522042e06 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/ELValidationPreferences.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/ELValidationPreferences.java
@@ -373,7 +373,7 @@ public class ELValidationPreferences implements IJSFPreferenceModel
case DiagnosticFactory.MEMBER_NOT_FOUND_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.VARIABLE_NOT_FOUND_ID:
- return Diagnostic.WARNING;
+ return Diagnostic.INFO;
case DiagnosticFactory.MISSING_CLOSING_EXPR_BRACKET_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID:
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/.settings/org.eclipse.jdt.core.prefs b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/.settings/org.eclipse.jdt.core.prefs
index 8c1950bb2..ddb8182d7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,6 +1,6 @@
-#Fri May 30 12:28:19 PDT 2008
+#Fri Mar 12 08:05:32 PST 2010
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
@@ -11,6 +11,8 @@ org.eclipse.jdt.core.compiler.doc.comment.support=enabled
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
@@ -35,6 +37,7 @@ org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
@@ -42,13 +45,15 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
org.eclipse.jdt.core.compiler.problem.nullReference=warning
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
@@ -56,6 +61,7 @@ org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
@@ -72,6 +78,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin
org.eclipse.jdt.core.compiler.problem.unusedImport=error
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/META-INF/MANIFEST.MF
index 700a351ef..dc9dc130b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/META-INF/MANIFEST.MF
@@ -25,7 +25,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.edit.ui;bundle-version="2.4.0",
org.eclipse.jst.j2ee.web;bundle-version="1.1.200",
org.eclipse.wst.validation;bundle-version="1.2.0",
- org.eclipse.debug.core;bundle-version="[3.5.0,4.0.0)"
+ org.eclipse.debug.core;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.5.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.eclipse.jdt.core,
@@ -51,10 +52,13 @@ Export-Package: org.eclipse.jst.jsf.facelet.core.internal;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.facet;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.registry;x-internal:=true,
- org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;x-internal:=true,
- org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;x-internal:=true,
- org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl;x-internal:=true,
- org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.util;x-internal:=true,
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;x-friends:="org.eclipse.jst.jsf.facelet.core.tests",
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;x-friends:="org.eclipse.jst.jsf.facelet.core.tests",
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl;x-friends:="org.eclipse.jst.jsf.facelet.core.tests",
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.util;x-friends:="org.eclipse.jst.jsf.facelet.core.tests",
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0;x-internal:=true,
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.impl;x-internal:=true,
+ org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.util;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.tagmodel;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.util;x-internal:=true,
org.eclipse.jst.jsf.facelet.core.internal.validation;x-internal:=true,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib-2_0.genmodel b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib-2_0.genmodel
new file mode 100644
index 000000000..26e1951ac
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib-2_0.genmodel
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.jst.jsf.facelet.core/src"
+ modelPluginID="org.eclipse.jst.jsf.facelet.core" modelName="Facelet-taglib-2_0"
+ nonNLSMarkers="true" importerID="org.eclipse.xsd.ecore.importer" complianceLevel="5.0"
+ copyrightFields="false">
+ <foreignModel>facelet-taglib.xsd</foreignModel>
+ <genPackages prefix="FaceletTaglib" basePackage="org.eclipse.jst.jsf.facelet.core.internal.registry.taglib"
+ resource="XML" disposableProviderFactory="true" fileExtensions="taglib.xml"
+ ecorePackage="faceletTaglib_2_0.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="faceletTaglib_2_0.ecore#//FaceletTaglibVersion">
+ <genEnumLiterals ecoreEnumLiteral="faceletTaglib_2_0.ecore#//FaceletTaglibVersion/_20"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="faceletTaglib_2_0.ecore#//GenericBooleanBase">
+ <genEnumLiterals ecoreEnumLiteral="faceletTaglib_2_0.ecore#//GenericBooleanBase/true"/>
+ <genEnumLiterals ecoreEnumLiteral="faceletTaglib_2_0.ecore#//GenericBooleanBase/false"/>
+ <genEnumLiterals ecoreEnumLiteral="faceletTaglib_2_0.ecore#//GenericBooleanBase/yes"/>
+ <genEnumLiterals ecoreEnumLiteral="faceletTaglib_2_0.ecore#//GenericBooleanBase/no"/>
+ </genEnums>
+ <genDataTypes ecoreDataType="faceletTaglib_2_0.ecore#//FaceletTaglibVersionTypeObject"/>
+ <genDataTypes ecoreDataType="faceletTaglib_2_0.ecore#//FullyQualifiedClassBase"/>
+ <genDataTypes ecoreDataType="faceletTaglib_2_0.ecore#//JavaIdentifierBase"/>
+ <genDataTypes ecoreDataType="faceletTaglib_2_0.ecore#//PathTypeBase"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//Description"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//DisplayName"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//DocumentRoot">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//DocumentRoot/mixed"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//DocumentRoot/xMLNSPrefixMap"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//DocumentRoot/xSISchemaLocation"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//DocumentRoot/faceletTaglib"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibCanonicalName">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibCanonicalName/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibCanonicalName/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibFunction">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibFunction/functionName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibFunction/functionClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibFunction/functionSignature"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/nameElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/requiredElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/typeElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/methodSignatureElement"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/required"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/type"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagAttribute/methodSignature"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagBehaviorExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagBehaviorExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagBehaviorExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagBehavior">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagBehavior/behaviorId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagBehavior/handlerClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagBehavior/behaviorExtension"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagComponentExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagComponentExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagComponentExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagComponent">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagComponent/componentType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagComponent/rendererType"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagComponent/handlerClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagComponent/componentExtension"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagConverterExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagConverterExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagConverterExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagConverter">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagConverter/converterId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagConverter/handlerClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagConverter/converterExtension"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTag">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/tagNameElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/handlerClassElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/behavior"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/component"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/converter"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/validator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/source"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/attribute"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTag/tagExtension"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTag/tagName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTag/handlerClass"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagValidatorExtension">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagValidatorExtension/any"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglibTagValidatorExtension/id"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglibTagValidator">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagValidator/validatorId"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagValidator/handlerClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglibTagValidator/validatorExtension"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FaceletTaglib">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/libraryClass"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/namespace"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/compositeLibraryName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglib/group"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/tag"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/function"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//FaceletTaglib/taglibExtension"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglib/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglib/version"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//FaceletTaglib/namespaceUri"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//FullyQualifiedClass"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//GenericBoolean"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//Icon">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//Icon/smallIcon"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//Icon/largeIcon"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//Icon/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//Icon/lang"/>
+ </genClasses>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//JavaIdentifier"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//Path"/>
+ <genClasses ecoreClass="faceletTaglib_2_0.ecore#//IdentifiableStringValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//IdentifiableStringValue/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//IdentifiableStringValue/id"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="faceletTaglib_2_0.ecore#//IdentifiableLangStringValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib_2_0.ecore#//IdentifiableLangStringValue/lang"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/description"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/displayName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/icon"/>
+ <genOperations ecoreOperation="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDescription">
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDescription/language"/>
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDescription/separationString"/>
+ </genOperations>
+ <genOperations ecoreOperation="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDefaultDescription">
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDefaultDescription/separationString"/>
+ </genOperations>
+ <genOperations ecoreOperation="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDisplayName">
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDisplayName/language"/>
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDisplayName/separationString"/>
+ </genOperations>
+ <genOperations ecoreOperation="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDefaultDisplayName">
+ <genParameters ecoreParameter="faceletTaglib_2_0.ecore#//UserVisibleTaglibObject/getDefaultDisplayName/separationString"/>
+ </genOperations>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib.xsd b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib.xsd
new file mode 100644
index 000000000..0184ab54c
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/facelet-taglib.xsd
@@ -0,0 +1,509 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+
+<xsd:schema
+ targetNamespace="http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="2.0" xmlns:javaee="http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <xsd:include schemaLocation="javaee_5.xsd"/>
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the
+ GNU General Public License Version 2 only ("GPL") or the Common
+ Development and Distribution License("CDDL") (collectively, the
+ "License"). You may not use this file except in compliance with
+ the License. You can obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL.html or
+ glassfish/bootstrap/legal/LICENSE.txt. See the License for the
+ specific language governing permissions and limitations under the
+ License.
+
+ When distributing the software, include this License Header
+ Notice in each file and include the License file at
+ glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
+ particular file as subject to the "Classpath" exception as
+ provided by Sun in the GPL Version 2 section of the License file
+ that accompanied this code. If applicable, add the following
+ below the License Header, with the fields enclosed by brackets []
+ replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the
+ CDDL or only the GPL Version 2, indicate your decision by adding
+ "[Contributor] elects to include this software in this
+ distribution under the [CDDL or GPL Version 2] license." If you
+ don't indicate a single choice of license, a recipient has the
+ option to distribute your version of this file under either the
+ CDDL, the GPL Version 2 or to extend the choice of license to its
+ licensees as provided above. However, if you add GPL Version 2
+ code and therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+<xsd:annotation>
+ <xsd:documentation>
+
+ <![CDATA[
+
+ The XML Schema for the Tag Libraries in the JavaServer Faces
+ Standard Facelets View Declaration Language (Facelets VDL)
+ (Version 2.0).
+
+ JSF 2.0 Facelet Tag Libraries that wish to conform to this
+ schema must declare it in the following manner.
+
+ <facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd"
+ version="2.0">
+
+ ...
+
+ </facelet-taglib>
+
+ The instance documents may indicate the published
+ version of the schema using xsi:schemaLocation attribute
+ for javaee namespace with the following location:
+
+ http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd
+
+ ]]>
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+
+
+ <xsd:element name="facelet-taglib" type="javaee:facelet-taglibType">
+ <xsd:unique name="facelet-taglib-tagname-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ tag-names must be unique within a document.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:tag"/>
+ <xsd:field xpath="javaee:tag-name"/>
+ </xsd:unique>
+ <xsd:unique name="faces-config-behavior-ID-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Behavior IDs must be unique within a document.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:behavior"/>
+ <xsd:field xpath="javaee:behavior-id"/>
+ </xsd:unique>
+ <xsd:unique name="faces-config-converter-ID-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Converter IDs must be unique within a document.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:converter"/>
+ <xsd:field xpath="javaee:converter-id"/>
+ </xsd:unique>
+ <xsd:unique name="faces-config-validator-ID-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Validator IDs must be unique within a document.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:validator"/>
+ <xsd:field xpath="javaee:validator-id"/>
+ </xsd:unique>
+ </xsd:element>
+ <xsd:complexType name="facelet-taglibType">
+ <xsd:annotation>
+ <xsd:documentation>
+ The top level XML element in a facelet tag library XML file.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:choice>
+ <xsd:element name="library-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:sequence>
+ <xsd:element name="namespace" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="composite-library-name"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="tag"
+ type="javaee:facelet-taglib-tagType"/>
+ <xsd:element name="function"
+ type="javaee:facelet-taglib-functionType"/>
+
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:choice>
+ <xsd:element name="taglib-extension"
+ type="javaee:facelet-taglib-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ <xsd:attribute name="version"
+ type="javaee:facelet-taglib-versionType"
+ use="required"/>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for facelet-taglib. It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="facelet-taglib-tagType">
+ <xsd:annotation>
+ <xsd:documentation>
+ If the tag library XML file contains individual tag
+ declarations rather than pointing to a library-class or a
+ declaring a composite-library name, the individual tags are
+ enclosed in tag elements.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="tag-name"
+ type="javaee:facelet-taglib-canonical-nameType"/>
+ <xsd:choice>
+ <xsd:element name="handler-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="behavior"
+ type="javaee:facelet-taglib-tag-behaviorType"/>
+ <xsd:element name="component"
+ type="javaee:facelet-taglib-tag-componentType"/>
+ <xsd:element name="converter"
+ type="javaee:facelet-taglib-tag-converterType"/>
+ <xsd:element name="validator"
+ type="javaee:facelet-taglib-tag-validatorType"/>
+ <xsd:element name="source" type="javaee:string"/>
+ </xsd:choice>
+ <xsd:element name="attribute"
+ type="javaee:facelet-taglib-tag-attributeType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="tag-extension"
+ type="javaee:facelet-taglib-tag-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="facelet-taglib-tag-attributeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The attribute element defines an attribute for the nesting
+ tag. The attribute element may have several subelements
+ defining:
+
+ description a description of the attribute
+
+ name the name of the attribute
+
+ required whether the attribute is required or
+ optional
+
+ type the type of the attribute
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="name"
+ type="javaee:xsdNMTOKENType"/>
+ <xsd:element name="required"
+ type="javaee:generic-booleanType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines if the nesting attribute is required or
+ optional.
+
+ If not present then the default is "false", i.e
+ the attribute is optional.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:choice>
+ <xsd:element name="type"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the Java type of the attributes
+ value. If this element is omitted, the
+ expected type is assumed to be
+ "java.lang.Object".
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="method-signature"
+ type="javaee:string"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the method signature for a MethodExpression-
+ enabled attribute.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="facelet-taglib-tag-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for tag It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="facelet-taglib-functionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ If the tag library XML file contains individual function
+ declarations rather than pointing to a library-class or a
+ declaring a composite-library name, the individual functions are
+ enclosed in function elements.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="function-name" type="javaee:string"/>
+ <xsd:element name="function-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="function-signature" type="javaee:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-behaviorType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Within a tag element, the behavior element encapsulates
+ information specific to a JSF Behavior.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element minOccurs="1" maxOccurs="1"
+ name="behavior-id" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="handler-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="behavior-extension"
+ type="javaee:facelet-taglib-tag-behavior-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-behavior-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for behavior. It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-componentType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Within a tag element, the component element encapsulates
+ information specific to a JSF UIComponent.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="component-type" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="renderer-type" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="handler-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="component-extension"
+ type="javaee:facelet-taglib-tag-component-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-component-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for component It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="facelet-taglib-tag-converterType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Within a tag element, the converter element encapsulates
+ information specific to a JSF Converter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element minOccurs="1" maxOccurs="1"
+ name="converter-id" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="handler-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="converter-extension"
+ type="javaee:facelet-taglib-tag-converter-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-converter-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for converter It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="facelet-taglib-tag-validatorType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Within a tag element, the validator element encapsulates
+ information specific to a JSF Validator.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element minOccurs="1" maxOccurs="1"
+ name="validator-id" type="javaee:string"/>
+ <xsd:element minOccurs="0" maxOccurs="1"
+ name="handler-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="validator-extension"
+ type="javaee:facelet-taglib-tag-validator-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="facelet-taglib-tag-validator-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extension element for validator It may contain
+ implementation specific content.
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:any namespace="##any"
+ processContents="lax"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+ <xsd:simpleType name="facelet-taglib-versionType">
+ <xsd:annotation>
+ <xsd:documentation>
+ This type contains the recognized versions of
+ facelet-taglib supported.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="2.0"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="facelet-taglib-canonical-nameType">
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the canonical name of a tag or attribute being
+ defined.
+
+ The name must conform to the lexical rules for an NCName
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:NCName">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.ecore b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.ecore
index e6c801da7..16278c954 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.ecore
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.ecore
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="faceletTaglib"
- nsURI="http://org.eclipse.jst.jsf.facelet.core/faceletTaglib.ecore" nsPrefix="faceletTaglib">
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="faceletTaglib_1_0"
+ nsURI="http://org.eclipse.jst.jsf.facelet.core/faceletTaglib_1_0" nsPrefix="faceletTaglib_1_0">
<eClassifiers xsi:type="ecore:EClass" name="FaceletLibraryClassTagLib" eSuperTypes="#//FaceletTaglibDefn">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="libraryClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.genmodel b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.genmodel
index 54e07e903..21ca89dc2 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.genmodel
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib.genmodel
@@ -2,10 +2,10 @@
<genmodel:GenModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.jst.jsf.facelet.core/src"
- modelPluginID="org.eclipse.jst.jsf.facelet.core" modelName="FaceletTaglib" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="5.0" copyrightFields="false">
+ modelPluginID="org.eclipse.jst.jsf.facelet.core" modelName="FaceletTaglib" nonNLSMarkers="true"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false">
<foreignModel>faceletTaglib.ecore</foreignModel>
- <genPackages prefix="FaceletTaglib" basePackage="org.eclipse.jst.jsf.facelet.core.internal.registry.taglib"
+ <genPackages prefix="FaceletTaglib_1_0" basePackage="org.eclipse.jst.jsf.facelet.core.internal.registry.taglib"
disposableProviderFactory="true" ecorePackage="faceletTaglib.ecore#/">
<genClasses ecoreClass="faceletTaglib.ecore#//FaceletLibraryClassTagLib">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute faceletTaglib.ecore#//FaceletLibraryClassTagLib/libraryClass"/>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib_2_0.ecore b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib_2_0.ecore
new file mode 100644
index 000000000..54c764f2f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/faceletTaglib_2_0.ecore
@@ -0,0 +1,877 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="faceletTaglib"
+ nsURI="http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0" nsPrefix="faceletTaglib">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&#xD;&#xA; &#xD;&#xA; Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.&#xD;&#xA; &#xD;&#xA; The contents of this file are subject to the terms of either the&#xD;&#xA; GNU General Public License Version 2 only (&quot;GPL&quot;) or the Common&#xD;&#xA; Development and Distribution License(&quot;CDDL&quot;) (collectively, the&#xD;&#xA; &quot;License&quot;). You may not use this file except in compliance with&#xD;&#xA; the License. You can obtain a copy of the License at&#xD;&#xA; https://glassfish.dev.java.net/public/CDDL+GPL.html or&#xD;&#xA; glassfish/bootstrap/legal/LICENSE.txt. See the License for the&#xD;&#xA; specific language governing permissions and limitations under the&#xD;&#xA; License.&#xD;&#xA; &#xD;&#xA; When distributing the software, include this License Header&#xD;&#xA; Notice in each file and include the License file at&#xD;&#xA; glassfish/bootstrap/legal/LICENSE.txt. Sun designates this&#xD;&#xA; particular file as subject to the &quot;Classpath&quot; exception as&#xD;&#xA; provided by Sun in the GPL Version 2 section of the License file&#xD;&#xA; that accompanied this code. If applicable, add the following&#xD;&#xA; below the License Header, with the fields enclosed by brackets []&#xD;&#xA; replaced by your own identifying information:&#xD;&#xA; &quot;Portions Copyrighted [year] [name of copyright owner]&quot;&#xD;&#xA; &#xD;&#xA; Contributor(s):&#xD;&#xA; &#xD;&#xA; If you wish your version of this file to be governed by only the&#xD;&#xA; CDDL or only the GPL Version 2, indicate your decision by adding&#xD;&#xA; &quot;[Contributor] elects to include this software in this&#xD;&#xA; distribution under the [CDDL or GPL Version 2] license.&quot; If you&#xD;&#xA; don't indicate a single choice of license, a recipient has the&#xD;&#xA; option to distribute your version of this file under either the&#xD;&#xA; CDDL, the GPL Version 2 or to extend the choice of license to its&#xD;&#xA; licensees as provided above. However, if you add GPL Version 2&#xD;&#xA; code and therefore, elected the GPL Version 2 license, then the&#xD;&#xA; option applies only if the new code is made subject to such&#xD;&#xA; option by the copyright holder.&#xD;&#xA; &#xD;&#xA; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA; &lt;![CDATA[&#xD;&#xA;&#xD;&#xA; The XML Schema for the Tag Libraries in the JavaServer Faces&#xD;&#xA; Standard Facelets View Declaration Language (Facelets VDL)&#xD;&#xA; (Version 2.0).&#xD;&#xA;&#xD;&#xA; JSF 2.0 Facelet Tag Libraries that wish to conform to this&#xD;&#xA; schema must declare it in the following manner.&#xD;&#xA;&#xD;&#xA; &lt;facelet-taglib xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;&#xD;&#xA; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&#xD;&#xA; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd&quot;&#xD;&#xA; version=&quot;2.0&quot;>&#xD;&#xA;&#xD;&#xA; ...&#xD;&#xA;&#xD;&#xA; &lt;/facelet-taglib>&#xD;&#xA;&#xD;&#xA; The instance documents may indicate the published&#xD;&#xA; version of the schema using xsi:schemaLocation attribute&#xD;&#xA; for javaee namespace with the following location:&#xD;&#xA;&#xD;&#xA; http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd&#xD;&#xA;&#xD;&#xA; ]]>&#xD;&#xA;&#xD;&#xA; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.&#xD;&#xA; &#xD;&#xA; Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.&#xD;&#xA; &#xD;&#xA; The contents of this file are subject to the terms of either the&#xD;&#xA; GNU General Public License Version 2 only (&quot;GPL&quot;) or the Common&#xD;&#xA; Development and Distribution License(&quot;CDDL&quot;) (collectively, the&#xD;&#xA; &quot;License&quot;). You may not use this file except in compliance with&#xD;&#xA; the License. You can obtain a copy of the License at&#xD;&#xA; https://glassfish.dev.java.net/public/CDDL+GPL.html or&#xD;&#xA; glassfish/bootstrap/legal/LICENSE.txt. See the License for the&#xD;&#xA; specific language governing permissions and limitations under the&#xD;&#xA; License.&#xD;&#xA; &#xD;&#xA; When distributing the software, include this License Header&#xD;&#xA; Notice in each file and include the License file at&#xD;&#xA; glassfish/bootstrap/legal/LICENSE.txt. Sun designates this&#xD;&#xA; particular file as subject to the &quot;Classpath&quot; exception as&#xD;&#xA; provided by Sun in the GPL Version 2 section of the License file&#xD;&#xA; that accompanied this code. If applicable, add the following&#xD;&#xA; below the License Header, with the fields enclosed by brackets []&#xD;&#xA; replaced by your own identifying information:&#xD;&#xA; &quot;Portions Copyrighted [year] [name of copyright owner]&quot;&#xD;&#xA; &#xD;&#xA; Contributor(s):&#xD;&#xA; &#xD;&#xA; If you wish your version of this file to be governed by only the&#xD;&#xA; CDDL or only the GPL Version 2, indicate your decision by adding&#xD;&#xA; &quot;[Contributor] elects to include this software in this&#xD;&#xA; distribution under the [CDDL or GPL Version 2] license.&quot; If you&#xD;&#xA; don't indicate a single choice of license, a recipient has the&#xD;&#xA; option to distribute your version of this file under either the&#xD;&#xA; CDDL, the GPL Version 2 or to extend the choice of license to its&#xD;&#xA; licensees as provided above. However, if you add GPL Version 2&#xD;&#xA; code and therefore, elected the GPL Version 2 license, then the&#xD;&#xA; option applies only if the new code is made subject to such&#xD;&#xA; option by the copyright holder.&#xD;&#xA; &#xD;&#xA; &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The following definitions that appear in the common&#xD;&#xA;shareable schema(s) of J2EE deployment descriptors should be&#xD;&#xA;interpreted with respect to the context they are included:&#xD;&#xA;&#xD;&#xA;Deployment Component may indicate one of the following:&#xD;&#xA; j2ee application;&#xD;&#xA; application client;&#xD;&#xA; web application;&#xD;&#xA; enterprise bean;&#xD;&#xA; resource adapter;&#xD;&#xA;&#xD;&#xA;Deployment File may indicate one of the following:&#xD;&#xA; ear file;&#xD;&#xA; war file;&#xD;&#xA; jar file;&#xD;&#xA; rar file;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &lt;h1>About the XML namespace&lt;/h1>&#xD;&#xA;&#xD;&#xA; &lt;div class=&quot;bodytext&quot;>&#xD;&#xA; &lt;p>&#xD;&#xA; This schema document describes the XML namespace, in a form&#xD;&#xA; suitable for import by other schema documents.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; See &lt;a href=&quot;http://www.w3.org/XML/1998/namespace.html&quot;>&#xD;&#xA; http://www.w3.org/XML/1998/namespace.html&lt;/a> and&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/TR/REC-xml&quot;>&#xD;&#xA; http://www.w3.org/TR/REC-xml&lt;/a> for information &#xD;&#xA; about this namespace.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; Note that local names in this namespace are intended to be&#xD;&#xA; defined only by the World Wide Web Consortium or its subgroups.&#xD;&#xA; The names currently defined in this namespace are listed below.&#xD;&#xA; They should not be used with conflicting semantics by any Working&#xD;&#xA; Group, specification, or document instance.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p> &#xD;&#xA; See further below in this document for more information about &lt;a href=&quot;#usage&quot;>how to refer to this schema document from your own&#xD;&#xA; XSD schema documents&lt;/a> and about &lt;a href=&quot;#nsversioning&quot;>the&#xD;&#xA; namespace-versioning policy governing this schema document&lt;/a>.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;/div>&#xD;&#xA; &#xD;&#xA;&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &#xD;&#xA; &lt;h3>Father (in any context at all)&lt;/h3> &#xD;&#xA;&#xD;&#xA; &lt;div class=&quot;bodytext&quot;>&#xD;&#xA; &lt;p>&#xD;&#xA; denotes Jon Bosak, the chair of &#xD;&#xA; the original XML Working Group. This name is reserved by &#xD;&#xA; the following decision of the W3C XML Plenary and &#xD;&#xA; XML Coordination groups:&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;blockquote>&#xD;&#xA; &lt;p>&#xD;&#xA;&#x9;In appreciation for his vision, leadership and&#xD;&#xA;&#x9;dedication the W3C XML Plenary on this 10th day of&#xD;&#xA;&#x9;February, 2000, reserves for Jon Bosak in perpetuity&#xD;&#xA;&#x9;the XML name &quot;xml:Father&quot;.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;/blockquote>&#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;/div>&#xD;&#xA; &#xD;&#xA;&#xD;&#xA; &lt;div id=&quot;usage&quot; xml:id=&quot;usage&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &lt;h2>&#xD;&#xA; &lt;a name=&quot;usage&quot;>About this schema document&lt;/a>&#xD;&#xA; &lt;/h2>&#xD;&#xA;&#xD;&#xA; &lt;div class=&quot;bodytext&quot;>&#xD;&#xA; &lt;p>&#xD;&#xA; This schema defines attributes and an attribute group suitable&#xD;&#xA; for use by schemas wishing to allow &lt;code>xml:base&lt;/code>,&#xD;&#xA; &lt;code>xml:lang&lt;/code>, &lt;code>xml:space&lt;/code> or&#xD;&#xA; &lt;code>xml:id&lt;/code> attributes on elements they define.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; To enable this, such a schema must import this schema for&#xD;&#xA; the XML namespace, e.g. as follows:&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;pre>&#xD;&#xA; &amp;lt;schema . . .&amp;gt;&#xD;&#xA; . . .&#xD;&#xA; &amp;lt;import namespace=&quot;http://www.w3.org/XML/1998/namespace&quot;&#xD;&#xA; schemaLocation=&quot;http://www.w3.org/2001/xml.xsd&quot;/&amp;gt;&#xD;&#xA; &lt;/pre>&#xD;&#xA; &lt;p>&#xD;&#xA; or&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;pre>&#xD;&#xA; &amp;lt;import namespace=&quot;http://www.w3.org/XML/1998/namespace&quot;&#xD;&#xA; schemaLocation=&quot;http://www.w3.org/2009/01/xml.xsd&quot;/&amp;gt;&#xD;&#xA; &lt;/pre>&#xD;&#xA; &lt;p>&#xD;&#xA; Subsequently, qualified reference to any of the attributes or the&#xD;&#xA; group defined below will have the desired effect, e.g.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;pre>&#xD;&#xA; &amp;lt;type . . .&amp;gt;&#xD;&#xA; . . .&#xD;&#xA; &amp;lt;attributeGroup ref=&quot;xml:specialAttrs&quot;/&amp;gt;&#xD;&#xA; &lt;/pre>&#xD;&#xA; &lt;p>&#xD;&#xA; will define a type which will schema-validate an instance element&#xD;&#xA; with any of those attributes.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;/div>&#xD;&#xA; &#xD;&#xA;&#xD;&#xA; &lt;div id=&quot;nsversioning&quot; xml:id=&quot;nsversioning&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &lt;h2>&#xD;&#xA; &lt;a name=&quot;nsversioning&quot;>Versioning policy for this schema document&lt;/a>&#xD;&#xA; &lt;/h2>&#xD;&#xA; &lt;div class=&quot;bodytext&quot;>&#xD;&#xA; &lt;p>&#xD;&#xA; In keeping with the XML Schema WG's standard versioning&#xD;&#xA; policy, this schema document will persist at&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2009/01/xml.xsd&quot;>&#xD;&#xA; http://www.w3.org/2009/01/xml.xsd&lt;/a>.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; At the date of issue it can also be found at&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2001/xml.xsd&quot;>&#xD;&#xA; http://www.w3.org/2001/xml.xsd&lt;/a>.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; The schema document at that URI may however change in the future,&#xD;&#xA; in order to remain compatible with the latest version of XML&#xD;&#xA; Schema itself, or with the XML namespace itself. In other words,&#xD;&#xA; if the XML Schema or XML namespaces change, the version of this&#xD;&#xA; document at &lt;a href=&quot;http://www.w3.org/2001/xml.xsd&quot;>&#xD;&#xA; http://www.w3.org/2001/xml.xsd &#xD;&#xA; &lt;/a> &#xD;&#xA; will change accordingly; the version at &#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2009/01/xml.xsd&quot;>&#xD;&#xA; http://www.w3.org/2009/01/xml.xsd &#xD;&#xA; &lt;/a> &#xD;&#xA; will not change.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; Previous dated (and unchanging) versions of this schema &#xD;&#xA; document are at:&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;ul>&#xD;&#xA; &lt;li>&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2009/01/xml.xsd&quot;>&#xD;&#xA;&#x9;http://www.w3.org/2009/01/xml.xsd&lt;/a>&#xD;&#xA; &lt;/li>&#xD;&#xA; &lt;li>&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2007/08/xml.xsd&quot;>&#xD;&#xA;&#x9;http://www.w3.org/2007/08/xml.xsd&lt;/a>&#xD;&#xA; &lt;/li>&#xD;&#xA; &lt;li>&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2004/10/xml.xsd&quot;>&#xD;&#xA;&#x9;http://www.w3.org/2004/10/xml.xsd&lt;/a>&#xD;&#xA; &lt;/li>&#xD;&#xA; &lt;li>&#xD;&#xA; &lt;a href=&quot;http://www.w3.org/2001/03/xml.xsd&quot;>&#xD;&#xA;&#x9;http://www.w3.org/2001/03/xml.xsd&lt;/a>&#xD;&#xA; &lt;/li>&#xD;&#xA; &lt;/ul>&#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;/div>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Description" eSuperTypes="#//IdentifiableLangStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The description type is used by a description element to&#xD;&#xA; provide text describing the parent element. The elements&#xD;&#xA; that use this type should include any information that the&#xD;&#xA; Deployment Component's Deployment File file producer wants&#xD;&#xA; to provide to the consumer of the Deployment Component's&#xD;&#xA; Deployment File (i.e., to the Deployer). Typically, the&#xD;&#xA; tools used by such a Deployment File consumer will display&#xD;&#xA; the description when processing the parent element that&#xD;&#xA; contains the description.&#xD;&#xA;&#xD;&#xA; The lang attribute defines the language that the&#xD;&#xA; description is provided in. The default value is &quot;en&quot; (English).&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="descriptionType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DisplayName" eSuperTypes="#//IdentifiableLangStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; &lt;![CDATA[&#xD;&#xA;&#xD;&#xA; The display-name type contains a short name that is intended&#xD;&#xA; to be displayed by tools. It is used by display-name&#xD;&#xA; elements. The display name need not be unique.&#xD;&#xA;&#xD;&#xA; Example:&#xD;&#xA;&#xD;&#xA; ...&#xD;&#xA; &lt;display-name xml:lang=&quot;en&quot;>&#xD;&#xA; Employee Self Service&#xD;&#xA; &lt;/display-name>&#xD;&#xA;&#xD;&#xA; The value of the xml:lang attribute is &quot;en&quot; (English) by default.&#xD;&#xA;&#xD;&#xA; ]]>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="display-nameType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=""/>
+ <details key="kind" value="mixed"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="name" value=":mixed"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xmlns:prefix"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xsi:schemaLocation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="faceletTaglib" upperBound="-2"
+ eType="#//FaceletTaglib" volatile="true" transient="true" derived="true" containment="true"
+ resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="facelet-taglib"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibCanonicalName">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; Defines the canonical name of a tag or attribute being&#xD;&#xA; defined.&#xD;&#xA;&#xD;&#xA; The name must conform to the lexical rules for an NCName&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-canonical-nameType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//NCName">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=":0"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for facelet-taglib. It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibFunction" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; If the tag library XML file contains individual function&#xD;&#xA; declarations rather than pointing to a library-class or a&#xD;&#xA; declaring a composite-library name, the individual functions are&#xD;&#xA; enclosed in function elements.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-functionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="functionName" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="function-name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="functionClass" lowerBound="1"
+ eType="#//FullyQualifiedClass" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="function-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="functionSignature" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="function-signature"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagAttribute" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The attribute element defines an attribute for the nesting&#xD;&#xA; tag. The attribute element may have several subelements&#xD;&#xA; defining:&#xD;&#xA;&#xD;&#xA; description a description of the attribute&#xD;&#xA;&#xD;&#xA; name the name of the attribute&#xD;&#xA;&#xD;&#xA; required whether the attribute is required or&#xD;&#xA; optional&#xD;&#xA;&#xD;&#xA; type the type of the attribute&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-attributeType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nameElement" lowerBound="1"
+ eType="#//FaceletTaglibCanonicalName" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="requiredElement" eType="#//GenericBoolean"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; Defines if the nesting attribute is required or&#xD;&#xA; optional.&#xD;&#xA;&#xD;&#xA; If not present then the default is &quot;false&quot;, i.e&#xD;&#xA; the attribute is optional.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="required"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeElement" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; Defines the Java type of the attributes&#xD;&#xA; value. If this element is omitted, the&#xD;&#xA; expected type is assumed to be&#xD;&#xA; &quot;java.lang.Object&quot;.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="type"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="methodSignatureElement"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; Defines the method signature for a MethodExpression-&#xD;&#xA; enabled attribute.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="method-signature"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodSignature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagBehaviorExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for behavior. It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-behavior-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagBehavior" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Within a tag element, the behavior element encapsulates&#xD;&#xA; information specific to a JSF Behavior.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-behaviorType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorId" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="behavior-id"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerClass" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="handler-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorExtension" upperBound="-1"
+ eType="#//FaceletTaglibTagBehaviorExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="behavior-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagComponentExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for component It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-component-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagComponent" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Within a tag element, the component element encapsulates&#xD;&#xA; information specific to a JSF UIComponent.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-componentType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="componentType" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="component-type"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rendererType" eType="#//IdentifiableStringValue"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="renderer-type"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerClass" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="handler-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="componentExtension" upperBound="-1"
+ eType="#//FaceletTaglibTagComponentExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="component-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagConverterExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for converter It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-converter-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagConverter" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Within a tag element, the converter element encapsulates&#xD;&#xA; information specific to a JSF Converter.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-converterType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="converterId" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="converter-id"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerClass" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="handler-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="converterExtension" upperBound="-1"
+ eType="#//FaceletTaglibTagConverterExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="converter-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for tag It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTag" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; If the tag library XML file contains individual tag&#xD;&#xA; declarations rather than pointing to a library-class or a&#xD;&#xA; declaring a composite-library name, the individual tags are&#xD;&#xA; enclosed in tag elements.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tagType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tagNameElement" lowerBound="1"
+ eType="#//FaceletTaglibCanonicalName" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="tag-name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerClassElement" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="handler-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" eType="#//FaceletTaglibTagBehavior"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="behavior"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="component" eType="#//FaceletTaglibTagComponent"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="component"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="converter" eType="#//FaceletTaglibTagConverter"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="converter"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validator" eType="#//FaceletTaglibTagValidator"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="validator"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//IdentifiableStringValue"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="source"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" upperBound="-1"
+ eType="#//FaceletTaglibTagAttribute" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="attribute"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tagExtension" upperBound="-1"
+ eType="#//FaceletTaglibTagExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="tag-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="handlerClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagValidatorExtension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Extension element for validator It may contain&#xD;&#xA; implementation specific content.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-validator-extensionType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="wildcards" value="##any"/>
+ <details key="name" value=":0"/>
+ <details key="processing" value="lax"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglibTagValidator" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; Within a tag element, the validator element encapsulates&#xD;&#xA; information specific to a JSF Validator.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-tag-validatorType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <details key="name" value="facelet-taglib-tag-validatorType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validatorId" lowerBound="1"
+ eType="#//IdentifiableStringValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="validator-id"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerClass" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="handler-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validatorExtension" upperBound="-1"
+ eType="#//FaceletTaglibTagValidatorExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="validator-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FaceletTaglib" eSuperTypes="#//UserVisibleTaglibObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; The top level XML element in a facelet tag library XML file.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglibType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="libraryClass" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="library-class"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//IdentifiableStringValue"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="namespace"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compositeLibraryName" eType="#//FullyQualifiedClass"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="composite-library-name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:6"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="tag" upperBound="-1" eType="#//FaceletTaglibTag"
+ volatile="true" transient="true" derived="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="tag"/>
+ <details key="namespace" value="##targetNamespace"/>
+ <details key="group" value="#group:6"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" upperBound="-1"
+ eType="#//FaceletTaglibFunction" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="function"/>
+ <details key="namespace" value="##targetNamespace"/>
+ <details key="group" value="#group:6"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="taglibExtension" upperBound="-1"
+ eType="#//FaceletTaglibExtension" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="taglib-extension"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" lowerBound="1"
+ eType="#//FaceletTaglibVersion" unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="version"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceUri" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Token"
+ volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FaceletTaglibVersion">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; This type contains the recognized versions of&#xD;&#xA; facelet-taglib supported.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-versionType"/>
+ </eAnnotations>
+ <eLiterals name="_20" literal="2.0"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="FaceletTaglibVersionTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="facelet-taglib-versionType:Object"/>
+ <details key="baseType" value="facelet-taglib-versionType"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FullyQualifiedClass" eSuperTypes="#//IdentifiableStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The elements that use this type designate the name of a&#xD;&#xA; Java class or interface. The name is in the form of a&#xD;&#xA; &quot;binary name&quot;, as defined in the JLS. This is the form&#xD;&#xA; of name used in Class.forName(). Tools that need the&#xD;&#xA; canonical name (the name used in source code) will need&#xD;&#xA; to convert this binary name to the canonical name.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="fully-qualified-classType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="FullyQualifiedClassBase" instanceClassName="java.lang.String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="fully-qualified-classType_._base"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenericBoolean" eSuperTypes="#//IdentifiableStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; This type defines four different values which can designate&#xD;&#xA; boolean values. This includes values yes and no which are&#xD;&#xA; not designated by xsd:boolean&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="generic-booleanType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenericBooleanBase">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="generic-booleanType_._base"/>
+ </eAnnotations>
+ <eLiterals name="true"/>
+ <eLiterals name="false" value="1"/>
+ <eLiterals name="yes" value="2"/>
+ <eLiterals name="no" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Icon">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The icon type contains small-icon and large-icon elements&#xD;&#xA; that specify the file names for small and large GIF, JPEG,&#xD;&#xA; or PNG icon images used to represent the parent element in a&#xD;&#xA; GUI tool.&#xD;&#xA;&#xD;&#xA; The xml:lang attribute defines the language that the&#xD;&#xA; icon file names are provided in. Its value is &quot;en&quot; (English)&#xD;&#xA; by default.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="iconType"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="smallIcon" eType="#//Path"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; &lt;![CDATA[&#xD;&#xA;&#xD;&#xA; The small-icon element contains the name of a file&#xD;&#xA; containing a small (16 x 16) icon image. The file&#xD;&#xA; name is a relative path within the Deployment&#xD;&#xA; Component's Deployment File.&#xD;&#xA;&#xD;&#xA; The image may be in the GIF, JPEG, or PNG format.&#xD;&#xA; The icon can be used by tools.&#xD;&#xA;&#xD;&#xA; Example:&#xD;&#xA;&#xD;&#xA; &lt;small-icon>employee-service-icon16x16.jpg&lt;/small-icon>&#xD;&#xA;&#xD;&#xA; ]]>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="small-icon"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="largeIcon" eType="#//Path"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; &lt;![CDATA[&#xD;&#xA;&#xD;&#xA; The large-icon element contains the name of a file&#xD;&#xA; containing a large&#xD;&#xA; (32 x 32) icon image. The file name is a relative&#xD;&#xA; path within the Deployment Component's Deployment&#xD;&#xA; File.&#xD;&#xA;&#xD;&#xA; The image may be in the GIF, JPEG, or PNG format.&#xD;&#xA; The icon can be used by tools.&#xD;&#xA;&#xD;&#xA; Example:&#xD;&#xA;&#xD;&#xA; &lt;large-icon>employee-service-icon32x32.jpg&lt;/large-icon>&#xD;&#xA;&#xD;&#xA; ]]>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="large-icon"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lang" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &#xD;&#xA; &lt;h3>lang (as an attribute name)&lt;/h3>&#xD;&#xA; &lt;p>&#xD;&#xA; denotes an attribute whose value&#xD;&#xA; is a language code for the natural language of the content of&#xD;&#xA; any element; its value is inherited. This name is reserved&#xD;&#xA; by virtue of its definition in the XML specification.&lt;/p>&#xD;&#xA; &#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &lt;h4>Notes&lt;/h4>&#xD;&#xA; &lt;p>&#xD;&#xA; Attempting to install the relevant ISO 2- and 3-letter&#xD;&#xA; codes as the enumerated possible values is probably never&#xD;&#xA; going to be a realistic possibility. &#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; See BCP 47 at &lt;a href=&quot;http://www.rfc-editor.org/rfc/bcp/bcp47.txt&quot;>&#xD;&#xA; http://www.rfc-editor.org/rfc/bcp/bcp47.txt&lt;/a>&#xD;&#xA; and the IANA language subtag registry at&#xD;&#xA; &lt;a href=&quot;http://www.iana.org/assignments/language-subtag-registry&quot;>&#xD;&#xA; http://www.iana.org/assignments/language-subtag-registry&lt;/a>&#xD;&#xA; for further information.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; The union allows for the 'un-declaration' of xml:lang with&#xD;&#xA; the empty string.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;/div>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="lang"/>
+ <details key="namespace" value="http://www.w3.org/XML/1998/namespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaIdentifier" eSuperTypes="#//IdentifiableStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The java-identifierType defines a Java identifier.&#xD;&#xA; The users of this type should further verify that&#xD;&#xA; the content does not contain Java reserved keywords.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="java-identifierType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="JavaIdentifierBase" instanceClassName="java.lang.String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="java-identifierType_._base"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
+ <details key="pattern" value="($|_|\p{L})(\p{L}|\p{Nd}|_|$)*"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Path" eSuperTypes="#//IdentifiableStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; The elements that use this type designate either a relative&#xD;&#xA; path or an absolute path starting with a &quot;/&quot;.&#xD;&#xA;&#xD;&#xA; In elements that specify a pathname to a file within the&#xD;&#xA; same Deployment File, relative filenames (i.e., those not&#xD;&#xA; starting with &quot;/&quot;) are considered relative to the root of&#xD;&#xA; the Deployment File's namespace. Absolute filenames (i.e.,&#xD;&#xA; those starting with &quot;/&quot;) also specify names in the root of&#xD;&#xA; the Deployment File's namespace. In general, relative names&#xD;&#xA; are preferred. The exception is .war files where absolute&#xD;&#xA; names are preferred for consistency with the Servlet API.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="pathType"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="PathTypeBase" instanceClassName="java.lang.String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="pathType_._base"/>
+ <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IdentifiableStringValue">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#xD;&#xA; This is a special string datatype that is defined by Java EE as&#xD;&#xA; a base type for defining collapsed strings. When schemas&#xD;&#xA; require trailing/leading space elimination as well as&#xD;&#xA; collapsing the existing whitespace, this base type may be&#xD;&#xA; used.&#xD;&#xA;&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="string"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Token">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=":0"/>
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID"
+ iD="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IdentifiableLangStringValue" abstract="true"
+ eSuperTypes="#//IdentifiableStringValue">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lang" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &#xD;&#xA; &lt;h3>lang (as an attribute name)&lt;/h3>&#xD;&#xA; &lt;p>&#xD;&#xA; denotes an attribute whose value&#xD;&#xA; is a language code for the natural language of the content of&#xD;&#xA; any element; its value is inherited. This name is reserved&#xD;&#xA; by virtue of its definition in the XML specification.&lt;/p>&#xD;&#xA; &#xD;&#xA; &lt;/div>&#xD;&#xA; &lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>&#xD;&#xA; &lt;h4>Notes&lt;/h4>&#xD;&#xA; &lt;p>&#xD;&#xA; Attempting to install the relevant ISO 2- and 3-letter&#xD;&#xA; codes as the enumerated possible values is probably never&#xD;&#xA; going to be a realistic possibility. &#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; See BCP 47 at &lt;a href=&quot;http://www.rfc-editor.org/rfc/bcp/bcp47.txt&quot;>&#xD;&#xA; http://www.rfc-editor.org/rfc/bcp/bcp47.txt&lt;/a>&#xD;&#xA; and the IANA language subtag registry at&#xD;&#xA; &lt;a href=&quot;http://www.iana.org/assignments/language-subtag-registry&quot;>&#xD;&#xA; http://www.iana.org/assignments/language-subtag-registry&lt;/a>&#xD;&#xA; for further information.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;p>&#xD;&#xA; The union allows for the 'un-declaration' of xml:lang with&#xD;&#xA; the empty string.&#xD;&#xA; &lt;/p>&#xD;&#xA; &lt;/div>&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="lang"/>
+ <details key="namespace" value="http://www.w3.org/XML/1998/namespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UserVisibleTaglibObject" abstract="true">
+ <eOperations name="getDescription" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Iterates through all descriptions and returns a concatenated string of&#xD;&#xA;all descriptions for the specified language.&#xD;&#xA;Passing the empty string indicates descriptions with no locale.&#xD;&#xA;Passing null is invalid and will cause an NPE to be thrown."/>
+ </eAnnotations>
+ <eParameters name="language" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="separationString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A string that will be used to separate each individual description after it&#xD;&#xA;has been trimmed but before it is concatenated to the result."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getDefaultDescription" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Equivalent to getDescription(&quot;&quot;)."/>
+ </eAnnotations>
+ <eParameters name="separationString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A string that will be used to separate each individual display-name after it&#xD;&#xA;has been trimmed but before it is concatenated to the result."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getDisplayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Iterates through all display names and returns a concatenated string of&#xD;&#xA;all display names for the specified language. Passing null indicates the use of the current locale.&#xD;&#xA;Passing the empty string indicates descriptions with no locale."/>
+ </eAnnotations>
+ <eParameters name="language" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="separationString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A string that will be used to separate each individual display-name after it&#xD;&#xA;has been trimmed but before it is concatenated to the result."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eOperations name="getDefaultDisplayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Equivalent to getDisplayName(&quot;&quot;)."/>
+ </eAnnotations>
+ <eParameters name="separationString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A string that will be used to separate each individual display-name after it&#xD;&#xA;has been trimmed but before it is concatenated to the result."/>
+ </eAnnotations>
+ </eParameters>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="description" upperBound="-1"
+ eType="#//Description" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="description"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="displayName" upperBound="-1"
+ eType="#//DisplayName" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="display-name"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="icon" upperBound="-1" eType="#//Icon"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="icon"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/javaee_5.xsd b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/javaee_5.xsd
new file mode 100644
index 000000000..52b390a4d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/javaee_5.xsd
@@ -0,0 +1,2099 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema
+ targetNamespace="http://java.sun.com/xml/ns/javaee"
+ xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="5">
+ <xsd:annotation>
+ <xsd:documentation>
+ @(#)javaee_5.xsds 1.65 06/02/17
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the
+ GNU General Public License Version 2 only ("GPL") or the Common
+ Development and Distribution License("CDDL") (collectively, the
+ "License"). You may not use this file except in compliance with
+ the License. You can obtain a copy of the License at
+ https://glassfish.dev.java.net/public/CDDL+GPL.html or
+ glassfish/bootstrap/legal/LICENSE.txt. See the License for the
+ specific language governing permissions and limitations under the
+ License.
+
+ When distributing the software, include this License Header
+ Notice in each file and include the License file at
+ glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
+ particular file as subject to the "Classpath" exception as
+ provided by Sun in the GPL Version 2 section of the License file
+ that accompanied this code. If applicable, add the following
+ below the License Header, with the fields enclosed by brackets []
+ replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the
+ CDDL or only the GPL Version 2, indicate your decision by adding
+ "[Contributor] elects to include this software in this
+ distribution under the [CDDL or GPL Version 2] license." If you
+ don't indicate a single choice of license, a recipient has the
+ option to distribute your version of this file under either the
+ CDDL, the GPL Version 2 or to extend the choice of license to its
+ licensees as provided above. However, if you add GPL Version 2
+ code and therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+
+ </xsd:documentation>
+ </xsd:annotation>
+<xsd:annotation>
+<xsd:documentation>
+
+The following definitions that appear in the common
+shareable schema(s) of J2EE deployment descriptors should be
+interpreted with respect to the context they are included:
+
+Deployment Component may indicate one of the following:
+ j2ee application;
+ application client;
+ web application;
+ enterprise bean;
+ resource adapter;
+
+Deployment File may indicate one of the following:
+ ear file;
+ war file;
+ jar file;
+ rar file;
+
+</xsd:documentation>
+</xsd:annotation>
+
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+
+
+<!-- **************************************************** -->
+
+ <xsd:group name="descriptionGroup">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This group keeps the usage of the contained description related
+ elements consistent across Java EE deployment descriptors.
+
+ All elements may occur multiple times with different languages,
+ to support localization of the content.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="display-name"
+ type="javaee:display-nameType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="icon"
+ type="javaee:iconType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:group>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="descriptionType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The description type is used by a description element to
+ provide text describing the parent element. The elements
+ that use this type should include any information that the
+ Deployment Component's Deployment File file producer wants
+ to provide to the consumer of the Deployment Component's
+ Deployment File (i.e., to the Deployer). Typically, the
+ tools used by such a Deployment File consumer will display
+ the description when processing the parent element that
+ contains the description.
+
+ The lang attribute defines the language that the
+ description is provided in. The default value is "en" (English).
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="javaee:xsdStringType">
+ <xsd:attribute ref="xml:lang"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:simpleType name="dewey-versionType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type defines a dewey decimal that is used
+ to describe versions of documents.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:restriction base="xsd:token">
+ <xsd:pattern value="\.?[0-9]+(\.[0-9]+)*"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="display-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The display-name type contains a short name that is intended
+ to be displayed by tools. It is used by display-name
+ elements. The display name need not be unique.
+
+ Example:
+
+ ...
+ <display-name xml:lang="en">
+ Employee Self Service
+ </display-name>
+
+ The value of the xml:lang attribute is "en" (English) by default.
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="javaee:string">
+ <xsd:attribute ref="xml:lang"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="ejb-linkType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The ejb-linkType is used by ejb-link
+ elements in the ejb-ref or ejb-local-ref elements to specify
+ that an EJB reference is linked to enterprise bean.
+
+ The value of the ejb-link element must be the ejb-name of an
+ enterprise bean in the same ejb-jar file or in another ejb-jar
+ file in the same Java EE application unit.
+
+ Alternatively, the name in the ejb-link element may be
+ composed of a path name specifying the ejb-jar containing the
+ referenced enterprise bean with the ejb-name of the target
+ bean appended and separated from the path name by "#". The
+ path name is relative to the Deployment File containing
+ Deployment Component that is referencing the enterprise
+ bean. This allows multiple enterprise beans with the same
+ ejb-name to be uniquely identified.
+
+ Examples:
+
+ <ejb-link>EmployeeRecord</ejb-link>
+
+ <ejb-link>../products/product.jar#ProductEJB</ejb-link>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="ejb-local-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The ejb-local-refType is used by ejb-local-ref elements for
+ the declaration of a reference to an enterprise bean's local
+ home or to the local business interface of a 3.0 bean.
+ The declaration consists of:
+
+ - an optional description
+ - the EJB reference name used in the code of the Deployment
+ Component that's referencing the enterprise bean.
+ - the optional expected type of the referenced enterprise bean
+ - the optional expected local interface of the referenced
+ enterprise bean or the local business interface of the
+ referenced enterprise bean.
+ - the optional expected local home interface of the referenced
+ enterprise bean. Not applicable if this ejb-local-ref refers
+ to the local business interface of a 3.0 bean.
+ - optional ejb-link information, used to specify the
+ referenced enterprise bean
+ - optional elements to define injection of the named enterprise
+ bean into a component field or property.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="ejb-ref-name"
+ type="javaee:ejb-ref-nameType"/>
+ <xsd:element name="ejb-ref-type"
+ type="javaee:ejb-ref-typeType"
+ minOccurs="0"/>
+ <xsd:element name="local-home"
+ type="javaee:local-homeType"
+ minOccurs="0"/>
+ <xsd:element name="local"
+ type="javaee:localType"
+ minOccurs="0"/>
+ <xsd:element name="ejb-link"
+ type="javaee:ejb-linkType"
+ minOccurs="0"/>
+ <xsd:group ref="javaee:resourceGroup"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="ejb-ref-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The ejb-ref-name element contains the name of an EJB
+ reference. The EJB reference is an entry in the
+ Deployment Component's environment and is relative to the
+ java:comp/env context. The name must be unique within the
+ Deployment Component.
+
+ It is recommended that name is prefixed with "ejb/".
+
+ Example:
+
+ <ejb-ref-name>ejb/Payroll</ejb-ref-name>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:jndi-nameType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="ejb-ref-typeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The ejb-ref-typeType contains the expected type of the
+ referenced enterprise bean.
+
+ The ejb-ref-type designates a value
+ that must be one of the following:
+
+ Entity
+ Session
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="Entity"/>
+ <xsd:enumeration value="Session"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="ejb-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The ejb-refType is used by ejb-ref elements for the
+ declaration of a reference to an enterprise bean's home or
+ to the remote business interface of a 3.0 bean.
+ The declaration consists of:
+
+ - an optional description
+ - the EJB reference name used in the code of
+ the Deployment Component that's referencing the enterprise
+ bean.
+ - the optional expected type of the referenced enterprise bean
+ - the optional remote interface of the referenced enterprise bean
+ or the remote business interface of the referenced enterprise
+ bean
+ - the optional expected home interface of the referenced
+ enterprise bean. Not applicable if this ejb-ref
+ refers to the remote business interface of a 3.0 bean.
+ - optional ejb-link information, used to specify the
+ referenced enterprise bean
+ - optional elements to define injection of the named enterprise
+ bean into a component field or property
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="ejb-ref-name"
+ type="javaee:ejb-ref-nameType"/>
+ <xsd:element name="ejb-ref-type"
+ type="javaee:ejb-ref-typeType"
+ minOccurs="0"/>
+ <xsd:element name="home"
+ type="javaee:homeType"
+ minOccurs="0"/>
+ <xsd:element name="remote"
+ type="javaee:remoteType"
+ minOccurs="0"/>
+ <xsd:element name="ejb-link"
+ type="javaee:ejb-linkType"
+ minOccurs="0"/>
+ <xsd:group ref="javaee:resourceGroup"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="emptyType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type is used to designate an empty
+ element when used.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="env-entry-type-valuesType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ This type contains the fully-qualified Java type of the
+ environment entry value that is expected by the
+ application's code.
+
+ The following are the legal values of env-entry-type-valuesType:
+
+ java.lang.Boolean
+ java.lang.Byte
+ java.lang.Character
+ java.lang.String
+ java.lang.Short
+ java.lang.Integer
+ java.lang.Long
+ java.lang.Float
+ java.lang.Double
+
+ Example:
+
+ <env-entry-type>java.lang.Boolean</env-entry-type>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="java.lang.Boolean"/>
+ <xsd:enumeration value="java.lang.Byte"/>
+ <xsd:enumeration value="java.lang.Character"/>
+ <xsd:enumeration value="java.lang.String"/>
+ <xsd:enumeration value="java.lang.Short"/>
+ <xsd:enumeration value="java.lang.Integer"/>
+ <xsd:enumeration value="java.lang.Long"/>
+ <xsd:enumeration value="java.lang.Float"/>
+ <xsd:enumeration value="java.lang.Double"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="env-entryType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The env-entryType is used to declare an application's
+ environment entry. The declaration consists of an optional
+ description, the name of the environment entry, a type
+ (optional if the value is injected, otherwise required), and
+ an optional value.
+
+ It also includes optional elements to define injection of
+ the named resource into fields or JavaBeans properties.
+
+ If a value is not specified and injection is requested,
+ no injection will occur and no entry of the specified name
+ will be created. This allows an initial value to be
+ specified in the source code without being incorrectly
+ changed when no override has been specified.
+
+ If a value is not specified and no injection is requested,
+ a value must be supplied during deployment.
+
+ This type is used by env-entry elements.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="env-entry-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The env-entry-name element contains the name of a
+ Deployment Component's environment entry. The name
+ is a JNDI name relative to the java:comp/env
+ context. The name must be unique within a
+ Deployment Component. The uniqueness
+ constraints must be defined within the declared
+ context.
+
+ Example:
+
+ <env-entry-name>minAmount</env-entry-name>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="env-entry-type"
+ type="javaee:env-entry-type-valuesType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The env-entry-type element contains the Java language
+ type of the environment entry. If an injection target
+ is specified for the environment entry, the type may
+ be omitted, or must match the type of the injection
+ target. If no injection target is specified, the type
+ is required.
+
+ Example:
+
+ <env-entry-type>java.lang.Integer</env-entry-type>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="env-entry-value"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The env-entry-value designates the value of a
+ Deployment Component's environment entry. The value
+ must be a String that is valid for the
+ constructor of the specified type that takes a
+ single String parameter, or for java.lang.Character,
+ a single character.
+
+ Example:
+
+ <env-entry-value>100.00</env-entry-value>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="fully-qualified-classType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The elements that use this type designate the name of a
+ Java class or interface. The name is in the form of a
+ "binary name", as defined in the JLS. This is the form
+ of name used in Class.forName(). Tools that need the
+ canonical name (the name used in source code) will need
+ to convert this binary name to the canonical name.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="generic-booleanType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type defines four different values which can designate
+ boolean values. This includes values yes and no which are
+ not designated by xsd:boolean
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="true"/>
+ <xsd:enumeration value="false"/>
+ <xsd:enumeration value="yes"/>
+ <xsd:enumeration value="no"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="homeType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The homeType defines the fully-qualified name of
+ an enterprise bean's home interface.
+
+ Example:
+
+ <home>com.aardvark.payroll.PayrollHome</home>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:fully-qualified-classType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="iconType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The icon type contains small-icon and large-icon elements
+ that specify the file names for small and large GIF, JPEG,
+ or PNG icon images used to represent the parent element in a
+ GUI tool.
+
+ The xml:lang attribute defines the language that the
+ icon file names are provided in. Its value is "en" (English)
+ by default.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="small-icon" type="javaee:pathType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The small-icon element contains the name of a file
+ containing a small (16 x 16) icon image. The file
+ name is a relative path within the Deployment
+ Component's Deployment File.
+
+ The image may be in the GIF, JPEG, or PNG format.
+ The icon can be used by tools.
+
+ Example:
+
+ <small-icon>employee-service-icon16x16.jpg</small-icon>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="large-icon" type="javaee:pathType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The large-icon element contains the name of a file
+ containing a large
+ (32 x 32) icon image. The file name is a relative
+ path within the Deployment Component's Deployment
+ File.
+
+ The image may be in the GIF, JPEG, or PNG format.
+ The icon can be used by tools.
+
+ Example:
+
+ <large-icon>employee-service-icon32x32.jpg</large-icon>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ </xsd:sequence>
+
+ <xsd:attribute ref="xml:lang"/>
+ <xsd:attribute name="id" type="xsd:ID"/>
+
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="injection-targetType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ An injection target specifies a class and a name within
+ that class into which a resource should be injected.
+
+ The injection target class specifies the fully qualified
+ class name that is the target of the injection. The
+ Java EE specifications describe which classes can be an
+ injection target.
+
+ The injection target name specifies the target within
+ the specified class. The target is first looked for as a
+ JavaBeans property name. If not found, the target is
+ looked for as a field name.
+
+ The specified resource will be injected into the target
+ during initialization of the class by either calling the
+ set method for the target property or by setting a value
+ into the named field.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="injection-target-class"
+ type="javaee:fully-qualified-classType"/>
+ <xsd:element name="injection-target-name"
+ type="javaee:java-identifierType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="java-identifierType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The java-identifierType defines a Java identifier.
+ The users of this type should further verify that
+ the content does not contain Java reserved keywords.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:pattern value="($|_|\p{L})(\p{L}|\p{Nd}|_|$)*"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="java-typeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This is a generic type that designates a Java primitive
+ type or a fully qualified name of a Java interface/type,
+ or an array of such types.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:pattern value="[^\p{Z}]*"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The jndi-nameType type designates a JNDI name in the
+ Deployment Component's environment and is relative to the
+ java:comp/env context. A JNDI name must be unique within the
+ Deployment Component.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:group name="jndiEnvironmentRefsGroup">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This group keeps the usage of the contained JNDI environment
+ reference elements consistent across Java EE deployment descriptors.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="env-entry"
+ type="javaee:env-entryType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="ejb-ref"
+ type="javaee:ejb-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="ejb-local-ref"
+ type="javaee:ejb-local-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="resource-ref"
+ type="javaee:resource-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="resource-env-ref"
+ type="javaee:resource-env-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="message-destination-ref"
+ type="javaee:message-destination-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="persistence-context-ref"
+ type="javaee:persistence-context-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="persistence-unit-ref"
+ type="javaee:persistence-unit-refType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="post-construct"
+ type="javaee:lifecycle-callbackType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="pre-destroy"
+ type="javaee:lifecycle-callbackType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:group>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="lifecycle-callbackType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The lifecycle-callback type specifies a method on a
+ class to be called when a lifecycle event occurs.
+ Note that each class may have only one lifecycle callback
+ method for any given event and that the method may not
+ be overloaded.
+
+ If the lifefycle-callback-class element is missing then
+ the class defining the callback is assumed to be the
+ component class in scope at the place in the descriptor
+ in which the callback definition appears.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="lifecycle-callback-class"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0"/>
+ <xsd:element name="lifecycle-callback-method"
+ type="javaee:java-identifierType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="listenerType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The listenerType indicates the deployment properties for a web
+ application listener bean.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="listener-class"
+ type="javaee:fully-qualified-classType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The listener-class element declares a class in the
+ application must be registered as a web
+ application listener bean. The value is the fully
+ qualified classname of the listener class.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="local-homeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The local-homeType defines the fully-qualified
+ name of an enterprise bean's local home interface.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:fully-qualified-classType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="localType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The localType defines the fully-qualified name of an
+ enterprise bean's local interface.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:fully-qualified-classType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="message-destination-linkType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The message-destination-linkType is used to link a message
+ destination reference or message-driven bean to a message
+ destination.
+
+ The Assembler sets the value to reflect the flow of messages
+ between producers and consumers in the application.
+
+ The value must be the message-destination-name of a message
+ destination in the same Deployment File or in another
+ Deployment File in the same Java EE application unit.
+
+ Alternatively, the value may be composed of a path name
+ specifying a Deployment File containing the referenced
+ message destination with the message-destination-name of the
+ destination appended and separated from the path name by
+ "#". The path name is relative to the Deployment File
+ containing Deployment Component that is referencing the
+ message destination. This allows multiple message
+ destinations with the same name to be uniquely identified.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="message-destination-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The message-destination-ref element contains a declaration
+ of Deployment Component's reference to a message destination
+ associated with a resource in Deployment Component's
+ environment. It consists of:
+
+ - an optional description
+ - the message destination reference name
+ - an optional message destination type
+ - an optional specification as to whether
+ the destination is used for
+ consuming or producing messages, or both.
+ if not specified, "both" is assumed.
+ - an optional link to the message destination
+ - optional injection targets
+
+ The message destination type must be supplied unless an
+ injection target is specified, in which case the type
+ of the target is used. If both are specified, the type
+ must be assignment compatible with the type of the injection
+ target.
+
+ Examples:
+
+ <message-destination-ref>
+ <message-destination-ref-name>jms/StockQueue
+ </message-destination-ref-name>
+ <message-destination-type>javax.jms.Queue
+ </message-destination-type>
+ <message-destination-usage>Consumes
+ </message-destination-usage>
+ <message-destination-link>CorporateStocks
+ </message-destination-link>
+ </message-destination-ref>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="message-destination-ref-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The message-destination-ref-name element specifies
+ the name of a message destination reference; its
+ value is the environment entry name used in
+ Deployment Component code. The name is a JNDI name
+ relative to the java:comp/env context and must be
+ unique within an ejb-jar (for enterprise beans) or a
+ Deployment File (for others).
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="message-destination-type"
+ type="javaee:message-destination-typeType"
+ minOccurs="0"/>
+ <xsd:element name="message-destination-usage"
+ type="javaee:message-destination-usageType"
+ minOccurs="0"/>
+ <xsd:element name="message-destination-link"
+ type="javaee:message-destination-linkType"
+ minOccurs="0"/>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="message-destination-typeType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The message-destination-typeType specifies the type of
+ the destination. The type is specified by the Java interface
+ expected to be implemented by the destination.
+
+ Example:
+
+ <message-destination-type>javax.jms.Queue
+ </message-destination-type>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:fully-qualified-classType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="message-destination-usageType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The message-destination-usageType specifies the use of the
+ message destination indicated by the reference. The value
+ indicates whether messages are consumed from the message
+ destination, produced for the destination, or both. The
+ Assembler makes use of this information in linking producers
+ of a destination with its consumers.
+
+ The value of the message-destination-usage element must be
+ one of the following:
+ Consumes
+ Produces
+ ConsumesProduces
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="Consumes"/>
+ <xsd:enumeration value="Produces"/>
+ <xsd:enumeration value="ConsumesProduces"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="message-destinationType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The message-destinationType specifies a message
+ destination. The logical destination described by this
+ element is mapped to a physical destination by the Deployer.
+
+ The message destination element contains:
+
+ - an optional description
+ - an optional display-name
+ - an optional icon
+ - a message destination name which must be unique
+ among message destination names within the same
+ Deployment File.
+ - an optional mapped name
+
+ Example:
+
+ <message-destination>
+ <message-destination-name>CorporateStocks
+ </message-destination-name>
+ </message-destination>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="message-destination-name"
+ type="javaee:string">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The message-destination-name element specifies a
+ name for a message destination. This name must be
+ unique among the names of message destinations
+ within the Deployment File.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="mapped-name"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ A product specific name that this message destination
+ should be mapped to. Each message-destination-ref
+ element that references this message destination will
+ define a name in the namespace of the referencing
+ component. (It's a name in the JNDI java:comp/env
+ namespace.) Many application servers provide a way to
+ map these local names to names of resources known to the
+ application server. This mapped name is often a global
+ JNDI name, but may be a name of any form. Each of the
+ local names should be mapped to this same global name.
+
+ Application servers are not required to support any
+ particular form or type of mapped name, nor the ability
+ to use mapped names. The mapped name is
+ product-dependent and often installation-dependent. No
+ use of a mapped name is portable.
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="param-valueType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type is a general type that can be used to declare
+ parameter/value lists.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="param-name"
+ type="javaee:string">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The param-name element contains the name of a
+ parameter.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="param-value"
+ type="javaee:xsdStringType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The param-value element contains the value of a
+ parameter.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="pathType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The elements that use this type designate either a relative
+ path or an absolute path starting with a "/".
+
+ In elements that specify a pathname to a file within the
+ same Deployment File, relative filenames (i.e., those not
+ starting with "/") are considered relative to the root of
+ the Deployment File's namespace. Absolute filenames (i.e.,
+ those starting with "/") also specify names in the root of
+ the Deployment File's namespace. In general, relative names
+ are preferred. The exception is .war files where absolute
+ names are preferred for consistency with the Servlet API.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="persistence-context-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The persistence-context-ref element contains a declaration
+ of Deployment Component's reference to a persistence context
+ associated within a Deployment Component's
+ environment. It consists of:
+
+ - an optional description
+ - the persistence context reference name
+ - an optional persistence unit name. If not specified,
+ the default persistence unit is assumed.
+ - an optional specification as to whether
+ the persistence context type is Transaction or
+ Extended. If not specified, Transaction is assumed.
+ - an optional list of persistence properties
+ - optional injection targets
+
+ Examples:
+
+ <persistence-context-ref>
+ <persistence-context-ref-name>myPersistenceContext
+ </persistence-context-ref-name>
+ </persistence-context-ref>
+
+ <persistence-context-ref>
+ <persistence-context-ref-name>myPersistenceContext
+ </persistence-context-ref-name>
+ <persistence-unit-name>PersistenceUnit1
+ </persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ </persistence-context-ref>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="persistence-context-ref-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The persistence-context-ref-name element specifies
+ the name of a persistence context reference; its
+ value is the environment entry name used in
+ Deployment Component code. The name is a JNDI name
+ relative to the java:comp/env context.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="persistence-unit-name"
+ type="javaee:string"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The Application Assembler(or BeanProvider) may use the
+ following syntax to avoid the need to rename persistence
+ units to have unique names within a Java EE application.
+
+ The Application Assembler specifies the pathname of the
+ root of the persistence.xml file for the referenced
+ persistence unit and appends the name of the persistence
+ unit separated from the pathname by #. The pathname is
+ relative to the referencing application component jar file.
+ In this manner, multiple persistence units with the same
+ persistence unit name may be uniquely identified when the
+ Application Assembler cannot change persistence unit names.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="persistence-context-type"
+ type="javaee:persistence-context-typeType"
+ minOccurs="0"/>
+
+ <xsd:element name="persistence-property"
+ type="javaee:propertyType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Used to specify properties for the container or persistence
+ provider. Vendor-specific properties may be included in
+ the set of properties. Properties that are not recognized
+ by a vendor must be ignored. Entries that make use of the
+ namespace javax.persistence and its subnamespaces must not
+ be used for vendor-specific properties. The namespace
+ javax.persistence is reserved for use by the specification.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="persistence-context-typeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The persistence-context-typeType specifies the transactional
+ nature of a persistence context reference.
+
+ The value of the persistence-context-type element must be
+ one of the following:
+ Transaction
+ Extended
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="Transaction"/>
+ <xsd:enumeration value="Extended"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="persistence-unit-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The persistence-unit-ref element contains a declaration
+ of Deployment Component's reference to a persistence unit
+ associated within a Deployment Component's
+ environment. It consists of:
+
+ - an optional description
+ - the persistence unit reference name
+ - an optional persistence unit name. If not specified,
+ the default persistence unit is assumed.
+ - optional injection targets
+
+ Examples:
+
+ <persistence-unit-ref>
+ <persistence-unit-ref-name>myPersistenceUnit
+ </persistence-unit-ref-name>
+ </persistence-unit-ref>
+
+ <persistence-unit-ref>
+ <persistence-unit-ref-name>myPersistenceUnit
+ </persistence-unit-ref-name>
+ <persistence-unit-name>PersistenceUnit1
+ </persistence-unit-name>
+ </persistence-unit-ref>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="persistence-unit-ref-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The persistence-unit-ref-name element specifies
+ the name of a persistence unit reference; its
+ value is the environment entry name used in
+ Deployment Component code. The name is a JNDI name
+ relative to the java:comp/env context.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="persistence-unit-name"
+ type="javaee:string"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The Application Assembler(or BeanProvider) may use the
+ following syntax to avoid the need to rename persistence
+ units to have unique names within a Java EE application.
+
+ The Application Assembler specifies the pathname of the
+ root of the persistence.xml file for the referenced
+ persistence unit and appends the name of the persistence
+ unit separated from the pathname by #. The pathname is
+ relative to the referencing application component jar file.
+ In this manner, multiple persistence units with the same
+ persistence unit name may be uniquely identified when the
+ Application Assembler cannot change persistence unit names.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="propertyType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Specifies a name/value pair.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="name"
+ type="javaee:xsdStringType">
+ </xsd:element>
+ <xsd:element name="value"
+ type="javaee:xsdStringType">
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="remoteType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The remote element contains the fully-qualified name
+ of the enterprise bean's remote interface.
+
+ Example:
+
+ <remote>com.wombat.empl.EmployeeService</remote>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:fully-qualified-classType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="res-authType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The res-authType specifies whether the Deployment Component
+ code signs on programmatically to the resource manager, or
+ whether the Container will sign on to the resource manager
+ on behalf of the Deployment Component. In the latter case,
+ the Container uses information that is supplied by the
+ Deployer.
+
+ The value must be one of the two following:
+
+ Application
+ Container
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="Application"/>
+ <xsd:enumeration value="Container"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="res-sharing-scopeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The res-sharing-scope type specifies whether connections
+ obtained through the given resource manager connection
+ factory reference can be shared. The value, if specified,
+ must be one of the two following:
+
+ Shareable
+ Unshareable
+
+ The default value is Shareable.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="Shareable"/>
+ <xsd:enumeration value="Unshareable"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="resource-env-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The resource-env-refType is used to define
+ resource-env-type elements. It contains a declaration of a
+ Deployment Component's reference to an administered object
+ associated with a resource in the Deployment Component's
+ environment. It consists of an optional description, the
+ resource environment reference name, and an optional
+ indication of the resource environment reference type
+ expected by the Deployment Component code.
+
+ It also includes optional elements to define injection of
+ the named resource into fields or JavaBeans properties.
+
+ The resource environment type must be supplied unless an
+ injection target is specified, in which case the type
+ of the target is used. If both are specified, the type
+ must be assignment compatible with the type of the injection
+ target.
+
+ Example:
+
+ <resource-env-ref>
+ <resource-env-ref-name>jms/StockQueue
+ </resource-env-ref-name>
+ <resource-env-ref-type>javax.jms.Queue
+ </resource-env-ref-type>
+ </resource-env-ref>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="resource-env-ref-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The resource-env-ref-name element specifies the name
+ of a resource environment reference; its value is
+ the environment entry name used in
+ the Deployment Component code. The name is a JNDI
+ name relative to the java:comp/env context and must
+ be unique within a Deployment Component.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="resource-env-ref-type"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The resource-env-ref-type element specifies the type
+ of a resource environment reference. It is the
+ fully qualified name of a Java language class or
+ interface.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="resource-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The resource-refType contains a declaration of a
+ Deployment Component's reference to an external resource. It
+ consists of an optional description, the resource manager
+ connection factory reference name, an optional indication of
+ the resource manager connection factory type expected by the
+ Deployment Component code, an optional type of authentication
+ (Application or Container), and an optional specification of
+ the shareability of connections obtained from the resource
+ (Shareable or Unshareable).
+
+ It also includes optional elements to define injection of
+ the named resource into fields or JavaBeans properties.
+
+ The connection factory type must be supplied unless an
+ injection target is specified, in which case the type
+ of the target is used. If both are specified, the type
+ must be assignment compatible with the type of the injection
+ target.
+
+ Example:
+
+ <resource-ref>
+ <res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="res-ref-name"
+ type="javaee:jndi-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The res-ref-name element specifies the name of a
+ resource manager connection factory reference.
+ The name is a JNDI name relative to the
+ java:comp/env context.
+ The name must be unique within a Deployment File.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="res-type"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The res-type element specifies the type of the data
+ source. The type is specified by the fully qualified
+ Java language class or interface
+ expected to be implemented by the data source.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="res-auth"
+ type="javaee:res-authType"
+ minOccurs="0"/>
+
+ <xsd:element name="res-sharing-scope"
+ type="javaee:res-sharing-scopeType"
+ minOccurs="0"/>
+
+ <xsd:group ref="javaee:resourceGroup"/>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:group name="resourceGroup">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This group collects elements that are common to all the
+ JNDI resource elements.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="mapped-name"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ A product specific name that this resource should be
+ mapped to. The name of this resource, as defined by the
+ resource's name element or defaulted, is a name that is
+ local to the application component using the resource.
+ (It's a name in the JNDI java:comp/env namespace.) Many
+ application servers provide a way to map these local
+ names to names of resources known to the application
+ server. This mapped name is often a global JNDI name,
+ but may be a name of any form.
+
+ Application servers are not required to support any
+ particular form or type of mapped name, nor the ability
+ to use mapped names. The mapped name is
+ product-dependent and often installation-dependent. No
+ use of a mapped name is portable.
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="injection-target"
+ type="javaee:injection-targetType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:group>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="role-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The role-nameType designates the name of a security role.
+
+ The name must conform to the lexical rules for a token.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="run-asType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The run-asType specifies the run-as identity to be
+ used for the execution of a component. It contains an
+ optional description, and the name of a security role.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="role-name"
+ type="javaee:role-nameType"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="security-role-refType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The security-role-refType contains the declaration of a
+ security role reference in a component's or a
+ Deployment Component's code. The declaration consists of an
+ optional description, the security role name used in the
+ code, and an optional link to a security role. If the
+ security role is not specified, the Deployer must choose an
+ appropriate security role.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="role-name"
+ type="javaee:role-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The value of the role-name element must be the String used
+ as the parameter to the
+ EJBContext.isCallerInRole(String roleName) method or the
+ HttpServletRequest.isUserInRole(String role) method.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="role-link"
+ type="javaee:role-nameType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The role-link element is a reference to a defined
+ security role. The role-link element must contain
+ the name of one of the security roles defined in the
+ security-role elements.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="security-roleType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ The security-roleType contains the definition of a security
+ role. The definition consists of an optional description of
+ the security role, and the security role name.
+
+ Example:
+
+ <security-role>
+ <description>
+ This role includes all employees who are authorized
+ to access the employee service application.
+ </description>
+ <role-name>employee</role-name>
+ </security-role>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="role-name"
+ type="javaee:role-nameType"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="string">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This is a special string datatype that is defined by Java EE as
+ a base type for defining collapsed strings. When schemas
+ require trailing/leading space elimination as well as
+ collapsing the existing whitespace, this base type may be
+ used.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:token">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="true-falseType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This simple type designates a boolean with only two
+ permissible values
+
+ - true
+ - false
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:xsdBooleanType">
+ <xsd:pattern value="(true|false)"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="url-patternType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The url-patternType contains the url pattern of the mapping.
+ It must follow the rules specified in Section 11.2 of the
+ Servlet API Specification. This pattern is assumed to be in
+ URL-decoded form and must not contain CR(#xD) or LF(#xA).
+ If it contains those characters, the container must inform
+ the developer with a descriptive error message.
+ The container must preserve all characters including whitespaces.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdAnyURIType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:anyURI.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:anyURI">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdBooleanType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:boolean.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:boolean">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdIntegerType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:integer.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:integer">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdNMTOKENType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:NMTOKEN.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:NMTOKEN">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdNonNegativeIntegerType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:nonNegativeInteger.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:nonNegativeInteger">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdPositiveIntegerType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:positiveInteger.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:positiveInteger">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdQNameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:QName.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:QName">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="xsdStringType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type adds an "id" attribute to xsd:string.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/namespace.ecore b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/namespace.ecore
new file mode 100644
index 000000000..4a45d2620
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/model/namespace.ecore
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="namespace"
+ nsURI="http://www.w3.org/XML/1998/namespace" nsPrefix="namespace"/>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/AttributeCMAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/AttributeCMAdapter.java
index 3e9a1dc3e..c7b37664c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/AttributeCMAdapter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/AttributeCMAdapter.java
@@ -2,6 +2,7 @@ package org.eclipse.jst.jsf.facelet.core.internal.cm;
import java.util.Enumeration;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.CMDataTypeImpl;
import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
@@ -16,8 +17,8 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
public class AttributeCMAdapter implements CMAttributeDeclaration
{
private static final String DESCRIPTION = "description"; //$NON-NLS-1$
- private int _usage;
- private String _name;
+ private final int _usage;
+ private final String _name;
private String _description;
/**
@@ -30,6 +31,15 @@ public class AttributeCMAdapter implements CMAttributeDeclaration
_usage = usage;
}
+ /**
+ * @param tagAttr
+ */
+ public AttributeCMAdapter(final ITagAttribute tagAttr)
+ {
+ this(tagAttr.getName(), tagAttr.isRequired() ? REQUIRED : OPTIONAL);
+ _description = tagAttr.getDescription();
+ }
+
public String getAttrName()
{
return _name;
@@ -47,7 +57,6 @@ public class AttributeCMAdapter implements CMAttributeDeclaration
public Enumeration<?> getEnumAttr()
{
- // TODO Auto-generated method stub
return null;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/CompositeTagInfo.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/CompositeTagInfo.java
new file mode 100644
index 000000000..ee81c1dea
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/CompositeTagInfo.java
@@ -0,0 +1,107 @@
+package org.eclipse.jst.jsf.facelet.core.internal.cm;
+
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.TagInfoStrategyComposite;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+
+/**
+ * A tag info that composes a number of other tag infos selected from a
+ * TagInfoStrategyComposite.
+ *
+ * @author cbateman
+ *
+ */
+public abstract class CompositeTagInfo extends TagInfo
+{
+ private final TagInfoStrategyComposite _compositeStrategy;
+ private final String _uri;
+
+ /**
+ * @param uri
+ * @param compositeStrategy
+ */
+ protected CompositeTagInfo(final String uri, final TagInfoStrategyComposite compositeStrategy)
+ {
+ _uri = uri;
+ _compositeStrategy = compositeStrategy;
+ }
+ @Override
+ public Object getTagProperty(String tagName, String key)
+ {
+ final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
+ _uri, tagName);
+ _compositeStrategy.resetIterator();
+
+ for (TagInfo tagInfo = getNextExternalInfo(tagId); tagInfo != _compositeStrategy
+ .getNoResult(); tagInfo = getNextExternalInfo(tagId))
+ {
+ try
+ {
+ if (tagInfo != _compositeStrategy.getNoResult())
+ {
+ final Object value = tagInfo.getTagProperty(tagName, key);
+
+ if (value != null)
+ {
+ return value;
+ }
+ }
+
+ // fall-through
+ }
+ catch (final Exception e)
+ {
+ FaceletCorePlugin.log("During meta-data strategy", e); //$NON-NLS-1$
+ }
+ }
+
+ return null;
+
+ }
+
+ /**
+ * @param tagName
+ * @return a named node map of known attributes for the tag, or null if not
+ * found
+ */
+ @Override
+ public CMNamedNodeMap getAttributes(String tagName)
+ {
+ final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
+ _uri, tagName);
+ _compositeStrategy.resetIterator();
+
+ for (TagInfo tagInfo = getNextExternalInfo(tagId); tagInfo != _compositeStrategy
+ .getNoResult(); tagInfo = getNextExternalInfo(tagId))
+ {
+ try
+ {
+ if (tagInfo != _compositeStrategy.getNoResult())
+ {
+ final CMNamedNodeMap nodeMap = tagInfo
+ .getAttributes(tagName);
+
+ if (nodeMap != null)
+ {
+ return nodeMap;
+ }
+ }
+
+ // fall-through
+ }
+ catch (final Exception e)
+ {
+ FaceletCorePlugin.log("During meta-data strategy", e); //$NON-NLS-1$
+ }
+ }
+
+ return null;
+ }
+
+ private TagInfo getNextExternalInfo(final TagIdentifier input)
+ {
+ return _compositeStrategy.perform(input);
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ElementCMAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ElementCMAdapter.java
index 35c5c8f14..b38e43150 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ElementCMAdapter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ElementCMAdapter.java
@@ -16,9 +16,9 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
class ElementCMAdapter implements CMElementDeclaration, CMNamedNodeMap
{
private final ITagElement _tagElement;
- private final ExternalTagInfo _tLDTagInfo;
+ private final TagInfo _tLDTagInfo;
- ElementCMAdapter(final ITagElement tagElement, final ExternalTagInfo tldTagInfo)
+ ElementCMAdapter(final ITagElement tagElement, final TagInfo tldTagInfo)
{
_tagElement = tagElement;
_tLDTagInfo = tldTagInfo;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ExternalTagInfo.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ExternalTagInfo.java
index 705a57bff..f17eed387 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ExternalTagInfo.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/ExternalTagInfo.java
@@ -13,25 +13,17 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
* @author cbateman
*
*/
-public abstract class ExternalTagInfo
+public abstract class ExternalTagInfo extends TagInfo
{
/**
* Single instance of the null external tag info
*/
- public static ExternalTagInfo NULL_INSTANCE = new NullExternalTagInfo();
+ public static TagInfo NULL_INSTANCE = new NullExternalTagInfo();
- /**
- * @param tagName
- * @return the node map of attributes for the tag called tagName
- */
+ @Override
public abstract CMNamedNodeMap getAttributes(final String tagName);
- /**
- * @param tagName
- * @param key
- * @return the tag property in the CM model for tagName at key or null if
- * not found.
- */
+ @Override
public abstract Object getTagProperty(final String tagName, final String key);
/**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java
index c7b3965c5..8c1a837ee 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java
@@ -5,6 +5,7 @@ import java.util.Map;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.Namespace;
+import org.eclipse.jst.jsf.core.JSFVersion;
import org.eclipse.jst.jsf.designtime.internal.view.model.ITagRegistry;
import org.eclipse.jst.jsf.designtime.internal.view.model.TagRegistryFactory.TagRegistryFactoryException;
import org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletRegistryManager.MyRegistryFactory;
@@ -31,7 +32,7 @@ public class FaceletDocumentFactory
{
private final IProject _project;
private final Map<String, NamespaceCMAdapter> _cmDocuments;
- private final Map<String, ExternalTagInfo> _externalTagInfo;
+ private final Map<String, TagInfo> _externalTagInfo;
/**
* @param project
@@ -40,7 +41,7 @@ public class FaceletDocumentFactory
{
_project = project;
_cmDocuments = new HashMap<String, NamespaceCMAdapter>(8);
- _externalTagInfo = new HashMap<String, ExternalTagInfo>(8);
+ _externalTagInfo = new HashMap<String, TagInfo>(8);
}
/**
@@ -92,9 +93,9 @@ public class FaceletDocumentFactory
* @return the externa tag info the namespace. May return a previously
* cached value. If there is no cached value, then creates it.
*/
- public ExternalTagInfo getOrCreateExtraTagInfo(final String ns)
+ public TagInfo getOrCreateExtraTagInfo(final String ns)
{
- ExternalTagInfo tagInfo = _externalTagInfo.get(ns);
+ TagInfo tagInfo = _externalTagInfo.get(ns);
if (tagInfo == null)
{
@@ -107,20 +108,35 @@ public class FaceletDocumentFactory
/**
* @return a new external tag info for this namespace
*/
- private ExternalTagInfo createExternalTagInfo(final String uri)
+ private TagInfo createExternalTagInfo(final String uri)
{
- ExternalTagInfo tldTagInfo = new MetadataTagInfo(_project, uri);
- final ITaglibRecord[] tldrecs = TaglibIndex
- .getAvailableTaglibRecords(_project.getFullPath());
- FIND_TLDRECORD: for (final ITaglibRecord rec : tldrecs)
+ final JSFVersion jsfVersion = JSFVersion.valueOfProject(_project);
+ TagInfo tldTagInfo = null;
+ if (jsfVersion != null)
{
- final String matchUri = rec.getDescriptor().getURI();
- if (uri.equals(matchUri))
+ if (jsfVersion.compareTo(JSFVersion.V2_0) >= 0)
{
- final CMDocumentFactoryTLD factory = new CMDocumentFactoryTLD();
- tldTagInfo = new MetadataTagInfo(_project, (TLDDocument) factory
- .createCMDocument(rec));
- break FIND_TLDRECORD;
+ tldTagInfo = new FaceletTagInfo(_project, uri);
+ } else
+ {
+ final ITaglibRecord[] tldrecs = TaglibIndex
+ .getAvailableTaglibRecords(_project.getFullPath());
+ FIND_TLDRECORD: for (final ITaglibRecord rec : tldrecs)
+ {
+ final String matchUri = rec.getDescriptor().getURI();
+ if (uri.equals(matchUri))
+ {
+ final CMDocumentFactoryTLD factory = new CMDocumentFactoryTLD();
+ tldTagInfo = new MetadataTagInfo(_project,
+ (TLDDocument) factory.createCMDocument(rec));
+ break FIND_TLDRECORD;
+ }
+ }
+
+ if (tldTagInfo == null)
+ {
+ tldTagInfo = new MetadataTagInfo(_project, uri);
+ }
}
}
return tldTagInfo;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletTagInfo.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletTagInfo.java
new file mode 100644
index 000000000..a9ab0fafb
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletTagInfo.java
@@ -0,0 +1,36 @@
+package org.eclipse.jst.jsf.facelet.core.internal.cm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.FaceletExternalMetadataStrategy;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.IExternalMetadataStrategy;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.MDExternalMetadataStrategy;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.TagInfoStrategyComposite;
+
+/*package*/class FaceletTagInfo extends CompositeTagInfo
+{
+ public FaceletTagInfo(final IProject project, final String uri)
+ {
+ super(uri, createStrategy(project));
+ }
+
+ private static TagInfoStrategyComposite createStrategy(
+ final IProject project)
+ {
+ final IExternalMetadataStrategy mdStrategy = MDExternalMetadataStrategy
+ .create(project);
+ final IExternalMetadataStrategy faceletStrategy = new FaceletExternalMetadataStrategy(
+ project);
+ final List<String> ids = new ArrayList<String>();
+ ids.add(FaceletExternalMetadataStrategy.STRATEGY_ID);
+ ids.add(MDExternalMetadataStrategy.STRATEGY_ID);
+
+ final TagInfoStrategyComposite strategyComposite = new TagInfoStrategyComposite(
+ ids);
+ strategyComposite.addStrategy(faceletStrategy);
+ strategyComposite.addStrategy(mdStrategy);
+ return strategyComposite;
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/MetadataTagInfo.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/MetadataTagInfo.java
index 0e91290a1..f8b670355 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/MetadataTagInfo.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/MetadataTagInfo.java
@@ -4,15 +4,11 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.jsf.common.dom.TagIdentifier;
-import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.IExternalMetadataStrategy;
import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.JSPExternalMetadataStrategy;
import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.MDExternalMetadataStrategy;
import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.TagInfoStrategyComposite;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
/**
* An external tag info that checks first the meta-data repository and second in
@@ -21,27 +17,12 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
* @author cbateman
*
*/
-/* package */class MetadataTagInfo extends ExternalTagInfo
+/* package */class MetadataTagInfo extends CompositeTagInfo
{
- private final String _uri;
-// private final MDExternalMetadataStrategy _mdStrategy;
-// private final JSPExternalMetadataStrategy _jspStrategy;
- private final TagInfoStrategyComposite _compositeStrategy;
-
private MetadataTagInfo(final IProject project, final TLDDocument doc,
final String uri)
{
- _uri = uri;
- IExternalMetadataStrategy mdStrategy = MDExternalMetadataStrategy.create(project);
- JSPExternalMetadataStrategy jspStrategy = new JSPExternalMetadataStrategy(doc);
-
- final List<String> ids = new ArrayList<String>();
- ids.add(MDExternalMetadataStrategy.STRATEGY_ID);
- ids.add(JSPExternalMetadataStrategy.STRATEGY_ID);
-
- _compositeStrategy = new TagInfoStrategyComposite(ids);
- _compositeStrategy.addStrategy(mdStrategy);
- _compositeStrategy.addStrategy(jspStrategy);
+ super(uri, createStrategy(project,doc));
}
public MetadataTagInfo(final IProject project, final String uri)
@@ -58,80 +39,18 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
this(project, doc, doc.getUri());
}
- @Override
- public Object getTagProperty(final String tagName, final String key)
+ private static TagInfoStrategyComposite createStrategy(final IProject project, final TLDDocument doc)
{
- final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
- _uri, tagName);
- _compositeStrategy.resetIterator();
-
- for (ExternalTagInfo tagInfo = getNextExternalInfo(tagId); tagInfo != _compositeStrategy
- .getNoResult(); tagInfo = getNextExternalInfo(tagId))
- {
- try
- {
- if (tagInfo != _compositeStrategy.getNoResult())
- {
- final Object value = tagInfo.getTagProperty(tagName, key);
-
- if (value != null)
- {
- return value;
- }
- }
-
- // fall-through
- }
- catch (final Exception e)
- {
- FaceletCorePlugin.log("During meta-data strategy", e); //$NON-NLS-1$
- }
- }
-
- return null;
- }
-
- /**
- * @param tagName
- * @return a named node map of known attributes for the tag, or null if not
- * found
- */
- @Override
- public CMNamedNodeMap getAttributes(final String tagName)
- {
- final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
- _uri, tagName);
- _compositeStrategy.resetIterator();
-
- for (ExternalTagInfo tagInfo = getNextExternalInfo(tagId); tagInfo != _compositeStrategy
- .getNoResult(); tagInfo = getNextExternalInfo(tagId))
- {
- try
- {
- if (tagInfo != _compositeStrategy.getNoResult())
- {
- final CMNamedNodeMap nodeMap = tagInfo
- .getAttributes(tagName);
-
- if (nodeMap != null)
- {
- return nodeMap;
- }
- }
-
- // fall-through
- }
- catch (final Exception e)
- {
- FaceletCorePlugin.log("During meta-data strategy", e); //$NON-NLS-1$
- }
- }
+ IExternalMetadataStrategy mdStrategy = MDExternalMetadataStrategy.create(project);
+ JSPExternalMetadataStrategy jspStrategy = new JSPExternalMetadataStrategy(doc);
- return null;
- }
+ final List<String> ids = new ArrayList<String>();
+ ids.add(MDExternalMetadataStrategy.STRATEGY_ID);
+ ids.add(JSPExternalMetadataStrategy.STRATEGY_ID);
- private ExternalTagInfo getNextExternalInfo(final TagIdentifier input)
- {
- return _compositeStrategy.perform(input);
+ TagInfoStrategyComposite strategyComposite = new TagInfoStrategyComposite(ids);
+ strategyComposite.addStrategy(mdStrategy);
+ strategyComposite.addStrategy(jspStrategy);
+ return strategyComposite;
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/NamespaceCMAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/NamespaceCMAdapter.java
index 8fe6225a9..7dd30ba81 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/NamespaceCMAdapter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/NamespaceCMAdapter.java
@@ -56,7 +56,7 @@ import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
final ITagElement tagElement = _ns.getViewElement(localname);
if (tagElement != null)
{
- ExternalTagInfo tagInfo = _factory.getOrCreateExtraTagInfo(_ns.getNSUri());
+ TagInfo tagInfo = _factory.getOrCreateExtraTagInfo(_ns.getNSUri());
element = new ElementCMAdapter(tagElement, tagInfo);
_elements.put(localname, element);
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/TagInfo.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/TagInfo.java
new file mode 100644
index 000000000..dd801ee87
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/TagInfo.java
@@ -0,0 +1,28 @@
+package org.eclipse.jst.jsf.facelet.core.internal.cm;
+
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+
+/**
+ * Generic adapter needed to provide CM required metadata for a CMNode from
+ * different sources.
+ *
+ * @author cbateman
+ *
+ */
+public abstract class TagInfo
+{
+ /**
+ * @param tagName
+ * @param key
+ * @return the tag property in the CM model for tagName at key or null if
+ * not found.
+ */
+ public abstract Object getTagProperty(final String tagName, final String key);
+
+ /**
+ * @param tagName
+ * @return the node map of attributes for the tag called tagName
+ */
+ public abstract CMNamedNodeMap getAttributes(final String tagName);
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/AbstractExternalMetadataStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/AbstractExternalMetadataStrategy.java
index e5792404b..3a46644f9 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/AbstractExternalMetadataStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/AbstractExternalMetadataStrategy.java
@@ -12,6 +12,7 @@ package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
/**
* Super class of all external meta-data strategy.
@@ -32,13 +33,13 @@ IExternalMetadataStrategy
_displayName = displayName;
}
- public final ExternalTagInfo getNoResult()
+ public final TagInfo getNoResult()
{
// this value must be "==" comparable
return ExternalTagInfo.NULL_INSTANCE;
}
- public abstract ExternalTagInfo perform(TagIdentifier input) throws Exception;
+ public abstract TagInfo perform(TagIdentifier input) throws Exception;
public final String getDisplayName()
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/FaceletExternalMetadataStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/FaceletExternalMetadataStrategy.java
new file mode 100644
index 000000000..149c34112
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/FaceletExternalMetadataStrategy.java
@@ -0,0 +1,138 @@
+package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
+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.ITagRegistry;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.AttributeCMAdapter;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.util.ViewUtil;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+
+/**
+ * The
+ * @author cbateman
+ *
+ */
+public class FaceletExternalMetadataStrategy extends
+ AbstractExternalMetadataStrategy
+{
+ /**
+ * The unique identifier for the strategy.
+ */
+ public final static String STRATEGY_ID = "org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.FaceletExternalMetadataStrategy"; //$NON-NLS-1$
+ private final IProject _project;
+
+ /**
+ * @param project
+ */
+ public FaceletExternalMetadataStrategy(final IProject project)
+ {
+ super(STRATEGY_ID, Messages.FaceletExternalMetadataStrategy_0);
+ _project = project;
+ }
+
+ @Override
+ public TagInfo perform(TagIdentifier input) throws Exception
+ {
+ final ITagRegistry tagRegistry = ViewUtil.getTagRegistry(_project);
+
+ if (tagRegistry != null)
+ {
+ Namespace tagLibrary = tagRegistry.getTagLibrary(input.getUri());
+ if (tagLibrary != null)
+ {
+ return new FaceletInternalInfo(tagLibrary);
+ }
+ }
+ return getNoResult();
+ }
+
+ private static class FaceletInternalInfo extends TagInfo
+ {
+ private final Namespace _namespace;
+
+ public FaceletInternalInfo(final Namespace namespace)
+ {
+ _namespace = namespace;
+ }
+
+ @Override
+ public Object getTagProperty(String tagName, String key)
+ {
+ if ("description".equals(key)) //$NON-NLS-1$
+ {
+ // TODO:
+ }
+ return null;
+ }
+
+ @Override
+ public CMNamedNodeMap getAttributes(String tagName)
+ {
+ ITagElement viewElement = _namespace.getViewElement(tagName);
+ if (viewElement != null)
+ {
+ return new MyNodeNameMap(viewElement);
+ }
+ return null;
+ }
+
+ private static class MyNodeNameMap implements CMNamedNodeMap
+ {
+ private final ITagElement _tagElement;
+ private final ArrayList<CMNode> _attrs;
+
+ public MyNodeNameMap(final ITagElement tagElement)
+ {
+ super();
+ _tagElement = tagElement;
+ _attrs = new ArrayList<CMNode>();
+ for (final Map.Entry<String, ? extends ITagAttribute> entry : _tagElement.getAttributes().entrySet())
+ {
+ final ITagAttribute attr = entry.getValue();
+ _attrs.add(new AttributeCMAdapter(attr));
+ }
+ }
+
+ public int getLength()
+ {
+ return _attrs.size();
+ }
+
+ public CMNode getNamedItem(String name)
+ {
+ if (name == null)
+ {
+ return null;
+ }
+ for (final CMNode cmNode : _attrs)
+ {
+ if (name.equals(cmNode.getNodeName()))
+ {
+ return cmNode;
+ }
+ }
+ return null;
+ }
+
+ public CMNode item(int index)
+ {
+ return _attrs.get(index);
+ }
+
+ public Iterator iterator()
+ {
+ return Collections.unmodifiableList(_attrs).iterator();
+ }
+ }
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/IExternalMetadataStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/IExternalMetadataStrategy.java
index 763c2b643..320e824ab 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/IExternalMetadataStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/IExternalMetadataStrategy.java
@@ -13,6 +13,7 @@ package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.internal.strategy.IIdentifiableStrategy;
import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
/**
* A strategy whose algorithm loads the tag CM data for a tag.
@@ -21,7 +22,7 @@ import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
*
*/
public interface IExternalMetadataStrategy extends
- IIdentifiableStrategy<TagIdentifier, ExternalTagInfo, String>
+ IIdentifiableStrategy<TagIdentifier, TagInfo, String>
{
/**
@@ -32,12 +33,12 @@ public interface IExternalMetadataStrategy extends
static class NullExternalMetadataStrategy implements IExternalMetadataStrategy
{
- public ExternalTagInfo getNoResult()
+ public TagInfo getNoResult()
{
return ExternalTagInfo.NULL_INSTANCE;
}
- public ExternalTagInfo perform(TagIdentifier input) throws Exception
+ public TagInfo perform(TagIdentifier input) throws Exception
{
return getNoResult();
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/InternalNamedNodeMap.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/InternalNamedNodeMap.java
new file mode 100644
index 000000000..f92b8c7ec
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/InternalNamedNodeMap.java
@@ -0,0 +1,96 @@
+package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+
+/*package*/ class InternalNamedNodeMap implements CMNamedNodeMap
+{
+ private final List<CMNode> _nodes = new ArrayList<CMNode>();
+
+ /**
+ * Add a node to the map. This is not on the CMNamedNodeMap and is used
+ * to populate the map.
+ *
+ * @param node
+ */
+ public void add(final CMNode node)
+ {
+ _nodes.add(node);
+ }
+
+ public int getLength()
+ {
+ return _nodes.size();
+ }
+
+ public CMNode getNamedItem(final String name)
+ {
+ for (final CMNode foundNode : _nodes)
+ {
+ if (name.equals(foundNode.getNodeName()))
+ {
+ return foundNode;
+ }
+ }
+ return null;
+ }
+
+ public CMNode item(final int index)
+ {
+ if (index < _nodes.size())
+ {
+ return _nodes.get(index);
+ }
+ return null;
+ }
+
+ public Iterator<?> iterator()
+ {
+ return Collections.unmodifiableList(_nodes).iterator();
+ }
+
+ /**
+ * A null instance object for InternalNamedNodeMap
+ *
+ */
+ public static class NullInternalNamedNodeMap extends InternalNamedNodeMap
+ {
+
+ @Override
+ public void add(final CMNode node)
+ {
+ // do nothing
+ }
+
+ @Override
+ public int getLength()
+ {
+ // always empty
+ return 0;
+ }
+
+ @Override
+ public CMNode getNamedItem(final String name)
+ {
+ return null;
+ }
+
+ @Override
+ public CMNode item(final int index)
+ {
+ return null;
+ }
+
+ @Override
+ public Iterator<?> iterator()
+ {
+ return Collections.EMPTY_LIST.iterator();
+ }
+
+ }
+} \ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/JSPExternalMetadataStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/JSPExternalMetadataStrategy.java
index fc00a4b70..e704e03ac 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/JSPExternalMetadataStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/JSPExternalMetadataStrategy.java
@@ -12,6 +12,7 @@ package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
@@ -41,7 +42,7 @@ public class JSPExternalMetadataStrategy extends
}
@Override
- public ExternalTagInfo perform(final TagIdentifier input) throws Exception
+ public TagInfo perform(final TagIdentifier input) throws Exception
{
if (_doc != null)
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/MDExternalMetadataStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/MDExternalMetadataStrategy.java
index 1d4d7c75e..126098fe4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/MDExternalMetadataStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/MDExternalMetadataStrategy.java
@@ -10,11 +10,8 @@
*******************************************************************************/
package org.eclipse.jst.jsf.facelet.core.internal.cm.strategy;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -29,15 +26,16 @@ import org.eclipse.jst.jsf.common.internal.resource.ResourceSingletonObjectManag
import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
import org.eclipse.jst.jsf.facelet.core.internal.cm.AttributeCMAdapter;
import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
import org.eclipse.jst.jsf.facelet.core.internal.cm.addtagmd.AddTagMDPackage;
import org.eclipse.jst.jsf.facelet.core.internal.cm.addtagmd.AttributeData;
import org.eclipse.jst.jsf.facelet.core.internal.cm.addtagmd.AttributeUsage;
import org.eclipse.jst.jsf.facelet.core.internal.cm.addtagmd.ElementData;
import org.eclipse.jst.jsf.facelet.core.internal.cm.addtagmd.provider.IResourceProvider;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.InternalNamedNodeMap.NullInternalNamedNodeMap;
import org.eclipse.jst.jsf.facelet.core.internal.util.TagMetadataLoader;
import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
/**
* An external meta-data strategy that uses the JSF meta-data framework.
@@ -127,7 +125,7 @@ public class MDExternalMetadataStrategy extends
* #perform(org.eclipse.jst.jsf.common.dom.TagIdentifier)
*/
@Override
- public ExternalTagInfo perform(final TagIdentifier input) throws Exception
+ public TagInfo perform(final TagIdentifier input) throws Exception
{
MDExternalTagInfo tagInfo = _cached.get(input.getUri());
@@ -233,84 +231,9 @@ public class MDExternalMetadataStrategy extends
}
}
- private static class InternalNamedNodeMap implements CMNamedNodeMap
- {
- private final List<CMNode> _nodes = new ArrayList<CMNode>();
-
- public void add(final CMNode node)
- {
- _nodes.add(node);
- }
-
- public int getLength()
- {
- return _nodes.size();
- }
-
- public CMNode getNamedItem(final String name)
- {
- for (final CMNode foundNode : _nodes)
- {
- if (name.equals(foundNode.getNodeName()))
- {
- return foundNode;
- }
- }
- return null;
- }
-
- public CMNode item(final int index)
- {
- if (index < _nodes.size())
- {
- return _nodes.get(index);
- }
- return null;
- }
-
- public Iterator<?> iterator()
- {
- return Collections.unmodifiableList(_nodes).iterator();
- }
- }
-
private final static NullInternalNamedNodeMap NULL_INSTANCE = new NullInternalNamedNodeMap();
- private static class NullInternalNamedNodeMap extends InternalNamedNodeMap
- {
-
- @Override
- public void add(final CMNode node)
- {
- // do nothing
- }
-
- @Override
- public int getLength()
- {
- // always empty
- return 0;
- }
- @Override
- public CMNode getNamedItem(final String name)
- {
- return null;
- }
-
- @Override
- public CMNode item(final int index)
- {
- return null;
- }
-
- @Override
- public Iterator<?> iterator()
- {
- return Collections.EMPTY_LIST.iterator();
- }
-
- }
// temporary: transfer out to metadata
final static Map<String, InternalNamedNodeMap> _faceletData;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/Messages.java
index 8105851ff..484f0cd47 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/Messages.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/Messages.java
@@ -22,6 +22,9 @@ import org.eclipse.osgi.util.NLS;
private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.facelet.core.internal.cm.strategy.messages"; //$NON-NLS-1$
+ public static String FaceletExternalMetadataStrategy_0;
+
+
public static String JSPExternalMetadataStrategy_DisplayName;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/TagInfoStrategyComposite.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/TagInfoStrategyComposite.java
index ffdcacd72..b2f2a3d1c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/TagInfoStrategyComposite.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/TagInfoStrategyComposite.java
@@ -17,6 +17,7 @@ import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.internal.policy.IdentifierOrderedIteratorPolicy;
import org.eclipse.jst.jsf.common.internal.strategy.IteratorPolicyBasedStrategyComposite;
import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
+import org.eclipse.jst.jsf.facelet.core.internal.cm.TagInfo;
/**
* A composite of strategies for deriving external tag metadata.
@@ -26,7 +27,7 @@ import org.eclipse.jst.jsf.facelet.core.internal.cm.ExternalTagInfo;
*/
public class TagInfoStrategyComposite
extends
- IteratorPolicyBasedStrategyComposite<TagIdentifier, ExternalTagInfo, ExternalTagInfo, String, IExternalMetadataStrategy>
+ IteratorPolicyBasedStrategyComposite<TagIdentifier, TagInfo, TagInfo, String, IExternalMetadataStrategy>
{
private final Iterable<String> _policyOrder;
@@ -40,7 +41,7 @@ public class TagInfoStrategyComposite
}
@Override
- public ExternalTagInfo getNoResult()
+ public TagInfo getNoResult()
{
return ExternalTagInfo.NULL_INSTANCE;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/messages.properties
index 8cbba2514..8e410920c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/messages.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/strategy/messages.properties
@@ -1,3 +1,4 @@
+FaceletExternalMetadataStrategy_0=Facelet metadata strategy
JSPExternalMetadataStrategy_DisplayName=JSP TLD meta-data
MDExternalMetadataStrategy_DisplayName=Tag meta-data from MD framework
MDExternalMetadataStrategy_BINDING_DESCRIPTION=A method binding of the form of the form \#{bean.binding} where 'binding' has the signature <b>UIComponent binding()</b>, that returns the component instance to use. If not present, Facelets will automatically instantiate one.
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
index 9319cbd0a..f202b1fa2 100644
--- 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
@@ -11,6 +11,7 @@
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;
@@ -19,8 +20,8 @@ import org.eclipse.jst.jsf.common.runtime.internal.model.component.ComponentType
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.ITagElement;
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;
@@ -30,6 +31,7 @@ import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.TagToVie
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;
@@ -78,18 +80,10 @@ public class FaceletMetaResolvingStrategy
public ITagElement resolve(
final IFaceletTagResolvingStrategy.TLDWrapper elementDecl)
{
- // final IProjectFacetVersion version = JSFAppConfigUtils
- // .getProjectFacet(_project);
- // final String versionAsString = version.getVersionString();
- // final JSFVersion jsfVersion =
- // JSFVersion.valueOfString(versionAsString);
-
final String uri = elementDecl.getUri();
- final String tagName = elementDecl.getTagDefn().getName();
+ final String tagName = elementDecl.getTagDefn().getTagName();
final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
uri, tagName);
- // final DefaultTagTypeInfo defaultTagTypeInfo = new
- // DefaultTagTypeInfo();
final TagMapping mapping = _loader.getTagToViewMapping(tagId);
TypeInfo elementType = null;
@@ -97,35 +91,36 @@ public class FaceletMetaResolvingStrategy
{
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));
+ new MetadataAttributeAdvisor(tagId, _loader, attributes));
}
else if (elementType instanceof ConverterTypeInfo)
{
return new ConverterTag(uri, tagName,
(ConverterTypeInfo) elementType, null, _factory,
- new MetadataAttributeAdvisor(tagId, _loader));
+ new MetadataAttributeAdvisor(tagId, _loader, attributes));
}
else if (elementType instanceof ValidatorTypeInfo)
{
return new ValidatorTag(uri, tagName,
(ValidatorTypeInfo) elementType, null, _factory,
- new MetadataAttributeAdvisor(tagId, _loader));
+ new MetadataAttributeAdvisor(tagId, _loader, attributes));
}
else if (elementType instanceof TagHandlerType)
{
return new HandlerTag(uri, tagName,
(TagHandlerType) elementType, null, _factory,
new MetadataAttributeAdvisor(
- tagId, _loader));
+ tagId, _loader, attributes));
}
else if (DefaultTagTypeInfo.isDefaultLib(tagId.getUri()))
{
- return new NoArchetypeFaceletTag(uri, tagName, _factory, new MetadataAttributeAdvisor(tagId, _loader));
+ return new NoArchetypeFaceletTag(uri, tagName, _factory, new MetadataAttributeAdvisor(tagId, _loader, attributes));
}
// not found
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletTagResolvingStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletTagResolvingStrategy.java
index b3f70afa8..7ba62383a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletTagResolvingStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/FaceletTagResolvingStrategy.java
@@ -13,12 +13,12 @@ import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader;
import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.AbstractTagResolvingStrategy;
import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.IAttributeAdvisor;
import org.eclipse.jst.jsf.facelet.core.internal.cm.FaceletDocumentFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ComponentTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ConverterTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.HandlerTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.SourceTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ValidatorTagDefn;
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.FaceletTag;
@@ -62,14 +62,14 @@ import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.ValidatorTag;
return Messages.FaceletTagResolvingStrategy_FACELET_TAG_RESOLVER_DISPLAY_NAME;
}
- private FaceletTag createFaceletTag(final String uri, final TagDefn tagDefn)
+ private FaceletTag createFaceletTag(final String uri, final FaceletTaglibTag tagDefn)
{
- final String tagName = tagDefn.getName();
+ final String tagName = tagDefn.getTagName();
final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
uri, tagName);
final IAttributeAdvisor advisor = new MetadataAttributeAdvisor(tagId,
- _viewLoader);
+ _viewLoader, tagDefn.getAttribute());
if (tagDefn instanceof ComponentTagDefn)
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/IFaceletTagResolvingStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/IFaceletTagResolvingStrategy.java
index 5de18c8ee..2be5978e2 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/IFaceletTagResolvingStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/IFaceletTagResolvingStrategy.java
@@ -11,7 +11,7 @@
package org.eclipse.jst.jsf.facelet.core.internal.registry;
import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.ITagResolvingStrategy;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
/**
* @author cbateman
@@ -30,13 +30,13 @@ public interface IFaceletTagResolvingStrategy extends
public static class TLDWrapper
{
private final String _uri;
- private final TagDefn _tagDefn;
+ private final FaceletTaglibTag _tagDefn;
/**
* @param tagDefn
* @param uri
*/
- public TLDWrapper(TagDefn tagDefn, String uri)
+ public TLDWrapper(FaceletTaglibTag tagDefn, String uri)
{
super();
_tagDefn = tagDefn;
@@ -54,7 +54,7 @@ public interface IFaceletTagResolvingStrategy extends
/**
* @return the tag definition information
*/
- public final TagDefn getTagDefn()
+ public final FaceletTaglibTag getTagDefn()
{
return _tagDefn;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/MetadataAttributeAdvisor.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/MetadataAttributeAdvisor.java
index 4fda2e538..d0ba0bf0b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/MetadataAttributeAdvisor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/MetadataAttributeAdvisor.java
@@ -10,13 +10,21 @@
*******************************************************************************/
package org.eclipse.jst.jsf.facelet.core.internal.registry;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ComponentPropertyHandler;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttributeHandler;
import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.TagAttributeHandler;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader;
import org.eclipse.jst.jsf.designtime.internal.view.mapping.viewmapping.AttributeToPropertyMapping;
import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.IAttributeAdvisor;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute;
+import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.FaceletAttribute;
/**
* An attribute advisor that composes multiple strategies for deriving information
@@ -29,16 +37,19 @@ import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.IAttributeAdvisor;
{
private final TagIdentifier _tagId;
private final ViewMetadataLoader _loader;
+ private List<FaceletTaglibTagAttribute> _attributes;
/**
* @param tagId
* @param loader
+ * @param attributes
*/
public MetadataAttributeAdvisor(final TagIdentifier tagId,
- final ViewMetadataLoader loader)
+ final ViewMetadataLoader loader, final List<FaceletTaglibTagAttribute> attributes)
{
_tagId = tagId;
_loader = loader;
+ _attributes = attributes;
}
public ITagAttributeHandler createAttributeHandler(final String name)
@@ -60,4 +71,15 @@ import org.eclipse.jst.jsf.designtime.internal.view.model.jsp.IAttributeAdvisor;
}
return new TagAttributeHandler(null, name, false);
}
+
+ public Map<String, ? extends ITagAttribute> getAttributes()
+ {
+ final Map<String, ITagAttribute> attributes = new HashMap<String, ITagAttribute>();
+
+ for (final FaceletTaglibTagAttribute attribute : _attributes)
+ {
+ attributes.put(attribute.getName(), new FaceletAttribute(attribute));
+ }
+ return Collections.unmodifiableMap(attributes);
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/VeryTemporaryDefaultFaceletResolver.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/VeryTemporaryDefaultFaceletResolver.java
deleted file mode 100644
index 7bf66fe0e..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/VeryTemporaryDefaultFaceletResolver.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package org.eclipse.jst.jsf.facelet.core.internal.registry;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-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.ITagElement;
-import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.IHandlerTagElement.TagHandlerType;
-import org.eclipse.jst.jsf.core.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
-import org.eclipse.jst.jsf.core.jsfappconfig.JSFAppConfigUtils;
-import org.eclipse.jst.jsf.designtime.internal.view.mapping.ViewMetadataLoader;
-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.IFaceletTagResolvingStrategy.TLDWrapper;
-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.IFaceletTagConstants;
-import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.NoArchetypeFaceletTag;
-import org.eclipse.jst.jsf.facelet.core.internal.tagmodel.ValidatorTag;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Temporary hard-coded tag resolver (to be replaced by meta-data)
- * @author cbateman
- *
- */
-public class VeryTemporaryDefaultFaceletResolver extends
- AbstractTagResolvingStrategy<TLDWrapper, String> implements IFaceletTagResolvingStrategy
-{
- /**
- * Tag resolver unique identifier
- */
- public final static String ID = "org.eclipse.jst.jsf.facelet.core.VeryTemporaryDefaultFaceletResolver"; //$NON-NLS-1$
- private final DefaultTagTypeInfo _coreHtmlTypeInfo;
- private final IProject _project;
- private final FaceletDocumentFactory _factory;
- private final ViewMetadataLoader _viewLoader;
-
- /**
- * @param project
- * @param factory
- */
- public VeryTemporaryDefaultFaceletResolver(final IProject project, final FaceletDocumentFactory factory)
- {
- super();
- _factory = factory;
- _project = project;
- _coreHtmlTypeInfo = new DefaultTagTypeInfo();
- _viewLoader = new ViewMetadataLoader(project);
- }
-
- @Override
- public final String getId()
- {
- return ID;
- }
-
- @Override
- public ITagElement resolve(final TLDWrapper element)
- {
- final IProjectFacetVersion version = JSFAppConfigUtils
- .getProjectFacet(_project);
- final String versionAsString = version.getVersionString();
- final JSFVersion jsfVersion = JSFVersion.valueOfString(versionAsString);
-
- final String uri = element.getUri();
- final String name = element.getTagDefn().getName();
- final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(
- uri, name);
- TypeInfo typeInfo = null;
- if (IFaceletTagConstants.URI_JSF_FACELETS.equals(element.getUri()))
- {
- typeInfo = getTypeInfo(tagId, jsfVersion);
- }
- else
- {
- typeInfo = _coreHtmlTypeInfo.getTypeInfo(tagId,
- jsfVersion);
- }
- return createFromTypeInfo(tagId, typeInfo);
- }
-
- private ITagElement createFromTypeInfo(final TagIdentifier tagId,
- final TypeInfo typeInfo)
- {
- final MetadataAttributeAdvisor advisor =
- new MetadataAttributeAdvisor(tagId, _viewLoader);
- if (typeInfo instanceof ComponentTypeInfo)
- {
- return new ComponentTag(tagId.getUri(), tagId.getTagName(),
- (ComponentTypeInfo) typeInfo, null, _factory, advisor);
- }
- else if (typeInfo instanceof ConverterTypeInfo)
- {
- return new ConverterTag(tagId.getUri(), tagId.getTagName(),
- (ConverterTypeInfo) typeInfo, null, _factory, advisor);
- }
- else if (typeInfo instanceof ValidatorTypeInfo)
- {
- return new ValidatorTag(tagId.getUri(), tagId.getTagName(),
- (ValidatorTypeInfo) typeInfo, null, _factory, advisor);
- }
- else if (typeInfo instanceof TagHandlerType)
- {
- return new HandlerTag(tagId.getUri(), tagId.getTagName(),
- (TagHandlerType) typeInfo, null, _factory, advisor);
- }
- else if (DefaultTagTypeInfo.isDefaultLib(tagId.getUri()))
- {
- return new NoArchetypeFaceletTag(tagId.getUri(), tagId.getTagName(), _factory, advisor);
- }
-
- // not found
- return null;
-
- }
-
- public final String getDisplayName()
- {
- return "Meta-data Driven Tag Resolver"; //$NON-NLS-1$
- }
-
- private static final ComponentTypeInfo COMPINFO_COMPONENT = new ComponentTypeInfo(
- "facelets.ui.ComponentRef", //$NON-NLS-1$
- "com.sun.facelets.tag.ui.ComponentRef", //$NON-NLS-1$
- new String[]
- {
- "javax.faces.component.UIComponentBase", //$NON-NLS-1$
- "javax.faces.component.UIComponent", "java.lang.Object", }, //$NON-NLS-1$ //$NON-NLS-2$
- new String[]
- { "javax.faces.component.StateHolder" }, //$NON-NLS-1$
- "facelets", //$NON-NLS-1$
- null);
-
- private static final ComponentTypeInfo COMPINFO_DEBUG = new ComponentTypeInfo(
- "facelets.ui.Debug", //$NON-NLS-1$
- "com.sun.facelets.tag.ui.UIDebug", //$NON-NLS-1$
- new String[]
- {
- "javax.faces.component.UIComponentBase", //$NON-NLS-1$
- "javax.faces.component.UIComponent", "java.lang.Object", }, //$NON-NLS-1$ //$NON-NLS-2$
- new String[]
- { "javax.faces.component.StateHolder" }, //$NON-NLS-1$
- "facelets", //$NON-NLS-1$
- null);
-
- private static final ComponentTypeInfo COMPINFO_REPEAT = new ComponentTypeInfo(
- "facelets.ui.Repeat", //$NON-NLS-1$
- "com.sun.facelets.component.UIRepeat", //$NON-NLS-1$
- new String[]
- {
- "javax.faces.component.UIComponentBase", //$NON-NLS-1$
- "javax.faces.component.UIComponent", "java.lang.Object", }, //$NON-NLS-1$ //$NON-NLS-2$
- new String[]
- {
- "javax.faces.component.StateHolder", //$NON-NLS-1$
- "javax.faces.component.NamingContainer" }, //$NON-NLS-1$
- "facelets", //$NON-NLS-1$
- null);
-
- /**
- * @param tagId
- * @param jsfVersion
- * @return a type info for the tag id in jsf version or null if none.
- */
- private TypeInfo getTypeInfo(final TagIdentifier tagId,
- final JSFVersion jsfVersion)
- {
-
- switch (jsfVersion)
- {
- case V1_0:
- case V1_1:
- return JSF11_ELEMENTS.get(tagId);
-
- case V1_2:
- return JSF12_ELEMENTS.get(tagId);
-
- default:
- return null;
- }
- }
- private static Map<TagIdentifier, TypeInfo> JSF11_ELEMENTS;
- private static Map<TagIdentifier, TypeInfo> JSF12_ELEMENTS;
- static
- {
- final Map<TagIdentifier, TypeInfo> elements = new HashMap<TagIdentifier, TypeInfo>();
-
- elements.put(IFaceletTagConstants.TAG_IDENTIFIER_COMPONENT,
- COMPINFO_COMPONENT);
-
- elements.put(IFaceletTagConstants.TAG_IDENTIFIER_DEBUG,
- COMPINFO_DEBUG);
-
- elements.put(IFaceletTagConstants.TAG_IDENTIFIER_FRAGMENT,
- COMPINFO_COMPONENT);
-
- elements.put(IFaceletTagConstants.TAG_IDENTIFIER_REPEAT,
- COMPINFO_REPEAT);
-
- JSF11_ELEMENTS = Collections.unmodifiableMap(elements);
-
- JSF12_ELEMENTS = Collections
- .unmodifiableMap(new HashMap<TagIdentifier, TypeInfo>(elements));
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/ContextParamSpecifiedFaceletTaglibLocator.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/ContextParamSpecifiedFaceletTaglibLocator.java
index 5d13e4330..d1f7956e6 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/ContextParamSpecifiedFaceletTaglibLocator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/ContextParamSpecifiedFaceletTaglibLocator.java
@@ -18,27 +18,23 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.jst.jsf.common.internal.managedobject.AbstractManagedObject;
import org.eclipse.jst.jsf.common.internal.managedobject.ObjectManager.ManagedObjectException;
import org.eclipse.jst.jsf.common.internal.resource.IResourceLifecycleListener;
import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent;
-import org.eclipse.jst.jsf.common.internal.resource.ResourceSingletonObjectManager;
import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.EventType;
+import org.eclipse.jst.jsf.common.internal.resource.ResourceSingletonObjectManager;
import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
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.WebappConfiguration.WebappListener;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn;
-import org.xml.sax.SAXException;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
/**
* Attempts to locate Facelet taglib's specified as xml files in project
@@ -142,31 +138,15 @@ import org.xml.sax.SAXException;
try
{
is = file.getContents();
- FaceletTaglibDefn taglib = TagModelParser.loadFromInputStream(is, null);
+ final TagModelLoader loader = new TagModelLoader(file.getFullPath().toFile().getCanonicalPath());
+ loader.loadFromInputStream(is);
+ FaceletTaglib taglib = loader.getTaglib();
if (taglib != null)
{
return _factory.createRecords(taglib);
}
}
- catch (final CoreException e)
- {
- FaceletCorePlugin
- .log(
- "Loading web root taglibs for project: " + _project.getName(), e); //$NON-NLS-1$
- }
- catch (final IOException e)
- {
- FaceletCorePlugin
- .log(
- "Loading web root taglibs for project: " + _project.getName(), e); //$NON-NLS-1$
- }
- catch (final ParserConfigurationException e)
- {
- FaceletCorePlugin
- .log(
- "Loading web root taglibs for project: " + _project.getName(), e); //$NON-NLS-1$
- }
- catch (final SAXException e)
+ catch (final Exception e)
{
FaceletCorePlugin
.log(
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagRecord.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagRecord.java
index 26761c26d..cfa997144 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagRecord.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/FaceletTagRecord.java
@@ -13,7 +13,7 @@ package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
import java.util.Collection;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
abstract class FaceletTagRecord implements IFaceletTagRecord
{
@@ -49,7 +49,7 @@ abstract class FaceletTagRecord implements IFaceletTagRecord
public abstract String getURI();
- public abstract TagDefn getTag(final String name);
+ public abstract FaceletTaglibTag getTag(final String name);
- public abstract Collection<? extends TagDefn> getTags();
+ public abstract Collection<? extends FaceletTaglibTag> getTags();
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/IFaceletTagRecord.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/IFaceletTagRecord.java
index 56f501736..040adaf7b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/IFaceletTagRecord.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/IFaceletTagRecord.java
@@ -14,7 +14,7 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.EventObject;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
/**
* @author cbateman
@@ -40,13 +40,13 @@ public interface IFaceletTagRecord extends Serializable
/**
* @return the tag definitions
*/
- Collection<? extends TagDefn> getTags();
+ Collection<? extends FaceletTaglibTag> getTags();
/**
* @param name
* @return the tag definition for name or null.
*/
- TagDefn getTag(final String name);
+ FaceletTaglibTag getTag(final String name);
/**
* @param listener
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JarFileFaceletTaglibLocator.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JarFileFaceletTaglibLocator.java
index e33d71472..2e9d5db08 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JarFileFaceletTaglibLocator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/JarFileFaceletTaglibLocator.java
@@ -22,8 +22,6 @@ import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.regex.Pattern;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -34,8 +32,7 @@ import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jst.jsf.common.internal.strategy.SimpleStrategyComposite;
import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn;
-import org.xml.sax.SAXException;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
/**
* A locator that finds Facelet taglibs in jars on the classpath
@@ -105,8 +102,7 @@ public class JarFileFaceletTaglibLocator extends AbstractFaceletTaglibLocator
final IClasspathEntry[] entries = javaProject
.getResolvedClasspath(true);
- final List<FaceletTaglibDefn> tagLibsFound = new ArrayList<FaceletTaglibDefn>();
-
+ final List<FaceletTaglib> tagLibsFound = new ArrayList<FaceletTaglib>();
for (final IClasspathEntry entry : entries)
{
@@ -149,7 +145,7 @@ public class JarFileFaceletTaglibLocator extends AbstractFaceletTaglibLocator
}
}
- for (final FaceletTaglibDefn tag : tagLibsFound)
+ for (final FaceletTaglib tag : tagLibsFound)
{
IFaceletTagRecord record = _factory.createRecords(tag);
if (record != null)
@@ -196,10 +192,10 @@ public class JarFileFaceletTaglibLocator extends AbstractFaceletTaglibLocator
* @param entry
* @param defaultDtdStream
*/
- private List<FaceletTaglibDefn> processJar(final IClasspathEntry entry)
+ private List<FaceletTaglib> processJar(final IClasspathEntry entry)
{
JarFile jarFile = null;
- final List<FaceletTaglibDefn> tagLibsFound = new ArrayList<FaceletTaglibDefn>();
+ final List<FaceletTaglib> tagLibsFound = new ArrayList<FaceletTaglib>();
try
{
@@ -225,33 +221,22 @@ public class JarFileFaceletTaglibLocator extends AbstractFaceletTaglibLocator
try
{
is = jarFile.getInputStream(jarEntry);
-
- FaceletTaglibDefn tagLib = TagModelParser
- .loadFromInputStream(is, null);
+ TagModelLoader loader = new TagModelLoader(jarEntry.getName());
+ loader.loadFromInputStream(is);
+ FaceletTaglib tagLib = loader.getTaglib();
if (tagLib != null)
{
tagLibsFound.add(tagLib);
}
- } catch (final ParserConfigurationException e)
+ } catch (final Exception e)
{
FaceletCorePlugin
.log(
"Error initializing facelet registry entry", //$NON-NLS-1$
e);
- } catch (final IOException ioe)
- {
- FaceletCorePlugin
- .log(
- "Error initializing facelet registry entry", //$NON-NLS-1$
- ioe);
- } catch (final SAXException ioe)
- {
- FaceletCorePlugin
- .log(
- "Error initializing facelet registry entry", //$NON-NLS-1$
- ioe);
- } finally
+ }
+ finally
{
if (is != null)
{
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/LibraryClassBasedTagRecord.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/LibraryClassBasedTagRecord.java
index 107828ca2..ca69f176e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/LibraryClassBasedTagRecord.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/LibraryClassBasedTagRecord.java
@@ -12,7 +12,6 @@ package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -22,23 +21,14 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jem.internal.proxy.core.IBeanProxy;
import org.eclipse.jem.internal.proxy.core.IBeanTypeProxy;
-import org.eclipse.jem.internal.proxy.core.IBooleanBeanProxy;
-import org.eclipse.jem.internal.proxy.core.IFieldProxy;
-import org.eclipse.jem.internal.proxy.core.IMethodProxy;
import org.eclipse.jem.internal.proxy.core.IStringBeanProxy;
import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
-import org.eclipse.jem.internal.proxy.core.ThrowableProxy;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
import org.eclipse.jst.jsf.core.internal.jem.BeanProxyUtil;
import org.eclipse.jst.jsf.core.internal.jem.BeanProxyUtil.BeanProxyWrapper;
import org.eclipse.jst.jsf.core.internal.jem.BeanProxyUtil.ProxyException;
-import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletLibraryClassTagLib;
/**
* @author cbateman
@@ -46,28 +36,28 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.V
*/
/* package */class LibraryClassBasedTagRecord extends FaceletTagRecord
{
- private static final String METHOD_NAME_GET_VALUE = "getValue"; //$NON-NLS-1$
- private static final String METHOD_NAME_GET_KEY = "getKey"; //$NON-NLS-1$
- private static final String METHOD_NAME_HAS_NEXT = "hasNext"; //$NON-NLS-1$
- private static final String METHOD_NAME_NEXT = "next"; //$NON-NLS-1$
- private static final String METHOD_NAME_ITERATOR = "iterator"; //$NON-NLS-1$
- private static final String METHOD_NAME_ENTRY_SET = "entrySet"; //$NON-NLS-1$
- private static final String PROPERTY_NAME_FACTORIES = "factories"; //$NON-NLS-1$
- private static final String QUALIFIED_CLASS_NAME__COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY = "com.sun.facelets.tag.AbstractTagLibrary"; //$NON-NLS-1$
- private static final String QUALIFIED_CLASS_NAME_JAVA_UTIL_MAP = "java.util.Map"; //$NON-NLS-1$
-
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$HandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_CONVERTER_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserConverterHandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_CONVERTER_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ConverterHandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_VALIDATOR_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserValidatorHandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_VALIDATOR_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ValidatorHandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_COMPONENT_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory"; //$NON-NLS-1$
- private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_COMPONENT_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ComponentHandlerFactory"; //$NON-NLS-1$
-
- private static final String FIELD_NAME_CONVERTER_ID = "converterId"; //$NON-NLS-1$
- private static final String FIELD_NAME_VALIDATOR_ID = "validatorId"; //$NON-NLS-1$
- private static final String FIELD_NAME_RENDER_TYPE = "renderType"; //$NON-NLS-1$
- private static final String FIELD_NAME_COMPONENT_TYPE = "componentType"; //$NON-NLS-1$
+// private static final String METHOD_NAME_GET_VALUE = "getValue"; //$NON-NLS-1$
+// private static final String METHOD_NAME_GET_KEY = "getKey"; //$NON-NLS-1$
+// private static final String METHOD_NAME_HAS_NEXT = "hasNext"; //$NON-NLS-1$
+// private static final String METHOD_NAME_NEXT = "next"; //$NON-NLS-1$
+// private static final String METHOD_NAME_ITERATOR = "iterator"; //$NON-NLS-1$
+// private static final String METHOD_NAME_ENTRY_SET = "entrySet"; //$NON-NLS-1$
+// private static final String PROPERTY_NAME_FACTORIES = "factories"; //$NON-NLS-1$
+// private static final String QUALIFIED_CLASS_NAME__COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY = "com.sun.facelets.tag.AbstractTagLibrary"; //$NON-NLS-1$
+// private static final String QUALIFIED_CLASS_NAME_JAVA_UTIL_MAP = "java.util.Map"; //$NON-NLS-1$
+//
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$HandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_CONVERTER_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserConverterHandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_CONVERTER_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ConverterHandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_VALIDATOR_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserValidatorHandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_VALIDATOR_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ValidatorHandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_COMPONENT_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory"; //$NON-NLS-1$
+// private static final String COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_COMPONENT_HANDLER_FACTORY = "com.sun.facelets.tag.AbstractTagLibrary$ComponentHandlerFactory"; //$NON-NLS-1$
+//
+// private static final String FIELD_NAME_CONVERTER_ID = "converterId"; //$NON-NLS-1$
+// private static final String FIELD_NAME_VALIDATOR_ID = "validatorId"; //$NON-NLS-1$
+// private static final String FIELD_NAME_RENDER_TYPE = "renderType"; //$NON-NLS-1$
+// private static final String FIELD_NAME_COMPONENT_TYPE = "componentType"; //$NON-NLS-1$
/**
*
@@ -84,7 +74,7 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.V
private String _uri;
private BeanProxyWrapper _classTypeWrapper;
- private Map<String, TagDefn> _tags;
+ private Map<String, FaceletTaglibTag> _tags;
/**
* @param registry
@@ -149,29 +139,29 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.V
}
@Override
- public synchronized TagDefn getTag(final String name)
+ public synchronized FaceletTaglibTag getTag(final String name)
{
- initializeIfNecessary();
+// initializeIfNecessary();
return _tags.get(name);
}
@Override
- public synchronized Collection<? extends TagDefn> getTags()
+ public synchronized Collection<? extends FaceletTaglibTag> getTags()
{
- initializeIfNecessary();
+// initializeIfNecessary();
return Collections.unmodifiableCollection(_tags.values());
}
- private void initializeIfNecessary()
- {
- if (_isInitialized.compareAndSet(false, true))
- {
- if (_tags == null)
- {
- _tags = resolveTags();
- }
- }
- }
+// private void initializeIfNecessary()
+// {
+// if (_isInitialized.compareAndSet(false, true))
+// {
+// if (_tags == null)
+// {
+// _tags = resolveTags();
+// }
+// }
+// }
/*
* (non-Javadoc)
@@ -186,324 +176,324 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.V
return _uri;
}
- private Map<String, TagDefn> resolveTags()
+// private Map<String, FaceletTaglibTag> resolveTags()
+// {
+// final Map<String, FaceletTaglibTag> tags = new HashMap<String, FaceletTaglibTag>();
+//
+// // if the tag factory is a child of AbstractTagFactory, then we
+// // can try to get our hands on its private parts ...
+// final IBeanTypeProxy mapTypeProxy = _registry.getBeanTypeProxyFactory()
+// .getBeanTypeProxy(QUALIFIED_CLASS_NAME_JAVA_UTIL_MAP);
+// final IBeanTypeProxy componentFactoryTypeProxy = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// QUALIFIED_CLASS_NAME__COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY);
+//
+// if (mapTypeProxy != null && componentFactoryTypeProxy != null)
+// {
+// final IFieldProxy fieldProxy = componentFactoryTypeProxy
+// .getDeclaredFieldProxy(PROPERTY_NAME_FACTORIES);
+//
+// if (fieldProxy != null)
+// {
+// if (fieldProxy.getFieldType().isKindOf(mapTypeProxy))
+// {
+// IBeanProxy factories = null;
+//
+// try
+// {
+// // need to turn off security checking on the private
+// // field
+// fieldProxy.setAccessible(true);
+// factories = fieldProxy.get(_classTypeWrapper
+// .getInstance());
+// }
+// catch (final ThrowableProxy e)
+// {
+// FaceletCorePlugin.log(
+// "Error getting factories from bean instance", //$NON-NLS-1$
+// e);
+// }
+//
+// if (factories != null)
+// {
+// final IMethodProxy entrySetMethod = fieldProxy
+// .getFieldType().getMethodProxy(
+// METHOD_NAME_ENTRY_SET);
+// if (entrySetMethod != null)
+// {
+// try
+// {
+// entrySetMethod.setAccessible(true);
+// final IBeanProxy entrySetProxy = entrySetMethod
+// .invoke(factories);
+//
+// if (entrySetProxy != null)
+// {
+// final IMethodProxy iteratorMethod = entrySetProxy
+// .getTypeProxy().getMethodProxy(
+// METHOD_NAME_ITERATOR);
+// iteratorMethod.setAccessible(true);
+// final IBeanProxy iteratorProxy = iteratorMethod
+// .invoke(entrySetProxy);
+//
+// if (iteratorProxy != null)
+// {
+// final IMethodProxy nextMethod = iteratorProxy
+// .getTypeProxy().getMethodProxy(
+// METHOD_NAME_NEXT);
+// nextMethod.setAccessible(true);
+// final IMethodProxy hasNextMethod = iteratorProxy
+// .getTypeProxy().getMethodProxy(
+// METHOD_NAME_HAS_NEXT);
+// hasNextMethod.setAccessible(true);
+//
+// while (((IBooleanBeanProxy) hasNextMethod
+// .invoke(iteratorProxy))
+// .booleanValue())
+// {
+// final IBeanProxy entryProxy = nextMethod
+// .invoke(iteratorProxy);
+// final IMethodProxy getKeyProxy = entryProxy
+// .getTypeProxy()
+// .getMethodProxy(
+// METHOD_NAME_GET_KEY);
+// final IMethodProxy getValueProxy = entryProxy
+// .getTypeProxy()
+// .getMethodProxy(
+// METHOD_NAME_GET_VALUE);
+// if (getKeyProxy != null
+// && getValueProxy != null)
+// {
+// getKeyProxy.setAccessible(true);
+// final IBeanProxy key = getKeyProxy
+// .invoke(entryProxy);
+//
+// if (key instanceof IStringBeanProxy)
+// {
+// final String name = ((IStringBeanProxy) key)
+// .stringValue();
+// getValueProxy
+// .setAccessible(true);
+// final IBeanProxy value = getValueProxy
+// .invoke(entryProxy);
+//
+// if (value != null)
+// {
+// final FaceletTaglibTag tagDefn = createTagDefn(
+// name,
+// value);
+// if (tagDefn != null)
+// {
+// tags.put(name,
+// tagDefn);
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+// catch (final ThrowableProxy e)
+// {
+// FaceletCorePlugin.log(
+// "Error invoking entrySet", e); //$NON-NLS-1$
+// }
+// }
+// }
+//
+// }
+// }
+// }
+// return tags;
+// }
+
+// private FaceletTaglibTag createTagDefn(final String name,
+// final IBeanProxy handlerValueProxy)
{
- final Map<String, TagDefn> tags = new HashMap<String, TagDefn>();
-
- // if the tag factory is a child of AbstractTagFactory, then we
- // can try to get our hands on its private parts ...
- final IBeanTypeProxy mapTypeProxy = _registry.getBeanTypeProxyFactory()
- .getBeanTypeProxy(QUALIFIED_CLASS_NAME_JAVA_UTIL_MAP);
- final IBeanTypeProxy componentFactoryTypeProxy = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- QUALIFIED_CLASS_NAME__COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY);
-
- if (mapTypeProxy != null && componentFactoryTypeProxy != null)
- {
- final IFieldProxy fieldProxy = componentFactoryTypeProxy
- .getDeclaredFieldProxy(PROPERTY_NAME_FACTORIES);
-
- if (fieldProxy != null)
- {
- if (fieldProxy.getFieldType().isKindOf(mapTypeProxy))
- {
- IBeanProxy factories = null;
-
- try
- {
- // need to turn off security checking on the private
- // field
- fieldProxy.setAccessible(true);
- factories = fieldProxy.get(_classTypeWrapper
- .getInstance());
- }
- catch (final ThrowableProxy e)
- {
- FaceletCorePlugin.log(
- "Error getting factories from bean instance", //$NON-NLS-1$
- e);
- }
-
- if (factories != null)
- {
- final IMethodProxy entrySetMethod = fieldProxy
- .getFieldType().getMethodProxy(
- METHOD_NAME_ENTRY_SET);
- if (entrySetMethod != null)
- {
- try
- {
- entrySetMethod.setAccessible(true);
- final IBeanProxy entrySetProxy = entrySetMethod
- .invoke(factories);
-
- if (entrySetProxy != null)
- {
- final IMethodProxy iteratorMethod = entrySetProxy
- .getTypeProxy().getMethodProxy(
- METHOD_NAME_ITERATOR);
- iteratorMethod.setAccessible(true);
- final IBeanProxy iteratorProxy = iteratorMethod
- .invoke(entrySetProxy);
-
- if (iteratorProxy != null)
- {
- final IMethodProxy nextMethod = iteratorProxy
- .getTypeProxy().getMethodProxy(
- METHOD_NAME_NEXT);
- nextMethod.setAccessible(true);
- final IMethodProxy hasNextMethod = iteratorProxy
- .getTypeProxy().getMethodProxy(
- METHOD_NAME_HAS_NEXT);
- hasNextMethod.setAccessible(true);
-
- while (((IBooleanBeanProxy) hasNextMethod
- .invoke(iteratorProxy))
- .booleanValue())
- {
- final IBeanProxy entryProxy = nextMethod
- .invoke(iteratorProxy);
- final IMethodProxy getKeyProxy = entryProxy
- .getTypeProxy()
- .getMethodProxy(
- METHOD_NAME_GET_KEY);
- final IMethodProxy getValueProxy = entryProxy
- .getTypeProxy()
- .getMethodProxy(
- METHOD_NAME_GET_VALUE);
- if (getKeyProxy != null
- && getValueProxy != null)
- {
- getKeyProxy.setAccessible(true);
- final IBeanProxy key = getKeyProxy
- .invoke(entryProxy);
-
- if (key instanceof IStringBeanProxy)
- {
- final String name = ((IStringBeanProxy) key)
- .stringValue();
- getValueProxy
- .setAccessible(true);
- final IBeanProxy value = getValueProxy
- .invoke(entryProxy);
-
- if (value != null)
- {
- final TagDefn tagDefn = createTagDefn(
- name,
- value);
- if (tagDefn != null)
- {
- tags.put(name,
- tagDefn);
- }
- }
- }
- }
- }
- }
- }
- }
- catch (final ThrowableProxy e)
- {
- FaceletCorePlugin.log(
- "Error invoking entrySet", e); //$NON-NLS-1$
- }
- }
- }
-
- }
- }
- }
- return tags;
- }
-
- private TagDefn createTagDefn(final String name,
- final IBeanProxy handlerValueProxy)
- {
- final IBeanTypeProxy handlerTypeProxy = handlerValueProxy.getTypeProxy();
- final FaceletTaglibFactory TAGDEFN_FACTORY = FaceletTaglibFactory.eINSTANCE;
-
- final IBeanTypeProxy componentHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_COMPONENT_HANDLER_FACTORY);
- final IBeanTypeProxy userComponentHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_COMPONENT_HANDLER_FACTORY);
- final IBeanTypeProxy validatorHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_VALIDATOR_HANDLER_FACTORY);
- final IBeanTypeProxy userValidatorHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_VALIDATOR_HANDLER_FACTORY);
- final IBeanTypeProxy converterHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_CONVERTER_HANDLER_FACTORY);
- final IBeanTypeProxy userConverterHandlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_CONVERTER_HANDLER_FACTORY);
- final IBeanTypeProxy handlerFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY);
- final IBeanTypeProxy userTagFactory = _registry
- .getBeanTypeProxyFactory()
- .getBeanTypeProxy(
- COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY);
-
- TagDefn tagDefn = null;
-
- if (handlerTypeProxy.isKindOf(componentHandlerFactory)
- || handlerTypeProxy.isKindOf(userComponentHandlerFactory))
- {
- final IFieldProxy componentTypeProxy = handlerTypeProxy
- .getDeclaredFieldProxy(FIELD_NAME_COMPONENT_TYPE);
- final IFieldProxy rendererTypeProxy = handlerTypeProxy
- .getDeclaredFieldProxy(FIELD_NAME_RENDER_TYPE);
- try
- {
- if (componentTypeProxy != null)
- {
- componentTypeProxy.setAccessible(true);
- rendererTypeProxy.setAccessible(true);
- final IBeanProxy componentType = componentTypeProxy
- .get(handlerValueProxy);
- // final IBeanProxy rendererType = rendererTypeProxy
- // .get(handlerValueProxy);
-
- // render type is optional, but must have component type
- if (componentType instanceof IStringBeanProxy)
- {
- final String componentTypeValue = getMeaningfulString(((IStringBeanProxy) componentType)
- .stringValue());
-
- if (componentTypeValue != null)
- {
- final ComponentTagDefn compTagDefn = TAGDEFN_FACTORY
- .createComponentTagDefn();
- compTagDefn.setComponentType(componentTypeValue);
- // if (rendererType instanceof IStringBeanProxy)
- // {
- // compTagDefn
- // .setRendererType(getMeaningfulString(((
- // IStringBeanProxy) rendererType)
- // .stringValue()));
- // }
- tagDefn = compTagDefn;
- }
- }
- }
- }
- catch (final ThrowableProxy e)
- {
- FaceletCorePlugin.log("Error get component info", e); //$NON-NLS-1$
- }
- }
- else if (handlerTypeProxy.isKindOf(validatorHandlerFactory)
- || handlerTypeProxy.isKindOf(userValidatorHandlerFactory))
- {
- final IFieldProxy validatorIdProxy = handlerTypeProxy
- .getDeclaredFieldProxy(FIELD_NAME_VALIDATOR_ID);
-
- try
- {
- if (validatorIdProxy != null)
- {
- validatorIdProxy.setAccessible(true);
- final IBeanProxy validatorId = validatorIdProxy
- .get(handlerValueProxy);
-
- final ValidatorTagDefn valTagDefn = TAGDEFN_FACTORY
- .createValidatorTagDefn();
- tagDefn = valTagDefn;
-
- if (validatorId instanceof IStringBeanProxy)
- {
- final String validatorIdValue = getMeaningfulString(((IStringBeanProxy) validatorId)
- .stringValue());
-
- if (validatorIdValue != null)
- {
- valTagDefn.setValidatorId(validatorIdValue);
- }
- }
- }
- }
- catch (final ThrowableProxy e)
- {
- FaceletCorePlugin.log("Error getting validator info", e); //$NON-NLS-1$
- }
- }
- else if (handlerTypeProxy.isKindOf(converterHandlerFactory)
- || handlerTypeProxy.isKindOf(userConverterHandlerFactory))
- {
- final IFieldProxy converterIdProxy = handlerTypeProxy
- .getDeclaredFieldProxy(FIELD_NAME_CONVERTER_ID);
-
- try
- {
- if (converterIdProxy != null)
- {
- converterIdProxy.setAccessible(true);
- final IBeanProxy converterId = converterIdProxy
- .get(handlerValueProxy);
-
- final ConverterTagDefn converterTagDefn = TAGDEFN_FACTORY
- .createConverterTagDefn();
- tagDefn = converterTagDefn;
-
- if (converterId instanceof IStringBeanProxy)
- {
- final String converterIdValue = getMeaningfulString(((IStringBeanProxy) converterId)
- .stringValue());
-
- if (converterIdValue != null)
- {
- converterTagDefn.setConverterId(converterIdValue);
- }
- }
- }
- }
- catch (final ThrowableProxy e)
- {
- FaceletCorePlugin.log("Error getting validator info", e); //$NON-NLS-1$
- }
- }
- else if (handlerTypeProxy.isKindOf(handlerFactory)
- || handlerTypeProxy.isKindOf(userTagFactory))
- {
- tagDefn = TAGDEFN_FACTORY.createHandlerTagDefn();
- }
-
- if (tagDefn != null)
- {
- tagDefn.setName(name);
- }
- return tagDefn;
+// final IBeanTypeProxy handlerTypeProxy = handlerValueProxy.getTypeProxy();
+// final FaceletTaglibFactory TAGDEFN_FACTORY = FaceletTaglibFactory.eINSTANCE;
+//
+// final IBeanTypeProxy componentHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_COMPONENT_HANDLER_FACTORY);
+// final IBeanTypeProxy userComponentHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_COMPONENT_HANDLER_FACTORY);
+// final IBeanTypeProxy validatorHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_VALIDATOR_HANDLER_FACTORY);
+// final IBeanTypeProxy userValidatorHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_VALIDATOR_HANDLER_FACTORY);
+// final IBeanTypeProxy converterHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_CONVERTER_HANDLER_FACTORY);
+// final IBeanTypeProxy userConverterHandlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_USER_CONVERTER_HANDLER_FACTORY);
+// final IBeanTypeProxy handlerFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY);
+// final IBeanTypeProxy userTagFactory = _registry
+// .getBeanTypeProxyFactory()
+// .getBeanTypeProxy(
+// COM_SUN_FACELETS_TAG_ABSTRACT_TAG_LIBRARY$_HANDLER_FACTORY);
+//
+// FaceletTaglibTag tagDefn = null;
+//
+// if (handlerTypeProxy.isKindOf(componentHandlerFactory)
+// || handlerTypeProxy.isKindOf(userComponentHandlerFactory))
+// {
+// final IFieldProxy componentTypeProxy = handlerTypeProxy
+// .getDeclaredFieldProxy(FIELD_NAME_COMPONENT_TYPE);
+// final IFieldProxy rendererTypeProxy = handlerTypeProxy
+// .getDeclaredFieldProxy(FIELD_NAME_RENDER_TYPE);
+// try
+// {
+// if (componentTypeProxy != null)
+// {
+// componentTypeProxy.setAccessible(true);
+// rendererTypeProxy.setAccessible(true);
+// final IBeanProxy componentType = componentTypeProxy
+// .get(handlerValueProxy);
+// // final IBeanProxy rendererType = rendererTypeProxy
+// // .get(handlerValueProxy);
+//
+// // render type is optional, but must have component type
+// if (componentType instanceof IStringBeanProxy)
+// {
+// final String componentTypeValue = getMeaningfulString(((IStringBeanProxy) componentType)
+// .stringValue());
+//
+// if (componentTypeValue != null)
+// {
+// final ComponentTagDefn compTagDefn = TAGDEFN_FACTORY
+// .createComponentTagDefn();
+// compTagDefn.setComponentType(componentTypeValue);
+// // if (rendererType instanceof IStringBeanProxy)
+// // {
+// // compTagDefn
+// // .setRendererType(getMeaningfulString(((
+// // IStringBeanProxy) rendererType)
+// // .stringValue()));
+// // }
+// tagDefn = compTagDefn;
+// }
+// }
+// }
+// }
+// catch (final ThrowableProxy e)
+// {
+// FaceletCorePlugin.log("Error get component info", e); //$NON-NLS-1$
+// }
+// }
+// else if (handlerTypeProxy.isKindOf(validatorHandlerFactory)
+// || handlerTypeProxy.isKindOf(userValidatorHandlerFactory))
+// {
+// final IFieldProxy validatorIdProxy = handlerTypeProxy
+// .getDeclaredFieldProxy(FIELD_NAME_VALIDATOR_ID);
+//
+// try
+// {
+// if (validatorIdProxy != null)
+// {
+// validatorIdProxy.setAccessible(true);
+// final IBeanProxy validatorId = validatorIdProxy
+// .get(handlerValueProxy);
+//
+// final ValidatorTagDefn valTagDefn = TAGDEFN_FACTORY
+// .createValidatorTagDefn();
+// tagDefn = valTagDefn;
+//
+// if (validatorId instanceof IStringBeanProxy)
+// {
+// final String validatorIdValue = getMeaningfulString(((IStringBeanProxy) validatorId)
+// .stringValue());
+//
+// if (validatorIdValue != null)
+// {
+// valTagDefn.setValidatorId(validatorIdValue);
+// }
+// }
+// }
+// }
+// catch (final ThrowableProxy e)
+// {
+// FaceletCorePlugin.log("Error getting validator info", e); //$NON-NLS-1$
+// }
+// }
+// else if (handlerTypeProxy.isKindOf(converterHandlerFactory)
+// || handlerTypeProxy.isKindOf(userConverterHandlerFactory))
+// {
+// final IFieldProxy converterIdProxy = handlerTypeProxy
+// .getDeclaredFieldProxy(FIELD_NAME_CONVERTER_ID);
+//
+// try
+// {
+// if (converterIdProxy != null)
+// {
+// converterIdProxy.setAccessible(true);
+// final IBeanProxy converterId = converterIdProxy
+// .get(handlerValueProxy);
+//
+// final ConverterTagDefn converterTagDefn = TAGDEFN_FACTORY
+// .createConverterTagDefn();
+// tagDefn = converterTagDefn;
+//
+// if (converterId instanceof IStringBeanProxy)
+// {
+// final String converterIdValue = getMeaningfulString(((IStringBeanProxy) converterId)
+// .stringValue());
+//
+// if (converterIdValue != null)
+// {
+// converterTagDefn.setConverterId(converterIdValue);
+// }
+// }
+// }
+// }
+// catch (final ThrowableProxy e)
+// {
+// FaceletCorePlugin.log("Error getting validator info", e); //$NON-NLS-1$
+// }
+// }
+// else if (handlerTypeProxy.isKindOf(handlerFactory)
+// || handlerTypeProxy.isKindOf(userTagFactory))
+// {
+// tagDefn = TAGDEFN_FACTORY.createHandlerTagDefn();
+// }
+//
+// if (tagDefn != null)
+// {
+// tagDefn.setName(name);
+// }
+// return tagDefn;
}
- private String getMeaningfulString(final String value)
- {
- if (value == null)
- {
- return null;
- }
-
- String retValue = value.trim();
-
- if ("".equals(retValue)) //$NON-NLS-1$
- {
- retValue = null;
- }
- return retValue;
- }
+// private String getMeaningfulString(final String value)
+// {
+// if (value == null)
+// {
+// return null;
+// }
+//
+// String retValue = value.trim();
+//
+// if ("".equals(retValue)) //$NON-NLS-1$
+// {
+// retValue = null;
+// }
+// return retValue;
+// }
private String resolveNS(final BeanProxyWrapper beanProxy)
{
@@ -540,7 +530,7 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.V
public synchronized int getNumTags()
{
- initializeIfNecessary();
+// initializeIfNecessary();
return _tags.size();
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelLoader.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelLoader.java
new file mode 100644
index 000000000..742cd174a
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelLoader.java
@@ -0,0 +1,91 @@
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib;
+
+import java.io.InputStream;
+import java.util.Collections;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.util.FaceletTaglibResourceFactoryImpl;
+
+/**
+ * Loads the facelet taglib file model using EMF.
+ *
+ * @author cbateman
+ *
+ */
+public class TagModelLoader
+{
+ private final ResourceSetImpl _resSet;
+ private final String _resourceUri;
+ private DocumentRoot _docRoot;
+ private FaceletTaglib _faceletTaglib;
+
+ /**
+ * @param resourceUri
+ */
+ public TagModelLoader(final String resourceUri)
+ {
+ _resourceUri = resourceUri;
+ _resSet = new ResourceSetImpl();
+
+ _resSet.getPackageRegistry().put("http://java.sun.com/xml/ns/javaee", //$NON-NLS-1$
+ FaceletTaglibPackage.eINSTANCE);
+ _resSet.getPackageRegistry()
+ .put(
+ "http://java.sun.com/xml/ns/javaee/web-facelettaglibrary.xsd", //$NON-NLS-1$
+ FaceletTaglibPackage.eINSTANCE);
+ final ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(
+ _resSet.getPackageRegistry());
+ _resSet.getLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA,
+ extendedMetaData);
+ _resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(
+ "xml", new FaceletTaglibResourceFactoryImpl()); //$NON-NLS-1$
+
+ }
+
+ /**
+ * @param is
+ * @throws Exception
+ */
+ public void loadFromInputStream(InputStream is) throws Exception
+ {
+ final Resource res = _resSet.createResource(URI.createFileURI(_resourceUri));
+ if (res != null)
+ {
+ res.load(is, Collections.EMPTY_MAP);
+ final EObject eObject = res.getContents().get(0);
+ // assertTrue(eObject instanceof DocumentRoot);
+ _docRoot = (DocumentRoot) eObject;
+ _faceletTaglib = _docRoot.getFaceletTaglib();
+ }
+ else
+ {
+ throw new IllegalArgumentException("Could not create Resource"); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @return the taglib or null if none has been loaded.
+ */
+ public FaceletTaglib getTaglib()
+ {
+ return _faceletTaglib;
+ }
+
+ /**
+ * @return the doc root or null if none has been loaded.
+ */
+ public DocumentRoot getDocRoot()
+ {
+ return _docRoot;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelParser.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelParser.java
index efb1ed0a3..bb7c1641c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelParser.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagModelParser.java
@@ -15,16 +15,16 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ComponentTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ConverterTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletLibraryClassTagLib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletTaglibDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletTaglibFactory;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletXMLDefnTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.HandlerTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.SourceTagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.TagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.ValidatorTagDefn;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagRecordFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagRecordFactory.java
index a096f6236..9dba15b63 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagRecordFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/TagRecordFactory.java
@@ -15,9 +15,9 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.jem.internal.proxy.core.ICallbackRegistry;
import org.eclipse.jem.internal.proxy.core.ProxyFactoryRegistry;
import org.eclipse.jst.jsf.facelet.core.internal.FaceletCorePlugin;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletLibraryClassTagLib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletXMLDefnTaglib;
/*package*/class TagRecordFactory
{
@@ -31,7 +31,7 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.F
_project = project;
}
- public IFaceletTagRecord createRecords(final FaceletTaglibDefn taglibDefn)
+ public IFaceletTagRecord createRecords(final FaceletTaglib taglibDefn)
{
IFaceletTagRecord retValue = null;
@@ -54,9 +54,15 @@ import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.F
}
else if (taglibDefn instanceof FaceletXMLDefnTaglib)
{
- final XMLBasedTagRecord record = new XMLBasedTagRecord(
- (FaceletXMLDefnTaglib) taglibDefn);
- retValue = record;
+ throw new UnsupportedOperationException();
+// final XMLBasedTagRecord record = new XMLBasedTagRecord(
+// (FaceletXMLDefnTaglib) taglibDefn);
+// retValue = record;
+ }
+ else
+ {
+ final XMLBasedTagRecord record = new XMLBasedTagRecord(taglibDefn);
+ retValue = record;
}
return retValue;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord.java
index bd17f51df..79d79401c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord.java
@@ -15,8 +15,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
/**
* A tag record based on an xml tag defined Facelet taglib.xml
@@ -29,13 +29,13 @@ public class XMLBasedTagRecord extends FaceletTagRecord
*
*/
private static final long serialVersionUID = 1411551451386954263L;
- private final FaceletXMLDefnTaglib _taglibDefn;
- private Map<String, TagDefn> _tagIndexByName;
+ private final FaceletTaglib _taglibDefn;
+ private Map<String, FaceletTaglibTag> _tagIndexByName;
/**
* @param taglibDefn
*/
- public XMLBasedTagRecord(final FaceletXMLDefnTaglib taglibDefn)
+ public XMLBasedTagRecord(final FaceletTaglib taglibDefn)
{
_taglibDefn = taglibDefn;
}
@@ -43,30 +43,30 @@ public class XMLBasedTagRecord extends FaceletTagRecord
@Override
public String getURI()
{
- return _taglibDefn.getNamespace();
+ return _taglibDefn.getNamespaceUri();
}
@Override
- public TagDefn getTag(final String name)
+ public FaceletTaglibTag getTag(final String name)
{
return getAndIndexElementDeclaration(name);
}
- private synchronized TagDefn getAndIndexElementDeclaration(final String name)
+ private synchronized FaceletTaglibTag getAndIndexElementDeclaration(final String name)
{
- TagDefn tagDefn = null;
+ FaceletTaglibTag tagDefn = null;
if (_tagIndexByName == null)
{
- _tagIndexByName = new HashMap<String, TagDefn>();
+ _tagIndexByName = new HashMap<String, FaceletTaglibTag>();
}
else
{
tagDefn = _tagIndexByName.get(name);
}
- if (tagDefn == null && _tagIndexByName.size() < _taglibDefn.getTags().size())
+ if (tagDefn == null && _tagIndexByName.size() < _taglibDefn.getTag().size())
{
tagDefn = findTag(name);
}
@@ -74,11 +74,11 @@ public class XMLBasedTagRecord extends FaceletTagRecord
return tagDefn;
}
- private TagDefn findTag(final String name)
+ private FaceletTaglibTag findTag(final String name)
{
- for (final TagDefn tag : _taglibDefn.getTags())
+ for (final FaceletTaglibTag tag : _taglibDefn.getTag())
{
- if (name.equals(tag.getName()))
+ if (name.equals(tag.getTagName()))
{
return tag;
}
@@ -87,13 +87,13 @@ public class XMLBasedTagRecord extends FaceletTagRecord
}
@Override
- public List<TagDefn> getTags()
+ public List<FaceletTaglibTag> getTags()
{
- return Collections.unmodifiableList(_taglibDefn.getTags());
+ return Collections.unmodifiableList(_taglibDefn.getTag());
}
public int getNumTags()
{
- return _taglibDefn.getTags().size();
+ return _taglibDefn.getTag().size();
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord_Facelet10.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord_Facelet10.java
new file mode 100644
index 000000000..0be3aebc7
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/XMLBasedTagRecord_Facelet10.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * 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.taglib;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib;
+import org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag;
+
+/**
+ * A tag record based on an xml tag defined Facelet taglib.xml
+ * @author cbateman
+ *
+ */
+public class XMLBasedTagRecord_Facelet10 extends FaceletTagRecord
+{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1411551451386954263L;
+ private final FaceletTaglib _taglibDefn;
+ private Map<String, FaceletTaglibTag> _tagIndexByName;
+
+ /**
+ * @param taglibDefn
+ */
+ public XMLBasedTagRecord_Facelet10(final FaceletTaglib taglibDefn)
+ {
+ _taglibDefn = taglibDefn;
+ }
+
+ @Override
+ public String getURI()
+ {
+ return _taglibDefn.getNamespaceUri();
+ }
+
+
+ @Override
+ public FaceletTaglibTag getTag(final String name)
+ {
+ return getAndIndexElementDeclaration(name);
+ }
+
+ private synchronized FaceletTaglibTag getAndIndexElementDeclaration(final String name)
+ {
+ FaceletTaglibTag tagDefn = null;
+
+ if (_tagIndexByName == null)
+ {
+ _tagIndexByName = new HashMap<String, FaceletTaglibTag>();
+ }
+ else
+ {
+ tagDefn = _tagIndexByName.get(name);
+ }
+
+ if (tagDefn == null && _tagIndexByName.size() < _taglibDefn.getTag().size())
+ {
+ tagDefn = findTag(name);
+ }
+
+ return tagDefn;
+ }
+
+ private FaceletTaglibTag findTag(final String name)
+ {
+ for (final FaceletTaglibTag tag : _taglibDefn.getTag())
+ {
+ if (name.equals(tag.getTagName()))
+ {
+ return tag;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public List<FaceletTaglibTag> getTags()
+ {
+ return Collections.unmodifiableList(_taglibDefn.getTag());
+ }
+
+ public int getNumTags()
+ {
+ return _taglibDefn.getTag().size();
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Description.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Description.java
new file mode 100644
index 000000000..42810acee
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/Description.java
@@ -0,0 +1,42 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Description.java,v 1.1 2010/03/18 06:24:36 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Description</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * The description type is used by a description element to
+ * provide text describing the parent element. The elements
+ * that use this type should include any information that the
+ * Deployment Component's Deployment File file producer wants
+ * to provide to the consumer of the Deployment Component's
+ * Deployment File (i.e., to the Deployer). Typically, the
+ * tools used by such a Deployment File consumer will display
+ * the description when processing the parent element that
+ * contains the description.
+ *
+ * The lang attribute defines the language that the
+ * description is provided in. The default value is "en" (English).
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDescription()
+ * @model extendedMetaData="name='descriptionType' kind='simple'"
+ * @generated
+ */
+public interface Description extends IdentifiableLangStringValue
+{
+ // Description
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DisplayName.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DisplayName.java
new file mode 100644
index 000000000..c44b49613
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DisplayName.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DisplayName.java,v 1.1 2010/03/18 06:24:36 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Display Name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * <![CDATA[
+ *
+ * The display-name type contains a short name that is intended
+ * to be displayed by tools. It is used by display-name
+ * elements. The display name need not be unique.
+ *
+ * Example:
+ *
+ * ...
+ * <display-name xml:lang="en">
+ * Employee Self Service
+ * </display-name>
+ *
+ * The value of the xml:lang attribute is "en" (English) by default.
+ *
+ * ]]>
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDisplayName()
+ * @model extendedMetaData="name='display-nameType' kind='simple'"
+ * @generated
+ */
+public interface DisplayName extends IdentifiableLangStringValue
+{
+ // DisplayName
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DocumentRoot.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DocumentRoot.java
new file mode 100644
index 000000000..3cb917636
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/DocumentRoot.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DocumentRoot.java,v 1.1 2010/03/18 06:24:37 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getMixed <em>Mixed</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getFaceletTaglib <em>Facelet Taglib</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDocumentRoot()
+ * @model extendedMetaData="name='' kind='mixed'"
+ * @generated
+ */
+public interface DocumentRoot extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mixed</em>' attribute list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDocumentRoot_Mixed()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='elementWildcard' name=':mixed'"
+ * @generated
+ */
+ FeatureMap getMixed();
+
+ /**
+ * Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XMLNS Prefix Map</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XMLNS Prefix Map</em>' map.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDocumentRoot_XMLNSPrefixMap()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xmlns:prefix'"
+ * @generated
+ */
+ EMap<String, String> getXMLNSPrefixMap();
+
+ /**
+ * Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XSI Schema Location</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XSI Schema Location</em>' map.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDocumentRoot_XSISchemaLocation()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
+ * @generated
+ */
+ EMap<String, String> getXSISchemaLocation();
+
+ /**
+ * Returns the value of the '<em><b>Facelet Taglib</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Facelet Taglib</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Facelet Taglib</em>' containment reference.
+ * @see #setFaceletTaglib(FaceletTaglib)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDocumentRoot_FaceletTaglib()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='facelet-taglib' namespace='##targetNamespace'"
+ * @generated
+ */
+ FaceletTaglib getFaceletTaglib();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getFaceletTaglib <em>Facelet Taglib</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Facelet Taglib</em>' containment reference.
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ void setFaceletTaglib(FaceletTaglib value);
+
+} // DocumentRoot
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglib.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglib.java
new file mode 100644
index 000000000..1e872d8ea
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglib.java
@@ -0,0 +1,304 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FaceletTaglib.java,v 1.1 2010/03/18 06:24:29 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Facelet Taglib</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * The top level XML element in a facelet tag library XML file.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getLibraryClass <em>Library Class</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespace <em>Namespace</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getCompositeLibraryName <em>Composite Library Name</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTag <em>Tag</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getFunction <em>Function</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTaglibExtension <em>Taglib Extension</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib()
+ * @model extendedMetaData="name='facelet-taglibType' kind='elementOnly'"
+ * @generated
+ */
+public interface FaceletTaglib extends UserVisibleTaglibObject
+{
+ /**
+ * Returns the value of the '<em><b>Library Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Library Class</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Library Class</em>' containment reference.
+ * @see #setLibraryClass(FullyQualifiedClass)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_LibraryClass()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='library-class' namespace='##targetNamespace'"
+ * @generated
+ */
+ FullyQualifiedClass getLibraryClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getLibraryClass <em>Library Class</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Library Class</em>' containment reference.
+ * @see #getLibraryClass()
+ * @generated
+ */
+ void setLibraryClass(FullyQualifiedClass value);
+
+ /**
+ * Returns the value of the '<em><b>Namespace</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace</em>' containment reference.
+ * @see #setNamespace(IdentifiableStringValue)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Namespace()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='namespace' namespace='##targetNamespace'"
+ * @generated
+ */
+ IdentifiableStringValue getNamespace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespace <em>Namespace</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace</em>' containment reference.
+ * @see #getNamespace()
+ * @generated
+ */
+ void setNamespace(IdentifiableStringValue value);
+
+ /**
+ * Returns the value of the '<em><b>Composite Library Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Composite Library Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Composite Library Name</em>' containment reference.
+ * @see #setCompositeLibraryName(FullyQualifiedClass)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_CompositeLibraryName()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='composite-library-name' namespace='##targetNamespace'"
+ * @generated
+ */
+ FullyQualifiedClass getCompositeLibraryName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getCompositeLibraryName <em>Composite Library Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Composite Library Name</em>' containment reference.
+ * @see #getCompositeLibraryName()
+ * @generated
+ */
+ void setCompositeLibraryName(FullyQualifiedClass value);
+
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' attribute list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Group()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='group' name='group:6'"
+ * @generated
+ */
+ FeatureMap getGroup();
+
+ /**
+ * Returns the value of the '<em><b>Tag</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tag</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tag</em>' containment reference list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Tag()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='tag' namespace='##targetNamespace' group='#group:6'"
+ * @generated
+ */
+ EList<FaceletTaglibTag> getTag();
+
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' containment reference list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Function()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='function' namespace='##targetNamespace' group='#group:6'"
+ * @generated
+ */
+ EList<FaceletTaglibFunction> getFunction();
+
+ /**
+ * Returns the value of the '<em><b>Taglib Extension</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Taglib Extension</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Taglib Extension</em>' containment reference list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_TaglibExtension()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='taglib-extension' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<FaceletTaglibExtension> getTaglibExtension();
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Id()
+ * @model id="true" dataType="org.eclipse.emf.ecore.xml.type.ID"
+ * extendedMetaData="kind='attribute' name='id'"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion
+ * @see #isSetVersion()
+ * @see #unsetVersion()
+ * @see #setVersion(FaceletTaglibVersion)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_Version()
+ * @model unsettable="true" required="true"
+ * extendedMetaData="kind='attribute' name='version'"
+ * @generated
+ */
+ FaceletTaglibVersion getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion
+ * @see #isSetVersion()
+ * @see #unsetVersion()
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(FaceletTaglibVersion value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVersion()
+ * @see #getVersion()
+ * @see #setVersion(FaceletTaglibVersion)
+ * @generated
+ */
+ void unsetVersion();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getVersion <em>Version</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Version</em>' attribute is set.
+ * @see #unsetVersion()
+ * @see #getVersion()
+ * @see #setVersion(FaceletTaglibVersion)
+ * @generated
+ */
+ boolean isSetVersion();
+
+ /**
+ * Returns the value of the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace Uri</em>' attribute.
+ * @see #setNamespaceUri(String)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglib_NamespaceUri()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.Token" transient="true" volatile="true"
+ * @generated
+ */
+ String getNamespaceUri();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespaceUri <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace Uri</em>' attribute.
+ * @see #getNamespaceUri()
+ * @generated
+ */
+ void setNamespaceUri(String value);
+
+} // FaceletTaglib
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibCanonicalName.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibCanonicalName.java
new file mode 100644
index 000000000..21fabab47
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibCanonicalName.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FaceletTaglibCanonicalName.java,v 1.1 2010/03/18 06:24:29 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Facelet Taglib Canonical Name</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ *
+ * Defines the canonical name of a tag or attribute being
+ * defined.
+ *
+ * The name must conform to the lexical rules for an NCName
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibCanonicalName()
+ * @model extendedMetaData="name='facelet-taglib-canonical-nameType' kind='simple'"
+ * @generated
+ */
+public interface FaceletTaglibCanonicalName extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibCanonicalName_Value()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.NCName"
+ * extendedMetaData="name=':0' kind='simple'"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibCanonicalName_Id()
+ * @model id="true" dataType="org.eclipse.emf.ecore.xml.type.ID"
+ * extendedMetaData="kind='attribute' name='id'"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // FaceletTaglibCanonicalName
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibExtension.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibExtension.java
new file mode 100644
index 000000000..75ab46717
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibExtension.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FaceletTaglibExtension.java,v 1.1 2010/03/18 06:24:29 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Facelet Taglib Extension</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * Extension element for facelet-taglib. It may contain
+ * implementation specific content.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getAny <em>Any</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibExtension()
+ * @model extendedMetaData="name='facelet-taglib-extensionType' kind='elementOnly'"
+ * @generated
+ */
+public interface FaceletTaglibExtension extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibExtension_Any()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='elementWildcard' wildcards='##any' name=':0' processing='lax'"
+ * @generated
+ */
+ FeatureMap getAny();
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibExtension_Id()
+ * @model id="true" dataType="org.eclipse.emf.ecore.xml.type.ID"
+ * extendedMetaData="kind='attribute' name='id'"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // FaceletTaglibExtension
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFactory.java
index b5905304a..97c72da01 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFactory.java
@@ -2,7 +2,7 @@
* <copyright>
* </copyright>
*
- * $Id: FaceletTaglibFactory.java,v 1.1 2010/03/08 18:49:39 cbateman Exp $
+ * $Id: FaceletTaglibFactory.java,v 1.2 2010/03/18 06:24:28 cbateman Exp $
*/
package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
@@ -27,94 +27,220 @@ public interface FaceletTaglibFactory extends EFactory
FaceletTaglibFactory eINSTANCE = org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibFactoryImpl.init();
/**
- * Returns a new object of class '<em>Facelet Library Class Tag Lib</em>'.
+ * Returns a new object of class '<em>Description</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Facelet Library Class Tag Lib</em>'.
+ * @return a new object of class '<em>Description</em>'.
* @generated
*/
- FaceletLibraryClassTagLib createFaceletLibraryClassTagLib();
+ Description createDescription();
/**
- * Returns a new object of class '<em>Facelet XML Defn Taglib</em>'.
+ * Returns a new object of class '<em>Display Name</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Facelet XML Defn Taglib</em>'.
+ * @return a new object of class '<em>Display Name</em>'.
* @generated
*/
- FaceletXMLDefnTaglib createFaceletXMLDefnTaglib();
+ DisplayName createDisplayName();
/**
- * Returns a new object of class '<em>Defn</em>'.
+ * Returns a new object of class '<em>Document Root</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Defn</em>'.
+ * @return a new object of class '<em>Document Root</em>'.
* @generated
*/
- FaceletTaglibDefn createFaceletTaglibDefn();
+ DocumentRoot createDocumentRoot();
/**
- * Returns a new object of class '<em>Component Tag Defn</em>'.
+ * Returns a new object of class '<em>Canonical Name</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Component Tag Defn</em>'.
+ * @return a new object of class '<em>Canonical Name</em>'.
* @generated
*/
- ComponentTagDefn createComponentTagDefn();
+ FaceletTaglibCanonicalName createFaceletTaglibCanonicalName();
/**
- * Returns a new object of class '<em>Validator Tag Defn</em>'.
+ * Returns a new object of class '<em>Extension</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Validator Tag Defn</em>'.
+ * @return a new object of class '<em>Extension</em>'.
* @generated
*/
- ValidatorTagDefn createValidatorTagDefn();
+ FaceletTaglibExtension createFaceletTaglibExtension();
/**
- * Returns a new object of class '<em>Converter Tag Defn</em>'.
+ * Returns a new object of class '<em>Function</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Converter Tag Defn</em>'.
+ * @return a new object of class '<em>Function</em>'.
* @generated
*/
- ConverterTagDefn createConverterTagDefn();
+ FaceletTaglibFunction createFaceletTaglibFunction();
/**
- * Returns a new object of class '<em>Handler Tag Defn</em>'.
+ * Returns a new object of class '<em>Tag Attribute</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Handler Tag Defn</em>'.
+ * @return a new object of class '<em>Tag Attribute</em>'.
* @generated
*/
- HandlerTagDefn createHandlerTagDefn();
+ FaceletTaglibTagAttribute createFaceletTaglibTagAttribute();
/**
- * Returns a new object of class '<em>Source Tag Defn</em>'.
+ * Returns a new object of class '<em>Tag Behavior Extension</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Source Tag Defn</em>'.
+ * @return a new object of class '<em>Tag Behavior Extension</em>'.
* @generated
*/
- SourceTagDefn createSourceTagDefn();
+ FaceletTaglibTagBehaviorExtension createFaceletTaglibTagBehaviorExtension();
/**
- * Returns a new object of class '<em>Tag Defn</em>'.
+ * Returns a new object of class '<em>Tag Behavior</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Tag Defn</em>'.
+ * @return a new object of class '<em>Tag Behavior</em>'.
* @generated
*/
- TagDefn createTagDefn();
+ FaceletTaglibTagBehavior createFaceletTaglibTagBehavior();
/**
- * Returns a new object of class '<em>Function Defn</em>'.
+ * Returns a new object of class '<em>Tag Component Extension</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Function Defn</em>'.
+ * @return a new object of class '<em>Tag Component Extension</em>'.
* @generated
*/
- FunctionDefn createFunctionDefn();
+ FaceletTaglibTagComponentExtension createFaceletTaglibTagComponentExtension();
+
+ /**
+ * Returns a new object of class '<em>Tag Component</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Component</em>'.
+ * @generated
+ */
+ FaceletTaglibTagComponent createFaceletTaglibTagComponent();
+
+ /**
+ * Returns a new object of class '<em>Tag Converter Extension</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Converter Extension</em>'.
+ * @generated
+ */
+ FaceletTaglibTagConverterExtension createFaceletTaglibTagConverterExtension();
+
+ /**
+ * Returns a new object of class '<em>Tag Converter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Converter</em>'.
+ * @generated
+ */
+ FaceletTaglibTagConverter createFaceletTaglibTagConverter();
+
+ /**
+ * Returns a new object of class '<em>Tag Extension</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Extension</em>'.
+ * @generated
+ */
+ FaceletTaglibTagExtension createFaceletTaglibTagExtension();
+
+ /**
+ * Returns a new object of class '<em>Tag</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag</em>'.
+ * @generated
+ */
+ FaceletTaglibTag createFaceletTaglibTag();
+
+ /**
+ * Returns a new object of class '<em>Tag Validator Extension</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Validator Extension</em>'.
+ * @generated
+ */
+ FaceletTaglibTagValidatorExtension createFaceletTaglibTagValidatorExtension();
+
+ /**
+ * Returns a new object of class '<em>Tag Validator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tag Validator</em>'.
+ * @generated
+ */
+ FaceletTaglibTagValidator createFaceletTaglibTagValidator();
+
+ /**
+ * Returns a new object of class '<em>Facelet Taglib</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Facelet Taglib</em>'.
+ * @generated
+ */
+ FaceletTaglib createFaceletTaglib();
+
+ /**
+ * Returns a new object of class '<em>Fully Qualified Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fully Qualified Class</em>'.
+ * @generated
+ */
+ FullyQualifiedClass createFullyQualifiedClass();
+
+ /**
+ * Returns a new object of class '<em>Generic Boolean</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Boolean</em>'.
+ * @generated
+ */
+ GenericBoolean createGenericBoolean();
+
+ /**
+ * Returns a new object of class '<em>Icon</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Icon</em>'.
+ * @generated
+ */
+ Icon createIcon();
+
+ /**
+ * Returns a new object of class '<em>Java Identifier</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Java Identifier</em>'.
+ * @generated
+ */
+ JavaIdentifier createJavaIdentifier();
+
+ /**
+ * Returns a new object of class '<em>Path</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Path</em>'.
+ * @generated
+ */
+ Path createPath();
+
+ /**
+ * Returns a new object of class '<em>Identifiable String Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Identifiable String Value</em>'.
+ * @generated
+ */
+ IdentifiableStringValue createIdentifiableStringValue();
/**
* Returns the package supported by this factory.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFunction.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFunction.java
new file mode 100644
index 000000000..51abee1e2
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibFunction.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FaceletTaglibFunction.java,v 1.1 2010/03/18 06:24:29 cbateman Exp $
+ */
+package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Facelet Taglib Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * If the tag library XML file contains individual function
+ * declarations rather than pointing to a library-class or a
+ * declaring a composite-library name, the individual functions are
+ * enclosed in function elements.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionName <em>Function Name</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionClass <em>Function Class</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionSignature <em>Function Signature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibFunction()
+ * @model extendedMetaData="name='facelet-taglib-functionType' kind='elementOnly'"
+ * @generated
+ */
+public interface FaceletTaglibFunction extends UserVisibleTaglibObject
+{
+ /**
+ * Returns the value of the '<em><b>Function Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function Name</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function Name</em>' containment reference.
+ * @see #setFunctionName(IdentifiableStringValue)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibFunction_FunctionName()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='function-name' namespace='##targetNamespace'"
+ * @generated
+ */
+ IdentifiableStringValue getFunctionName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionName <em>Function Name</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function Name</em>' containment reference.
+ * @see #getFunctionName()
+ * @generated
+ */
+ void setFunctionName(IdentifiableStringValue value);
+
+ /**
+ * Returns the value of the '<em><b>Function Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function Class</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function Class</em>' containment reference.
+ * @see #setFunctionClass(FullyQualifiedClass)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibFunction_FunctionClass()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='function-class' namespace='##targetNamespace'"
+ * @generated
+ */
+ FullyQualifiedClass getFunctionClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionClass <em>Function Class</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function Class</em>' containment reference.
+ * @see #getFunctionClass()
+ * @generated
+ */
+ void setFunctionClass(FullyQualifiedClass value);
+
+ /**
+ * Returns the value of the '<em><b>Function Signature</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function Signature</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function Signature</em>' containment reference.
+ * @see #setFunctionSignature(IdentifiableStringValue)
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getFaceletTaglibFunction_FunctionSignature()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='function-signature' namespace='##targetNamespace'"
+ * @generated
+ */
+ IdentifiableStringValue getFunctionSignature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionSignature <em>Function Signature</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function Signature</em>' containment reference.
+ * @see #getFunctionSignature()
+ * @generated
+ */
+ void setFunctionSignature(IdentifiableStringValue value);
+
+} // FaceletTaglibFunction
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibPackage.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibPackage.java
index d4ce6f247..2525d4bd0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibPackage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/registry/taglib/faceletTaglib/FaceletTaglibPackage.java
@@ -2,12 +2,14 @@
* <copyright>
* </copyright>
*
- * $Id: FaceletTaglibPackage.java,v 1.1 2010/03/08 18:49:40 cbateman Exp $
+ * $Id: FaceletTaglibPackage.java,v 1.2 2010/03/18 06:24:36 cbateman Exp $
*/
package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -22,6 +24,298 @@ import org.eclipse.emf.ecore.EReference;
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the
+ * GNU General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with
+ * the License. You can obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL.html or
+ * glassfish/bootstrap/legal/LICENSE.txt. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.
+ *
+ * When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
+ * particular file as subject to the "Classpath" exception as
+ * provided by Sun in the GPL Version 2 section of the License file
+ * that accompanied this code. If applicable, add the following
+ * below the License Header, with the fields enclosed by brackets []
+ * replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by only the
+ * CDDL or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this
+ * distribution under the [CDDL or GPL Version 2] license." If you
+ * don't indicate a single choice of license, a recipient has the
+ * option to distribute your version of this file under either the
+ * CDDL, the GPL Version 2 or to extend the choice of license to its
+ * licensees as provided above. However, if you add GPL Version 2
+ * code and therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ *
+ *
+ *
+ *
+ * <![CDATA[
+ *
+ * The XML Schema for the Tag Libraries in the JavaServer Faces
+ * Standard Facelets View Declaration Language (Facelets VDL)
+ * (Version 2.0).
+ *
+ * JSF 2.0 Facelet Tag Libraries that wish to conform to this
+ * schema must declare it in the following manner.
+ *
+ * <facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
+ * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ * xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd"
+ * version="2.0">
+ *
+ * ...
+ *
+ * </facelet-taglib>
+ *
+ * The instance documents may indicate the published
+ * version of the schema using xsi:schemaLocation attribute
+ * for javaee namespace with the following location:
+ *
+ * http://java.sun.com/xml/ns/javaee/web-facelettaglibary_2_0.xsd
+ *
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the
+ * GNU General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with
+ * the License. You can obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL.html or
+ * glassfish/bootstrap/legal/LICENSE.txt. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.
+ *
+ * When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
+ * particular file as subject to the "Classpath" exception as
+ * provided by Sun in the GPL Version 2 section of the License file
+ * that accompanied this code. If applicable, add the following
+ * below the License Header, with the fields enclosed by brackets []
+ * replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by only the
+ * CDDL or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this
+ * distribution under the [CDDL or GPL Version 2] license." If you
+ * don't indicate a single choice of license, a recipient has the
+ * option to distribute your version of this file under either the
+ * CDDL, the GPL Version 2 or to extend the choice of license to its
+ * licensees as provided above. However, if you add GPL Version 2
+ * code and therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ *
+ *
+ *
+ *
+ * The following definitions that appear in the common
+ * shareable schema(s) of J2EE deployment descriptors should be
+ * interpreted with respect to the context they are included:
+ *
+ * Deployment Component may indicate one of the following:
+ * j2ee application;
+ * application client;
+ * web application;
+ * enterprise bean;
+ * resource adapter;
+ *
+ * Deployment File may indicate one of the following:
+ * ear file;
+ * war file;
+ * jar file;
+ * rar file;
+ *
+ *
+ *
+ * <div xmlns="http://www.w3.org/1999/xhtml">
+ * <h1>About the XML namespace</h1>
+ *
+ * <div class="bodytext">
+ * <p>
+ * This schema document describes the XML namespace, in a form
+ * suitable for import by other schema documents.
+ * </p>
+ * <p>
+ * See <a href="http://www.w3.org/XML/1998/namespace.html">
+ * http://www.w3.org/XML/1998/namespace.html</a> and
+ * <a href="http://www.w3.org/TR/REC-xml">
+ * http://www.w3.org/TR/REC-xml</a> for information
+ * about this namespace.
+ * </p>
+ * <p>
+ * Note that local names in this namespace are intended to be
+ * defined only by the World Wide Web Consortium or its subgroups.
+ * The names currently defined in this namespace are listed below.
+ * They should not be used with conflicting semantics by any Working
+ * Group, specification, or document instance.
+ * </p>
+ * <p>
+ * See further below in this document for more information about <a href="#usage">how to refer to this schema document from your own
+ * XSD schema documents</a> and about <a href="#nsversioning">the
+ * namespace-versioning policy governing this schema document</a>.
+ * </p>
+ * </div>
+ * </div>
+ *
+ *
+ * <div xmlns="http://www.w3.org/1999/xhtml">
+ *
+ * <h3>Father (in any context at all)</h3>
+ *
+ * <div class="bodytext">
+ * <p>
+ * denotes Jon Bosak, the chair of
+ * the original XML Working Group. This name is reserved by
+ * the following decision of the W3C XML Plenary and
+ * XML Coordination groups:
+ * </p>
+ * <blockquote>
+ * <p>
+ * In appreciation for his vision, leadership and
+ * dedication the W3C XML Plenary on this 10th day of
+ * February, 2000, reserves for Jon Bosak in perpetuity
+ * the XML name "xml:Father".
+ * </p>
+ * </blockquote>
+ * </div>
+ * </div>
+ *
+ *
+ * <div id="usage" xml:id="usage" xmlns="http://www.w3.org/1999/xhtml">
+ * <h2>
+ * <a name="usage">About this schema document</a>
+ * </h2>
+ *
+ * <div class="bodytext">
+ * <p>
+ * This schema defines attributes and an attribute group suitable
+ * for use by schemas wishing to allow <code>xml:base</code>,
+ * <code>xml:lang</code>, <code>xml:space</code> or
+ * <code>xml:id</code> attributes on elements they define.
+ * </p>
+ * <p>
+ * To enable this, such a schema must import this schema for
+ * the XML namespace, e.g. as follows:
+ * </p>
+ * <pre>
+ * &lt;schema . . .&gt;
+ * . . .
+ * &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ * schemaLocation="http://www.w3.org/2001/xml.xsd"/&gt;
+ * </pre>
+ * <p>
+ * or
+ * </p>
+ * <pre>
+ * &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ * schemaLocation="http://www.w3.org/2009/01/xml.xsd"/&gt;
+ * </pre>
+ * <p>
+ * Subsequently, qualified reference to any of the attributes or the
+ * group defined below will have the desired effect, e.g.
+ * </p>
+ * <pre>
+ * &lt;type . . .&gt;
+ * . . .
+ * &lt;attributeGroup ref="xml:specialAttrs"/&gt;
+ * </pre>
+ * <p>
+ * will define a type which will schema-validate an instance element
+ * with any of those attributes.
+ * </p>
+ * </div>
+ * </div>
+ *
+ *
+ * <div id="nsversioning" xml:id="nsversioning" xmlns="http://www.w3.org/1999/xhtml">
+ * <h2>
+ * <a name="nsversioning">Versioning policy for this schema document</a>
+ * </h2>
+ * <div class="bodytext">
+ * <p>
+ * In keeping with the XML Schema WG's standard versioning
+ * policy, this schema document will persist at
+ * <a href="http://www.w3.org/2009/01/xml.xsd">
+ * http://www.w3.org/2009/01/xml.xsd</a>.
+ * </p>
+ * <p>
+ * At the date of issue it can also be found at
+ * <a href="http://www.w3.org/2001/xml.xsd">
+ * http://www.w3.org/2001/xml.xsd</a>.
+ * </p>
+ * <p>
+ * The schema document at that URI may however change in the future,
+ * in order to remain compatible with the latest version of XML
+ * Schema itself, or with the XML namespace itself. In other words,
+ * if the XML Schema or XML namespaces change, the version of this
+ * document at <a href="http://www.w3.org/2001/xml.xsd">
+ * http://www.w3.org/2001/xml.xsd
+ * </a>
+ * will change accordingly; the version at
+ * <a href="http://www.w3.org/2009/01/xml.xsd">
+ * http://www.w3.org/2009/01/xml.xsd
+ * </a>
+ * will not change.
+ * </p>
+ * <p>
+ * Previous dated (and unchanging) versions of this schema
+ * document are at:
+ * </p>
+ * <ul>
+ * <li>
+ * <a href="http://www.w3.org/2009/01/xml.xsd">
+ * http://www.w3.org/2009/01/xml.xsd</a>
+ * </li>
+ * <li>
+ * <a href="http://www.w3.org/2007/08/xml.xsd">
+ * http://www.w3.org/2007/08/xml.xsd</a>
+ * </li>
+ * <li>
+ * <a href="http://www.w3.org/2004/10/xml.xsd">
+ * http://www.w3.org/2004/10/xml.xsd</a>
+ * </li>
+ * <li>
+ * <a href="http://www.w3.org/2001/03/xml.xsd">
+ * http://www.w3.org/2001/03/xml.xsd</a>
+ * </li>
+ * </ul>
+ * </div>
+ * </div>
+ *
+ * <!-- end-model-doc -->
* @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFactory
* @model kind="package"
* @generated
@@ -42,7 +336,7 @@ public interface FaceletTaglibPackage extends EPackage
* <!-- end-user-doc -->
* @generated
*/
- String eNS_URI = "http://org.eclipse.jst.jsf.facelet.core/faceletTaglib.ecore"; //$NON-NLS-1$
+ String eNS_URI = "http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0"; //$NON-NLS-1$
/**
* The package namespace name.
@@ -61,273 +355,509 @@ public interface FaceletTaglibPackage extends EPackage
FaceletTaglibPackage eINSTANCE = org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl.init();
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibDefnImpl <em>Defn</em>}' class.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IdentifiableStringValueImpl <em>Identifiable String Value</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibDefn()
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IdentifiableStringValueImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getIdentifiableStringValue()
* @generated
*/
- int FACELET_TAGLIB_DEFN = 2;
+ int IDENTIFIABLE_STRING_VALUE = 23;
/**
- * The number of structural features of the '<em>Defn</em>' class.
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_TAGLIB_DEFN_FEATURE_COUNT = 0;
+ int IDENTIFIABLE_STRING_VALUE__VALUE = 0;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletLibraryClassTagLibImpl <em>Facelet Library Class Tag Lib</em>}' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletLibraryClassTagLibImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletLibraryClassTagLib()
* @generated
+ * @ordered
*/
- int FACELET_LIBRARY_CLASS_TAG_LIB = 0;
+ int IDENTIFIABLE_STRING_VALUE__ID = 1;
/**
- * The feature id for the '<em><b>Library Class</b></em>' attribute.
+ * The number of structural features of the '<em>Identifiable String Value</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_LIBRARY_CLASS_TAG_LIB__LIBRARY_CLASS = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 0;
+ int IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IdentifiableLangStringValueImpl <em>Identifiable Lang String Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IdentifiableLangStringValueImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getIdentifiableLangStringValue()
+ * @generated
+ */
+ int IDENTIFIABLE_LANG_STRING_VALUE = 24;
/**
- * The number of structural features of the '<em>Facelet Library Class Tag Lib</em>' class.
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_LIBRARY_CLASS_TAG_LIB_FEATURE_COUNT = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 1;
+ int IDENTIFIABLE_LANG_STRING_VALUE__VALUE = IDENTIFIABLE_STRING_VALUE__VALUE;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletXMLDefnTaglibImpl <em>Facelet XML Defn Taglib</em>}' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletXMLDefnTaglibImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletXMLDefnTaglib()
* @generated
+ * @ordered
*/
- int FACELET_XML_DEFN_TAGLIB = 1;
+ int IDENTIFIABLE_LANG_STRING_VALUE__ID = IDENTIFIABLE_STRING_VALUE__ID;
/**
- * The feature id for the '<em><b>Namespace</b></em>' attribute.
+ * The feature id for the '<em><b>Lang</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_XML_DEFN_TAGLIB__NAMESPACE = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 0;
+ int IDENTIFIABLE_LANG_STRING_VALUE__LANG = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Tags</b></em>' reference list.
+ * The number of structural features of the '<em>Identifiable Lang String Value</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_XML_DEFN_TAGLIB__TAGS = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 1;
+ int IDENTIFIABLE_LANG_STRING_VALUE_FEATURE_COUNT = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Functions</b></em>' reference list.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DescriptionImpl <em>Description</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DescriptionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getDescription()
+ * @generated
+ */
+ int DESCRIPTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_XML_DEFN_TAGLIB__FUNCTIONS = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 2;
+ int DESCRIPTION__VALUE = IDENTIFIABLE_LANG_STRING_VALUE__VALUE;
/**
- * The number of structural features of the '<em>Facelet XML Defn Taglib</em>' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FACELET_XML_DEFN_TAGLIB_FEATURE_COUNT = FACELET_TAGLIB_DEFN_FEATURE_COUNT + 3;
+ int DESCRIPTION__ID = IDENTIFIABLE_LANG_STRING_VALUE__ID;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.TagDefnImpl <em>Tag Defn</em>}' class.
+ * The feature id for the '<em><b>Lang</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.TagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getTagDefn()
* @generated
+ * @ordered
*/
- int TAG_DEFN = 8;
+ int DESCRIPTION__LANG = IDENTIFIABLE_LANG_STRING_VALUE__LANG;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The number of structural features of the '<em>Description</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TAG_DEFN__NAME = 0;
+ int DESCRIPTION_FEATURE_COUNT = IDENTIFIABLE_LANG_STRING_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DisplayNameImpl <em>Display Name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DisplayNameImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getDisplayName()
+ * @generated
+ */
+ int DISPLAY_NAME = 1;
/**
- * The number of structural features of the '<em>Tag Defn</em>' class.
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TAG_DEFN_FEATURE_COUNT = 1;
+ int DISPLAY_NAME__VALUE = IDENTIFIABLE_LANG_STRING_VALUE__VALUE;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.HandlerTagDefnImpl <em>Handler Tag Defn</em>}' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.HandlerTagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getHandlerTagDefn()
* @generated
+ * @ordered
*/
- int HANDLER_TAG_DEFN = 6;
+ int DISPLAY_NAME__ID = IDENTIFIABLE_LANG_STRING_VALUE__ID;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>Lang</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int HANDLER_TAG_DEFN__NAME = TAG_DEFN__NAME;
+ int DISPLAY_NAME__LANG = IDENTIFIABLE_LANG_STRING_VALUE__LANG;
/**
- * The feature id for the '<em><b>Handler Class</b></em>' attribute.
+ * The number of structural features of the '<em>Display Name</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int HANDLER_TAG_DEFN__HANDLER_CLASS = TAG_DEFN_FEATURE_COUNT + 0;
+ int DISPLAY_NAME_FEATURE_COUNT = IDENTIFIABLE_LANG_STRING_VALUE_FEATURE_COUNT + 0;
/**
- * The number of structural features of the '<em>Handler Tag Defn</em>' class.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.DocumentRootImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ int DOCUMENT_ROOT = 2;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int HANDLER_TAG_DEFN_FEATURE_COUNT = TAG_DEFN_FEATURE_COUNT + 1;
+ int DOCUMENT_ROOT__MIXED = 0;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ComponentTagDefnImpl <em>Component Tag Defn</em>}' class.
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ComponentTagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getComponentTagDefn()
* @generated
+ * @ordered
*/
- int COMPONENT_TAG_DEFN = 3;
+ int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int COMPONENT_TAG_DEFN__NAME = HANDLER_TAG_DEFN__NAME;
+ int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
/**
- * The feature id for the '<em><b>Handler Class</b></em>' attribute.
+ * The feature id for the '<em><b>Facelet Taglib</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int COMPONENT_TAG_DEFN__HANDLER_CLASS = HANDLER_TAG_DEFN__HANDLER_CLASS;
+ int DOCUMENT_ROOT__FACELET_TAGLIB = 3;
/**
- * The feature id for the '<em><b>Component Type</b></em>' attribute.
+ * The number of structural features of the '<em>Document Root</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int COMPONENT_TAG_DEFN__COMPONENT_TYPE = HANDLER_TAG_DEFN_FEATURE_COUNT + 0;
+ int DOCUMENT_ROOT_FEATURE_COUNT = 4;
/**
- * The feature id for the '<em><b>Renderer Type</b></em>' attribute.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibCanonicalNameImpl <em>Canonical Name</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibCanonicalNameImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibCanonicalName()
+ * @generated
+ */
+ int FACELET_TAGLIB_CANONICAL_NAME = 3;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int COMPONENT_TAG_DEFN__RENDERER_TYPE = HANDLER_TAG_DEFN_FEATURE_COUNT + 1;
+ int FACELET_TAGLIB_CANONICAL_NAME__VALUE = 0;
/**
- * The number of structural features of the '<em>Component Tag Defn</em>' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int COMPONENT_TAG_DEFN_FEATURE_COUNT = HANDLER_TAG_DEFN_FEATURE_COUNT + 2;
+ int FACELET_TAGLIB_CANONICAL_NAME__ID = 1;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ValidatorTagDefnImpl <em>Validator Tag Defn</em>}' class.
+ * The number of structural features of the '<em>Canonical Name</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ValidatorTagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getValidatorTagDefn()
* @generated
+ * @ordered
*/
- int VALIDATOR_TAG_DEFN = 4;
+ int FACELET_TAGLIB_CANONICAL_NAME_FEATURE_COUNT = 2;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibExtensionImpl <em>Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_EXTENSION = 4;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VALIDATOR_TAG_DEFN__NAME = HANDLER_TAG_DEFN__NAME;
+ int FACELET_TAGLIB_EXTENSION__ANY = 0;
/**
- * The feature id for the '<em><b>Handler Class</b></em>' attribute.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_EXTENSION__ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.UserVisibleTaglibObjectImpl <em>User Visible Taglib Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.UserVisibleTaglibObjectImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getUserVisibleTaglibObject()
+ * @generated
+ */
+ int USER_VISIBLE_TAGLIB_OBJECT = 25;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USER_VISIBLE_TAGLIB_OBJECT__ICON = 2;
+
+ /**
+ * The number of structural features of the '<em>User Visible Taglib Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibFunctionImpl <em>Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibFunctionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibFunction()
+ * @generated
+ */
+ int FACELET_TAGLIB_FUNCTION = 5;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Function Name</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__FUNCTION_NAME = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Function Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__FUNCTION_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Function Signature</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION__FUNCTION_SIGNATURE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_FUNCTION_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagAttributeImpl <em>Tag Attribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagAttributeImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE = 6;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Name Element</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VALIDATOR_TAG_DEFN__HANDLER_CLASS = HANDLER_TAG_DEFN__HANDLER_CLASS;
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__NAME_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Validator Id</b></em>' attribute.
+ * The feature id for the '<em><b>Required Element</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VALIDATOR_TAG_DEFN__VALIDATOR_ID = HANDLER_TAG_DEFN_FEATURE_COUNT + 0;
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__REQUIRED_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Validator Tag Defn</em>' class.
+ * The feature id for the '<em><b>Type Element</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VALIDATOR_TAG_DEFN_FEATURE_COUNT = HANDLER_TAG_DEFN_FEATURE_COUNT + 1;
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__TYPE_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ConverterTagDefnImpl <em>Converter Tag Defn</em>}' class.
+ * The feature id for the '<em><b>Method Signature Element</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.ConverterTagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getConverterTagDefn()
* @generated
+ * @ordered
*/
- int CONVERTER_TAG_DEFN = 5;
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__METHOD_SIGNATURE_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__ID = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -336,7 +866,546 @@ public interface FaceletTaglibPackage extends EPackage
* @generated
* @ordered
*/
- int CONVERTER_TAG_DEFN__NAME = HANDLER_TAG_DEFN__NAME;
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__NAME = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__REQUIRED = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__TYPE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Method Signature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE__METHOD_SIGNATURE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Tag Attribute</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_ATTRIBUTE_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagBehaviorExtensionImpl <em>Tag Behavior Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagBehaviorExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagBehaviorExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR_EXTENSION = 7;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR_EXTENSION__ANY = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR_EXTENSION__ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Tag Behavior Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagBehaviorImpl <em>Tag Behavior</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagBehaviorImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagBehavior()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR = 8;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Behavior Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__BEHAVIOR_ID = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Handler Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__HANDLER_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Behavior Extension</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR__BEHAVIOR_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Tag Behavior</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_BEHAVIOR_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagComponentExtensionImpl <em>Tag Component Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagComponentExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagComponentExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT_EXTENSION = 9;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT_EXTENSION__ANY = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT_EXTENSION__ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Tag Component Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagComponentImpl <em>Tag Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagComponentImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagComponent()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT = 10;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Component Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__COMPONENT_TYPE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Renderer Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__RENDERER_TYPE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Handler Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__HANDLER_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Component Extension</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT__COMPONENT_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Tag Component</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_COMPONENT_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagConverterExtensionImpl <em>Tag Converter Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagConverterExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagConverterExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER_EXTENSION = 11;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER_EXTENSION__ANY = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER_EXTENSION__ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Tag Converter Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagConverterImpl <em>Tag Converter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagConverterImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagConverter()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER = 12;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Converter Id</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__CONVERTER_ID = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Handler Class</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__HANDLER_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Converter Extension</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER__CONVERTER_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Tag Converter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_CONVERTER_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagExtensionImpl <em>Tag Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_EXTENSION = 13;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_EXTENSION__ANY = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_EXTENSION__ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Tag Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagImpl <em>Tag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTag()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG = 14;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
+
+ /**
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
+
+ /**
+ * The feature id for the '<em><b>Tag Name Element</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__TAG_NAME_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Handler Class Element</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__HANDLER_CLASS_ELEMENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Behavior</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__BEHAVIOR = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Component</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__COMPONENT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Converter</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__CONVERTER = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Validator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__VALIDATOR = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__SOURCE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Attribute</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__ATTRIBUTE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Tag Extension</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__TAG_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Tag Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACELET_TAGLIB_TAG__TAG_NAME = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 9;
/**
* The feature id for the '<em><b>Handler Class</b></em>' attribute.
@@ -345,363 +1414,1668 @@ public interface FaceletTaglibPackage extends EPackage
* @generated
* @ordered
*/
- int CONVERTER_TAG_DEFN__HANDLER_CLASS = HANDLER_TAG_DEFN__HANDLER_CLASS;
+ int FACELET_TAGLIB_TAG__HANDLER_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 10;
/**
- * The feature id for the '<em><b>Converter Id</b></em>' attribute.
+ * The number of structural features of the '<em>Tag</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONVERTER_TAG_DEFN__CONVERTER_ID = HANDLER_TAG_DEFN_FEATURE_COUNT + 0;
+ int FACELET_TAGLIB_TAG_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 11;
/**
- * The number of structural features of the '<em>Converter Tag Defn</em>' class.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagValidatorExtensionImpl <em>Tag Validator Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagValidatorExtensionImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagValidatorExtension()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_VALIDATOR_EXTENSION = 15;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONVERTER_TAG_DEFN_FEATURE_COUNT = HANDLER_TAG_DEFN_FEATURE_COUNT + 1;
+ int FACELET_TAGLIB_TAG_VALIDATOR_EXTENSION__ANY = 0;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.SourceTagDefnImpl <em>Source Tag Defn</em>}' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.SourceTagDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getSourceTagDefn()
* @generated
+ * @ordered
*/
- int SOURCE_TAG_DEFN = 7;
+ int FACELET_TAGLIB_TAG_VALIDATOR_EXTENSION__ID = 1;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The number of structural features of the '<em>Tag Validator Extension</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SOURCE_TAG_DEFN__NAME = TAG_DEFN__NAME;
+ int FACELET_TAGLIB_TAG_VALIDATOR_EXTENSION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagValidatorImpl <em>Tag Validator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibTagValidatorImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibTagValidator()
+ * @generated
+ */
+ int FACELET_TAGLIB_TAG_VALIDATOR = 16;
/**
- * The feature id for the '<em><b>Source</b></em>' attribute.
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SOURCE_TAG_DEFN__SOURCE = TAG_DEFN_FEATURE_COUNT + 0;
+ int FACELET_TAGLIB_TAG_VALIDATOR__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
/**
- * The number of structural features of the '<em>Source Tag Defn</em>' class.
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SOURCE_TAG_DEFN_FEATURE_COUNT = TAG_DEFN_FEATURE_COUNT + 1;
+ int FACELET_TAGLIB_TAG_VALIDATOR__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
/**
- * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FunctionDefnImpl <em>Function Defn</em>}' class.
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FunctionDefnImpl
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFunctionDefn()
* @generated
+ * @ordered
*/
- int FUNCTION_DEFN = 9;
+ int FACELET_TAGLIB_TAG_VALIDATOR__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
/**
- * The feature id for the '<em><b>Function Name</b></em>' attribute.
+ * The feature id for the '<em><b>Validator Id</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FUNCTION_DEFN__FUNCTION_NAME = 0;
+ int FACELET_TAGLIB_TAG_VALIDATOR__VALIDATOR_ID = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Function Class</b></em>' attribute.
+ * The feature id for the '<em><b>Handler Class</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FUNCTION_DEFN__FUNCTION_CLASS = 1;
+ int FACELET_TAGLIB_TAG_VALIDATOR__HANDLER_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Function Signature</b></em>' attribute.
+ * The feature id for the '<em><b>Validator Extension</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FUNCTION_DEFN__FUNCTION_SIGNATURE = 2;
+ int FACELET_TAGLIB_TAG_VALIDATOR__VALIDATOR_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
/**
- * The number of structural features of the '<em>Function Defn</em>' class.
+ * The number of structural features of the '<em>Tag Validator</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int FUNCTION_DEFN_FEATURE_COUNT = 3;
+ int FACELET_TAGLIB_TAG_VALIDATOR_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibImpl <em>Facelet Taglib</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglib()
+ * @generated
+ */
+ int FACELET_TAGLIB = 17;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib <em>Facelet Library Class Tag Lib</em>}'.
+ * The feature id for the '<em><b>Description</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Facelet Library Class Tag Lib</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib
* @generated
+ * @ordered
*/
- EClass getFaceletLibraryClassTagLib();
+ int FACELET_TAGLIB__DESCRIPTION = USER_VISIBLE_TAGLIB_OBJECT__DESCRIPTION;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib#getLibraryClass <em>Library Class</em>}'.
+ * The feature id for the '<em><b>Display Name</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Library Class</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletLibraryClassTagLib#getLibraryClass()
- * @see #getFaceletLibraryClassTagLib()
* @generated
+ * @ordered
*/
- EAttribute getFaceletLibraryClassTagLib_LibraryClass();
+ int FACELET_TAGLIB__DISPLAY_NAME = USER_VISIBLE_TAGLIB_OBJECT__DISPLAY_NAME;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib <em>Facelet XML Defn Taglib</em>}'.
+ * The feature id for the '<em><b>Icon</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Facelet XML Defn Taglib</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib
* @generated
+ * @ordered
*/
- EClass getFaceletXMLDefnTaglib();
+ int FACELET_TAGLIB__ICON = USER_VISIBLE_TAGLIB_OBJECT__ICON;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getNamespace <em>Namespace</em>}'.
+ * The feature id for the '<em><b>Library Class</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Namespace</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getNamespace()
- * @see #getFaceletXMLDefnTaglib()
* @generated
+ * @ordered
*/
- EAttribute getFaceletXMLDefnTaglib_Namespace();
+ int FACELET_TAGLIB__LIBRARY_CLASS = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 0;
/**
- * Returns the meta object for the reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getTags <em>Tags</em>}'.
+ * The feature id for the '<em><b>Namespace</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference list '<em>Tags</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getTags()
- * @see #getFaceletXMLDefnTaglib()
* @generated
+ * @ordered
*/
- EReference getFaceletXMLDefnTaglib_Tags();
+ int FACELET_TAGLIB__NAMESPACE = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 1;
/**
- * Returns the meta object for the reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getFunctions <em>Functions</em>}'.
+ * The feature id for the '<em><b>Composite Library Name</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference list '<em>Functions</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletXMLDefnTaglib#getFunctions()
- * @see #getFaceletXMLDefnTaglib()
* @generated
+ * @ordered
*/
- EReference getFaceletXMLDefnTaglib_Functions();
+ int FACELET_TAGLIB__COMPOSITE_LIBRARY_NAME = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 2;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn <em>Defn</em>}'.
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibDefn
* @generated
+ * @ordered
*/
- EClass getFaceletTaglibDefn();
+ int FACELET_TAGLIB__GROUP = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 3;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn <em>Component Tag Defn</em>}'.
+ * The feature id for the '<em><b>Tag</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Component Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn
* @generated
+ * @ordered
*/
- EClass getComponentTagDefn();
+ int FACELET_TAGLIB__TAG = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 4;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn#getComponentType <em>Component Type</em>}'.
+ * The feature id for the '<em><b>Function</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Component Type</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn#getComponentType()
- * @see #getComponentTagDefn()
* @generated
+ * @ordered
*/
- EAttribute getComponentTagDefn_ComponentType();
+ int FACELET_TAGLIB__FUNCTION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 5;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn#getRendererType <em>Renderer Type</em>}'.
+ * The feature id for the '<em><b>Taglib Extension</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Renderer Type</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ComponentTagDefn#getRendererType()
- * @see #getComponentTagDefn()
* @generated
+ * @ordered
*/
- EAttribute getComponentTagDefn_RendererType();
+ int FACELET_TAGLIB__TAGLIB_EXTENSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 6;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn <em>Validator Tag Defn</em>}'.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Validator Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn
* @generated
+ * @ordered
*/
- EClass getValidatorTagDefn();
+ int FACELET_TAGLIB__ID = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 7;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn#getValidatorId <em>Validator Id</em>}'.
+ * The feature id for the '<em><b>Version</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Validator Id</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ValidatorTagDefn#getValidatorId()
- * @see #getValidatorTagDefn()
* @generated
+ * @ordered
*/
- EAttribute getValidatorTagDefn_ValidatorId();
+ int FACELET_TAGLIB__VERSION = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 8;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn <em>Converter Tag Defn</em>}'.
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Converter Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn
* @generated
+ * @ordered
*/
- EClass getConverterTagDefn();
+ int FACELET_TAGLIB__NAMESPACE_URI = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 9;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn#getConverterId <em>Converter Id</em>}'.
+ * The number of structural features of the '<em>Facelet Taglib</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Converter Id</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.ConverterTagDefn#getConverterId()
- * @see #getConverterTagDefn()
* @generated
+ * @ordered
*/
- EAttribute getConverterTagDefn_ConverterId();
+ int FACELET_TAGLIB_FEATURE_COUNT = USER_VISIBLE_TAGLIB_OBJECT_FEATURE_COUNT + 10;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn <em>Handler Tag Defn</em>}'.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FullyQualifiedClassImpl <em>Fully Qualified Class</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Handler Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FullyQualifiedClassImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFullyQualifiedClass()
* @generated
*/
- EClass getHandlerTagDefn();
+ int FULLY_QUALIFIED_CLASS = 18;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn#getHandlerClass <em>Handler Class</em>}'.
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Handler Class</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.HandlerTagDefn#getHandlerClass()
- * @see #getHandlerTagDefn()
+ * @generated
+ * @ordered
+ */
+ int FULLY_QUALIFIED_CLASS__VALUE = IDENTIFIABLE_STRING_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FULLY_QUALIFIED_CLASS__ID = IDENTIFIABLE_STRING_VALUE__ID;
+
+ /**
+ * The number of structural features of the '<em>Fully Qualified Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FULLY_QUALIFIED_CLASS_FEATURE_COUNT = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.GenericBooleanImpl <em>Generic Boolean</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.GenericBooleanImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getGenericBoolean()
* @generated
*/
- EAttribute getHandlerTagDefn_HandlerClass();
+ int GENERIC_BOOLEAN = 19;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn <em>Source Tag Defn</em>}'.
+ * The feature id for the '<em><b>Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Source Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn
* @generated
+ * @ordered
+ */
+ int GENERIC_BOOLEAN__VALUE = IDENTIFIABLE_STRING_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_BOOLEAN__ID = IDENTIFIABLE_STRING_VALUE__ID;
+
+ /**
+ * The number of structural features of the '<em>Generic Boolean</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
*/
- EClass getSourceTagDefn();
+ int GENERIC_BOOLEAN_FEATURE_COUNT = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 0;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn#getSource <em>Source</em>}'.
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IconImpl <em>Icon</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Source</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.SourceTagDefn#getSource()
- * @see #getSourceTagDefn()
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.IconImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getIcon()
* @generated
*/
- EAttribute getSourceTagDefn_Source();
+ int ICON = 20;
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn <em>Tag Defn</em>}'.
+ * The feature id for the '<em><b>Small Icon</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Tag Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn
* @generated
+ * @ordered
+ */
+ int ICON__SMALL_ICON = 0;
+
+ /**
+ * The feature id for the '<em><b>Large Icon</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON__LARGE_ICON = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
*/
- EClass getTagDefn();
+ int ICON__ID = 2;
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn#getName <em>Name</em>}'.
+ * The feature id for the '<em><b>Lang</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON__LANG = 3;
+
+ /**
+ * The number of structural features of the '<em>Icon</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ICON_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.JavaIdentifierImpl <em>Java Identifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.JavaIdentifierImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getJavaIdentifier()
+ * @generated
+ */
+ int JAVA_IDENTIFIER = 21;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int JAVA_IDENTIFIER__VALUE = IDENTIFIABLE_STRING_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int JAVA_IDENTIFIER__ID = IDENTIFIABLE_STRING_VALUE__ID;
+
+ /**
+ * The number of structural features of the '<em>Java Identifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int JAVA_IDENTIFIER_FEATURE_COUNT = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.PathImpl <em>Path</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.PathImpl
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getPath()
+ * @generated
+ */
+ int PATH = 22;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH__VALUE = IDENTIFIABLE_STRING_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH__ID = IDENTIFIABLE_STRING_VALUE__ID;
+
+ /**
+ * The number of structural features of the '<em>Path</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_FEATURE_COUNT = IDENTIFIABLE_STRING_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion <em>Version</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibVersion()
+ * @generated
+ */
+ int FACELET_TAGLIB_VERSION = 26;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.GenericBooleanBase <em>Generic Boolean Base</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.GenericBooleanBase
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getGenericBooleanBase()
+ * @generated
+ */
+ int GENERIC_BOOLEAN_BASE = 27;
+
+ /**
+ * The meta object id for the '<em>Version Type Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibVersion
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFaceletTaglibVersionTypeObject()
+ * @generated
+ */
+ int FACELET_TAGLIB_VERSION_TYPE_OBJECT = 28;
+
+ /**
+ * The meta object id for the '<em>Fully Qualified Class Base</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getFullyQualifiedClassBase()
+ * @generated
+ */
+ int FULLY_QUALIFIED_CLASS_BASE = 29;
+
+ /**
+ * The meta object id for the '<em>Java Identifier Base</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getJavaIdentifierBase()
+ * @generated
+ */
+ int JAVA_IDENTIFIER_BASE = 30;
+
+ /**
+ * The meta object id for the '<em>Path Type Base</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.impl.FaceletTaglibPackageImpl#getPathTypeBase()
+ * @generated
+ */
+ int PATH_TYPE_BASE = 31;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.Description <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Description</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.Description
+ * @generated
+ */
+ EClass getDescription();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DisplayName <em>Display Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Display Name</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DisplayName
+ * @generated
+ */
+ EClass getDisplayName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot
+ * @generated
+ */
+ EClass getDocumentRoot();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Mixed();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getFaceletTaglib <em>Facelet Taglib</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Facelet Taglib</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.DocumentRoot#getFaceletTaglib()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_FaceletTaglib();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName <em>Canonical Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Canonical Name</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName
+ * @generated
+ */
+ EClass getFaceletTaglibCanonicalName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getValue()
+ * @see #getFaceletTaglibCanonicalName()
+ * @generated
+ */
+ EAttribute getFaceletTaglibCanonicalName_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibCanonicalName#getId()
+ * @see #getFaceletTaglibCanonicalName()
+ * @generated
+ */
+ EAttribute getFaceletTaglibCanonicalName_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension <em>Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension
+ * @generated
+ */
+ EClass getFaceletTaglibExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getAny()
+ * @see #getFaceletTaglibExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibExtension#getId()
+ * @see #getFaceletTaglibExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Function</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction
+ * @generated
+ */
+ EClass getFaceletTaglibFunction();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionName <em>Function Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Function Name</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionName()
+ * @see #getFaceletTaglibFunction()
+ * @generated
+ */
+ EReference getFaceletTaglibFunction_FunctionName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionClass <em>Function Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Function Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionClass()
+ * @see #getFaceletTaglibFunction()
+ * @generated
+ */
+ EReference getFaceletTaglibFunction_FunctionClass();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionSignature <em>Function Signature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Function Signature</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibFunction#getFunctionSignature()
+ * @see #getFaceletTaglibFunction()
+ * @generated
+ */
+ EReference getFaceletTaglibFunction_FunctionSignature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute <em>Tag Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Attribute</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute
+ * @generated
+ */
+ EClass getFaceletTaglibTagAttribute();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getNameElement <em>Name Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Name Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getNameElement()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EReference getFaceletTaglibTagAttribute_NameElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getRequiredElement <em>Required Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Required Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getRequiredElement()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EReference getFaceletTaglibTagAttribute_RequiredElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getTypeElement <em>Type Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getTypeElement()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EReference getFaceletTaglibTagAttribute_TypeElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getMethodSignatureElement <em>Method Signature Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Method Signature Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getMethodSignatureElement()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EReference getFaceletTaglibTagAttribute_MethodSignatureElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getId()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagAttribute_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.TagDefn#getName()
- * @see #getTagDefn()
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getName()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagAttribute_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#isRequired <em>Required</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Required</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#isRequired()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagAttribute_Required();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getType()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagAttribute_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getMethodSignature <em>Method Signature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Method Signature</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagAttribute#getMethodSignature()
+ * @see #getFaceletTaglibTagAttribute()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagAttribute_MethodSignature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension <em>Tag Behavior Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Behavior Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension
+ * @generated
+ */
+ EClass getFaceletTaglibTagBehaviorExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension#getAny()
+ * @see #getFaceletTaglibTagBehaviorExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagBehaviorExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehaviorExtension#getId()
+ * @see #getFaceletTaglibTagBehaviorExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagBehaviorExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior <em>Tag Behavior</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Behavior</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior
+ * @generated
+ */
+ EClass getFaceletTaglibTagBehavior();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getBehaviorId <em>Behavior Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Behavior Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getBehaviorId()
+ * @see #getFaceletTaglibTagBehavior()
+ * @generated
+ */
+ EReference getFaceletTaglibTagBehavior_BehaviorId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getHandlerClass <em>Handler Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Handler Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getHandlerClass()
+ * @see #getFaceletTaglibTagBehavior()
+ * @generated
+ */
+ EReference getFaceletTaglibTagBehavior_HandlerClass();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getBehaviorExtension <em>Behavior Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Behavior Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagBehavior#getBehaviorExtension()
+ * @see #getFaceletTaglibTagBehavior()
+ * @generated
+ */
+ EReference getFaceletTaglibTagBehavior_BehaviorExtension();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension <em>Tag Component Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Component Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension
+ * @generated
+ */
+ EClass getFaceletTaglibTagComponentExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension#getAny()
+ * @see #getFaceletTaglibTagComponentExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagComponentExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponentExtension#getId()
+ * @see #getFaceletTaglibTagComponentExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagComponentExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent <em>Tag Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Component</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent
+ * @generated
+ */
+ EClass getFaceletTaglibTagComponent();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getComponentType <em>Component Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Component Type</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getComponentType()
+ * @see #getFaceletTaglibTagComponent()
+ * @generated
+ */
+ EReference getFaceletTaglibTagComponent_ComponentType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getRendererType <em>Renderer Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Renderer Type</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getRendererType()
+ * @see #getFaceletTaglibTagComponent()
+ * @generated
+ */
+ EReference getFaceletTaglibTagComponent_RendererType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getHandlerClass <em>Handler Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Handler Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getHandlerClass()
+ * @see #getFaceletTaglibTagComponent()
+ * @generated
+ */
+ EReference getFaceletTaglibTagComponent_HandlerClass();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getComponentExtension <em>Component Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Component Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagComponent#getComponentExtension()
+ * @see #getFaceletTaglibTagComponent()
+ * @generated
+ */
+ EReference getFaceletTaglibTagComponent_ComponentExtension();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension <em>Tag Converter Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Converter Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension
+ * @generated
+ */
+ EClass getFaceletTaglibTagConverterExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension#getAny()
+ * @see #getFaceletTaglibTagConverterExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagConverterExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverterExtension#getId()
+ * @see #getFaceletTaglibTagConverterExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagConverterExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter <em>Tag Converter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Converter</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter
+ * @generated
+ */
+ EClass getFaceletTaglibTagConverter();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getConverterId <em>Converter Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Converter Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getConverterId()
+ * @see #getFaceletTaglibTagConverter()
+ * @generated
+ */
+ EReference getFaceletTaglibTagConverter_ConverterId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getHandlerClass <em>Handler Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Handler Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getHandlerClass()
+ * @see #getFaceletTaglibTagConverter()
+ * @generated
+ */
+ EReference getFaceletTaglibTagConverter_HandlerClass();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getConverterExtension <em>Converter Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Converter Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagConverter#getConverterExtension()
+ * @see #getFaceletTaglibTagConverter()
+ * @generated
+ */
+ EReference getFaceletTaglibTagConverter_ConverterExtension();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension <em>Tag Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension
+ * @generated
+ */
+ EClass getFaceletTaglibTagExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension#getAny()
+ * @see #getFaceletTaglibTagExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagExtension#getId()
+ * @see #getFaceletTaglibTagExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag <em>Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag
+ * @generated
+ */
+ EClass getFaceletTaglibTag();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagNameElement <em>Tag Name Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Tag Name Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagNameElement()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EReference getFaceletTaglibTag_TagNameElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getHandlerClassElement <em>Handler Class Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Handler Class Element</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getHandlerClassElement()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EReference getFaceletTaglibTag_HandlerClassElement();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getBehavior <em>Behavior</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Behavior</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getBehavior()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EReference getFaceletTaglibTag_Behavior();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getComponent <em>Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Component</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getComponent()
+ * @see #getFaceletTaglibTag()
* @generated
*/
- EAttribute getTagDefn_Name();
+ EReference getFaceletTaglibTag_Component();
/**
- * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn <em>Function Defn</em>}'.
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getConverter <em>Converter</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Function Defn</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn
+ * @return the meta object for the containment reference '<em>Converter</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getConverter()
+ * @see #getFaceletTaglibTag()
* @generated
*/
- EClass getFunctionDefn();
+ EReference getFaceletTaglibTag_Converter();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionName <em>Function Name</em>}'.
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getValidator <em>Validator</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Function Name</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionName()
- * @see #getFunctionDefn()
+ * @return the meta object for the containment reference '<em>Validator</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getValidator()
+ * @see #getFaceletTaglibTag()
* @generated
*/
- EAttribute getFunctionDefn_FunctionName();
+ EReference getFaceletTaglibTag_Validator();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionClass <em>Function Class</em>}'.
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getSource <em>Source</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Function Class</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionClass()
- * @see #getFunctionDefn()
+ * @return the meta object for the containment reference '<em>Source</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getSource()
+ * @see #getFaceletTaglibTag()
* @generated
*/
- EAttribute getFunctionDefn_FunctionClass();
+ EReference getFaceletTaglibTag_Source();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionSignature <em>Function Signature</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getAttribute <em>Attribute</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Function Signature</em>'.
- * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FunctionDefn#getFunctionSignature()
- * @see #getFunctionDefn()
+ * @return the meta object for the containment reference list '<em>Attribute</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getAttribute()
+ * @see #getFaceletTaglibTag()
* @generated
*/
- EAttribute getFunctionDefn_FunctionSignature();
+ EReference getFaceletTaglibTag_Attribute();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagExtension <em>Tag Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Tag Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagExtension()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EReference getFaceletTaglibTag_TagExtension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagName <em>Tag Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tag Name</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getTagName()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTag_TagName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getHandlerClass <em>Handler Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Handler Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTag#getHandlerClass()
+ * @see #getFaceletTaglibTag()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTag_HandlerClass();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension <em>Tag Validator Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Validator Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension
+ * @generated
+ */
+ EClass getFaceletTaglibTagValidatorExtension();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension#getAny()
+ * @see #getFaceletTaglibTagValidatorExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagValidatorExtension_Any();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidatorExtension#getId()
+ * @see #getFaceletTaglibTagValidatorExtension()
+ * @generated
+ */
+ EAttribute getFaceletTaglibTagValidatorExtension_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator <em>Tag Validator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tag Validator</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator
+ * @generated
+ */
+ EClass getFaceletTaglibTagValidator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getValidatorId <em>Validator Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Validator Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getValidatorId()
+ * @see #getFaceletTaglibTagValidator()
+ * @generated
+ */
+ EReference getFaceletTaglibTagValidator_ValidatorId();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getHandlerClass <em>Handler Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Handler Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getHandlerClass()
+ * @see #getFaceletTaglibTagValidator()
+ * @generated
+ */
+ EReference getFaceletTaglibTagValidator_HandlerClass();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getValidatorExtension <em>Validator Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Validator Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibTagValidator#getValidatorExtension()
+ * @see #getFaceletTaglibTagValidator()
+ * @generated
+ */
+ EReference getFaceletTaglibTagValidator_ValidatorExtension();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib <em>Facelet Taglib</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Facelet Taglib</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib
+ * @generated
+ */
+ EClass getFaceletTaglib();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getLibraryClass <em>Library Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Library Class</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getLibraryClass()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_LibraryClass();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespace <em>Namespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Namespace</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getNamespace()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_Namespace();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getCompositeLibraryName <em>Composite Library Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Composite Library Name</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getCompositeLibraryName()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_CompositeLibraryName();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getGroup()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EAttribute getFaceletTaglib_Group();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTag <em>Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Tag</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTag()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_Tag();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getFunction <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Function</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getFunction()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_Function();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTaglibExtension <em>Taglib Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Taglib Extension</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getTaglibExtension()
+ * @see #getFaceletTaglib()
+ * @generated
+ */
+ EReference getFaceletTaglib_TaglibExtension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglib#getId()