diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.core')
351 files changed, 0 insertions, 41598 deletions
diff --git a/bundles/org.eclipse.wst.html.core/.classpath b/bundles/org.eclipse.wst.html.core/.classpath deleted file mode 100644 index 2c6f8c1f34..0000000000 --- a/bundles/org.eclipse.wst.html.core/.classpath +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"> - <accessrules> - <accessrule kind="accessible" pattern="org/w3c/dom/css/**/*"/> - <accessrule kind="accessible" pattern="org/eclipse/wst/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/bundles/org.eclipse.wst.html.core/.cvsignore b/bundles/org.eclipse.wst.html.core/.cvsignore deleted file mode 100644 index 02ca6cb2c7..0000000000 --- a/bundles/org.eclipse.wst.html.core/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -bin -htmlmodel.jar -temp.folder -dev.properties -build.xml -@dot -src.zip -javaCompiler...args diff --git a/bundles/org.eclipse.wst.html.core/.options b/bundles/org.eclipse.wst.html.core/.options deleted file mode 100644 index e66a59f041..0000000000 --- a/bundles/org.eclipse.wst.html.core/.options +++ /dev/null @@ -1,2 +0,0 @@ -org.eclipse.wst.html.core/debug=true -org.eclipse.wst.html.core/debug/tracefilter=
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/.project b/bundles/org.eclipse.wst.html.core/.project deleted file mode 100644 index 13a9facdf9..0000000000 --- a/bundles/org.eclipse.wst.html.core/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.wst.html.core</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ManifestBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.SchemaBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index afa5c91352..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Tue Apr 04 03:36:32 EDT 2006 -eclipse.preferences.version=1 -encoding/<project>=ISO-8859-1 diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 7ec5750225..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.core.runtime.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Mon Apr 17 01:48:39 EDT 2006 -eclipse.preferences.version=1 -line.separator=\r\n diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 0667e35a52..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,79 +0,0 @@ -#Wed Mar 28 03:23:07 EDT 2007 -eclipse.preferences.version=1 -org.eclipse.jdt.core.builder.cleanOutputFolder=clean -org.eclipse.jdt.core.builder.duplicateResourceTask=warning -org.eclipse.jdt.core.builder.invalidClasspath=ignore -org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch -org.eclipse.jdt.core.circularClasspath=error -org.eclipse.jdt.core.classpath.exclusionPatterns=enabled -org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.4 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.deprecation=ignore -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=warning -org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning -org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore -org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedImport=error -org.eclipse.jdt.core.compiler.problem.unusedLabel=error -org.eclipse.jdt.core.compiler.problem.unusedLocal=error -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.3 -org.eclipse.jdt.core.incompatibleJDKLevel=ignore -org.eclipse.jdt.core.incompleteClasspath=error diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 301c7adde6..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Mon Apr 17 01:48:39 EDT 2006 -eclipse.preferences.version=1 -internal.default.compliance=default -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<templates/> diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.ltk.core.refactoring.prefs deleted file mode 100644 index c59368c5e1..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.ltk.core.refactoring.prefs +++ /dev/null @@ -1,3 +0,0 @@ -#Tue Apr 04 03:36:32 EDT 2006 -eclipse.preferences.version=1 -org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.pde.prefs deleted file mode 100644 index 061cd53dd0..0000000000 --- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.pde.prefs +++ /dev/null @@ -1,16 +0,0 @@ -#Mon Apr 17 02:01:33 EDT 2006
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF deleted file mode 100644 index 01890e1fd2..0000000000 --- a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,38 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.wst.html.core; singleton:=true -Bundle-Version: 1.1.200.qualifier -Bundle-Activator: org.eclipse.wst.html.core.internal.HTMLCorePlugin -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Export-Package: org.eclipse.wst.html.core.internal;x-internal:=true, - org.eclipse.wst.html.core.internal.cleanup;x-internal:=true, - org.eclipse.wst.html.core.internal.commentelement.handlers;x-internal:=true, - org.eclipse.wst.html.core.internal.contentmodel;x-internal:=true, - org.eclipse.wst.html.core.internal.contentmodel.chtml;x-internal:=true, - org.eclipse.wst.html.core.internal.contentmodel.ssi;x-internal:=true, - org.eclipse.wst.html.core.internal.contentproperties;x-internal:=true, - org.eclipse.wst.html.core.internal.contenttype;x-internal:=true, - org.eclipse.wst.html.core.internal.document;x-internal:=true, - org.eclipse.wst.html.core.internal.encoding;x-internal:=true, - org.eclipse.wst.html.core.internal.format;x-internal:=true, - org.eclipse.wst.html.core.internal.htmlcss;x-internal:=true, - org.eclipse.wst.html.core.internal.modelhandler;x-internal:=true, - org.eclipse.wst.html.core.internal.modelquery;x-internal:=true, - org.eclipse.wst.html.core.internal.preferences;x-internal:=true, - org.eclipse.wst.html.core.internal.provisional;x-internal:=true, - org.eclipse.wst.html.core.internal.provisional.contenttype;x-internal:=true, - org.eclipse.wst.html.core.internal.provisional.text;x-internal:=true, - org.eclipse.wst.html.core.internal.text;x-internal:=true, - org.eclipse.wst.html.core.internal.validate;x-internal:=true, - org.eclipse.wst.html.core.text -Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", - com.ibm.icu;bundle-version="[3.4.4,4.0.0)", - org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)", - org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)", - org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)", - org.eclipse.wst.css.core;bundle-version="[1.1.0,1.2.0)" -Eclipse-LazyStart: true; exceptions="org.eclipse.wst.html.core.internal.contenttype" -Bundle-RequiredExecutionEnvironment: J2SE-1.4 diff --git a/bundles/org.eclipse.wst.html.core/about.html b/bundles/org.eclipse.wst.html.core/about.html deleted file mode 100644 index 73db36ed5a..0000000000 --- a/bundles/org.eclipse.wst.html.core/about.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML> - -<head> -<title>About</title> -<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> -</head> - -<BODY lang="EN-US"> - -<H3>About This Content</H3> - -<P>June 06, 2007</P> - -<H3>License</H3> - -<P>The Eclipse Foundation makes available all content in this plug-in -("Content"). Unless otherwise indicated below, the Content is provided to you -under the terms and conditions of the Eclipse Public License Version 1.0 -("EPL"). A copy of the EPL is available at -<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. -For purposes of the EPL, "Program" will mean the Content.</P> - -<P>If you did not receive this Content directly from the Eclipse Foundation, the -Content is being redistributed by another party ("Redistributor") and different -terms and conditions may apply to your use of any object code in the Content. -Check the Redistributor’s license that was provided with the Content. If no such -license exists, contact the Redistributor. Unless otherwise indicated below, the -terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at -<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P> - -</BODY> -</HTML> diff --git a/bundles/org.eclipse.wst.html.core/build.properties b/bundles/org.eclipse.wst.html.core/build.properties deleted file mode 100644 index 7ea2b7efc3..0000000000 --- a/bundles/org.eclipse.wst.html.core/build.properties +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2005 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = plugin.xml,\ - .options,\ - data/,\ - plugin.properties,\ - META-INF/,\ - .,\ - about.html -bin.excludes = bin/**,\ - @dot/**,\ - temp.folder/** -src.includes = component.xml,\ - build.properties -source.. = src/ diff --git a/bundles/org.eclipse.wst.html.core/component.xml b/bundles/org.eclipse.wst.html.core/component.xml deleted file mode 100644 index 8565aecd93..0000000000 --- a/bundles/org.eclipse.wst.html.core/component.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.html"> - <component-depends unrestricted="true"></component-depends> - <plugin id="org.eclipse.wst.html.core" fragment="false" /> - <plugin id="org.eclipse.wst.html.standard.dtds" fragment="false" /> - <plugin id="org.eclipse.wst.html.ui" fragment="false" /> - <description url="http://eclipse.org/webtools/wst/components/html/overview.html" /> - <package name="org.eclipse.wst.html.ui" api="false"> - <type name="StructuredTextViewerConfigurationHTML" subclass="true" instantiate="true" /> - </package> - <package name="org.eclipse.wst.html.ui.views.contentoutline" api="false"> - <type name="HTMLContentOutlineConfiguration" subclass="true" instantiate="true" /> - </package> - <plugin id="org.eclipse.wst.html.ui.infopop" fragment="false" /> -</component> diff --git a/bundles/org.eclipse.wst.html.core/data/htmref.properties b/bundles/org.eclipse.wst.html.core/data/htmref.properties deleted file mode 100644 index 9cd460d81e..0000000000 --- a/bundles/org.eclipse.wst.html.core/data/htmref.properties +++ /dev/null @@ -1,108 +0,0 @@ -############################################################################### -# Copyright (c) 2004 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### - -ATagInfo=A link if the href attribute is present, and the target for a link if the name attribute is present -ABBRTagInfo=An abbreviation (for example, WWW, HTTP) -ACRONYMTagInfo=An acronym (for example, SCUBA) -ADDRESSTagInfo=Address information for the author of the page -APPLETTagInfo=A Java applet -AREATagInfo=Defines a client-side image map area -BTagInfo=Displays contained text as bold -BASETagInfo=The base URI for the page, to be used when calculating relative paths -BASEFONTTagInfo=The base font size for the page -BDOTagInfo=Overrides default bidirectional display. For use with bidirectional languages. -BIGTagInfo=Displays contained text as large -BGSOUNDTagInfo=Defines a sound file for the page. Not supported by W3C HTML 4.01. -BLINKTagInfo=Displays text as blinking. Not supported by W3C HTML 4.01. -BLOCKQUOTETagInfo=A long quotation -BODYTagInfo=The document body. Contains all the content for the page. -BRTagInfo=Forces a line break -BUTTONTagInfo=Defines a push button -CAPTIONTagInfo=Defines a table caption -CENTERTagInfo=Displays contained text centered. Equivalent to DIV with align=center. -CITETagInfo=A citation -CODETagInfo=A computer code fragment -COLTagInfo=A table column -COLGROUPTagInfo=A group of table columns -DDTagInfo=A definition or description in a definition or description list -DELTagInfo=Displays text as deleted -DFNTagInfo=A definition -DIRTagInfo=A directory listing -DIVTagInfo=A generic container, which can be used for defining language or style for the contents -DLTagInfo=A definition or description list -DTTagInfo=A term or subject in a definition or description list -EMTagInfo=Displays text emphasized (generally italicized) -EMBEDTagInfo=Defines an embedded plug-in. Not supported by W3C HTML 4.01. -FIELDSETTagInfo=Defines a form control group -FONTTagInfo=Displays text in the given font -FORMTagInfo=Defines an interactive form -FRAMETagInfo=Defines a frame within the current window -FRAMESETTagInfo=Defines a frameset that divides the window into frames -H1TagInfo=A top-level heading -H2TagInfo=A second-level heading -H3TagInfo=A third-level heading -H4TagInfo=A fourth-level heading -H5TagInfo=A fifth-level heading -H6TagInfo=A sixth-level heading -HEADTagInfo=Contains metadata and window title information for the document -HRTagInfo=A horizontal rule -HTMLTagInfo=The root element for the document. -ITagInfo=Displays text as italic -IFRAMETagInfo=Defines an inline subwindow -IMGTagInfo=Displays the referenced image as embedded content -INPUTTagInfo=Defines a form control for user input -INSTagInfo=Defines inserted text -ISINDEXTagInfo=Defines a single line prompt -KBDTagInfo=Defines text to be entered by the user -LABELTagInfo=Defines the label for a form field -LEGENDTagInfo=Defines the label for a set of form fields -LITagInfo=Defines a list item within a list -LINKTagInfo=A media-independent link -MAPTagInfo=Defines a client-side image map -MARQUEETagInfo=Displays text as scrolling. Not supported by W3C HTML 4.01. -MENUTagInfo=Defines a menu list -METATagInfo=Defines metadata information for the document -NOBRTagInfo=Overrides and prevents line breaks. Not supported by W3C HTML 4.01. -NOFRAMESTagInfo=Provides information to display if the current browser does not support frames -NOSCRIPTTagInfo=Provides information to display if the current browser does not support scripting -OBJECTTagInfo=Defines a generic embedded object -OLTagInfo=An ordered list -OPTGROUPTagInfo=An option group -OPTIONTagInfo=A selectable choice -PTagInfo=A paragraph -PARAMTagInfo=A named property value -PRETagInfo=Preformatted text -QTagInfo=A short inline quotation -STagInfo=Display text in strike-through style -SAMPTagInfo=Sample program output, scripts, etc. Displays in monospace font. -SCRIPTTagInfo=Script statements -SELECTTagInfo=An option selector -SMALLTagInfo=Displays text as small -SPANTagInfo=A generic container, which can be used for defining language or style for the contents -STRIKETagInfo=Display text in strike-through style -STRONGTagInfo=Displays text as strongly emphasized (generally bold) -STYLETagInfo=Defines a style for the contained information -SUBTagInfo=Display as subscript -SUPTagInfo=Display as superscript -TABLETagInfo=Defines a table -TBODYTagInfo=The body of the table -TDTagInfo=A cell within a table -TEXTAREATagInfo=A multi-line text field -TFOOTTagInfo=A table footer -THTagInfo=A table header cell -THEADTagInfo=A table header -TITLETagInfo=The document title, displayed in the browser's title bar -TRTagInfo=A table row -TTTagInfo=Displays text in teletype or monospaced text style -UTagInfo=Displays text as underlined -ULTagInfo=An unordered list -VARTagInfo=An instance of a variable or program argument -WBRTagInfo=Allows a line break within <B><NOBR></B> tag. Not supported by W3C HTML 4.01. diff --git a/bundles/org.eclipse.wst.html.core/data/htmref.xml b/bundles/org.eclipse.wst.html.core/data/htmref.xml deleted file mode 100644 index c7bcd64385..0000000000 --- a/bundles/org.eclipse.wst.html.core/data/htmref.xml +++ /dev/null @@ -1,306 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - --> -<abstractGrammarAnnotations propertiesLocation="htmref" caseSensitive="false"> - <annotation spec="A"> - <property name="tagInfo">%ATagInfo</property> - </annotation> - <annotation spec="ABBR"> - <property name="tagInfo">%ABBRTagInfo</property> - </annotation> - <annotation spec="ACRONYM"> - <property name="tagInfo">%ACRONYMTagInfo</property> - </annotation> - <annotation spec="ADDRESS"> - <property name="tagInfo">%ADDRESSTagInfo</property> - </annotation> - <annotation spec="APPLET"> - <property name="tagInfo">%APPLETTagInfo</property> - </annotation> - <annotation spec="AREA"> - <property name="tagInfo">%AREATagInfo</property> - </annotation> - <annotation spec="B"> - <property name="tagInfo">%BTagInfo</property> - </annotation> - <annotation spec="BASE"> - <property name="tagInfo">%BASETagInfo</property> - </annotation> - <annotation spec="BASEFONT"> - <property name="tagInfo">%BASEFONTTagInfo</property> - </annotation> - <annotation spec="BDO"> - <property name="tagInfo">%BDOTagInfo</property> - </annotation> - <annotation spec="BGSOUND"> - <property name="tagInfo">%BGSOUNDTagInfo</property> - </annotation> - <annotation spec="BIG"> - <property name="tagInfo">%BIGTagInfo</property> - </annotation> - <annotation spec="BLINK"> - <property name="tagInfo">%BLINKTagInfo</property> - </annotation> - <annotation spec="BLOCKQUOTE"> - <property name="tagInfo">%BLOCKQUOTETagInfo</property> - </annotation> - <annotation spec="BODY"> - <property name="tagInfo">%BODYTagInfo</property> - </annotation> - <annotation spec="BR"> - <property name="tagInfo">%BRTagInfo</property> - </annotation> - <annotation spec="BUTTON"> - <property name="tagInfo">%BUTTONTagInfo</property> - </annotation> - <annotation spec="CAPTION"> - <property name="tagInfo">%CAPTIONTagInfo</property> - </annotation> - <annotation spec="CENTER"> - <property name="tagInfo">%CENTERTagInfo</property> - </annotation> - <annotation spec="CITE"> - <property name="tagInfo">%CITETagInfo</property> - </annotation> - <annotation spec="CODE"> - <property name="tagInfo">%CODETagInfo</property> - </annotation> - <annotation spec="COL"> - <property name="tagInfo">%COLTagInfo</property> - </annotation> - <annotation spec="COLGROUP"> - <property name="tagInfo">%COLGROUPTagInfo</property> - </annotation> - <annotation spec="DD"> - <property name="tagInfo">%DDTagInfo</property> - </annotation> - <annotation spec="DEL"> - <property name="tagInfo">%DELTagInfo</property> - </annotation> - <annotation spec="DFN"> - <property name="tagInfo">%DFNTagInfo</property> - </annotation> - <annotation spec="DIR"> - <property name="tagInfo">%DIRTagInfo</property> - </annotation> - <annotation spec="DIV"> - <property name="tagInfo">%DIVTagInfo</property> - </annotation> - <annotation spec="DL"> - <property name="tagInfo">%DLTagInfo</property> - </annotation> - <annotation spec="DT"> - <property name="tagInfo">%DTTagInfo</property> - </annotation> - <annotation spec="EM"> - <property name="tagInfo">%EMTagInfo</property> - </annotation> - <annotation spec="EMBED"> - <property name="tagInfo">%EMBEDTagInfo</property> - </annotation> - <annotation spec="FIELDSET"> - <property name="tagInfo">%FIELDSETTagInfo</property> - </annotation> - <annotation spec="FONT"> - <property name="tagInfo">%FONTTagInfo</property> - </annotation> - <annotation spec="FORM"> - <property name="tagInfo">%FORMTagInfo</property> - </annotation> - <annotation spec="FRAME"> - <property name="tagInfo">%FRAMETagInfo</property> - </annotation> - <annotation spec="FRAMESET"> - <property name="tagInfo">%FRAMESETTagInfo</property> - </annotation> - <annotation spec="H1"> - <property name="tagInfo">%H1TagInfo</property> - </annotation> - <annotation spec="H2"> - <property name="tagInfo">%H2TagInfo</property> - </annotation> - <annotation spec="H3"> - <property name="tagInfo">%H3TagInfo</property> - </annotation> - <annotation spec="H4"> - <property name="tagInfo">%H4TagInfo</property> - </annotation> - <annotation spec="H5"> - <property name="tagInfo">%H5TagInfo</property> - </annotation> - <annotation spec="H6"> - <property name="tagInfo">%H6TagInfo</property> - </annotation> - <annotation spec="HEAD"> - <property name="tagInfo">%HEADTagInfo</property> - </annotation> - <annotation spec="HR"> - <property name="tagInfo">%HRTagInfo</property> - </annotation> - <annotation spec="HTML"> - <property name="tagInfo">%HTMLTagInfo</property> - </annotation> - <annotation spec="I"> - <property name="tagInfo">%ITagInfo</property> - </annotation> - <annotation spec="IFRAME"> - <property name="tagInfo">%IFRAMETagInfo</property> - </annotation> - <annotation spec="IMG"> - <property name="tagInfo">%IMGTagInfo</property> - </annotation> - <annotation spec="INPUT"> - <property name="tagInfo">%INPUTTagInfo</property> - </annotation> - <annotation spec="INS"> - <property name="tagInfo">%INSTagInfo</property> - </annotation> - <annotation spec="ISINDEX"> - <property name="tagInfo">%ISINDEXTagInfo</property> - </annotation> - <annotation spec="KBD"> - <property name="tagInfo">%KBDTagInfo</property> - </annotation> - <annotation spec="LABEL"> - <property name="tagInfo">%LABELTagInfo</property> - </annotation> - <annotation spec="LEGEND"> - <property name="tagInfo">%LEGENDTagInfo</property> - </annotation> - <annotation spec="LI"> - <property name="tagInfo">%LITagInfo</property> - </annotation> - <annotation spec="LINK"> - <property name="tagInfo">%LINKTagInfo</property> - </annotation> - <annotation spec="MAP"> - <property name="tagInfo">%MAPTagInfo</property> - </annotation> - <annotation spec="MARQUEE"> - <property name="tagInfo">%MARQUEETagInfo</property> - </annotation> - <annotation spec="MENU"> - <property name="tagInfo">%MENUTagInfo</property> - </annotation> - <annotation spec="META"> - <property name="tagInfo">%METATagInfo</property> - </annotation> - <annotation spec="NOBR"> - <property name="tagInfo">%NOBRTagInfo</property> - </annotation> - <annotation spec="NOFRAMES"> - <property name="tagInfo">%NOFRAMESTagInfo</property> - </annotation> - <annotation spec="NOSCRIPT"> - <property name="tagInfo">%NOSCRIPTTagInfo</property> - </annotation> - <annotation spec="OBJECT"> - <property name="tagInfo">%OBJECTTagInfo</property> - </annotation> - <annotation spec="OL"> - <property name="tagInfo">%OLTagInfo</property> - </annotation> - <annotation spec="OPTGROUP"> - <property name="tagInfo">%OPTGROUPTagInfo</property> - </annotation> - <annotation spec="OPTION"> - <property name="tagInfo">%OPTIONTagInfo</property> - </annotation> - <annotation spec="P"> - <property name="tagInfo">%PTagInfo</property> - </annotation> - <annotation spec="PARAM"> - <property name="tagInfo">%PARAMTagInfo</property> - </annotation> - <annotation spec="PRE"> - <property name="tagInfo">%PRETagInfo</property> - </annotation> - <annotation spec="Q"> - <property name="tagInfo">%QTagInfo</property> - </annotation> - <annotation spec="S"> - <property name="tagInfo">%STagInfo</property> - </annotation> - <annotation spec="SAMP"> - <property name="tagInfo">%SAMPTagInfo</property> - </annotation> - <annotation spec="SCRIPT"> - <property name="tagInfo">%SCRIPTTagInfo</property> - </annotation> - <annotation spec="SELECT"> - <property name="tagInfo">%SELECTTagInfo</property> - </annotation> - <annotation spec="SMALL"> - <property name="tagInfo">%SMALLTagInfo</property> - </annotation> - <annotation spec="SPAN"> - <property name="tagInfo">%SPANTagInfo</property> - </annotation> - <annotation spec="STRIKE"> - <property name="tagInfo">%STRIKETagInfo</property> - </annotation> - <annotation spec="STRONG"> - <property name="tagInfo">%STRONGTagInfo</property> - </annotation> - <annotation spec="STYLE"> - <property name="tagInfo">%STYLETagInfo</property> - </annotation> - <annotation spec="SUB"> - <property name="tagInfo">%SUBTagInfo</property> - </annotation> - <annotation spec="SUP"> - <property name="tagInfo">%SUPTagInfo</property> - </annotation> - <annotation spec="TABLE"> - <property name="tagInfo">%TABLETagInfo</property> - </annotation> - <annotation spec="TBODY"> - <property name="tagInfo">%TBODYTagInfo</property> - </annotation> - <annotation spec="TD"> - <property name="tagInfo">%TDTagInfo</property> - </annotation> - <annotation spec="TEXTAREA"> - <property name="tagInfo">%TEXTAREATagInfo</property> - </annotation> - <annotation spec="TFOOT"> - <property name="tagInfo">%TFOOTTagInfo</property> - </annotation> - <annotation spec="TH"> - <property name="tagInfo">%THTagInfo</property> - </annotation> - <annotation spec="THEAD"> - <property name="tagInfo">%THEADTagInfo</property> - </annotation> - <annotation spec="TITLE"> - <property name="tagInfo">%TITLETagInfo</property> - </annotation> - <annotation spec="TR"> - <property name="tagInfo">%TRTagInfo</property> - </annotation> - <annotation spec="TT"> - <property name="tagInfo">%TTTagInfo</property> - </annotation> - <annotation spec="U"> - <property name="tagInfo">%UTagInfo</property> - </annotation> - <annotation spec="UL"> - <property name="tagInfo">%ULTagInfo</property> - </annotation> - <annotation spec="VAR"> - <property name="tagInfo">%VARTagInfo</property> - </annotation> - <annotation spec="WBR"> - <property name="tagInfo">%WBRTagInfo</property> - </annotation> -</abstractGrammarAnnotations>
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/plugin.properties b/bundles/org.eclipse.wst.html.core/plugin.properties deleted file mode 100644 index 92a9e57ed8..0000000000 --- a/bundles/org.eclipse.wst.html.core/plugin.properties +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2006 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -providerName=Eclipse.org -pluginName=Structured Source HTML Model -Structured_HTML_Document_Factory_Extension.name=Structured HTML Document Factory Extension -HTML_Content_Type_Extension_Element.name=HTML diff --git a/bundles/org.eclipse.wst.html.core/plugin.xml b/bundles/org.eclipse.wst.html.core/plugin.xml deleted file mode 100644 index 9d6fc2c4ee..0000000000 --- a/bundles/org.eclipse.wst.html.core/plugin.xml +++ /dev/null @@ -1,199 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?eclipse version="3.0"?> -<plugin> - - <extension point="org.eclipse.wst.sse.core.modelHandler"> - <modelHandler - default="no" - class="org.eclipse.wst.html.core.internal.modelhandler.ModelHandlerForHTML" - associatedContentTypeId="org.eclipse.wst.html.core.htmlsource" - id="org.eclipse.wst.html.core.internal.modelhandler"> - </modelHandler> - </extension> - - <extension point="org.eclipse.wst.sse.core.embeddedTypeHandler"> - <embeddedTypeHandler - class="org.eclipse.wst.html.core.internal.modelhandler.EmbeddedHTML"> - </embeddedTypeHandler> - </extension> - - <extension point="org.eclipse.wst.sse.core.taskscanner"> - <scanner - id="org.eclipse.wst.html.core.internal.tasks.HTMLFileTaskScanner" - class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner" - contentTypeIds="org.eclipse.wst.html.core.htmlsource" /> - </extension> - - <extension - point="org.eclipse.core.filebuffers.documentCreation" - id="org.eclipse.wst.html.core.documentfactories" - name="%Structured_HTML_Document_Factory_Extension.name"> - <factory - contentTypeId="org.eclipse.wst.html.core.htmlsource" - class="org.eclipse.wst.sse.core.internal.filebuffers.BasicStructuredDocumentFactory" /> - </extension> - - <extension point="org.eclipse.wst.sse.core.commentElementHandler"> - <handler-custom - commenttype="xml" - class="org.eclipse.wst.html.core.internal.commentelement.handlers.CommentElementHandlerForSSI"> - <startwith prefix="#"></startwith> - </handler-custom> - </extension> - - <extension point="org.eclipse.team.core.fileTypes"> - <fileTypes - type="text" - extension="html"> - </fileTypes> - <fileTypes - type="text" - extension="htm"> - </fileTypes> - <fileTypes - type="text" - extension="xhtml"> - </fileTypes> - <fileTypes - type="text" - extension="htpl"> - </fileTypes> - <fileTypes - type="text" - extension="wml"> - </fileTypes> - <fileTypes - type="text" - extension="shtml"> - </fileTypes> - <fileTypes - type="text" - extension="shtm"> - </fileTypes> - </extension> - - <extension point="org.eclipse.wst.sse.core.formatProcessors"> - <processor - class="org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl" - contentTypeId="org.eclipse.wst.html.core.htmlsource"> - </processor> - </extension> - - <!-- Extension point for taghelp documentation --> - <extension point="org.eclipse.wst.xml.core.annotationFiles"> - <annotationFile - location="data/htmref.xml" - publicId="-//W3C//DTD XHTML 1.0 Strict//EN"> - </annotationFile> - <annotationFile - location="data/htmref.xml" - publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"> - </annotationFile> - <annotationFile - location="data/htmref.xml" - publicId="-//W3C//DTD XHTML 1.0 Frameset//EN"> - </annotationFile> - <annotationFile - location="data/htmref.xml" - publicId="-//W3C//DTD XHTML Basic 1.0//EN"> - </annotationFile> - <annotationFile - location="data/htmref.xml" - publicId="-//W3C//DTD XHTML 1.1//EN"> - </annotationFile> - <annotationFile - location="data/htmref.xml" - publicId="-//WAPFORUM//DTD XHTML Mobile 1.0//EN"> - </annotationFile> - </extension> - - <extension point="org.eclipse.core.runtime.contentTypes"> - <content-type - file-extensions="html,htm,xhtml,htpl,wml,shtml,shtm" - priority="high" - name="%HTML_Content_Type_Extension_Element.name" - id="htmlsource" - base-type="org.eclipse.core.runtime.text"> - <!-- note: no default-charset for HTML, should use 'platform' --> - <describer - class="org.eclipse.wst.html.core.internal.contenttype.ContentDescriberForHTML" /> - </content-type> - </extension> - -<!-- moved to where the dtd's are contributed - - <extension point="org.eclipse.wst.sse.core.documentTypes"> - <documentType - elementName="html" - displayName="XHTML 1.0 Strict" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="false" - publicID="-//W3C//DTD XHTML 1.0 Strict//EN" - systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - </documentType> - <documentType - elementName="html" - displayName="XHTML 1.0 Transitional" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="false" - publicID="-//W3C//DTD XHTML 1.0 Transitional//EN" - defaultXHTML="true" - systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - </documentType> - <documentType - elementName="html" - displayName="XHTML 1.0 Frameset" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="true" - publicID="-//W3C//DTD XHTML 1.0 Frameset//EN" - systemID="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> - </documentType> - <documentType - elementName="html" - displayName="XHTML Basic 1.0" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="false" - publicID="-//W3C//DTD XHTML Basic 1.0//EN" - systemID="http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> - </documentType> - <documentType - elementName="html" - displayName="XHTML 1.1" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="false" - publicID="-//W3C//DTD XHTML 1.1//EN" - systemID="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> - </documentType> - <documentType - elementName="html" - displayName="XHTML MP 1.0" - namespaceURI="http://www.w3.org/1999/xhtml" - isXHTML="true" - hasFrameset="false" - publicID="-//WAPFORUM//DTD XHTML Mobile 1.0//EN" - systemID="http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> - </documentType> - <documentType - elementName="wml" - displayName="WML 1.3" - namespaceURI="" - isWML="true" - hasFrameset="false" - publicID="-//WAPFORUM//DTD WML 1.3//EN" - defaultWML="true" - systemID="http://www.wapforum.org/DTD/wml13.dtd"> - </documentType> - </extension> ---> - <!-- initialize html core preferences --> - <extension point="org.eclipse.core.runtime.preferences"> - <initializer - class="org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceInitializer" /> - </extension> - -</plugin> diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java deleted file mode 100644 index ce33f1d6c0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal; - - - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -public class HTMLContentBuilder extends DOMContentBuilderImpl { - - private int fTagCase; - private int fAttrCase; - - /** - * DOMContentBuilder constructor comment. - * @param document org.w3c.dom.Document - */ - public HTMLContentBuilder(Document document) { - super(document); - Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); - fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE); - fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE); - // Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE); - // fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME); - // fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME); - } - - public String computeName(CMNode cmnode, Node parent) { - String name = super.computeName(cmnode, parent); - // don't change the case unless we're certain it is meaningless - // if (cmnode instanceof HTMLCMNode && ((HTMLCMNode) cmnode).shouldIgnoreCase()) { - if (shouldIgnoreCase(cmnode)) { - if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) { - if (fTagCase == HTMLCorePreferenceNames.LOWER) - name = name.toLowerCase(); - else if (fTagCase == HTMLCorePreferenceNames.UPPER) - name = name.toUpperCase(); - // else do nothing - } - else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) { - if (fAttrCase == HTMLCorePreferenceNames.LOWER) - name = name.toLowerCase(); - else if (fAttrCase == HTMLCorePreferenceNames.UPPER) - name = name.toUpperCase(); - // else do nothing - } - } - return name; - - } - - private boolean shouldIgnoreCase(CMNode cmnode) { - if (!cmnode.supports(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return false; - return ((Boolean) cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java deleted file mode 100644 index 92f6df1ce2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Strings used by HTML Core - * - * @plannedfor 1.0 - */ -public class HTMLCoreMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.wst.html.core.internal.HTMLCorePluginResources";//$NON-NLS-1$ - - public static String No_error__UI_; - public static String Undefined_attribute_name___ERROR_; - public static String Undefined_attribute_value__ERROR_; - public static String Multiple_values_specified__ERROR_; - public static String Attribute_name___0___uses__ERROR_; - public static String Invalid_attribute_name___0_ERROR_; - public static String Invalid_attribute___0____ERROR_; - public static String Invalid_location_of_tag____ERROR_; - public static String Duplicate_tag___0____ERROR_; - public static String No_start_tag____0_____ERROR_; - public static String No_end_tag_____0_____ERROR_; - public static String End_tag_____0____not_neede_ERROR_; - public static String Unknown_tag___0____ERROR_; - public static String Tag_name___0___uses_wrong__ERROR_; - public static String Invalid_tag_name___0____ERROR_; - public static String Invalid_JSP_directive___0__ERROR_; - public static String Invalid_text_string___0____ERROR_; - public static String Invalid_character_used_in__ERROR_; - public static String Unknown_error__ERROR_; - public static String Start_tag____0____not_clos_ERROR_; - public static String End_tag_____0____not_close_ERROR_; - public static String Attribute_value___0___uses_ERROR_; - public static String Comment_not_closed__ERROR_; - public static String DOCTYPE_declaration_not_cl_ERROR_; - public static String Processing_instruction_not_ERROR_; - public static String CDATA_section_not_closed__ERROR_; - public static String _ERROR_Tag___0___should_be_an_empty_element_tag_1; - public static String _ERROR_Attribute_value___0___not_closed__1; - public static String HTMLContentPropertiesManager_Updating; - public static String HTMLContentPropertiesManager_Problems_Updating; - - static { - // load message values from bundle file - NLS.initializeMessages(BUNDLE_NAME, HTMLCoreMessages.class); - } - - private HTMLCoreMessages() { - // cannot create new instance - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java deleted file mode 100644 index d1a486b526..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal; - -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.wst.html.core.internal.contentproperties.HTMLContentPropertiesManager; -import org.osgi.framework.BundleContext; - -/** - * The main plugin class to be used in the desktop. - */ -public class HTMLCorePlugin extends Plugin { - // The shared instance. - private static HTMLCorePlugin plugin; - - /** - * The constructor. - */ - public HTMLCorePlugin() { - super(); - plugin = this; - } - - /** - * Returns the shared instance. - */ - public static HTMLCorePlugin getDefault() { - return plugin; - } - - /** - * Returns the workspace instance. - */ - public static IWorkspace getWorkspace() { - return ResourcesPlugin.getWorkspace(); - } - - public void start(BundleContext context) throws Exception { - super.start(context); - - // listen for resource changes to update content properties keys - HTMLContentPropertiesManager.startup(); - } - - public void stop(BundleContext context) throws Exception { - // stop listenning for resource changes to update content properties - // keys - HTMLContentPropertiesManager.shutdown(); - - super.stop(context); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties deleted file mode 100644 index 7cb04b6fcf..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2006 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -No_error__UI_=No error. -Undefined_attribute_name___ERROR_=Undefined attribute name ({0}). -Undefined_attribute_value__ERROR_=Undefined attribute value ({0}). -Multiple_values_specified__ERROR_=Multiple values specified for an attribute ({0}). -Attribute_name___0___uses__ERROR_=Attribute name ({0}) uses wrong case character. -Invalid_attribute_name___0_ERROR_=Invalid attribute name ({0}). -Invalid_attribute___0____ERROR_=Invalid attribute ({0}). -Invalid_location_of_tag____ERROR_=Invalid location of tag ({0}). -Duplicate_tag___0____ERROR_=Duplicate tag ({0}). -No_start_tag____0_____ERROR_=No start tag (<{0}>). -No_end_tag_____0_____ERROR_=No end tag (</{0}>). -End_tag_____0____not_neede_ERROR_=End tag (</{0}>) not needed. -Unknown_tag___0____ERROR_=Unknown tag ({0}). -Tag_name___0___uses_wrong__ERROR_=Tag name ({0}) uses wrong case character. -Invalid_tag_name___0____ERROR_=Invalid tag name ({0}). -Invalid_JSP_directive___0__ERROR_=Invalid JSP directive ({0}). -Invalid_text_string___0____ERROR_=Invalid text string ({0}). -Invalid_character_used_in__ERROR_=Invalid character used in text string ({0}). -Unknown_error__ERROR_=Unknown error. -Start_tag____0____not_clos_ERROR_=Start tag (<{0}>) not closed. -End_tag_____0____not_close_ERROR_=End tag (</{0}>) not closed. -Attribute_value___0___uses_ERROR_=Attribute value ({0}) uses wrong case character. -Comment_not_closed__ERROR_=Comment not closed. -DOCTYPE_declaration_not_cl_ERROR_=DOCTYPE declaration not closed. -Processing_instruction_not_ERROR_=Processing instruction not closed. -CDATA_section_not_closed__ERROR_=CDATA section not closed. -# From here, the new messages are added for V5 -_ERROR_Tag___0___should_be_an_empty_element_tag_1=Tag ({0}) should be an empty-element tag. -_ERROR_Attribute_value___0___not_closed__1=Attribute value ({0}) not closed. -# -HTMLContentPropertiesManager_Updating=Updating Web Content Settings -HTMLContentPropertiesManager_Problems_Updating=Problem saving Web Content Settings for {0} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java deleted file mode 100644 index c547950d06..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal; - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.osgi.framework.Bundle; - -/** - * Small convenience class to log messages to plugin's log file and also, if desired, - * the console. This class should only be used by classes in this plugin. Other - * plugins should make their own copy, with appropriate ID. - */ -public class Logger { - private static final String PLUGIN_ID = "org.eclipse.wst.html.core"; //$NON-NLS-1$ - - private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$ - - public static final int OK = IStatus.OK; // 0 - public static final int INFO = IStatus.INFO; // 1 - public static final int WARNING = IStatus.WARNING; // 2 - public static final int ERROR = IStatus.ERROR; // 4 - - public static final int OK_DEBUG = 200 + OK; - public static final int INFO_DEBUG = 200 + INFO; - public static final int WARNING_DEBUG = 200 + WARNING; - public static final int ERROR_DEBUG = 200 + ERROR; - - /** - * Adds message to log. - * @param level severity level of the message (OK, INFO, WARNING, ERROR, OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG) - * @param message text to add to the log - * @param exception exception thrown - */ - protected static void _log(int level, String message, Throwable exception) { - if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) { - if (!isDebugging()) - return; - } - - int severity = IStatus.OK; - switch (level) { - case INFO_DEBUG : - case INFO : - severity = IStatus.INFO; - break; - case WARNING_DEBUG : - case WARNING : - severity = IStatus.WARNING; - break; - case ERROR_DEBUG : - case ERROR : - severity = IStatus.ERROR; - } - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) - Platform.getLog(bundle).log(statusObj); - } - - /** - * Prints message to log if category matches /debug/tracefilter option. - * @param message text to print - * @param category category of the message, to be compared with /debug/tracefilter - */ - protected static void _trace(String category, String message, Throwable exception) { - if (isTracing(category)) { - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) - Platform.getLog(bundle).log(statusObj); - } - } - - /** - * @return true if the platform is debugging - */ - public static boolean isDebugging() { - return Platform.inDebugMode(); - } - - /** - * Determines if currently tracing a category - * @param category - * @return true if tracing category, false otherwise - */ - public static boolean isTracing(String category) { - if (!isDebugging()) - return false; - - String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION); - if (traceFilter != null) { - StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) { - String cat = tokenizer.nextToken().trim(); - if (category.equals(cat)) { - return true; - } - } - } - return false; - } - - public static void log(int level, String message) { - _log(level, message, null); - } - - public static void log(int level, String message, Throwable exception) { - _log(level, message, exception); - } - - public static void logException(String message, Throwable exception) { - _log(ERROR, message, exception); - } - - public static void logException(Throwable exception) { - _log(ERROR, exception.getMessage(), exception); - } - - public static void traceException(String category, String message, Throwable exception) { - _trace(category, message, exception); - } - - public static void traceException(String category, Throwable exception) { - _trace(category, exception.getMessage(), exception); - } - - public static void trace(String category, String message) { - _trace(category, message, null); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java deleted file mode 100644 index b4356102ab..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; - -abstract class AbstractNodeCleanupHandler implements IStructuredCleanupHandler { - - protected IStructuredCleanupPreferences fCleanupPreferences = null; - protected IProgressMonitor fProgressMonitor = null; - - public void setCleanupPreferences(IStructuredCleanupPreferences cleanupPreferences) { - - fCleanupPreferences = cleanupPreferences; - } - - - public IStructuredCleanupPreferences getCleanupPreferences() { - if (fCleanupPreferences == null) { - fCleanupPreferences = new StructuredCleanupPreferences(); - - Preferences preferences = getModelPreferences(); - if (preferences != null) { - fCleanupPreferences.setTagNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE)); - fCleanupPreferences.setAttrNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE)); - fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); - fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS)); - fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES)); - fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE)); - fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES)); - fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE)); - } - } - - return fCleanupPreferences; - } - - - public void setProgressMonitor(IProgressMonitor progressMonitor) { - - fProgressMonitor = progressMonitor; - } - - static protected StructuredDocumentEvent replaceSource(IDOMModel model, Object requester, int offset, int length, String source) { - - StructuredDocumentEvent result = null; - if (model == null) - return result; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return result; - if (source == null) - source = new String(); - if (structuredDocument.containsReadOnly(offset, length)) - return result; - if (requester == null) { - requester = structuredDocument; - } - return structuredDocument.replaceText(requester, offset, length, source); - } - - protected Preferences getModelPreferences() { - return HTMLCorePlugin.getDefault().getPluginPreferences(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java deleted file mode 100644 index 05675c6d2c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - - - -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Node; - -// nakamori_TODO: check and remove - -public class CSSTextNodeCleanupHandler extends AbstractNodeCleanupHandler { - - public Node cleanup(Node node) { - if (node == null) - return node; - IDOMModel model = ((IDOMNode) node).getModel(); - if (model == null) - return node; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return node; - - String content = getCSSContent(node); - if (content == null) - return node; - - int offset = ((IDOMNode) node).getStartOffset(); - int length = ((IDOMNode) node).getEndOffset() - offset; - replaceSource(model, this, offset, length, content); - return (IDOMNode) model.getIndexedRegion(offset); - } - - /** - */ - private String getCSSContent(Node text) { - ICSSModel model = getCSSModel(text); - if (model == null) - return null; - ICSSNode document = model.getDocument(); - if (document == null) - return null; - INodeNotifier notifier = (INodeNotifier) document; - CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class); - // try another way to get formatter - if (formatter == null) - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier); - if (formatter == null) - return null; - StringBuffer buffer = formatter.cleanup(document); - if (buffer == null) - return null; - return buffer.toString(); - } - - /** - */ - private ICSSModel getCSSModel(Node text) { - if (text == null) - return null; - INodeNotifier notifier = (INodeNotifier) text.getParentNode(); - if (notifier == null) - return null; - INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleSheetAdapter)) - return null; - IStyleSheetAdapter styleAdapter = (IStyleSheetAdapter) adapter; - return styleAdapter.getModel(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java deleted file mode 100644 index 11af74b52d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java +++ /dev/null @@ -1,695 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - - - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.text.edits.InsertEdit; -import org.eclipse.text.edits.MultiTextEdit; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.html.core.internal.Logger; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.utils.StringUtils; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -// nakamori_TODO: check and remove CSS formatting - -public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler { - - /** Non-NLS strings */ - protected static final String START_TAG_OPEN = "<"; //$NON-NLS-1$ - protected static final String END_TAG_OPEN = "</"; //$NON-NLS-1$ - protected static final String TAG_CLOSE = ">"; //$NON-NLS-1$ - protected static final String EMPTY_TAG_CLOSE = "/>"; //$NON-NLS-1$ - protected static final String SINGLE_QUOTES = "''"; //$NON-NLS-1$ - protected static final String DOUBLE_QUOTES = "\"\""; //$NON-NLS-1$ - protected static final char SINGLE_QUOTE = '\''; //$NON-NLS-1$ - protected static final char DOUBLE_QUOTE = '\"'; //$NON-NLS-1$ - - public Node cleanup(Node node) { - IDOMNode renamedNode = (IDOMNode) cleanupChildren(node); - - // call quoteAttrValue() first so it will close any unclosed attr - // quoteAttrValue() will return the new start tag if there is a - // structure change - renamedNode = quoteAttrValue(renamedNode); - - // insert tag close if missing - // if node is not comment tag - // and not implicit tag - if (!((IDOMElement) renamedNode).isCommentTag() && (renamedNode.getStartStructuredDocumentRegion() != null)) { - IDOMModel structuredModel = renamedNode.getModel(); - - // save start offset before insertTagClose() - // or else renamedNode.getStartOffset() will be zero if - // renamedNode replaced by insertTagClose() - int startTagStartOffset = renamedNode.getStartOffset(); - - // for start tag - IStructuredDocumentRegion startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion(); - insertTagClose(structuredModel, startTagStructuredDocumentRegion); - - // update renamedNode and startTagStructuredDocumentRegion after - // insertTagClose() - renamedNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); - startTagStructuredDocumentRegion = renamedNode.getStartStructuredDocumentRegion(); - - // for end tag - IStructuredDocumentRegion endTagStructuredDocumentRegion = renamedNode.getEndStructuredDocumentRegion(); - if (endTagStructuredDocumentRegion != startTagStructuredDocumentRegion) - insertTagClose(structuredModel, endTagStructuredDocumentRegion); - } - - // call insertMissingTags() next, it will generate implicit tags if - // there are any - // insertMissingTags() will return the new missing start tag if one is - // missing - // applyTagNameCase() will return the renamed node. - // The renamed/new node will be saved and returned to caller when all - // cleanup is done. - renamedNode = insertMissingTags(renamedNode); - renamedNode = insertRequiredAttrs(renamedNode); - renamedNode = applyTagNameCase(renamedNode); - applyAttrNameCase(renamedNode); - cleanupCSSAttrValue(renamedNode); - - return renamedNode; - } - - /** - * Checks if cleanup should modify case. Returns true case should be - * preserved, false otherwise. - * - * @param element - * @return true if element is case sensitive, false otherwise - */ - private boolean shouldPreserveCase(IDOMElement element) { - // case option can be applied to no namespace tags - return !element.isGlobalTag(); - /* - * ModelQueryAdapter mqadapter = (ModelQueryAdapter) - * element.getAdapterFor(ModelQueryAdapter.class); ModelQuery mq = - * null; CMNode nodedecl = null; if (mqadapter != null) mq = - * mqadapter.getModelQuery(); if (mq != null) nodedecl = - * mq.getCMNode(node); // if a Node isn't recognized as HTML or is and - * cares about case, do not alter it // if (nodedecl == null || - * (nodedecl instanceof HTMLCMNode && ((HTMLCMNode) - * nodedecl).shouldIgnoreCase())) if (! - * nodedecl.supports(HTMLCMProperties.SHOULD_IGNORE_CASE)) return - * false; return - * ((Boolean)cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue(); - */ - } - - /** - * Checks if cleanup should force modifying element name to all lowercase. - * - * @param element - * @return true if cleanup should lowercase element name, false otherwise - */ - private boolean isXMLTag(IDOMElement element) { - return element.isXMLTag(); - } - - protected void applyAttrNameCase(IDOMNode node) { - IDOMElement element = (IDOMElement) node; - if (element.isCommentTag()) - return; // do nothing - - int attrNameCase = HTMLCorePreferenceNames.ASIS; - if (!shouldPreserveCase(element)) { - if (isXMLTag(element)) - attrNameCase = HTMLCorePreferenceNames.LOWER; - else - attrNameCase = getCleanupPreferences().getAttrNameCase(); - } - - NamedNodeMap attributes = node.getAttributes(); - int attributesLength = attributes.getLength(); - - for (int i = 0; i < attributesLength; i++) { - IDOMNode eachAttr = (IDOMNode) attributes.item(i); - String oldAttrName = eachAttr.getNodeName(); - String newAttrName = oldAttrName; - /* - * 254961 - all HTML tag names and attribute names should be in - * English even for HTML files in other languages like Japanese or - * Turkish. English locale should be used to convert between - * uppercase and lowercase (otherwise "link" would be converted to - * Turkish "I Overdot Capital"). - */ - if (attrNameCase == HTMLCorePreferenceNames.LOWER) - newAttrName = oldAttrName.toLowerCase(Locale.US); - else if (attrNameCase == HTMLCorePreferenceNames.UPPER) - newAttrName = oldAttrName.toUpperCase(Locale.US); - - if (newAttrName.compareTo(oldAttrName) != 0) { - int attrNameStartOffset = eachAttr.getStartOffset(); - int attrNameLength = oldAttrName.length(); - - IDOMModel structuredModel = node.getModel(); - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - replaceSource(structuredModel, structuredDocument, attrNameStartOffset, attrNameLength, newAttrName); - } - } - } - - protected IDOMNode applyTagNameCase(IDOMNode node) { - IDOMElement element = (IDOMElement) node; - if (element.isCommentTag()) - return node; // do nothing - - int tagNameCase = HTMLCorePreferenceNames.ASIS; - - if (!shouldPreserveCase(element)) { - if (isXMLTag(element)) - tagNameCase = HTMLCorePreferenceNames.LOWER; - else - tagNameCase = getCleanupPreferences().getTagNameCase(); - } - - String oldTagName = node.getNodeName(); - String newTagName = oldTagName; - IDOMNode newNode = node; - - /* - * 254961 - all HTML tag names and attribute names should be in - * English even for HTML files in other languages like Japanese or - * Turkish. English locale should be used to convert between uppercase - * and lowercase (otherwise "link" would be converted to Turkish "I - * Overdot Capital"). - */ - if (tagNameCase == HTMLCorePreferenceNames.LOWER) - newTagName = oldTagName.toLowerCase(Locale.US); - else if (tagNameCase == HTMLCorePreferenceNames.UPPER) - newTagName = oldTagName.toUpperCase(Locale.US); - - IDOMModel structuredModel = node.getModel(); - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - - IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion(); - if (startTagStructuredDocumentRegion != null) { - ITextRegionList regions = startTagStructuredDocumentRegion.getRegions(); - if (regions != null && regions.size() > 0) { - ITextRegion startTagNameRegion = regions.get(1); - int startTagNameStartOffset = startTagStructuredDocumentRegion.getStartOffset(startTagNameRegion); - int startTagNameLength = startTagStructuredDocumentRegion.getTextEndOffset(startTagNameRegion) - startTagNameStartOffset; - - replaceSource(structuredModel, structuredDocument, startTagNameStartOffset, startTagNameLength, newTagName); - newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagNameStartOffset); // save - // new - // node - } - } - - IStructuredDocumentRegion endTagStructuredDocumentRegion = node.getEndStructuredDocumentRegion(); - if (endTagStructuredDocumentRegion != null) { - ITextRegionList regions = endTagStructuredDocumentRegion.getRegions(); - if (regions != null && regions.size() > 0) { - ITextRegion endTagNameRegion = regions.get(1); - int endTagNameStartOffset = endTagStructuredDocumentRegion.getStartOffset(endTagNameRegion); - int endTagNameLength = endTagStructuredDocumentRegion.getTextEndOffset(endTagNameRegion) - endTagNameStartOffset; - - if (startTagStructuredDocumentRegion != endTagStructuredDocumentRegion) - replaceSource(structuredModel, structuredDocument, endTagNameStartOffset, endTagNameLength, newTagName); - } - } - - return newNode; - } - - protected Node cleanupChildren(Node node) { - Node parentNode = node; - - if (node != null) { - Node childNode = node.getFirstChild(); - HTMLCleanupHandlerFactory factory = HTMLCleanupHandlerFactory.getInstance(); - while (childNode != null) { - // cleanup this child node - IStructuredCleanupHandler cleanupHandler = factory.createHandler(childNode, getCleanupPreferences()); - childNode = cleanupHandler.cleanup(childNode); - - // get new parent node - parentNode = childNode.getParentNode(); - - // get next child node - childNode = childNode.getNextSibling(); - } - } - - return parentNode; - } - - /** - */ - protected void cleanupCSSAttrValue(IDOMNode node) { - if (node == null || node.getNodeType() != Node.ELEMENT_NODE) - return; - IDOMElement element = (IDOMElement) node; - if (!element.isGlobalTag()) - return; - - Attr attr = element.getAttributeNode("style"); //$NON-NLS-1$ - if (attr == null) - return; - String value = getCSSValue(attr); - if (value == null) - return; - String oldValue = ((IDOMNode) attr).getValueSource(); - if (oldValue != null && value.equals(oldValue)) - return; - attr.setValue(value); - } - - /** - */ - private ICSSModel getCSSModel(Attr attr) { - if (attr == null) - return null; - INodeNotifier notifier = (INodeNotifier) attr.getOwnerElement(); - if (notifier == null) - return null; - INodeAdapter adapter = notifier.getAdapterFor(IStyleDeclarationAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleDeclarationAdapter)) - return null; - IStyleDeclarationAdapter styleAdapter = (IStyleDeclarationAdapter) adapter; - return styleAdapter.getModel(); - } - - /** - */ - private String getCSSValue(Attr attr) { - ICSSModel model = getCSSModel(attr); - if (model == null) - return null; - ICSSNode document = model.getDocument(); - if (document == null) - return null; - INodeNotifier notifier = (INodeNotifier) document; - CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class); - // try another way to get formatter - if (formatter == null) - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier); - if (formatter == null) - return null; - StringBuffer buffer = formatter.cleanup(document); - if (buffer == null) - return null; - return buffer.toString(); - } - - private boolean isEmptyElement(IDOMElement element) { - Document document = element.getOwnerDocument(); - if (document == null) - // undefined tag, return default - return false; - - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery == null) - // undefined tag, return default - return false; - - CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element); - if (decl == null) - // undefined tag, return default - return false; - - return (decl.getContentType() == CMElementDeclaration.EMPTY); - } - - protected IDOMNode insertEndTag(IDOMNode node) { - IDOMElement element = (IDOMElement) node; - - int startTagStartOffset = node.getStartOffset(); - IDOMModel structuredModel = node.getModel(); - IDOMNode newNode = null; - - if (element.isCommentTag()) { - // do nothing - } - else if (isEmptyElement(element)) { - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion(); - ITextRegionList regions = startStructuredDocumentRegion.getRegions(); - ITextRegion lastRegion = regions.get(regions.size() - 1); - replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), lastRegion.getLength(), EMPTY_TAG_CLOSE); - - if (regions.size() > 1) { - ITextRegion regionBeforeTagClose = regions.get(regions.size() - 1 - 1); - - // insert a space separator before tag close if the previous - // region does not have extra spaces - if (regionBeforeTagClose.getTextLength() == regionBeforeTagClose.getLength()) - replaceSource(structuredModel, structuredDocument, startStructuredDocumentRegion.getStartOffset(lastRegion), 0, " "); //$NON-NLS-1$ - } - } - else { - String tagName = node.getNodeName(); - String endTag = END_TAG_OPEN.concat(tagName).concat(TAG_CLOSE); - - IDOMNode lastChild = (IDOMNode) node.getLastChild(); - int endTagStartOffset = 0; - if (lastChild != null) - // if this node has children, insert the end tag after the - // last child - endTagStartOffset = lastChild.getEndOffset(); - else - // if this node does not has children, insert the end tag - // after the start tag - endTagStartOffset = node.getEndOffset(); - - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - replaceSource(structuredModel, structuredDocument, endTagStartOffset, 0, endTag); - } - - newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save - // new - // node - - return newNode; - } - - protected IDOMNode insertMissingTags(IDOMNode node) { - boolean insertMissingTags = getCleanupPreferences().getInsertMissingTags(); - IDOMNode newNode = node; - - if (insertMissingTags) { - IStructuredDocumentRegion startTagStructuredDocumentRegion = node.getStartStructuredDocumentRegion(); - if (startTagStructuredDocumentRegion == null) { - // implicit start tag; generate tag for it - newNode = insertStartTag(node); - startTagStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion(); - } - - IStructuredDocumentRegion endTagStructuredDocumentRegion = newNode.getEndStructuredDocumentRegion(); - - ITextRegionList regionList = startTagStructuredDocumentRegion.getRegions(); - if (startTagStructuredDocumentRegion != null && regionList != null && regionList.get(regionList.size() - 1).getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) { - - } - else { - if (startTagStructuredDocumentRegion == null) { - // start tag missing - if (isStartTagRequired(newNode)) - newNode = insertStartTag(newNode); - } - else if (endTagStructuredDocumentRegion == null) { - // end tag missing - if (isEndTagRequired(newNode)) - newNode = insertEndTag(newNode); - } - } - } - - return newNode; - } - - protected IDOMNode insertStartTag(IDOMNode node) { - IDOMElement element = (IDOMElement) node; - if (element.isCommentTag()) - return node; // do nothing - - IDOMNode newNode = null; - - String tagName = node.getNodeName(); - String startTag = START_TAG_OPEN.concat(tagName).concat(TAG_CLOSE); - int startTagStartOffset = node.getStartOffset(); - - IDOMModel structuredModel = node.getModel(); - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - replaceSource(structuredModel, structuredDocument, startTagStartOffset, 0, startTag); - newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save - // new - // node - - return newNode; - } - - protected void insertTagClose(IDOMModel structuredModel, IStructuredDocumentRegion flatNode) { - if ((flatNode != null) && (flatNode.getRegions() != null)) { - ITextRegionList regionList = flatNode.getRegions(); - ITextRegion lastRegion = regionList.get(regionList.size() - 1); - if (lastRegion != null) { - String regionType = lastRegion.getType(); - if ((regionType != DOMRegionContext.XML_EMPTY_TAG_CLOSE) && (regionType != DOMRegionContext.XML_TAG_CLOSE)) { - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - - // insert ">" after lastRegion of flatNode - // as in "<a</a>" if flatNode is for start tag, or in - // "<a></a" if flatNode is for end tag - replaceSource(structuredModel, structuredDocument, flatNode.getTextEndOffset(lastRegion), 0, ">"); //$NON-NLS-1$ - } - } - } - } - - protected boolean isEndTagRequired(IDOMNode node) { - if (node == null) - return false; - return node.isContainer(); - } - - /** - * The end tags of HTML EMPTY content type, such as IMG, and HTML - * undefined tags are parsed separately from the start tags. So inserting - * the missing start tag is useless and even harmful. - */ - protected boolean isStartTagRequired(IDOMNode node) { - if (node == null) - return false; - return node.isContainer(); - } - - protected boolean isXMLType(IDOMModel structuredModel) { - boolean result = false; - - if (structuredModel != null && structuredModel != null) { - IDOMDocument document = structuredModel.getDocument(); - - if (document != null) - result = document.isXMLType(); - } - - return result; - } - - protected IDOMNode quoteAttrValue(IDOMNode node) { - IDOMElement element = (IDOMElement) node; - if (element.isCommentTag()) - return node; // do nothing - - boolean quoteAttrValues = getCleanupPreferences().getQuoteAttrValues(); - IDOMNode newNode = node; - - if (quoteAttrValues) { - NamedNodeMap attributes = newNode.getAttributes(); - int attributesLength = attributes.getLength(); - ISourceGenerator generator = node.getModel().getGenerator(); - - for (int i = 0; i < attributesLength; i++) { - attributes = newNode.getAttributes(); - attributesLength = attributes.getLength(); - IDOMAttr eachAttr = (IDOMAttr) attributes.item(i); - // ITextRegion oldAttrValueRegion = eachAttr.getValueRegion(); - String oldAttrValue = eachAttr.getValueRegionText(); - if (oldAttrValue == null) { - IDOMModel structuredModel = node.getModel(); - if (isXMLType(structuredModel)) { - // TODO: Kit, please check. Is there any way to not - // rely on getting regions from attributes? - String newAttrValue = "=\"" + eachAttr.getNameRegionText() + "\""; //$NON-NLS-1$ //$NON-NLS-2$ - - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - replaceSource(structuredModel, structuredDocument, eachAttr.getNameRegionEndOffset(), 0, newAttrValue); - newNode = (IDOMNode) structuredModel.getIndexedRegion(node.getStartOffset()); // save - // new - // node - } - } - else { - - char quote = StringUtils.isQuoted(oldAttrValue) ? oldAttrValue.charAt(0) : DOUBLE_QUOTE; - String newAttrValue = generator.generateAttrValue(eachAttr, quote); - - // There is a problem in - // StructuredDocumentRegionUtil.getAttrValue(ITextRegion) - // when the region is instanceof ContextRegion. - // Workaround for now... - if (oldAttrValue.length() == 1) { - char firstChar = oldAttrValue.charAt(0); - if (firstChar == SINGLE_QUOTE) - newAttrValue = SINGLE_QUOTES; - else if (firstChar == DOUBLE_QUOTE) - newAttrValue = DOUBLE_QUOTES; - } - - if (newAttrValue != null) { - if (newAttrValue.compareTo(oldAttrValue) != 0) { - int attrValueStartOffset = eachAttr.getValueRegionStartOffset(); - int attrValueLength = oldAttrValue.length(); - int startTagStartOffset = node.getStartOffset(); - - IDOMModel structuredModel = node.getModel(); - IStructuredDocument structuredDocument = structuredModel.getStructuredDocument(); - replaceSource(structuredModel, structuredDocument, attrValueStartOffset, attrValueLength, newAttrValue); - newNode = (IDOMNode) structuredModel.getIndexedRegion(startTagStartOffset); // save - // new - // node - } - } - } - } - } - - return newNode; - } - - private IDOMNode insertRequiredAttrs(IDOMNode node) { - boolean insertRequiredAttrs = getCleanupPreferences().getInsertRequiredAttrs(); - IDOMNode newNode = node; - - if (insertRequiredAttrs) { - List requiredAttrs = getRequiredAttrs(newNode); - if (requiredAttrs.size() > 0) { - NamedNodeMap currentAttrs = node.getAttributes(); - List insertAttrs = new ArrayList(); - if (currentAttrs.getLength() == 0) - insertAttrs.addAll(requiredAttrs); - else { - for (int i = 0; i < requiredAttrs.size(); i++) { - String requiredAttrName = ((CMAttributeDeclaration) requiredAttrs.get(i)).getAttrName(); - boolean found = false; - for (int j = 0; j < currentAttrs.getLength(); j++) { - String currentAttrName = currentAttrs.item(j).getNodeName(); - if (requiredAttrName.compareToIgnoreCase(currentAttrName) == 0) { - found = true; - break; - } - } - if (!found) - insertAttrs.add(requiredAttrs.get(i)); - } - } - if (insertAttrs.size() > 0) { - IStructuredDocumentRegion startStructuredDocumentRegion = newNode.getStartStructuredDocumentRegion(); - int index = startStructuredDocumentRegion.getEndOffset(); - ITextRegion lastRegion = startStructuredDocumentRegion.getLastRegion(); - if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE) { - index--; - lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1); - } - else if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) { - index = index - 2; - lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1); - } - MultiTextEdit multiTextEdit = new MultiTextEdit(); - try { - for (int i = insertAttrs.size() - 1; i >= 0; i--) { - CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) insertAttrs.get(i); - String requiredAttributeName = attrDecl.getAttrName(); - String defaultValue = attrDecl.getDefaultValue(); - if (defaultValue == null) - defaultValue = ""; //$NON-NLS-1$ - String nameAndDefaultValue = " "; //$NON-NLS-1$ - if (i == 0 && lastRegion.getLength() > lastRegion.getTextLength()) - nameAndDefaultValue = ""; //$NON-NLS-1$ - nameAndDefaultValue += requiredAttributeName + "=\"" + defaultValue + "\""; //$NON-NLS-1$ //$NON-NLS-2$ - multiTextEdit.addChild(new InsertEdit(index, nameAndDefaultValue)); - // BUG3381: MultiTextEdit applies all child - // TextEdit's basing on offsets - // in the document before the first TextEdit, not - // after each - // child TextEdit. Therefore, do not need to - // advance the index. - // index += nameAndDefaultValue.length(); - } - multiTextEdit.apply(newNode.getStructuredDocument()); - } - catch (BadLocationException e) { - // log or now, unless we find reason not to - Logger.log(Logger.INFO, e.getMessage()); - } - } - } - } - - return newNode; - } - - - protected ModelQuery getModelQuery(Node node) { - ModelQuery result = null; - if (node.getNodeType() == Node.DOCUMENT_NODE) { - result = ModelQueryUtil.getModelQuery((Document) node); - } - else { - result = ModelQueryUtil.getModelQuery(node.getOwnerDocument()); - } - return result; - } - - protected List getRequiredAttrs(Node node) { - List result = new ArrayList(); - - ModelQuery modelQuery = getModelQuery(node); - if (modelQuery != null) { - CMElementDeclaration elementDecl = modelQuery.getCMElementDeclaration((Element) node); - if (elementDecl != null) { - CMNamedNodeMap attrMap = elementDecl.getAttributes(); - Iterator it = attrMap.iterator(); - CMAttributeDeclaration attr = null; - while (it.hasNext()) { - attr = (CMAttributeDeclaration) it.next(); - if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) { - result.add(attr); - } - } - } - } - - return result; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java deleted file mode 100644 index 256079060d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - - - -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Node; - -// nakamori_TODO: check and remove CSS formatting - -class HTMLCleanupHandlerFactory { - - - - private static HTMLCleanupHandlerFactory fInstance = null; - - static synchronized HTMLCleanupHandlerFactory getInstance() { - if (fInstance == null) { - fInstance = new HTMLCleanupHandlerFactory(); - } - return fInstance; - } - - private HTMLCleanupHandlerFactory() { - super(); - } - - IStructuredCleanupHandler createHandler(Node node, IStructuredCleanupPreferences cleanupPreferences) { - short nodeType = node.getNodeType(); - IStructuredCleanupHandler handler = null; - switch (nodeType) { - case Node.ELEMENT_NODE : { - if (isJSPTag(node)) - handler = new JSPElementNodeCleanupHandler(); - else - handler = new ElementNodeCleanupHandler(); - break; - } - case Node.TEXT_NODE : { - if (isParentStyleTag(node)) - handler = new CSSTextNodeCleanupHandler(); - else - handler = new NodeCleanupHandler(); - break; - } - default : { - handler = new NodeCleanupHandler(); - } - } - - handler.setCleanupPreferences(cleanupPreferences); - - return handler; - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on "nestedContext". - */ - - private boolean isJSPTag(Node node) { - - final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$ - // final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$ - - // final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$ - // final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$ - - final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$ - final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$ - final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$ - final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$ - - final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$ - final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$ - - // final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$ - - final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$ - - boolean result = false; - - if (node instanceof IDOMNode) { - IStructuredDocumentRegion flatNode = ((IDOMNode) node).getFirstStructuredDocumentRegion(); - // in some cases, the nodes exists, but hasn't been associated - // with - // a flatnode yet (the screen updates can be initiated on a - // different thread, - // so the request for a flatnode can come in before the node is - // fully formed. - // if the flatnode is null, we'll just allow the defaults to - // apply. - if (flatNode != null) { - String flatNodeType = flatNode.getType(); - // should not be null, but just to be sure - if (flatNodeType != null) { - if ((flatNodeType.equals(JSP_CONTENT)) || (flatNodeType.equals(JSP_EXPRESSION_OPEN)) || (flatNodeType.equals(JSP_SCRIPTLET_OPEN)) || (flatNodeType.equals(JSP_DECLARATION_OPEN)) || (flatNodeType.equals(JSP_DIRECTIVE_CLOSE)) || (flatNodeType.equals(JSP_DIRECTIVE_NAME)) || (flatNodeType.equals(JSP_DIRECTIVE_OPEN)) || (flatNodeType.equals(JSP_CLOSE))) { - result = true; - } - } - } - } - - return result; - } - - private boolean isParentStyleTag(Node node) { - if (node == null) - return false; - if (node.getNodeType() != Node.TEXT_NODE) - return false; - if (!(node instanceof IDOMNode)) - return false; - IStructuredDocumentRegion flatNode = ((IDOMNode) node).getFirstStructuredDocumentRegion(); - if (flatNode == null) - return false; - if (flatNode.getType() != DOMRegionContext.BLOCK_TEXT) - return false; - - // check if the parent is STYLE element - Node parent = node.getParentNode(); - if (parent == null) - return false; - if (parent.getNodeType() != Node.ELEMENT_NODE) - return false; - String name = parent.getNodeName(); - if (name == null) - return false; - if (!name.equalsIgnoreCase("STYLE"))//$NON-NLS-1$ - return false; - return true; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java deleted file mode 100644 index 94b29291d2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML; -import org.eclipse.wst.sse.core.internal.cleanup.AbstractStructuredCleanupProcessor; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.w3c.dom.Node; - -public class HTMLCleanupProcessorImpl extends AbstractStructuredCleanupProcessor { - private IStructuredCleanupPreferences fCleanupPreferences = null; - - protected String getContentType() { - return ContentTypeIdForHTML.ContentTypeID_HTML; - } - - protected IStructuredCleanupHandler getCleanupHandler(Node node) { - return HTMLCleanupHandlerFactory.getInstance().createHandler(node, getCleanupPreferences()); - } - - public IStructuredCleanupPreferences getCleanupPreferences() { - if (fCleanupPreferences == null) { - fCleanupPreferences = new StructuredCleanupPreferences(); - - Preferences preferences = getModelPreferences(); - if (preferences != null) { - fCleanupPreferences.setTagNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE)); - fCleanupPreferences.setAttrNameCase(preferences.getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE)); - fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); - fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS)); - fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES)); - fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE)); - fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES)); - fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE)); - } - } - - return fCleanupPreferences; - } - - protected IStructuredFormatProcessor getFormatProcessor() { - return new HTMLFormatProcessorImpl(); - } - - protected Preferences getModelPreferences() { - return HTMLCorePlugin.getDefault().getPluginPreferences(); - } - - protected void refreshCleanupPreferences() { - fCleanupPreferences = null; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java deleted file mode 100644 index fcc8a419dc..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - - - -import org.w3c.dom.Node; - -public class JSPElementNodeCleanupHandler extends AbstractNodeCleanupHandler { - - public Node cleanup(Node node) { - return node; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java deleted file mode 100644 index c31f34ed05..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.cleanup; - - - -import org.w3c.dom.Node; - -public class NodeCleanupHandler extends AbstractNodeCleanupHandler { - - public Node cleanup(Node node) { - return node; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java deleted file mode 100644 index 3a528bcb07..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.commentelement.handlers; - - - -import org.eclipse.wst.xml.core.internal.commentelement.CommentElementHandler; -import org.eclipse.wst.xml.core.internal.commentelement.util.CommentElementFactory; -import org.eclipse.wst.xml.core.internal.commentelement.util.TagScanner; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - -public class CommentElementHandlerForSSI implements CommentElementHandler { - - public Element createElement(Document document, String data, boolean isJSPTag) { - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery == null) { - return null; - } - CMDocument cm = modelQuery.getCorrespondingCMDocument(document); - if (cm == null) { - return null; - } - CMNamedNodeMap map = cm.getElements(); - if (map == null) { - return null; - } - - TagScanner scanner = new TagScanner(data, 1); - String name = scanner.nextName(); - if (name == null) { - return null; - } - StringBuffer buffer = new StringBuffer(name.length() + 4); - buffer.append(SSI_PREFIX); - buffer.append(':'); - buffer.append(name); - String tagName = buffer.toString(); - // check if valid (defined) SSI tag or not - if (map.getNamedItem(tagName) == null) { - return null; - } - - CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this); - Element element = factory.create(tagName, CommentElementFactory.IS_START); - - // set attributes - String attrName = scanner.nextName(); - while (attrName != null) { - String attrValue = scanner.nextValue(); - Attr attr = document.createAttribute(attrName); - if (attr != null) { - if (attrValue != null) - attr.setValue(attrValue); - element.setAttributeNode(attr); - } - attrName = scanner.nextName(); - } - return element; - } - - public String generateStartTagContent(IDOMElement element) { - ISourceGenerator generator = element.getModel().getGenerator(); - StringBuffer buffer = new StringBuffer(); - - buffer.append('#'); - buffer.append(element.getLocalName()); - - NamedNodeMap attributes = element.getAttributes(); - int length = attributes.getLength(); - for (int i = 0; i < length; i++) { - Attr attr = (Attr) attributes.item(i); - if (attr == null) { - continue; - } - buffer.append(' '); - String attrName = generator.generateAttrName(attr); - if (attrName != null) { - buffer.append(attrName); - } - String attrValue = generator.generateAttrValue(attr); - if (attrValue != null) { - // attr name only for HTML boolean and JSP - buffer.append('='); - buffer.append(attrValue); - } - } - - return buffer.toString(); - } - - public String generateEndTagContent(IDOMElement element) { - return null; // always empty - } - - public boolean isEmpty() { - return true; - } - - public boolean isCommentElement(IDOMElement element) { - if (element == null) { - return false; - } - Document document = element.getOwnerDocument(); - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery == null) { - return false; - } - CMDocument cm = modelQuery.getCorrespondingCMDocument(document); - if (cm == null) { - return false; - } - CMNamedNodeMap map = cm.getElements(); - if (map == null) { - return false; - } - String prefix = element.getPrefix(); - if (prefix == null || !prefix.equals(SSI_PREFIX)) { - return false; - } - String tagName = element.getTagName(); - if (tagName.length() <= 4) { - return false; - } - if (map.getNamedItem(tagName) == null) { - return false; - } - else { - return true; - } - } - - private static final String SSI_PREFIX = "ssi";//$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java deleted file mode 100644 index ab2a71c236..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java +++ /dev/null @@ -1,1285 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for attribute declarations. - */ -final class AttributeCollection extends CMNamedNodeMapImpl implements HTML40Namespace { - - /** bodycolors. */ - private static final String[] BODYCOLORS = {ATTR_NAME_BGCOLOR, ATTR_NAME_TEXT, ATTR_NAME_LINK, ATTR_NAME_VLINK, HTML40Namespace.ATTR_NAME_ALINK}; - /** coreattrs. */ - private static final String[] CORE = {ATTR_NAME_ID, ATTR_NAME_CLASS, ATTR_NAME_STYLE, ATTR_NAME_TITLE}; - /** events. */ - private static final String[] EVENTS = {ATTR_NAME_ONCLICK, ATTR_NAME_ONDBLCLICK, ATTR_NAME_ONMOUSEDOWN, ATTR_NAME_ONMOUSEUP, ATTR_NAME_ONMOUSEOVER, ATTR_NAME_ONMOUSEMOVE, ATTR_NAME_ONMOUSEOUT, ATTR_NAME_ONKEYPRESS, ATTR_NAME_ONKEYDOWN, ATTR_NAME_ONKEYUP, ATTR_NAME_ONHELP}; - /** i18n. lang, dir */ - private static final String[] I18N = {ATTR_NAME_LANG, ATTR_NAME_DIR}; - /** cellhaligh. */ - private static final String[] CELLHALIGN = {ATTR_NAME_CHAR, ATTR_NAME_CHAROFF}; - - /** - * constructor. - */ - public AttributeCollection() { - super(); - } - - /** - * Create an attribute declaration. - * - * @param attrName - * java.lang.String - */ - private HTMLAttrDeclImpl create(String attrName) { - HTMLAttrDeclImpl attr = null; - HTMLCMDataTypeImpl atype = null; - - if (attrName.equalsIgnoreCase(ATTR_NAME_ABBR)) { - // (abbr %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ABBR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT)) { - // (accept %ContentTypes; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCEPT_CHARSET)) { - // (accept-charset %Charsets;; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSETS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCEPT_CHARSET, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ACTION)) { - // (action %URI #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ACTION, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ARCHIVE)) { - // (archive CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ARCHIVE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ACCESSKEY)) { - // (accesskey %Character; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ACCESSKEY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ALINK)) { - // (alink %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ALINK, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ALT)) { - // (alt %Text; #REQUIRED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSTART)) { - // (autostart (true|false) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSTART, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOPLAY)) { - // (autoplay (true|false) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOPLAY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_AUTOSIZE)) { - // (autosize (true|false) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_AUTOSIZE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_AXIS)) { - // (axis CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_AXIS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BACKGROUND)) { - // (background %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BACKGROUND, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BEHAVIOR)) { - // (behavior (scroll|slide|alternate) scroll) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_SCROLL, ATTR_VALUE_SLIDE, ATTR_VALUE_ALTERNATE}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_SCROLL); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BEHAVIOR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BGCOLOR)) { - // (bgcolor %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BGCOLOR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDER)) { - // (border %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDER, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLSPACING)) { - // (cellspacing %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLSPACING, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CELLPADDING)) { - // (cellpadding %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CELLPADDING, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CGI)) { - // (cgi %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CGI, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAR)) { - // (char %Character; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CHAROFF)) { - // (charoff %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CHAROFF, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CHARSET)) { - // (charset %Charset; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARSET); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CHARSET, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CITE)) { - // (cite %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CITE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASS)) { - // (class CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CLASSID)) { - // (classid %URI #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CLASSID, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CMD)) { - // (cmd CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CMD, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CHECKED)) { - // (checked (checked) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_CHECKED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CHECKED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CLEAR)) { - // (clear (left | all | right | none) none) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_ALL, ATTR_VALUE_RIGHT, ATTR_VALUE_NONE}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_NONE); - - attr = new HTMLAttrDeclImpl(ATTR_NAME_CLEAR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CODE)) { - // (code CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CODE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CODEBASE)) { - // (codebase %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CODEBASE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CODETYPE)) { - // (codetype %CotentType; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CODETYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COLOR)) { - // (color %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COLOR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COMPACT)) { - // (compact (compact) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_COMPACT}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COMPACT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COLS)) { - // (cols NUMBER #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COLS, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COLSPAN)) { - // (colspan NUMBER 1) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COLSPAN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTENT)) { - // (content CDATA #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTENT, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CONTROLLER)) { - // (controller (true|false) true) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CONTROLLER, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COORDS)) { - // (coords %Coords; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COORDS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COORDS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DATA)) { - // (data %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DATA, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DATETIME)) { - // (datetime %Datetime; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.DATETIME); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DATETIME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DATAPAGESIZE)) { - // (datapagesize CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DATAPAGESIZE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DECLARE)) { - // (declare (declare) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_DECLARE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DECLARE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DEFER)) { - // (defer (defer) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_DEFER}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DEFER, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DIR)) { - // (dir (ltr|rtl) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_LTR, ATTR_VALUE_RTL}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DIR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTION)) { - // (direction (left|right|up|down) left) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT, ATTR_VALUE_UP, ATTR_VALUE_DOWN}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTION, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DIRECTKEY)) { - // (directkey %Character; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CHARACTER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DIRECTKEY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_DISABLED)) { - // (disabled (disabled) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // boolean attribute must have the same value as its name. - String[] values = {ATTR_NAME_DISABLED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_DISABLED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ENCTYPE)) { - // (enctype %ContentType; "application/x-www-form-urlencoded") - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_WWW_FORM_URLENCODED); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ENCTYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ERRMSG)) { - // (errmsg CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ERRMSG, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_EVENT)) { - // (event CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_EVENT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FACE)) { - // (face CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FACE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FILE)) { - // (file %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FILE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FOR)) { - // (for %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FOR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAME)) { - // (frame %TFrame; #IMPLIED) - // %TFrame; is - // (void|above|below|hsides|lhs|rhs|vsides|box|border). - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_VOID, ATTR_VALUE_ABOVE, ATTR_VALUE_BELOW, ATTR_VALUE_HSIDES, ATTR_VALUE_LHS, ATTR_VALUE_RHS, ATTR_VALUE_VSIDES, ATTR_VALUE_BOX, ATTR_VALUE_BORDER}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMEBORDER)) { - // (frameborder (1|0) 1) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_1, ATTR_VALUE_0}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL); - - // <<D215684 - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_FRAMESPACING)) { - // (framespacing CDATA; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_FRAMESPACING, atype, CMAttributeDeclaration.OPTIONAL); - // D215684 - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HEADERS)) { - // (HEADERS IDREFS; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.IDREFS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HEADERS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HEIGHT)) { - // (height %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HIDDEN)) { - // (hidden CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HIDDEN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HREF)) { - // (href %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HREF, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HREFLANG)) { - // (hreflang %LanguageCode; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HREFLANG, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HSPACE)) { - // (hspace %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HTTP_EQUIV)) { - // (http-equiv NAME #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HTTP_EQUIV, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ID)) { - // (id ID #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ID); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ID, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ISMAP)) { - // (ismap (ismap) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_ISMAP}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ISMAP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ISTYLE)) { - // (istyle CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ISTYLE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LABEL)) { - // (label %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LABEL, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LANG)) { - // (lang %LanguageCode; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LANGUAGE_CODE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LANG, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LANGUAGE)) { - // (language %CDATA; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LANGUAGE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LINK)) { - // (link %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LINK, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LONGDESC)) { - // (longdesc %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LONGDESC, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LOOP)) { - // (loop CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LOOP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MACRO)) { - // (macro CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MACRO, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MAPFILE)) { - // (mapfile %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MAPFILE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINWIDTH)) { - // (marginwidth %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINWIDTH, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MARGINHEIGHT)) { - // (marginheight %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MARGINHEIGHT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MAXLENGTH)) { - // (maxlength NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MAXLENGTH, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MAYSCRIPT)) { - // (mayscript (mayscript) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_MAYSCRIPT}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MAYSCRIPT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MEDIA)) { - // (media %MediaDesc; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MEDIA_DESC); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MEDIA, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_METHOD)) { - // (method (GET|POST) GET) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_GET, ATTR_VALUE_POST}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_GET); - attr = new HTMLAttrDeclImpl(ATTR_NAME_METHOD, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MULTIPLE)) { - // (multiple (multiple) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_MULTIPLE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MULTIPLE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NAME)) { - // (name CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NOHREF)) { - // (nohref (nohref) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_NOHREF}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NOHREF, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NORESIZE)) { - // (noresize (noresize) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_NORESIZE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NORESIZE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NOSHADE)) { - // (noshade (noshade) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_NOSHADE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NOSHADE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NOWRAP)) { - // (nowrap (nowrap) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_NOWRAP}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NOWRAP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_OBJECT)) { - // (object CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_OBJECT}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_OBJECT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONBLUR)) { - // (onblur %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONBLUR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCLICK)) { - // (onclick %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCLICK, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCHANGE)) { - // (onchange %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCHANGE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDBLCLICK)) { - // (ondblclick %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDBLCLICK, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFOCUS)) { - // (onfocus %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFOCUS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONHELP)) { - // (onhelp %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONHELP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYPRESS)) { - // (onkeypress %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYPRESS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYDOWN)) { - // (onkeydown %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYDOWN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONKEYUP)) { - // (onkyeup %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONKEYUP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOAD)) { - // (onload %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOAD, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEDOWN)) { - // (onmousedown %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEDOWN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEUP)) { - // (onmouseup %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEUP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOVER)) { - // (onmouseover %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOVER, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEMOVE)) { - // (onmousemove %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEMOVE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEOUT)) { - // (onmouseout %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEOUT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONRESET)) { - // (onreset %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONRESET, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSELECT)) { - // (onselect %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSELECT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSUBMIT)) { - // (onsubmit %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSUBMIT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ONUNLOAD)) { - // (onunload %Script; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ONUNLOAD, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_PALETTE)) { - // (palette CDATA; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_PALETTE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_PANEL)) { - // (panel CDATA; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_PANEL, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_PLAYCOUNT)) { - // (playcount NUMBER; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_PLAYCOUNT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_PROFILE)) { - // (profile %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_PROFILE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_PROMPT)) { - // (prompt %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_PROMPT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_READONLY)) { - // (readonly (readonly) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_READONLY}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_READONLY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_REPEAT)) { - // (repeat CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_REPEAT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_REL)) { - // (rel %LinkTypes; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES); - attr = new HTMLAttrDeclImpl(ATTR_NAME_REL, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_REV)) { - // (rev %LinkTypes; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LINK_TYPES); - attr = new HTMLAttrDeclImpl(ATTR_NAME_REV, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWS)) { - // (rows NUMBER #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWS, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWSPAN)) { - // (rowspan NUMBER 1) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWSPAN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_RULES)) { - // (rules %TRules; #IMPLIED) - // %TRules; is (none | groups | rows | cols | all). - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_NONE, ATTR_VALUE_GROUPS, ATTR_VALUE_ROWS, ATTR_VALUE_COLS, ATTR_VALUE_ALL}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_RULES, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCALE)) { - // (scale CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCALE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCHEME)) { - // (scheme CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCHEME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SELECTED)) { - // (selected (selected) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_SELECTED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SELECTED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCOPE)) { - // (SCOPE %Scope; #IMPLIED) - // %Scope; is (row|col|rowgroup|colgroup) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_ROW, ATTR_VALUE_COL, ATTR_VALUE_ROWGROUP, ATTR_VALUE_COLGROUP}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCOPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLAMOUNT)) { - // (scrollamount NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLAMOUNT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLDELAY)) { - // (scrolldelay NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLDELAY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SCROLLING)) { - // (scrolling (yes|no|auto) auto) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_YES, ATTR_VALUE_NO, ATTR_VALUE_AUTO}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_AUTO); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SCROLLING, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SHAPE)) { - // (shape %Shape; rect): %Shape; is (rect|circle|poly|default). - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_RECT, ATTR_VALUE_CIRCLE, ATTR_VALUE_POLY, ATTR_VALUE_DEFAULT}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_RECT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SHAPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SHOWCONTROLS)) { - // (showcontrols (true|false) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SHOWCONTROLS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZE)) { - // (size %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZEFMT)) { - // (sizefmt CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZEFMT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SPAN)) { - // (span NUMBER 1) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_1); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SPAN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) { - // (src %URI; #IMPLIED) - // NOTE: "src" attributes are defined in several elements. - // The definition of IMG is different from others. - // So, it should be locally defined. - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_START)) { - // (start NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_START, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_STANDBY)) { - // (standby %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_STANDBY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_STYLE)) { - // (style %StyleSheet; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.STYLE_SHEET); - attr = new HTMLAttrDeclImpl(ATTR_NAME_STYLE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SUMMARY)) { - // (summary %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SUMMARY, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TABINDEX)) { - // (tabindex NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TABINDEX, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TARGET)) { - // (target %FrameTarget; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.FRAME_TARGET); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TARGET, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXT)) { - // (text %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TEXTFOCUS)) { - // (textfocus CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TEXTFOCUS, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TITLE)) { - // (title %Text; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TITLE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TIMEFMT)) { - // (timefmt CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TIMEFMT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TRUESPEED)) { - // (truespeed (truespeed) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_TRUESPEED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TRUESPEED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TYPE)) { - // (type %CotentType; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_USEMAP)) { - // (usemap %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_USEMAP, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VALIGN)) { - // (valign (top|middle|bottom|baseline) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_BASELINE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VALIGN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUE)) { - // (value CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUETYPE)) { - // (valuetype (DATA|REF|OBJECT) DATA) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_DATA, ATTR_VALUE_REF, ATTR_VALUE_OBJECT}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_DATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUETYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VAR)) { - // (var CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VAR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VERSION)) { - // (version CDATA #FIXED '%HTML.Version;) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_FIXED, ATTR_VALUE_VERSION_TRANSITIONAL); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VERSION, atype, CMAttributeDeclaration.FIXED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VIRTUAL)) { - // (virtual %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VIRTUAL, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VLINK)) { - // (vlink %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VLINK, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VOLUME)) { - // (volume CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VOLUME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_WIDTH)) { - // (width %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VSPACE)) { - // (vspace %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL); - - // <<D205514 - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TOPMARGIN)) { - // (topmargin, CDATA, #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TOPMARGIN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BOTTOMMARGIN)) { - // (bottommargin, CDATA, #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BOTTOMMARGIN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_LEFTMARGIN)) { - // (leftmargin, CDATA, #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_LEFTMARGIN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_RIGHTMARGIN)) { - // (rightmargin, CDATA, #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_RIGHTMARGIN, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDERCOLOR)) { - // (bordercolor, %Color; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.COLOR); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDERCOLOR, atype, CMAttributeDeclaration.OPTIONAL); - // D205514 - - } - else { - // unknown attribute; maybe error. - // should warn. - attr = null; - } - - return attr; - } - - /** - * Get align attribute which has %CAlign; as values.. At this time - * (4/19/2001), it is identical to %LAlign;. - * - */ - public static final HTMLAttrDeclImpl createAlignForCaption() { - // align (local) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values - String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Get align attribute which has %IAlign; as values.. - */ - public static final HTMLAttrDeclImpl createAlignForImage() { - // align (local) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values - String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Get align attribute which has %LAlign; as values.. - */ - public static final HTMLAttrDeclImpl createAlignForLegend() { - // align (local) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values - String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Create an attribute declaration for <code>align</code> in several - * elements, like <code>P</code>, <code>DIV</code>. The values are - * different from attributes those have the same name in other elements (<code>IMG</code> - * and <code>TABLE</code>). So, it can't treat as global attributes. - * <strong>NOTE: These attribute declaration has no owner CMDocument - * instance.</strong> - */ - public static final HTMLAttrDeclImpl createAlignForParagraph() { - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values: left|center|right|justify - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Get %attrs; declarations. %attrs; consists of %coreattrs;, %i18n, and - * %events;. - */ - public void getAttrs(CMNamedNodeMapImpl declarations) { - // %coreattrs; - Iterator names = Arrays.asList(CORE).iterator(); - getDeclarations(declarations, names); - // %i18n; - names = Arrays.asList(I18N).iterator(); - getDeclarations(declarations, names); - // %events; - names = Arrays.asList(EVENTS).iterator(); - getDeclarations(declarations, names); - } - - /** - * Get %bodycolors; declarations. - */ - public void getBodycolors(CMNamedNodeMapImpl declarations) { - Iterator names = Arrays.asList(BODYCOLORS).iterator(); - getDeclarations(declarations, names); - } - - /** - * Get %cellhalign; declarations. %cellhaligh; consists of: - (align - * (left|center|right|justify|char) #IMPLIED) - (char %Character; - * #IMPLIED) - (charoff %Length; #IMPLIED) - */ - public void getCellhalign(CMNamedNodeMapImpl declarations) { - // (align (left|center|right|justify|char) #IMPLIED) should be defined - // locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT, ATTR_VALUE_JUSTIFY, ATTR_VALUE_CHAR}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - declarations.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - - // the rest. - Iterator names = Arrays.asList(CELLHALIGN).iterator(); - getDeclarations(declarations, names); - } - - /** - * Get %cellvalign; declarations. %cellhaligh; is: - (valign - * (top|middle|bottom|baseline) #IMPLIED) - */ - public void getCellvalign(CMNamedNodeMapImpl declarations) { - HTMLAttributeDeclaration dec = getDeclaration(HTML40Namespace.ATTR_NAME_VALIGN); - if (dec != null) - declarations.putNamedItem(HTML40Namespace.ATTR_NAME_VALIGN, dec); - } - - /** - * Get %coreattrs; declarations. - */ - public void getCore(CMNamedNodeMapImpl declarations) { - Iterator names = Arrays.asList(CORE).iterator(); - getDeclarations(declarations, names); - } - - /** - * Get a global attribute declaration. - * - * @param attrName - * java.lang.String - */ - public HTMLAttributeDeclaration getDeclaration(String attrName) { - CMNode cmnode = getNamedItem(attrName); - if (cmnode != null) - return (HTMLAttributeDeclaration) cmnode; // already exists. - - HTMLAttrDeclImpl dec = create(attrName); - if (dec != null) - putNamedItem(attrName, dec); - - return dec; - } - - /** - * Get declarations which are specified by names. - * - * @param names - * java.util.Iterator - */ - public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) { - while (names.hasNext()) { - String attrName = (String) names.next(); - HTMLAttributeDeclaration dec = getDeclaration(attrName); - if (dec != null) - declarations.putNamedItem(attrName, dec); - } - } - - /** - * Get %events; declarations. - */ - public void getEvents(CMNamedNodeMapImpl declarations) { - Iterator names = Arrays.asList(EVENTS).iterator(); - getDeclarations(declarations, names); - } - - /** - * Get %i18n; declarations. - */ - public void getI18n(CMNamedNodeMapImpl declarations) { - Iterator names = Arrays.asList(I18N).iterator(); - getDeclarations(declarations, names); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java deleted file mode 100644 index 07973a51c3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; - - - -/** - * Implementation of CMContent for HTML CM. - */ -abstract class CMContentImpl extends CMNodeImpl implements CMContent { - - public static final int UNBOUNDED = -1; - /** -1: it's UNBOUNDED. */ - private int maxOccur = UNBOUNDED; - /** 0: it's OPTIONAL, 1, it's REQUIRED. */ - private int minOccur = 0; - - /** - * The primary consturctor. - * Use this one for usual cases.<br> - */ - public CMContentImpl(String name, int min, int max) { - super(name); - minOccur = min; - maxOccur = max; - } - - /** - * getMaxOccur method - * @return int - * - * If -1, it's UNBOUNDED. - */ - public int getMaxOccur() { - return maxOccur; - } - - /** - * getMinOccur method - * @return int - * - * If 0, it's OPTIONAL. - * If 1, it's REQUIRED. - */ - public int getMinOccur() { - return minOccur; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java deleted file mode 100644 index 0108c618cb..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; - -/** - */ -class CMGroupImpl extends CMContentImpl implements CMGroup { - - private int operator = CMGroup.SEQUENCE; - private CMNodeListImpl children = null; - - /** - * CMGroupImpl constructor comment. - */ - public CMGroupImpl(int op, int minOccur, int maxOccur) { - super(null, minOccur, maxOccur); - switch (op) { - case CMGroup.ALL : - case CMGroup.CHOICE : - case CMGroup.SEQUENCE : - operator = op; - break; - default : - // should warn. - break; - } - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - protected CMNode appendChild(CMNode child) { - if (child == null) - return null; - if (children == null) - children = new CMNodeListImpl(); - return children.appendNode(child); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList - */ - public CMNodeList getChildNodes() { - return children; - } - - /** - * getNodeType method - * @return int - * - * Returns one of : - * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.GROUP; - } - - /** - * getOperation method - * @return int - * - * Returns one of : - * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b). - */ - public int getOperator() { - return operator; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java deleted file mode 100644 index f8a5e601b8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Locale; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * An implementation of the CMNamedNodeMap interface. This class is intented - * to be used as a container of attribute declarations. If someone wants to - * use this class for other purpose, he must pay attention to the fact that - * this class is tolerant of the key name case. That is, this class does not - * distinguish "name", "NAME", and "Name" as a key name. - */ -class CMNamedNodeMapImpl implements CMNamedNodeMap { - - private Hashtable items = null; - - /** - */ - public CMNamedNodeMapImpl() { - super(); - items = new Hashtable(); - } - - /** - * getLength method - * - * @return int - */ - public int getLength() { - return items.size(); - } - - /** - * getNamedItem method - * - * @return CMNode <code>null</code> for unknown keys. - * @param name - * java.lang.String - */ - public CMNode getNamedItem(String name) { - String cookedName = makeCanonicalForm(name); - if (!items.containsKey(cookedName)) - return null; - return (CMNode) items.get(cookedName); - } - - /** - * item method - * - * @return CMNode - * @param index - * int - */ - public CMNode item(int index) { - Iterator iter = iterator(); - while (iter.hasNext()) { - CMNode node = (CMNode) iter.next(); - if (--index < 0) - return node; - } - return null; - } - - /** - * @return java.util.Iterator - */ - public Iterator iterator() { - return items.values().iterator(); - } - - /** - * @return java.lang.String - * @param rawForm - * java.lang.String - */ - private String makeCanonicalForm(String raw) { - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152 - // we are able to "cheat" here a little and use US Locale - // to get a good cononical form, since we are using this only - // for HTML and JSP standard tags. - // Long term, for similar needs with XML 1.1 (for example) - // we should use a class such as com.ibm.icu.text.Normalizer - return raw.toUpperCase(Locale.US); - } - - /** - * @param key - * java.lang.String - * @param item - * java.lang.String - */ - void putNamedItem(String name, CMNode item) { - String cookedName = makeCanonicalForm(name); - if (items.containsKey(cookedName)) - return; // already registered. - items.put(cookedName, item); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java deleted file mode 100644 index 6ef737a913..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * CMNamespace implementation. - */ -class CMNamespaceImpl extends CMNodeImpl implements CMNamespace { - - private java.lang.String prefix = null; - - /** - * CMNamespaceImpl constructor comment. - */ - public CMNamespaceImpl(String uri, String pfx) { - super(uri); - prefix = pfx; - } - - /** - * getNodeType method - * @return int - * - * Returns one of : - * - */ - public int getNodeType() { - return CMNode.NAME_SPACE; - } - - /** - * getPrefix method - * @return java.lang.String - */ - public String getPrefix() { - return prefix; - } - - /** - * getURI method - * @return java.lang.String - */ - public String getURI() { - return getNodeName(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java deleted file mode 100644 index 2f6eb44f7b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - - - -/** - */ -abstract class CMNodeImpl implements CMNode { - - private java.lang.String name = null; - - /** - * CMNodeImpl constructor comment. - */ - public CMNodeImpl(String nm) { - super(); - name = nm; - } - - /** - * getNodeName method - * @return java.lang.String - */ - public String getNodeName() { - return name; - } - - /** - * getProperty method - * @return java.lang.Object - * - * Returns the object property desciped by the propertyName - * - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) - return new Boolean(false); - return null; - } - - /** - * supports method - * @return boolean - * - * Returns true if the CMNode supports a specified property - * - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) - return true; - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java deleted file mode 100644 index 08bf21ab05..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; - -/** - * Analog of dom.NodeList for CM. - * So, the implementation is very similar to - * NodeListImpl<br> - */ -class CMNodeListImpl implements CMNodeList { - - private java.util.Vector nodes = null; - - /** - * CMNodeListImpl constructor comment. - */ - public CMNodeListImpl() { - super(); - nodes = new java.util.Vector(); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - protected CMNode appendNode(CMNode node) { - nodes.addElement(node); - return node; - } - - /** - * getLength method - * @return int - */ - public int getLength() { - return nodes.size(); - } - - /** - * item method - * @return CMNode - * @param index int - */ - public CMNode item(int index) { - if (index < 0 || index >= nodes.size()) - return null; - return (CMNode) nodes.elementAt(index); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java deleted file mode 100644 index 91dba7ca17..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * This class is intended to represent a complex type definition - * in XML Schema.<br> - */ -abstract class ComplexTypeDefinition { - - protected CMGroupImpl content = null; - protected ElementCollection collection = null; - protected String primaryCandidateName = null; - - /** - * ComplexTypeDefinition constructor comment. - */ - public ComplexTypeDefinition(ElementCollection elementCollection) { - super(); - collection = elementCollection; - createContent(); - } - - /** - * Create an actual content model. - * This method should be called once and only once in the constructor.<br> - */ - protected abstract void createContent(); - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMGroup - */ - public CMGroup getContent() { - return content; - } - - /** - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - /* NOTE: Do we need LOGICAL type? - * -- 3/7/2001 - */ - public abstract int getContentType(); - - /** - * Get content hint. - */ - public HTMLElementDeclaration getPrimaryCandidate() { - if (primaryCandidateName == null) - return null; - return (HTMLElementDeclaration) collection.getNamedItem(primaryCandidateName); - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public abstract String getTypeName(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java deleted file mode 100644 index 9a38d5379b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java +++ /dev/null @@ -1,183 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * Factory of ComplexTypeDefinition. - */ -final class ComplexTypeDefinitionFactory { - - private static ComplexTypeDefinitionFactory instance = null; - private java.util.Hashtable definitions = null; - // constants for complex type name - /** for ADDRESS. */ - public final static String CTYPE_ADDRESS = "CTYPE_ADDRESS";//$NON-NLS-1$ - /** CDATA content. No ComplexTypeDefinition instance shuld be created. */ - public final static String CTYPE_CDATA = "CTYPE_CDATA";//$NON-NLS-1$ - /** col group content. COL* */ - public final static String CTYPE_COLUMN_GROUP = "CTYPE_COLUMN_GROUP";//$NON-NLS-1$ - /** for DL. */ - public final static String CTYPE_DEFINITION_LIST = "CTYPE_DEFINITION_LIST";//$NON-NLS-1$ - /** for EMBED. */ - public final static String CTYPE_EMBED = "CTYPE_EMBED";//$NON-NLS-1$ - /** empty content. No ComplexTypeDefinition instance should be created. */ - public final static String CTYPE_EMPTY = "CTYPE_EMPTY";//$NON-NLS-1$ - /** for FIELDSET. */ - public final static String CTYPE_FIELDSET = "CTYPE_FIELDSET";//$NON-NLS-1$ - /** for FRAMESET. */ - public final static String CTYPE_FRAMESET = "CTYPE_FRAMESET";//$NON-NLS-1$ - /** flow content. (%flow;)* */ - public final static String CTYPE_FLOW_CONTAINER = "CTYPE_FLOW_CONTAINER";//$NON-NLS-1$ - /** html content. HEAD, (FRAMESET|BODY) */ - public final static String CTYPE_HTML = "CTYPE_HTML";//$NON-NLS-1$ - /** head content. TITLE & ISINDEX? & BASE? */ - public final static String CTYPE_HEAD = "CTYPE_HEAD";//$NON-NLS-1$ - /** inline content. (%inline;)* */ - public final static String CTYPE_INLINE_CONTAINER = "CTYPE_INLINE_CONTAINER";//$NON-NLS-1$ - /** list item container. (LI)+ */ - public final static String CTYPE_LI_CONTAINER = "CTYPE_LI_CONTAINER";//$NON-NLS-1$ - /** for MAP. */ - public final static String CTYPE_MAP = "CTYPE_MAP";//$NON-NLS-1$ - /** noframes content. */ - public final static String CTYPE_NOFRAMES_CONTENT = "CTYPE_NOFRAMES_CONTENT";//$NON-NLS-1$ - /** for OPTGROUP. */ - public final static String CTYPE_OPTION_CONTAINER = "CTYPE_OPTION_CONTAINER";//$NON-NLS-1$ - /** param container. For OBJECT/APPLET. */ - public final static String CTYPE_PARAM_CONTAINER = "CTYPE_PARAM_CONTAINER";//$NON-NLS-1$ - /** PCDATA content. No ComplexTypeDefinition instance shuld be created. */ - public final static String CTYPE_PCDATA = "CTYPE_PCDATA";//$NON-NLS-1$ - /** for SELECT. */ - public final static String CTYPE_SELECT = "CTYPE_SELECT";//$NON-NLS-1$ - /** table content. CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+ */ - public final static String CTYPE_TABLE = "CTYPE_TABLE";//$NON-NLS-1$ - /** table cell contaier. (TH|TD)+ */ - public final static String CTYPE_TCELL_CONTAINER = "CTYPE_TCELL_CONTAINER";//$NON-NLS-1$ - /** table record container. (TR)+ */ - public final static String CTYPE_TR_CONTAINER = "CTYPE_TR_CONTAINER";//$NON-NLS-1$ - - /** - * ComplexTypeDefinitionFactory constructor comment. - */ - private ComplexTypeDefinitionFactory() { - super(); - definitions = new java.util.Hashtable(); - } - - /** - * Factory method for ComplexTypeDefinition. - * Each instance created in this method must be registered into - * the map with its name. - * @param definitionName java.lang.String - * @param elementCollection ElementCollection - */ - public ComplexTypeDefinition createTypeDefinition(String definitionName, ElementCollection elementCollection) { - if (definitions.containsKey(definitionName)) { - return (ComplexTypeDefinition) definitions.get(definitionName); - } - - ComplexTypeDefinition def = null; - if (definitionName == CTYPE_ADDRESS) { - def = new CtdAddress(elementCollection); - - } - else if (definitionName == CTYPE_COLUMN_GROUP) { - def = new CtdColumnGroup(elementCollection); - - } - else if (definitionName == CTYPE_DEFINITION_LIST) { - def = new CtdDl(elementCollection); - - } - else if (definitionName == CTYPE_EMBED) { - def = new CtdEmbed(elementCollection); - - } - else if (definitionName == CTYPE_FIELDSET) { - def = new CtdFieldset(elementCollection); - - } - else if (definitionName == CTYPE_FLOW_CONTAINER) { - def = new CtdFlowContainer(elementCollection); - - } - else if (definitionName == CTYPE_FRAMESET) { - def = new CtdFrameset(elementCollection); - - } - else if (definitionName == CTYPE_HEAD) { - def = new CtdHead(elementCollection); - - } - else if (definitionName == CTYPE_HTML) { - def = new CtdHtml(elementCollection); - - } - else if (definitionName == CTYPE_INLINE_CONTAINER) { - def = new CtdInlineContainer(elementCollection); - - } - else if (definitionName == CTYPE_LI_CONTAINER) { - def = new CtdLiContainer(elementCollection); - - } - else if (definitionName == CTYPE_MAP) { - def = new CtdMap(elementCollection); - - } - else if (definitionName == CTYPE_NOFRAMES_CONTENT) { - def = new CtdNoframesContent(elementCollection); - - } - else if (definitionName == CTYPE_OPTION_CONTAINER) { - def = new CtdOptionContainer(elementCollection); - - } - else if (definitionName == CTYPE_PARAM_CONTAINER) { - def = new CtdParamContainer(elementCollection); - - } - else if (definitionName == CTYPE_SELECT) { - def = new CtdSelect(elementCollection); - - } - else if (definitionName == CTYPE_TABLE) { - def = new CtdTable(elementCollection); - - } - else if (definitionName == CTYPE_TCELL_CONTAINER) { - def = new CtdTableCellContainer(elementCollection); - - } - else if (definitionName == CTYPE_TR_CONTAINER) { - def = new CtdTrContainer(elementCollection); - - } - else { - def = null; - } - if (def == null) - return null; // fail to create. - definitions.put(definitionName, def); - return def; - } - - /** - * For singleton. - */ - public synchronized static ComplexTypeDefinitionFactory getInstance() { - if (instance != null) - return instance; - instance = new ComplexTypeDefinitionFactory(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java deleted file mode 100644 index 76847d053f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for ADDRESS. - */ -final class CtdAddress extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdAddress(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * ((%inline) | P)*. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )* - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - // (%inline) - CMGroupImpl inlines = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (inlines == null) - return; - collection.getInline(inlines); - content.appendChild(inlines); - // P - CMNode p = collection.getNamedItem(HTML40Namespace.ElementName.P); - if (p != null) - content.appendChild(p); - } - - /** - * ((%inline) | P)*. - * Because %inline; contains #PCDATA, the type is MIXED. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_ADDRESS; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java deleted file mode 100644 index 623399d1dc..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * COL group. - * (COL)* - */ -final class CtdColumnGroup extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdColumnGroup(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (COL)* - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( )* - content = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED); - // COL - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.COL); - if (dec != null) - content.appendChild(dec); - } - - /** - * (COL)* - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_COLUMN_GROUP; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java deleted file mode 100644 index 626eb8fc4b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for DL. - */ -final class CtdDl extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdDl(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.DT; - } - - /** - * (DT | DD)+ - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // DT - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.DT); - if (dec != null) - content.appendChild(dec); - // DD - dec = collection.getNamedItem(HTML40Namespace.ElementName.DD); - if (dec != null) - content.appendChild(dec); - } - - /** - * (DT | DD)+. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java deleted file mode 100644 index da5e725c60..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for EMBED. - */ -final class CtdEmbed extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdEmbed(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.NOEMBED; - } - - /** - * (NOEMBED). - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( ) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - // NOEMBED - CMNode noembed = collection.getNamedItem(HTML40Namespace.ElementName.NOEMBED); - if (noembed != null) - content.appendChild(noembed); - } - - /** - * (NOEMBED). - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_EMBED; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java deleted file mode 100644 index b4f2dfdc02..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for FIELDSET. - */ -final class CtdFieldset extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdFieldset(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.LEGEND; - } - - /** - * (#PCDATA, LEGEND, (%flow;)*) - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( , , ) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - // #PCDATA - // ...?? - - // LEGEND - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.LEGEND); - if (dec != null) - content.appendChild(dec); - // (%flow;)* - CMGroupImpl flows = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - if (flows == null) - return; - collection.getFlow(flows); - content.appendChild(flows); - } - - /** - * (#PCDATA, LEGEND, (%flow;)*) - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_FIELDSET; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java deleted file mode 100644 index 6c7a08b0c6..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * Complex type definition for containers of <code>%flow;</code>. - */ -final class CtdFlowContainer extends ComplexTypeDefinition { - - /** - */ - public CtdFlowContainer(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (%flow;)* - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - collection.getFlow(content); - } - - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java deleted file mode 100644 index 03da4b4128..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for FRAMESET. - * ((FRAMESET | FRAME)+ & NOFRAMES?) - */ -final class CtdFrameset extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdFrameset(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.FRAME; - } - - /** - * ((FRAMESET | FRAME)+ & NOFRAMES?). - * --> ((FRAMESET | FRAME)+ & (NOFRAMES)?) - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( & ) - content = new CMGroupImpl(CMGroup.ALL, 1, 1); - - // ( | )+ - CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - if (group == null) - return; - content.appendChild(group); - - // FRAMESET - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.FRAMESET); - if (dec != null) - group.appendChild(dec); - // FRAME - dec = collection.getNamedItem(HTML40Namespace.ElementName.FRAME); - if (dec != null) - group.appendChild(dec); - - // ( )? - group = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (group == null) - return; - content.appendChild(group); - - // NOFRAMES - dec = collection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES); - if (dec != null) - group.appendChild(dec); - } - - /** - * ((FRAMESET | FRAME)+ & NOFRAMES?) - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_FRAMESET; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java deleted file mode 100644 index 48bc24fa75..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java +++ /dev/null @@ -1,175 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Complex type definition for the head content. - * Content Model: (TITLE & ISINDEX? & BASE?) - */ -final class CtdHead extends ComplexTypeDefinition { - - /** - */ - public CtdHead(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.TITLE; - } - - /** - * for HEAD. - * To avoid using inclusion, the content model comes from the XHTML 1.0. - * - * (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;)))) - * And %head.misc; is: - * (script|style|meta|link|object|isindex)* - * - * 0: (%head.misc, A) - * A: (B | C) - * B: (title, %head.misc;, D) - * C: (base, %head.misc;, E) - * D: (base, %head.misc;)? - * E: (title, %head.misc;) - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // At 1st, create %head.misc; content. - // %head.misc; - // ( | )* - CMGroupImpl misc = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - if (misc == null) - return; - String[] names = {HTML40Namespace.ElementName.SCRIPT, HTML40Namespace.ElementName.STYLE, HTML40Namespace.ElementName.META, HTML40Namespace.ElementName.LINK, HTML40Namespace.ElementName.OBJECT, HTML40Namespace.ElementName.ISINDEX}; - collection.getDeclarations(misc, Arrays.asList(names).iterator()); - // 2nd, get a title - CMNode title = collection.getNamedItem(HTML40Namespace.ElementName.TITLE); - // 3rd, get a base - CMNode base = collection.getNamedItem(HTML40Namespace.ElementName.BASE); - if (title == null || base == null) - return; - - // Top level content is a sequence of %head.misc; and A. - // 0: (%head.misc;, A) - // create a sequence - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (content == null) - return; - // append %head.misc; - content.appendChild(misc); - // create A and append it to the top level. - { - // A is a choice of B and C. - // A: (B | C) - // create a choice - CMGroupImpl gA = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (gA == null) - return; - // append A to the top level. - content.appendChild(gA); - - // create B and append it to A - { - // B is a sequence of title, %head.misc;, and D. - // B: (title, %head.misc;, D) - // create a sequence - CMGroupImpl gB = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gB == null) - return; - // append B to A. - gA.appendChild(gB); - - // append title to B - gB.appendChild(title); - // append %head.misc; to B - gB.appendChild(misc); - // create D and append it to B. - { - // D is a sequence of base, %head.misc;. - // D: (base, %head.misc;)? - // create a sequence - CMGroupImpl gD = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (gD == null) - return; - // append D to B. - gB.appendChild(gD); - - // append base to D - gD.appendChild(base); - // append %head.misc; to D. - gD.appendChild(misc); - } - } - // create C and append it to A - { - // C is a sequence of base, %head.misc;, and E - // C: (base, %head.misc;, E) - // create a sequence - CMGroupImpl gC = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gC == null) - return; - // append C to A. - gA.appendChild(gC); - - // append base to C - gC.appendChild(base); - // append %head.misc; to C - gC.appendChild(misc); - - // create E and append it to C. - { - // E is a sequence of title and %head.misc;. - // E: (title, %head.misc;) - // create a sequence - CMGroupImpl gE = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gE == null) - return; - // append E to C. - gC.appendChild(gE); - - // append title to E - gE.appendChild(title); - // append %head.misc; to E. - gE.appendChild(misc); - } - } - } - } - - /** - * Element content. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_HEAD; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java deleted file mode 100644 index d2396fc680..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java +++ /dev/null @@ -1,334 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Complex type definition for <code>HTML</code>.<br> - * Content Model: - * HEAD, (FRAMESET|BODY)<br> - */ -final class CtdHtml extends ComplexTypeDefinition { - - /** - */ - public CtdHtml(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.HEAD; - } - - /** - * (%html.content;). - * %html.content; is HEAD, (FRAMESET | BODY). - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( ) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (content == null) - return; - - // HEAD - CMNode edec = collection.getNamedItem(HTML40Namespace.ElementName.HEAD); - if (edec != null) - content.appendChild(edec); - - // ( | ) - CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - content.appendChild(group); - - // FRAMESET, BODY - String[] names = {HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.BODY}; - collection.getDeclarations(group, Arrays.asList(names).iterator()); - - // since BODY start and end are omissable - // adding valid children of BODY here under HTML - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=97342 - edec = collection.getNamedItem(HTML40Namespace.ElementName.MAP); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.PRE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BDO); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.INPUT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.P); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.NOSCRIPT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.I); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BUTTON); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.LABEL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.U); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H6); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.CENTER); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BASEFONT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.S); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BLOCKQUOTE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H3); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.UL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.B); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SELECT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.Q); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.STRIKE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SCRIPT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.ABBR); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BIG); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H1); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.IMG); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.ACRONYM); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.DEL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.TEXTAREA); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H2); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.FONT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.OBJECT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.KBD); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.IFRAME); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.HR); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H4); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.DIR); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SAMP); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.INS); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.H5); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SUP); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.A); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.DFN); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.ISINDEX); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.DL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.VAR); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.FIELDSET); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.TABLE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.BR); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.TT); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.APPLET); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.OL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SMALL); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.CITE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.FORM); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.DIV); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.CODE); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SPAN); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.SUB); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.EM); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.MENU); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.ADDRESS); - if (edec != null) - content.appendChild(edec); - - edec = collection.getNamedItem(HTML40Namespace.ElementName.STRONG); - if (edec != null) - content.appendChild(edec); - } - - /** - * Element content. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_HTML; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java deleted file mode 100644 index 7fbfeabd9f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * Complex type definition for (%inline;)*. - */ -final class CtdInlineContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdInlineContainer(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (%inline)*. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - collection.getInline(content); - } - - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java deleted file mode 100644 index 5ccb079cb0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * List item container. - * (LI)+ - */ -final class CtdLiContainer extends ComplexTypeDefinition { - - /** - * @param elemenCollection ElementCollection - */ - public CtdLiContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.LI; - } - - /** - * (LI)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // (LI)+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - CMNode li = collection.getNamedItem(HTML40Namespace.ElementName.LI); - if (li != null) - content.appendChild(li); - } - - /** - * ELEMENT content.<br> - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java deleted file mode 100644 index 3ff2a165bf..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for MAP. - */ -final class CtdMap extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdMap(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.AREA; - } - - /** - * ((%block;) | AREA)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // (%block;) - CMGroupImpl blocks = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (blocks == null) - return; - collection.getBlock(blocks); - content.appendChild(blocks); - // AREA - CMNode area = collection.getNamedItem(HTML40Namespace.ElementName.AREA); - if (area != null) - content.appendChild(area); - } - - /** - * ((%block;) | AREA)+. - * Because %block; consists of elements only, the type is ELEMENT. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_MAP; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java deleted file mode 100644 index d193a6c884..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for NOFRAMES. - */ -final class CtdNoframesContent extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdNoframesContent(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.BODY; - } - - /** - * (BODY). - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( ) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - // BODY - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.BODY); - if (dec != null) - content.appendChild(dec); - } - - /** - * (BODY) - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_NOFRAMES_CONTENT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java deleted file mode 100644 index b53480abf9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * OPTION container. - * (OPTION)+ - */ -final class CtdOptionContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdOptionContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.OPTION; - } - - /** - * (OPTION)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( )+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - // OPTION - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTION); - if (dec != null) - content.appendChild(dec); - } - - /** - * (OPTION)+ - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java deleted file mode 100644 index 4732191e1a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * PARAM container. For OBJECT and APPLET. - */ -final class CtdParamContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdParamContainer(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (PARAM | %flow;)*. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )* - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - // PARAM - CMNode param = collection.getNamedItem(HTML40Namespace.ElementName.PARAM); - if (param != null) - content.appendChild(param); - // %flow; - CMGroupImpl flows = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (flows == null) - return; - collection.getInline(flows); - content.appendChild(flows); - } - - /** - * (PARAM | %flow;)*. - * Because %flow; contains #PCDATA, the type is MIXED. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java deleted file mode 100644 index b1d12843cc..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for SELECT. - */ -final class CtdSelect extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdSelect(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.OPTION; - } - - /** - * (OPTGROUP | OPTION)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // OPTGROUP - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTGROUP); - if (dec != null) - content.appendChild(dec); - // OPTION - dec = collection.getNamedItem(HTML40Namespace.ElementName.OPTION); - if (dec != null) - content.appendChild(dec); - } - - /** - * (OPTGROUP | OPTION)+. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_SELECT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java deleted file mode 100644 index 7fd73d5152..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for TABLE. - * (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+, TR+) - */ -final class CtdTable extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdTable(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.TBODY; - } - - /** - * (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+) - * --> ((CAPTION)?, ((COL)* | (COLGROUP)*), (THEAD)?, (TFOOT)?, (TBODY)+, (TR)+) - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( , , , ,) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - - // (CAPTION)? - // ( )? - CMGroupImpl wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (wrap == null) - return; - content.appendChild(wrap); - // CAPTION - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.CAPTION); - if (dec != null) - wrap.appendChild(dec); - - // ((COL)* | (COLGROUP)*) - // ( | ) - CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (group == null) - return; - content.appendChild(group); - // (COL)* - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED); - if (wrap == null) - return; - group.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.COL); - if (dec != null) - wrap.appendChild(dec); - // (COLGROUP)* - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED); - if (wrap == null) - return; - group.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.COLGROUP); - if (dec != null) - wrap.appendChild(dec); - - // (THEAD)? - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (wrap == null) - return; - content.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.THEAD); - if (dec != null) - wrap.appendChild(dec); - - // (TFOOT)? - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (wrap == null) - return; - content.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.TFOOT); - if (dec != null) - wrap.appendChild(dec); - - // (TBODY)+ - // TBODY has optional start and end tags - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED); - if (wrap == null) - return; - content.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.TBODY); - if (dec != null) - wrap.appendChild(dec); - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=96101 - // TBODY start and end tag are optional, so TR should be allowed here - // (TR)+ - wrap = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - if (wrap == null) - return; - content.appendChild(wrap); - dec = collection.getNamedItem(HTML40Namespace.ElementName.TR); - if (dec != null) - wrap.appendChild(dec); - } - - /** - * ((FRAMESET | FRAME)+ & NOFRAMES?) - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_TABLE; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java deleted file mode 100644 index a207876cb2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Table cell container. - * (TH | TD)+ - */ -final class CtdTableCellContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdTableCellContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.TD; - } - - /** - * (TH | TD)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // TH - CMNode dec = collection.getNamedItem(HTML40Namespace.ElementName.TH); - if (dec != null) - content.appendChild(dec); - // TD - dec = collection.getNamedItem(HTML40Namespace.ElementName.TD); - if (dec != null) - content.appendChild(dec); - } - - /** - * (TH | TD)+ - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_TCELL_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java deleted file mode 100644 index 734c204fac..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Table record container. - * (TR)+ - */ -final class CtdTrContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdTrContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = HTML40Namespace.ElementName.TR; - } - - /** - * (TR)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // (TR)+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - CMNode tr = collection.getNamedItem(HTML40Namespace.ElementName.TR); - if (tr != null) - content.appendChild(tr); - } - - /** - * ELEMENT content.<br> - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_TR_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java deleted file mode 100644 index d5aab547ae..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java +++ /dev/null @@ -1,244 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - */ -abstract class DeclCollection implements CMNamedNodeMap { - - - protected class DualMap { - public DualMap() { - super(); - } - - public DualMap(Object[] objects) { - super(); - initialize(objects); - } - - public int size() { - return table.length; - } - - public Object getValue(int key) { - if (!isValidIndex(key)) - return null; - return table[key]; - } - - public int getKey(Object value) { - Integer keyObj = (Integer) map.get(value); - if (keyObj == null) - return ID_UNKNOWN; - return keyObj.intValue(); - } - - protected void initialize(Object[] objects) { - if (objects == null) - return; - table = objects; - map = new HashMap(); - for (int key = 0; key < objects.length; key++) { - Object value = table[key]; - map.put(value, new Integer(key)); - } - } - - private Object[] table = null; - private HashMap map = null; - - private boolean isValidIndex(int index) { - return index >= 0 && index < table.length; - } - } - - protected class TolerantStringDualMap extends DualMap { - public TolerantStringDualMap(String[] names) { - super(); - Object[] objects = new Object[names.length]; - for (int i = 0; i < names.length; i++) { - objects[i] = makeCanonicalForm(names[i]); - } - initialize(objects); - } - - public int getKey(Object value) { - try { - String name = (String) value; - return super.getKey(makeCanonicalForm(name)); - } - catch (ClassCastException e) { - return ID_UNKNOWN; - } - } - - private String makeCanonicalForm(String raw) { - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152 - // we are able to "cheat" here a little and use US Locale - // to get a good cononical form, since we are using this only - // for HTML and JSP standard tags. - // Long term, for similar needs with XML 1.1 (for example) - // we should use a class such as com.ibm.icu.text.Normalizer - return raw.toUpperCase(Locale.US); - } - } - - private class DeclIterator implements Iterator { - public DeclIterator() { - maxid = fDecls.length - 1; - } - - public boolean hasNext() { - return id < maxid; - } - - public Object next() { - if (!hasNext()) - return null; - return item(++id); - } - - public void remove() { /* nothing should be done. */ - } - - private int id = -1; - private int maxid = -1; - } - - CMNode[] fDecls = null; - protected final static boolean STRICT_CASE = false; - protected final static boolean TOLERANT_CASE = true; - protected final static int ID_UNKNOWN = -1; - private DualMap fMap = null; - - /** - */ - public DeclCollection(String[] names, boolean tolerant) { - super(); - fDecls = new CMNode[names.length]; - if (tolerant) { - fMap = new TolerantStringDualMap(names); - } - else { - fMap = new DualMap(names); - } - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param id int - */ - protected abstract CMNode create(String name); - - /** - */ - public CMNamedNodeMap getDeclarations(String[] names) { - CMNamedNodeMapImpl map = new CMNamedNodeMapImpl(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - CMNode node = getNamedItem(name); - if (node == null) - continue; - map.putNamedItem(name, node); - } - return map; - } - - /** - * @param names java.util.Iterator - */ - public void getDeclarations(CMGroupImpl group, Iterator names) { - while (names.hasNext()) { - String entityName = (String) names.next(); - CMNode dec = getNamedItem(entityName); - if (dec != null) - group.appendChild(dec); - } - } - - /** - * Map name to id. - * @return int - * @param name java.lang.String - */ - protected int getID(String name) { - return fMap.getKey(name); - } - - /** - * getLength method - * @return int - */ - public int getLength() { - return fDecls.length; - } - - /** - * @return java.lang.String - * @param id int - */ - protected String getName(int id) { - return (String) fMap.getValue(id); - } - - /** - * getNamedItem method - * @return CMNode - * @param name java.lang.String - */ - public CMNode getNamedItem(String name) { - int id = getID(name); - if (!isValidID(id)) - return null; - return item(id); - } - - /** - * @return boolean - * @param id int - */ - private boolean isValidID(int id) { - return id >= 0 && id < fDecls.length; - } - - /** - * item method - * @return CMNode - * @param index int - */ - public CMNode item(int index) { - if (!isValidID(index)) - return null; - CMNode decl = fDecls[index]; - if (decl != null) - return decl; // already exist. - - decl = create(getName(index)); - fDecls[index] = decl; - return decl; - } - - /** - */ - public Iterator iterator() { - return new DeclIterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java deleted file mode 100644 index 8349964147..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java +++ /dev/null @@ -1,881 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.Collection; -import java.util.Vector; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for element declarations. - */ -final class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ElementName { - - - // Element IDs - private static class Ids { - public static final int ID_A = 0; - public static final int ID_ABBR = 1; - public static final int ID_ACRONYM = 2; - public static final int ID_ADDRESS = 3; - public static final int ID_APPLET = 4; - public static final int ID_AREA = 5; - public static final int ID_B = 6; - public static final int ID_BASE = 7; - public static final int ID_BASEFONT = 8; - public static final int ID_BDO = 9; - public static final int ID_BIG = 10; - public static final int ID_BLINK = 11; - public static final int ID_BLOCKQUOTE = 12; - public static final int ID_BODY = 13; - public static final int ID_BR = 14; - public static final int ID_BUTTON = 15; - public static final int ID_CAPTION = 16; - public static final int ID_CENTER = 17; - public static final int ID_CITE = 18; - public static final int ID_CODE = 19; - public static final int ID_COL = 20; - public static final int ID_COLGROUP = 21; - public static final int ID_DD = 22; - public static final int ID_DEL = 23; - public static final int ID_DFN = 24; - public static final int ID_DIR = 25; - public static final int ID_DIV = 26; - public static final int ID_DL = 27; - public static final int ID_DT = 28; - public static final int ID_EM = 29; - public static final int ID_EMBED = 30; - public static final int ID_FIELDSET = 31; - public static final int ID_FONT = 32; - public static final int ID_FORM = 33; - public static final int ID_FRAME = 34; - public static final int ID_FRAMESET = 35; - public static final int ID_H1 = 36; - public static final int ID_H2 = 37; - public static final int ID_H3 = 38; - public static final int ID_H4 = 39; - public static final int ID_H5 = 40; - public static final int ID_H6 = 41; - public static final int ID_HEAD = 42; - public static final int ID_HR = 43; - public static final int ID_HTML = 44; - public static final int ID_I = 45; - public static final int ID_IFRAME = 46; - public static final int ID_IMG = 47; - public static final int ID_INPUT = 48; - public static final int ID_INS = 49; - public static final int ID_ISINDEX = 50; - public static final int ID_KBD = 51; - public static final int ID_LABEL = 52; - public static final int ID_LEGEND = 53; - public static final int ID_LI = 54; - public static final int ID_LINK = 55; - public static final int ID_MAP = 56; - public static final int ID_MENU = 57; - public static final int ID_META = 58; - public static final int ID_NOEMBED = 59; - public static final int ID_NOFRAMES = 60; - public static final int ID_NOSCRIPT = 61; - public static final int ID_OBJECT = 62; - public static final int ID_OL = 63; - public static final int ID_OPTGROUP = 64; - public static final int ID_OPTION = 65; - public static final int ID_P = 66; - public static final int ID_PARAM = 67; - public static final int ID_PRE = 68; - public static final int ID_Q = 69; - public static final int ID_S = 70; - public static final int ID_SAMP = 71; - public static final int ID_SCRIPT = 72; - public static final int ID_SELECT = 73; - public static final int ID_SMALL = 74; - public static final int ID_SPAN = 75; - public static final int ID_STRIKE = 76; - public static final int ID_STRONG = 77; - public static final int ID_STYLE = 78; - public static final int ID_SUB = 79; - public static final int ID_SUP = 80; - public static final int ID_TABLE = 81; - public static final int ID_TBODY = 82; - public static final int ID_TD = 83; - public static final int ID_TEXTAREA = 84; - public static final int ID_TFOOT = 85; - public static final int ID_TH = 86; - public static final int ID_THEAD = 87; - public static final int ID_TITLE = 88; - public static final int ID_TR = 89; - public static final int ID_TT = 90; - public static final int ID_U = 91; - public static final int ID_UL = 92; - public static final int ID_VAR = 93; - public static final int ID_MARQUEE = 94; - public static final int ID_SSI_CONFIG = 95; - public static final int ID_SSI_ECHO = 96; - public static final int ID_SSI_EXEC = 97; - public static final int ID_SSI_FSIZE = 98; - public static final int ID_SSI_FLASTMOD = 99; - public static final int ID_SSI_INCLUDE = 100; - public static final int ID_SSI_PRINTENV = 101; - public static final int ID_SSI_SET = 102; - // <<D205513 - public static final int ID_BGSOUND = 103; - public static final int ID_NOBR = 104; - public static final int ID_WBR = 105; - - // D205513 - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 105. - // -- 5/25/2001 - Class clazz = Ids.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - /** %fontstyle;. TT | I | B | U | S | STRIKE | BIG | SMALL | BLINK */ - private static final String[] FONTSTYLE = {TT, I, B, U, S, STRIKE, BIG, SMALL, BLINK}; - /** %formctl;. INPUT | SELECT | TEXTAREA | LABEL | BUTTON */ - private static final String[] FORMCTL = {INPUT, SELECT, TEXTAREA, LABEL, BUTTON}; - /** %phrase;. - * EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM - */ - private static final String[] PHRASE = {EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, ACRONYM}; - /** %special;. - * A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT | - * MAP | Q | SUB | SUP | SPAN | BDO | IFRAME | EMBED | MARQUEE | - * D2W | SUBMIT - * WBR | NOBR | BGSOUND - */ - private static final String[] SPECIAL = {A, IMG, APPLET, OBJECT, FONT, BASEFONT, BR, WBR, // D205513 - SCRIPT, MAP, Q, SUB, SUP, SPAN, BDO, IFRAME, EMBED, BGSOUND, // D205513 - MARQUEE, NOBR // D205513 - }; - /** %heading;. H[1-6] */ - private static final String[] HEADING = {H1, H2, H3, H4, H5, H6}; - /** %list;. UL | OL | DIR | MENU */ - private static final String[] LIST = {UL, OL, DIR, MENU}; - /** %preformatted;. PRE */ - private static final String[] PREFORMATTED = {PRE}; - private AttributeCollection attributeCollection = null; - private static String[] fNames = null; - - static { - fNames = new String[Ids.getNumOfIds()]; - fNames[Ids.ID_A] = A; - fNames[Ids.ID_ABBR] = ABBR; - fNames[Ids.ID_ACRONYM] = ACRONYM; - fNames[Ids.ID_ADDRESS] = ADDRESS; - fNames[Ids.ID_APPLET] = APPLET; - fNames[Ids.ID_AREA] = AREA; - fNames[Ids.ID_B] = B; - fNames[Ids.ID_BASE] = BASE; - fNames[Ids.ID_BASEFONT] = BASEFONT; - fNames[Ids.ID_BDO] = BDO; - fNames[Ids.ID_BIG] = BIG; - fNames[Ids.ID_BLINK] = BLINK; - fNames[Ids.ID_BLOCKQUOTE] = BLOCKQUOTE; - fNames[Ids.ID_BODY] = BODY; - fNames[Ids.ID_BR] = BR; - fNames[Ids.ID_BUTTON] = BUTTON; - fNames[Ids.ID_CAPTION] = CAPTION; - fNames[Ids.ID_CENTER] = CENTER; - fNames[Ids.ID_CITE] = CITE; - fNames[Ids.ID_CODE] = CODE; - fNames[Ids.ID_COL] = COL; - fNames[Ids.ID_COLGROUP] = COLGROUP; - fNames[Ids.ID_DD] = DD; - fNames[Ids.ID_DEL] = DEL; - fNames[Ids.ID_DFN] = DFN; - fNames[Ids.ID_DIR] = DIR; - fNames[Ids.ID_DIV] = DIV; - fNames[Ids.ID_DL] = DL; - fNames[Ids.ID_DT] = DT; - fNames[Ids.ID_EM] = EM; - fNames[Ids.ID_EMBED] = EMBED; - fNames[Ids.ID_FIELDSET] = FIELDSET; - fNames[Ids.ID_FONT] = FONT; - fNames[Ids.ID_FORM] = FORM; - fNames[Ids.ID_FRAME] = FRAME; - fNames[Ids.ID_FRAMESET] = FRAMESET; - fNames[Ids.ID_H1] = H1; - fNames[Ids.ID_H2] = H2; - fNames[Ids.ID_H3] = H3; - fNames[Ids.ID_H4] = H4; - fNames[Ids.ID_H5] = H5; - fNames[Ids.ID_H6] = H6; - fNames[Ids.ID_HEAD] = HEAD; - fNames[Ids.ID_HR] = HR; - fNames[Ids.ID_HTML] = HTML; - fNames[Ids.ID_I] = I; - fNames[Ids.ID_IFRAME] = IFRAME; - fNames[Ids.ID_IMG] = IMG; - fNames[Ids.ID_INPUT] = INPUT; - fNames[Ids.ID_INS] = INS; - fNames[Ids.ID_ISINDEX] = ISINDEX; - fNames[Ids.ID_KBD] = KBD; - fNames[Ids.ID_LABEL] = LABEL; - fNames[Ids.ID_LEGEND] = LEGEND; - fNames[Ids.ID_LI] = LI; - fNames[Ids.ID_LINK] = LINK; - fNames[Ids.ID_MAP] = MAP; - fNames[Ids.ID_MENU] = MENU; - fNames[Ids.ID_META] = META; - fNames[Ids.ID_NOEMBED] = NOEMBED; - fNames[Ids.ID_NOFRAMES] = NOFRAMES; - fNames[Ids.ID_NOSCRIPT] = NOSCRIPT; - fNames[Ids.ID_OBJECT] = OBJECT; - fNames[Ids.ID_OL] = OL; - fNames[Ids.ID_OPTGROUP] = OPTGROUP; - fNames[Ids.ID_OPTION] = OPTION; - fNames[Ids.ID_P] = P; - fNames[Ids.ID_PARAM] = PARAM; - fNames[Ids.ID_PRE] = PRE; - fNames[Ids.ID_Q] = Q; - fNames[Ids.ID_S] = S; - fNames[Ids.ID_SAMP] = SAMP; - fNames[Ids.ID_SCRIPT] = SCRIPT; - fNames[Ids.ID_SELECT] = SELECT; - fNames[Ids.ID_SMALL] = SMALL; - fNames[Ids.ID_SPAN] = SPAN; - fNames[Ids.ID_STRIKE] = STRIKE; - fNames[Ids.ID_STRONG] = STRONG; - fNames[Ids.ID_STYLE] = STYLE; - fNames[Ids.ID_SUB] = SUB; - fNames[Ids.ID_SUP] = SUP; - fNames[Ids.ID_TABLE] = TABLE; - fNames[Ids.ID_TBODY] = TBODY; - fNames[Ids.ID_TD] = TD; - fNames[Ids.ID_TEXTAREA] = TEXTAREA; - fNames[Ids.ID_TFOOT] = TFOOT; - fNames[Ids.ID_TH] = TH; - fNames[Ids.ID_THEAD] = THEAD; - fNames[Ids.ID_TITLE] = TITLE; - fNames[Ids.ID_TR] = TR; - fNames[Ids.ID_TT] = TT; - fNames[Ids.ID_U] = U; - fNames[Ids.ID_UL] = UL; - fNames[Ids.ID_VAR] = VAR; - fNames[Ids.ID_MARQUEE] = MARQUEE; - fNames[Ids.ID_SSI_CONFIG] = SSI_CONFIG; - fNames[Ids.ID_SSI_ECHO] = SSI_ECHO; - fNames[Ids.ID_SSI_EXEC] = SSI_EXEC; - fNames[Ids.ID_SSI_FSIZE] = SSI_FSIZE; - fNames[Ids.ID_SSI_FLASTMOD] = SSI_FLASTMOD; - fNames[Ids.ID_SSI_INCLUDE] = SSI_INCLUDE; - fNames[Ids.ID_SSI_PRINTENV] = SSI_PRINTENV; - fNames[Ids.ID_SSI_SET] = SSI_SET; - fNames[Ids.ID_BGSOUND] = BGSOUND; - fNames[Ids.ID_NOBR] = NOBR; - fNames[Ids.ID_WBR] = WBR; - } - - /** - */ - public ElementCollection(AttributeCollection collection) { - super(fNames, TOLERANT_CASE); - attributeCollection = collection; - } - - /** - * Actually creates HTMLElementDeclaration instance. - * @return HTMLElementDeclaration - */ - protected CMNode create(String elementName) { - HTMLElemDeclImpl edec = null; - - if (elementName.equalsIgnoreCase(A)) { - edec = new HedA(this); - } - else if (elementName.equalsIgnoreCase(ABBR)) { - edec = new HedPhrase(ABBR, this); - - } - else if (elementName.equalsIgnoreCase(ACRONYM)) { - edec = new HedPhrase(ACRONYM, this); - - } - else if (elementName.equalsIgnoreCase(ADDRESS)) { - edec = new HedADDRESS(this); - - } - else if (elementName.equalsIgnoreCase(APPLET)) { - edec = new HedAPPLET(this); - - } - else if (elementName.equalsIgnoreCase(AREA)) { - edec = new HedAREA(this); - - } - else if (elementName.equalsIgnoreCase(B)) { - edec = new HedFontStyle(B, this); - - } - else if (elementName.equalsIgnoreCase(BASE)) { - edec = new HedBASE(this); - - } - else if (elementName.equalsIgnoreCase(BASEFONT)) { - edec = new HedBASEFONT(this); - - } - else if (elementName.equalsIgnoreCase(BDO)) { - edec = new HedBDO(this); - - } - else if (elementName.equalsIgnoreCase(BIG)) { - edec = new HedFontStyle(BIG, this); - - } - else if (elementName.equalsIgnoreCase(BLINK)) { - edec = new HedFontStyle(BLINK, this); - - } - else if (elementName.equalsIgnoreCase(BLOCKQUOTE)) { - edec = new HedBLOCKQUOTE(this); - - } - else if (elementName.equalsIgnoreCase(BODY)) { - edec = new HedBODY(this); - - } - else if (elementName.equalsIgnoreCase(BR)) { - edec = new HedBR(this); - - } - else if (elementName.equalsIgnoreCase(BUTTON)) { - edec = new HedBUTTON(this); - - } - else if (elementName.equalsIgnoreCase(CAPTION)) { - edec = new HedCAPTION(this); - - } - else if (elementName.equalsIgnoreCase(CENTER)) { - edec = new HedCENTER(this); - - } - else if (elementName.equalsIgnoreCase(CITE)) { - edec = new HedPhrase(CITE, this); - - } - else if (elementName.equalsIgnoreCase(CODE)) { - edec = new HedPhrase(CODE, this); - - } - else if (elementName.equalsIgnoreCase(COL)) { - edec = new HedCOL(this); - - } - else if (elementName.equalsIgnoreCase(COLGROUP)) { - edec = new HedCOLGROUP(this); - - } - else if (elementName.equalsIgnoreCase(DD)) { - edec = new HedDD(this); - - } - else if (elementName.equalsIgnoreCase(DEL)) { - edec = new HedMarkChanges(DEL, this); - - } - else if (elementName.equalsIgnoreCase(DFN)) { - edec = new HedPhrase(DFN, this); - - } - else if (elementName.equalsIgnoreCase(DIR)) { - edec = new HedMENU(DIR, this); - - } - else if (elementName.equalsIgnoreCase(DIV)) { - edec = new HedDIV(this); - - } - else if (elementName.equalsIgnoreCase(DL)) { - edec = new HedDL(this); - - } - else if (elementName.equalsIgnoreCase(DT)) { - edec = new HedDT(this); - - } - else if (elementName.equalsIgnoreCase(EM)) { - edec = new HedPhrase(EM, this); - - } - else if (elementName.equalsIgnoreCase(EMBED)) { - edec = new HedEMBED(this); - - } - else if (elementName.equalsIgnoreCase(FIELDSET)) { - edec = new HedFIELDSET(this); - - } - else if (elementName.equalsIgnoreCase(FONT)) { - edec = new HedFONT(this); - - } - else if (elementName.equalsIgnoreCase(FORM)) { - edec = new HedFORM(this); - - } - else if (elementName.equalsIgnoreCase(FRAME)) { - edec = new HedFRAME(this); - - } - else if (elementName.equalsIgnoreCase(FRAMESET)) { - edec = new HedFRAMESET(this); - - } - else if (elementName.equalsIgnoreCase(H1)) { - edec = new HedHeading(H1, this); - - } - else if (elementName.equalsIgnoreCase(H2)) { - edec = new HedHeading(H2, this); - - } - else if (elementName.equalsIgnoreCase(H3)) { - edec = new HedHeading(H3, this); - - } - else if (elementName.equalsIgnoreCase(H4)) { - edec = new HedHeading(H4, this); - - } - else if (elementName.equalsIgnoreCase(H5)) { - edec = new HedHeading(H5, this); - - } - else if (elementName.equalsIgnoreCase(H6)) { - edec = new HedHeading(H6, this); - - } - else if (elementName.equalsIgnoreCase(HEAD)) { - edec = new HedHEAD(this); - - } - else if (elementName.equalsIgnoreCase(HR)) { - edec = new HedHR(this); - - } - else if (elementName.equalsIgnoreCase(HTML)) { - edec = new HedHTML(this); - - } - else if (elementName.equalsIgnoreCase(I)) { - edec = new HedFontStyle(I, this); - - } - else if (elementName.equalsIgnoreCase(IFRAME)) { - edec = new HedIFRAME(this); - - } - else if (elementName.equalsIgnoreCase(IMG)) { - edec = new HedIMG(this); - - } - else if (elementName.equalsIgnoreCase(INPUT)) { - edec = new HedINPUT(this); - - } - else if (elementName.equalsIgnoreCase(INS)) { - edec = new HedMarkChanges(INS, this); - - } - else if (elementName.equalsIgnoreCase(ISINDEX)) { - edec = new HedISINDEX(this); - - } - else if (elementName.equalsIgnoreCase(KBD)) { - edec = new HedPhrase(KBD, this); - - } - else if (elementName.equalsIgnoreCase(LABEL)) { - edec = new HedLABEL(this); - - } - else if (elementName.equalsIgnoreCase(LEGEND)) { - edec = new HedLEGEND(this); - - } - else if (elementName.equalsIgnoreCase(LI)) { - edec = new HedLI(this); - - } - else if (elementName.equalsIgnoreCase(LINK)) { - edec = new HedLINK(this); - - } - else if (elementName.equalsIgnoreCase(MAP)) { - edec = new HedMAP(this); - - } - else if (elementName.equalsIgnoreCase(MARQUEE)) { - edec = new HedMARQUEE(this); - - } - else if (elementName.equalsIgnoreCase(MENU)) { - edec = new HedMENU(MENU, this); - - } - else if (elementName.equalsIgnoreCase(META)) { - edec = new HedMETA(this); - - } - else if (elementName.equalsIgnoreCase(NOEMBED)) { - edec = new HedNOEMBED(this); - - } - else if (elementName.equalsIgnoreCase(NOFRAMES)) { - edec = new HedNOFRAMES(this); - - } - else if (elementName.equalsIgnoreCase(NOSCRIPT)) { - edec = new HedNOSCRIPT(this); - - } - else if (elementName.equalsIgnoreCase(OBJECT)) { - edec = new HedOBJECT(this); - - } - else if (elementName.equalsIgnoreCase(OL)) { - edec = new HedOL(this); - - } - else if (elementName.equalsIgnoreCase(OPTGROUP)) { - edec = new HedOPTGROUP(this); - - } - else if (elementName.equalsIgnoreCase(OPTION)) { - edec = new HedOPTION(this); - - } - else if (elementName.equalsIgnoreCase(P)) { - edec = new HedP(this); - - } - else if (elementName.equalsIgnoreCase(PARAM)) { - edec = new HedPARAM(this); - - } - else if (elementName.equalsIgnoreCase(PRE)) { - edec = new HedPRE(this); - - } - else if (elementName.equalsIgnoreCase(Q)) { - edec = new HedQ(this); - - } - else if (elementName.equalsIgnoreCase(S)) { - edec = new HedFontStyle(S, this); - - } - else if (elementName.equalsIgnoreCase(SAMP)) { - edec = new HedPhrase(SAMP, this); - - } - else if (elementName.equalsIgnoreCase(SCRIPT)) { - edec = new HedSCRIPT(this); - - } - else if (elementName.equalsIgnoreCase(SELECT)) { - edec = new HedSELECT(this); - - } - else if (elementName.equalsIgnoreCase(SMALL)) { - edec = new HedFontStyle(SMALL, this); - - } - else if (elementName.equalsIgnoreCase(SPAN)) { - edec = new HedSPAN(this); - - } - else if (elementName.equalsIgnoreCase(STRIKE)) { - edec = new HedFontStyle(STRIKE, this); - - } - else if (elementName.equalsIgnoreCase(STRONG)) { - edec = new HedPhrase(STRONG, this); - - } - else if (elementName.equalsIgnoreCase(STYLE)) { - edec = new HedSTYLE(this); - - } - else if (elementName.equalsIgnoreCase(SUB)) { - edec = new HedScripts(SUB, this); - - } - else if (elementName.equalsIgnoreCase(SUP)) { - edec = new HedScripts(SUP, this); - - } - else if (elementName.equalsIgnoreCase(TABLE)) { - edec = new HedTABLE(this); - - } - else if (elementName.equalsIgnoreCase(TBODY)) { - edec = new HedTableBody(TBODY, this); - - } - else if (elementName.equalsIgnoreCase(TD)) { - edec = new HedTableCell(TD, this); - - } - else if (elementName.equalsIgnoreCase(TEXTAREA)) { - edec = new HedTEXTAREA(this); - - } - else if (elementName.equalsIgnoreCase(TFOOT)) { - edec = new HedTableBody(TFOOT, this); - - } - else if (elementName.equalsIgnoreCase(TH)) { - edec = new HedTableCell(TH, this); - - } - else if (elementName.equalsIgnoreCase(THEAD)) { - edec = new HedTableBody(THEAD, this); - - } - else if (elementName.equalsIgnoreCase(TITLE)) { - edec = new HedTITLE(this); - - } - else if (elementName.equalsIgnoreCase(TR)) { - edec = new HedTR(this); - - } - else if (elementName.equalsIgnoreCase(TT)) { - edec = new HedFontStyle(TT, this); - - } - else if (elementName.equalsIgnoreCase(U)) { - edec = new HedFontStyle(U, this); - - } - else if (elementName.equalsIgnoreCase(UL)) { - edec = new HedUL(this); - - } - else if (elementName.equalsIgnoreCase(VAR)) { - edec = new HedPhrase(VAR, this); - - } - else if (elementName.equalsIgnoreCase(SSI_CONFIG)) { - edec = new HedSSIConfig(this); - - } - else if (elementName.equalsIgnoreCase(SSI_ECHO)) { - edec = new HedSSIEcho(this); - - } - else if (elementName.equalsIgnoreCase(SSI_EXEC)) { - edec = new HedSSIExec(this); - - } - else if (elementName.equalsIgnoreCase(SSI_FSIZE)) { - edec = new HedSSIFsize(this); - - } - else if (elementName.equalsIgnoreCase(SSI_FLASTMOD)) { - edec = new HedSSIFlastmod(this); - - } - else if (elementName.equalsIgnoreCase(SSI_INCLUDE)) { - edec = new HedSSIInclude(this); - - } - else if (elementName.equalsIgnoreCase(SSI_PRINTENV)) { - edec = new HedSSIPrintenv(this); - - } - else if (elementName.equalsIgnoreCase(SSI_SET)) { - edec = new HedSSISet(this); - - } - else if (elementName.equalsIgnoreCase(BGSOUND)) { - edec = new HedBGSOUND(this); - - } - else if (elementName.equalsIgnoreCase(NOBR)) { - edec = new HedNOBR(this); - - } - else if (elementName.equalsIgnoreCase(WBR)) { - edec = new HedWBR(this); - - } // unknown - else { - // NOTE: We don't define the UNKNOWN element declaration. - // <code>null</code> for a declaration is a sign of - // the target element is unknown. - // -- 3/9/2001 - edec = null; - } - return edec; - } - - public AttributeCollection getAttributeCollection() { - return attributeCollection; - } - - public final Collection getNamesOfBlock() { - // P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, - // TABLE, FIELDSET, ADDRESS - String[] blockMisc = {P, DL, DIV, CENTER, NOSCRIPT, NOFRAMES, BLOCKQUOTE, FORM, ISINDEX, HR, TABLE, FIELDSET, ADDRESS}; - Vector names = new Vector(Arrays.asList(blockMisc)); - // %heading; - names.addAll(Arrays.asList(HEADING)); - // %list; - names.addAll(Arrays.asList(LIST)); - // %preformatted; - names.addAll(Arrays.asList(PREFORMATTED)); - - return names; - } - - /** - * %block;. - * %block; is: - * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | - * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | - * TABLE | FIELDSET | ADDRESS.<br> - * @param group CMGroupImpl Return values. - */ - public final void getBlock(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, getNamesOfBlock().iterator()); - } - - /** - * Create element declarations and store them - * into a <code>CMGroupImpl</code> instance. - * @param group CMGroupImpl Return values. - */ - public final void getFlow(CMGroupImpl group) { - if (group == null) - return; - getBlock(group); - getInline(group); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getFontstyle(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(FONTSTYLE).iterator()); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getFormctrl(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(FORMCTL).iterator()); - } - - /** - * %heading;. - * @param group CMGroupImpl Return values. - */ - public final void getHeading(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(HEADING).iterator()); - } - - /** - * Create element declarations and store them - * into a <code>CMGroupImpl</code> instance. - * @param group CMGroupImpl Return values. - */ - public final void getInline(CMGroupImpl group) { - if (group == null) - return; - getFontstyle(group); - getPhrase(group); - getSpecial(group); - getFormctrl(group); - } - - /** - * %list;. - * @param group CMGroupImpl Return values. - */ - public final void getList(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(LIST).iterator()); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getPhrase(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(PHRASE).iterator()); - } - - /** - * %preformatted; - * @param group CMGroupImpl Return values. - */ - public final void getPreformatted(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(PREFORMATTED).iterator()); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getSpecial(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(SPECIAL).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java deleted file mode 100644 index dda7041fd0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java +++ /dev/null @@ -1,837 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.lang.reflect.Field; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for entity declarations. - */ -final class EntityCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.EntityName { - - - private static class Ids { - public static final int ID_AACUTE_L = 0; - public static final int ID_AACUTE_U = 1; - public static final int ID_ACIRC_L = 2; - public static final int ID_ACIRC_U = 3; - public static final int ID_ACUTE = 4; - public static final int ID_AELIG_L = 5; - public static final int ID_AELIG_U = 6; - public static final int ID_AGRAVE_L = 7; - public static final int ID_AGRAVE_U = 8; - public static final int ID_ALEFSYM = 9; - public static final int ID_ALPHA_L = 10; - public static final int ID_ALPHA_U = 11; - public static final int ID_AMP = 12; - public static final int ID_AND = 13; - public static final int ID_ANG = 14; - public static final int ID_ARING_L = 15; - public static final int ID_ARING_U = 16; - public static final int ID_ASYMP = 17; - public static final int ID_ATILDE_L = 18; - public static final int ID_ATILDE_U = 19; - public static final int ID_AUML_L = 20; - public static final int ID_AUML_U = 21; - public static final int ID_BDQUO = 22; - public static final int ID_BETA_L = 23; - public static final int ID_BETA_U = 24; - public static final int ID_BRVBAR = 25; - public static final int ID_BULL = 26; - public static final int ID_CAP = 27; - public static final int ID_CCEDIL_L = 28; - public static final int ID_CCEDIL_U = 29; - public static final int ID_CEDIL = 30; - public static final int ID_CENT = 31; - public static final int ID_CHI_L = 32; - public static final int ID_CHI_U = 33; - public static final int ID_CIRC = 34; - public static final int ID_CLUBS = 35; - public static final int ID_CONG = 36; - public static final int ID_COPY = 37; - public static final int ID_CRARR = 38; - public static final int ID_CUP = 39; - public static final int ID_CURREN = 40; - public static final int ID_DAGGER_L = 41; - public static final int ID_DAGGER_U = 42; - public static final int ID_DARR_L = 43; - public static final int ID_DARR_U = 44; - public static final int ID_DEG = 45; - public static final int ID_DELTA_L = 46; - public static final int ID_DELTA_U = 47; - public static final int ID_DIAMS = 48; - public static final int ID_DIVIDE = 49; - public static final int ID_EACUTE_L = 50; - public static final int ID_EACUTE_U = 51; - public static final int ID_ECIRC_L = 52; - public static final int ID_ECIRC_U = 53; - public static final int ID_EGRAVE_L = 54; - public static final int ID_EGRAVE_U = 55; - public static final int ID_EMPTY = 56; - public static final int ID_EMSP = 57; - public static final int ID_ENSP = 58; - public static final int ID_EPSILON_L = 59; - public static final int ID_EPSILON_U = 60; - public static final int ID_EQUIV = 61; - public static final int ID_ETA_L = 62; - public static final int ID_ETA_U = 63; - public static final int ID_ETH_L = 64; - public static final int ID_ETH_U = 65; - public static final int ID_EUML_L = 66; - public static final int ID_EUML_U = 67; - public static final int ID_EURO = 68; - public static final int ID_EXIST = 69; - public static final int ID_FNOF = 70; - public static final int ID_FORALL = 71; - public static final int ID_FRAC12 = 72; - public static final int ID_FRAC14 = 73; - public static final int ID_FRAC34 = 74; - public static final int ID_FRASL = 75; - public static final int ID_GAMMA_L = 76; - public static final int ID_GAMMA_U = 77; - public static final int ID_GE = 78; - public static final int ID_GT = 79; - public static final int ID_HARR_L = 80; - public static final int ID_HARR_U = 81; - public static final int ID_HEARTS = 82; - public static final int ID_HELLIP = 83; - public static final int ID_IACUTE_L = 84; - public static final int ID_IACUTE_U = 85; - public static final int ID_ICIRC_L = 86; - public static final int ID_ICIRC_U = 87; - public static final int ID_IEXCL = 88; - public static final int ID_IGRAVE_L = 89; - public static final int ID_IGRAVE_U = 90; - public static final int ID_IMAGE = 91; - public static final int ID_INFIN = 92; - public static final int ID_INT = 93; - public static final int ID_IOTA_L = 94; - public static final int ID_IOTA_U = 95; - public static final int ID_IQUEST = 96; - public static final int ID_ISIN = 97; - public static final int ID_IUML_L = 98; - public static final int ID_IUML_U = 99; - public static final int ID_KAPPA_L = 100; - public static final int ID_KAPPA_U = 101; - public static final int ID_LAMBDA_L = 102; - public static final int ID_LAMBDA_U = 103; - public static final int ID_LANG = 104; - public static final int ID_LAQUO = 105; - public static final int ID_LARR_L = 106; - public static final int ID_LARR_U = 107; - public static final int ID_LCEIL = 108; - public static final int ID_LDQUO = 109; - public static final int ID_LE = 110; - public static final int ID_LFLOOR = 111; - public static final int ID_LOWAST = 112; - public static final int ID_LOZ = 113; - public static final int ID_LRM = 114; - public static final int ID_LSAQUO = 115; - public static final int ID_LSQUO = 116; - public static final int ID_LT = 117; - public static final int ID_MACR = 118; - public static final int ID_MDASH = 119; - public static final int ID_MICRO = 120; - public static final int ID_MIDDOT = 121; - public static final int ID_MINUS = 122; - public static final int ID_MU_L = 123; - public static final int ID_MU_U = 124; - public static final int ID_NABLA = 125; - public static final int ID_NBSP = 126; - public static final int ID_NDASH = 127; - public static final int ID_NE = 128; - public static final int ID_NI = 129; - public static final int ID_NOT = 130; - public static final int ID_NOTIN = 131; - public static final int ID_NSUB = 132; - public static final int ID_NTILDE_L = 133; - public static final int ID_NTILDE_U = 134; - public static final int ID_NU_L = 135; - public static final int ID_NU_U = 136; - public static final int ID_OACUTE_L = 137; - public static final int ID_OACUTE_U = 138; - public static final int ID_OCIRC_L = 139; - public static final int ID_OCIRC_U = 140; - public static final int ID_OELIG_L = 141; - public static final int ID_OELIG_U = 142; - public static final int ID_OGRAVE_L = 143; - public static final int ID_OGRAVE_U = 144; - public static final int ID_OLINE = 145; - public static final int ID_OMEGA_L = 146; - public static final int ID_OMEGA_U = 147; - public static final int ID_OMICRON_L = 148; - public static final int ID_OMICRON_U = 149; - public static final int ID_OPLUS = 150; - public static final int ID_OR = 151; - public static final int ID_ORDF = 152; - public static final int ID_ORDM = 153; - public static final int ID_OSLASH_L = 154; - public static final int ID_OSLASH_U = 155; - public static final int ID_OTILDE_L = 156; - public static final int ID_OTILDE_U = 157; - public static final int ID_OTIMES = 158; - public static final int ID_OUML_L = 159; - public static final int ID_OUML_U = 160; - public static final int ID_PARA = 161; - public static final int ID_PART = 162; - public static final int ID_PERMIL = 163; - public static final int ID_PERP = 164; - public static final int ID_PHI_L = 165; - public static final int ID_PHI_U = 166; - public static final int ID_PIV = 167; - public static final int ID_PI_L = 168; - public static final int ID_PI_U = 169; - public static final int ID_PLUSMN = 170; - public static final int ID_POUND = 171; - public static final int ID_PRIME_L = 172; - public static final int ID_PRIME_U = 173; - public static final int ID_PROD = 174; - public static final int ID_PROP = 175; - public static final int ID_PSI_L = 176; - public static final int ID_PSI_U = 177; - public static final int ID_QUOT = 178; - public static final int ID_RADIC = 179; - public static final int ID_RANG = 180; - public static final int ID_RAQUO = 181; - public static final int ID_RARR_L = 182; - public static final int ID_RARR_U = 183; - public static final int ID_RCEIL = 184; - public static final int ID_RDQUO = 185; - public static final int ID_REAL = 186; - public static final int ID_REG = 187; - public static final int ID_RFLOOR = 188; - public static final int ID_RHO_L = 189; - public static final int ID_RHO_U = 190; - public static final int ID_RLM = 191; - public static final int ID_RSAQUO = 192; - public static final int ID_RSQUO = 193; - public static final int ID_SBQUO = 194; - public static final int ID_SCARON_L = 195; - public static final int ID_SCARON_U = 196; - public static final int ID_SDOT = 197; - public static final int ID_SECT = 198; - public static final int ID_SHY = 199; - public static final int ID_SIGMAF = 200; - public static final int ID_SIGMA_L = 201; - public static final int ID_SIGMA_U = 202; - public static final int ID_SIM = 203; - public static final int ID_SPADES = 204; - public static final int ID_SUB = 205; - public static final int ID_SUBE = 206; - public static final int ID_SUM = 207; - public static final int ID_SUP = 208; - public static final int ID_SUP1 = 209; - public static final int ID_SUP2 = 210; - public static final int ID_SUP3 = 211; - public static final int ID_SUPE = 212; - public static final int ID_SZLIG = 213; - public static final int ID_TAU_L = 214; - public static final int ID_TAU_U = 215; - public static final int ID_THERE4 = 216; - public static final int ID_THETASYM = 217; - public static final int ID_THETA_L = 218; - public static final int ID_THETA_U = 219; - public static final int ID_THINSP = 220; - public static final int ID_THORN_L = 221; - public static final int ID_THORN_U = 222; - public static final int ID_TILDE = 223; - public static final int ID_TIMES = 224; - public static final int ID_TRADE = 225; - public static final int ID_UACUTE_L = 226; - public static final int ID_UACUTE_U = 227; - public static final int ID_UARR_L = 228; - public static final int ID_UARR_U = 229; - public static final int ID_UCIRC_L = 230; - public static final int ID_UCIRC_U = 231; - public static final int ID_UGRAVE_L = 232; - public static final int ID_UGRAVE_U = 233; - public static final int ID_UML = 234; - public static final int ID_UPSIH = 235; - public static final int ID_UPSILON_L = 236; - public static final int ID_UPSILON_U = 237; - public static final int ID_UUML_L = 238; - public static final int ID_UUML_U = 239; - public static final int ID_WEIERP = 240; - public static final int ID_XI_L = 241; - public static final int ID_XI_U = 242; - public static final int ID_YACUTE_L = 243; - public static final int ID_YACUTE_U = 244; - public static final int ID_YEN = 245; - public static final int ID_YUML_L = 246; - public static final int ID_YUML_U = 247; - public static final int ID_ZETA_L = 248; - public static final int ID_ZETA_U = 249; - public static final int ID_ZWJ = 250; - public static final int ID_ZWNJ = 251; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 252. - // -- 5/24/2001 - Class clazz = Ids.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - private static String[] names = null; - - static { - names = new String[Ids.getNumOfIds()]; - names[Ids.ID_AACUTE_L] = AACUTE_L; - names[Ids.ID_AACUTE_U] = AACUTE_U; - names[Ids.ID_ACIRC_L] = ACIRC_L; - names[Ids.ID_ACIRC_U] = ACIRC_U; - names[Ids.ID_ACUTE] = ACUTE; - names[Ids.ID_AELIG_L] = AELIG_L; - names[Ids.ID_AELIG_U] = AELIG_U; - names[Ids.ID_AGRAVE_L] = AGRAVE_L; - names[Ids.ID_AGRAVE_U] = AGRAVE_U; - names[Ids.ID_ALEFSYM] = ALEFSYM; - names[Ids.ID_ALPHA_L] = ALPHA_L; - names[Ids.ID_ALPHA_U] = ALPHA_U; - names[Ids.ID_AMP] = AMP; - names[Ids.ID_AND] = AND; - names[Ids.ID_ANG] = ANG; - names[Ids.ID_ARING_L] = ARING_L; - names[Ids.ID_ARING_U] = ARING_U; - names[Ids.ID_ASYMP] = ASYMP; - names[Ids.ID_ATILDE_L] = ATILDE_L; - names[Ids.ID_ATILDE_U] = ATILDE_U; - names[Ids.ID_AUML_L] = AUML_L; - names[Ids.ID_AUML_U] = AUML_U; - names[Ids.ID_BDQUO] = BDQUO; - names[Ids.ID_BETA_L] = BETA_L; - names[Ids.ID_BETA_U] = BETA_U; - names[Ids.ID_BRVBAR] = BRVBAR; - names[Ids.ID_BULL] = BULL; - names[Ids.ID_CAP] = CAP; - names[Ids.ID_CCEDIL_L] = CCEDIL_L; - names[Ids.ID_CCEDIL_U] = CCEDIL_U; - names[Ids.ID_CEDIL] = CEDIL; - names[Ids.ID_CENT] = CENT; - names[Ids.ID_CHI_L] = CHI_L; - names[Ids.ID_CHI_U] = CHI_U; - names[Ids.ID_CIRC] = CIRC; - names[Ids.ID_CLUBS] = CLUBS; - names[Ids.ID_CONG] = CONG; - names[Ids.ID_COPY] = COPY; - names[Ids.ID_CRARR] = CRARR; - names[Ids.ID_CUP] = CUP; - names[Ids.ID_CURREN] = CURREN; - names[Ids.ID_DAGGER_L] = DAGGER_L; - names[Ids.ID_DAGGER_U] = DAGGER_U; - names[Ids.ID_DARR_L] = DARR_L; - names[Ids.ID_DARR_U] = DARR_U; - names[Ids.ID_DEG] = DEG; - names[Ids.ID_DELTA_L] = DELTA_L; - names[Ids.ID_DELTA_U] = DELTA_U; - names[Ids.ID_DIAMS] = DIAMS; - names[Ids.ID_DIVIDE] = DIVIDE; - names[Ids.ID_EACUTE_L] = EACUTE_L; - names[Ids.ID_EACUTE_U] = EACUTE_U; - names[Ids.ID_ECIRC_L] = ECIRC_L; - names[Ids.ID_ECIRC_U] = ECIRC_U; - names[Ids.ID_EGRAVE_L] = EGRAVE_L; - names[Ids.ID_EGRAVE_U] = EGRAVE_U; - names[Ids.ID_EMPTY] = EMPTY; - names[Ids.ID_EMSP] = EMSP; - names[Ids.ID_ENSP] = ENSP; - names[Ids.ID_EPSILON_L] = EPSILON_L; - names[Ids.ID_EPSILON_U] = EPSILON_U; - names[Ids.ID_EQUIV] = EQUIV; - names[Ids.ID_ETA_L] = ETA_L; - names[Ids.ID_ETA_U] = ETA_U; - names[Ids.ID_ETH_L] = ETH_L; - names[Ids.ID_ETH_U] = ETH_U; - names[Ids.ID_EUML_L] = EUML_L; - names[Ids.ID_EUML_U] = EUML_U; - names[Ids.ID_EURO] = EURO; - names[Ids.ID_EXIST] = EXIST; - names[Ids.ID_FNOF] = FNOF; - names[Ids.ID_FORALL] = FORALL; - names[Ids.ID_FRAC12] = FRAC12; - names[Ids.ID_FRAC14] = FRAC14; - names[Ids.ID_FRAC34] = FRAC34; - names[Ids.ID_FRASL] = FRASL; - names[Ids.ID_GAMMA_L] = GAMMA_L; - names[Ids.ID_GAMMA_U] = GAMMA_U; - names[Ids.ID_GE] = GE; - names[Ids.ID_GT] = GT; - names[Ids.ID_HARR_L] = HARR_L; - names[Ids.ID_HARR_U] = HARR_U; - names[Ids.ID_HEARTS] = HEARTS; - names[Ids.ID_HELLIP] = HELLIP; - names[Ids.ID_IACUTE_L] = IACUTE_L; - names[Ids.ID_IACUTE_U] = IACUTE_U; - names[Ids.ID_ICIRC_L] = ICIRC_L; - names[Ids.ID_ICIRC_U] = ICIRC_U; - names[Ids.ID_IEXCL] = IEXCL; - names[Ids.ID_IGRAVE_L] = IGRAVE_L; - names[Ids.ID_IGRAVE_U] = IGRAVE_U; - names[Ids.ID_IMAGE] = IMAGE; - names[Ids.ID_INFIN] = INFIN; - names[Ids.ID_INT] = INT; - names[Ids.ID_IOTA_L] = IOTA_L; - names[Ids.ID_IOTA_U] = IOTA_U; - names[Ids.ID_IQUEST] = IQUEST; - names[Ids.ID_ISIN] = ISIN; - names[Ids.ID_IUML_L] = IUML_L; - names[Ids.ID_IUML_U] = IUML_U; - names[Ids.ID_KAPPA_L] = KAPPA_L; - names[Ids.ID_KAPPA_U] = KAPPA_U; - names[Ids.ID_LAMBDA_L] = LAMBDA_L; - names[Ids.ID_LAMBDA_U] = LAMBDA_U; - names[Ids.ID_LANG] = LANG; - names[Ids.ID_LAQUO] = LAQUO; - names[Ids.ID_LARR_L] = LARR_L; - names[Ids.ID_LARR_U] = LARR_U; - names[Ids.ID_LCEIL] = LCEIL; - names[Ids.ID_LDQUO] = LDQUO; - names[Ids.ID_LE] = LE; - names[Ids.ID_LFLOOR] = LFLOOR; - names[Ids.ID_LOWAST] = LOWAST; - names[Ids.ID_LOZ] = LOZ; - names[Ids.ID_LRM] = LRM; - names[Ids.ID_LSAQUO] = LSAQUO; - names[Ids.ID_LSQUO] = LSQUO; - names[Ids.ID_LT] = LT; - names[Ids.ID_MACR] = MACR; - names[Ids.ID_MDASH] = MDASH; - names[Ids.ID_MICRO] = MICRO; - names[Ids.ID_MIDDOT] = MIDDOT; - names[Ids.ID_MINUS] = MINUS; - names[Ids.ID_MU_L] = MU_L; - names[Ids.ID_MU_U] = MU_U; - names[Ids.ID_NABLA] = NABLA; - names[Ids.ID_NBSP] = NBSP; - names[Ids.ID_NDASH] = NDASH; - names[Ids.ID_NE] = NE; - names[Ids.ID_NI] = NI; - names[Ids.ID_NOT] = NOT; - names[Ids.ID_NOTIN] = NOTIN; - names[Ids.ID_NSUB] = NSUB; - names[Ids.ID_NTILDE_L] = NTILDE_L; - names[Ids.ID_NTILDE_U] = NTILDE_U; - names[Ids.ID_NU_L] = NU_L; - names[Ids.ID_NU_U] = NU_U; - names[Ids.ID_OACUTE_L] = OACUTE_L; - names[Ids.ID_OACUTE_U] = OACUTE_U; - names[Ids.ID_OCIRC_L] = OCIRC_L; - names[Ids.ID_OCIRC_U] = OCIRC_U; - names[Ids.ID_OELIG_L] = OELIG_L; - names[Ids.ID_OELIG_U] = OELIG_U; - names[Ids.ID_OGRAVE_L] = OGRAVE_L; - names[Ids.ID_OGRAVE_U] = OGRAVE_U; - names[Ids.ID_OLINE] = OLINE; - names[Ids.ID_OMEGA_L] = OMEGA_L; - names[Ids.ID_OMEGA_U] = OMEGA_U; - names[Ids.ID_OMICRON_L] = OMICRON_L; - names[Ids.ID_OMICRON_U] = OMICRON_U; - names[Ids.ID_OPLUS] = OPLUS; - names[Ids.ID_OR] = OR; - names[Ids.ID_ORDF] = ORDF; - names[Ids.ID_ORDM] = ORDM; - names[Ids.ID_OSLASH_L] = OSLASH_L; - names[Ids.ID_OSLASH_U] = OSLASH_U; - names[Ids.ID_OTILDE_L] = OTILDE_L; - names[Ids.ID_OTILDE_U] = OTILDE_U; - names[Ids.ID_OTIMES] = OTIMES; - names[Ids.ID_OUML_L] = OUML_L; - names[Ids.ID_OUML_U] = OUML_U; - names[Ids.ID_PARA] = PARA; - names[Ids.ID_PART] = PART; - names[Ids.ID_PERMIL] = PERMIL; - names[Ids.ID_PERP] = PERP; - names[Ids.ID_PHI_L] = PHI_L; - names[Ids.ID_PHI_U] = PHI_U; - names[Ids.ID_PIV] = PIV; - names[Ids.ID_PI_L] = PI_L; - names[Ids.ID_PI_U] = PI_U; - names[Ids.ID_PLUSMN] = PLUSMN; - names[Ids.ID_POUND] = POUND; - names[Ids.ID_PRIME_L] = PRIME_L; - names[Ids.ID_PRIME_U] = PRIME_U; - names[Ids.ID_PROD] = PROD; - names[Ids.ID_PROP] = PROP; - names[Ids.ID_PSI_L] = PSI_L; - names[Ids.ID_PSI_U] = PSI_U; - names[Ids.ID_QUOT] = QUOT; - names[Ids.ID_RADIC] = RADIC; - names[Ids.ID_RANG] = RANG; - names[Ids.ID_RAQUO] = RAQUO; - names[Ids.ID_RARR_L] = RARR_L; - names[Ids.ID_RARR_U] = RARR_U; - names[Ids.ID_RCEIL] = RCEIL; - names[Ids.ID_RDQUO] = RDQUO; - names[Ids.ID_REAL] = REAL; - names[Ids.ID_REG] = REG; - names[Ids.ID_RFLOOR] = RFLOOR; - names[Ids.ID_RHO_L] = RHO_L; - names[Ids.ID_RHO_U] = RHO_U; - names[Ids.ID_RLM] = RLM; - names[Ids.ID_RSAQUO] = RSAQUO; - names[Ids.ID_RSQUO] = RSQUO; - names[Ids.ID_SBQUO] = SBQUO; - names[Ids.ID_SCARON_L] = SCARON_L; - names[Ids.ID_SCARON_U] = SCARON_U; - names[Ids.ID_SDOT] = SDOT; - names[Ids.ID_SECT] = SECT; - names[Ids.ID_SHY] = SHY; - names[Ids.ID_SIGMAF] = SIGMAF; - names[Ids.ID_SIGMA_L] = SIGMA_L; - names[Ids.ID_SIGMA_U] = SIGMA_U; - names[Ids.ID_SIM] = SIM; - names[Ids.ID_SPADES] = SPADES; - names[Ids.ID_SUB] = SUB; - names[Ids.ID_SUBE] = SUBE; - names[Ids.ID_SUM] = SUM; - names[Ids.ID_SUP] = SUP; - names[Ids.ID_SUP1] = SUP1; - names[Ids.ID_SUP2] = SUP2; - names[Ids.ID_SUP3] = SUP3; - names[Ids.ID_SUPE] = SUPE; - names[Ids.ID_SZLIG] = SZLIG; - names[Ids.ID_TAU_L] = TAU_L; - names[Ids.ID_TAU_U] = TAU_U; - names[Ids.ID_THERE4] = THERE4; - names[Ids.ID_THETASYM] = THETASYM; - names[Ids.ID_THETA_L] = THETA_L; - names[Ids.ID_THETA_U] = THETA_U; - names[Ids.ID_THINSP] = THINSP; - names[Ids.ID_THORN_L] = THORN_L; - names[Ids.ID_THORN_U] = THORN_U; - names[Ids.ID_TILDE] = TILDE; - names[Ids.ID_TIMES] = TIMES; - names[Ids.ID_TRADE] = TRADE; - names[Ids.ID_UACUTE_L] = UACUTE_L; - names[Ids.ID_UACUTE_U] = UACUTE_U; - names[Ids.ID_UARR_L] = UARR_L; - names[Ids.ID_UARR_U] = UARR_U; - names[Ids.ID_UCIRC_L] = UCIRC_L; - names[Ids.ID_UCIRC_U] = UCIRC_U; - names[Ids.ID_UGRAVE_L] = UGRAVE_L; - names[Ids.ID_UGRAVE_U] = UGRAVE_U; - names[Ids.ID_UML] = UML; - names[Ids.ID_UPSIH] = UPSIH; - names[Ids.ID_UPSILON_L] = UPSILON_L; - names[Ids.ID_UPSILON_U] = UPSILON_U; - names[Ids.ID_UUML_L] = UUML_L; - names[Ids.ID_UUML_U] = UUML_U; - names[Ids.ID_WEIERP] = WEIERP; - names[Ids.ID_XI_L] = XI_L; - names[Ids.ID_XI_U] = XI_U; - names[Ids.ID_YACUTE_L] = YACUTE_L; - names[Ids.ID_YACUTE_U] = YACUTE_U; - names[Ids.ID_YEN] = YEN; - names[Ids.ID_YUML_L] = YUML_L; - names[Ids.ID_YUML_U] = YUML_U; - names[Ids.ID_ZETA_L] = ZETA_L; - names[Ids.ID_ZETA_U] = ZETA_U; - names[Ids.ID_ZWJ] = ZWJ; - names[Ids.ID_ZWNJ] = ZWNJ; - } - private static char[] values = null; - - static { - values = new char[Ids.getNumOfIds()]; - values[Ids.ID_AACUTE_L] = 225; - values[Ids.ID_AACUTE_U] = 193; - values[Ids.ID_ACIRC_L] = 226; - values[Ids.ID_ACIRC_U] = 194; - values[Ids.ID_ACUTE] = 180; - values[Ids.ID_AELIG_L] = 230; - values[Ids.ID_AELIG_U] = 198; - values[Ids.ID_AGRAVE_L] = 224; - values[Ids.ID_AGRAVE_U] = 192; - values[Ids.ID_ALEFSYM] = 8501; - values[Ids.ID_ALPHA_L] = 945; - values[Ids.ID_ALPHA_U] = 913; - values[Ids.ID_AMP] = 38; - values[Ids.ID_AND] = 8743; - values[Ids.ID_ANG] = 8736; - values[Ids.ID_ARING_L] = 229; - values[Ids.ID_ARING_U] = 197; - values[Ids.ID_ASYMP] = 8776; - values[Ids.ID_ATILDE_L] = 227; - values[Ids.ID_ATILDE_U] = 195; - values[Ids.ID_AUML_L] = 228; - values[Ids.ID_AUML_U] = 196; - values[Ids.ID_BDQUO] = 8222; - values[Ids.ID_BETA_L] = 946; - values[Ids.ID_BETA_U] = 914; - values[Ids.ID_BRVBAR] = 166; - values[Ids.ID_BULL] = 8226; - values[Ids.ID_CAP] = 8745; - values[Ids.ID_CCEDIL_L] = 231; - values[Ids.ID_CCEDIL_U] = 199; - values[Ids.ID_CEDIL] = 184; - values[Ids.ID_CENT] = 162; - values[Ids.ID_CHI_L] = 967; - values[Ids.ID_CHI_U] = 935; - values[Ids.ID_CIRC] = 710; - values[Ids.ID_CLUBS] = 9827; - values[Ids.ID_CONG] = 8773; - values[Ids.ID_COPY] = 169; - values[Ids.ID_CRARR] = 8629; - values[Ids.ID_CUP] = 8746; - values[Ids.ID_CURREN] = 164; - values[Ids.ID_DAGGER_L] = 8224; - values[Ids.ID_DAGGER_U] = 8225; - values[Ids.ID_DARR_L] = 8595; - values[Ids.ID_DARR_U] = 8659; - values[Ids.ID_DEG] = 176; - values[Ids.ID_DELTA_L] = 948; - values[Ids.ID_DELTA_U] = 916; - values[Ids.ID_DIAMS] = 9830; - values[Ids.ID_DIVIDE] = 247; - values[Ids.ID_EACUTE_L] = 233; - values[Ids.ID_EACUTE_U] = 201; - values[Ids.ID_ECIRC_L] = 234; - values[Ids.ID_ECIRC_U] = 202; - values[Ids.ID_EGRAVE_L] = 232; - values[Ids.ID_EGRAVE_U] = 200; - values[Ids.ID_EMPTY] = 8709; - values[Ids.ID_EMSP] = 8195; - values[Ids.ID_ENSP] = 8194; - values[Ids.ID_EPSILON_L] = 949; - values[Ids.ID_EPSILON_U] = 917; - values[Ids.ID_EQUIV] = 8801; - values[Ids.ID_ETA_L] = 951; - values[Ids.ID_ETA_U] = 919; - values[Ids.ID_ETH_L] = 240; - values[Ids.ID_ETH_U] = 208; - values[Ids.ID_EUML_L] = 235; - values[Ids.ID_EUML_U] = 203; - values[Ids.ID_EURO] = 8364; - values[Ids.ID_EXIST] = 8707; - values[Ids.ID_FNOF] = 402; - values[Ids.ID_FORALL] = 8704; - values[Ids.ID_FRAC12] = 189; - values[Ids.ID_FRAC14] = 188; - values[Ids.ID_FRAC34] = 190; - values[Ids.ID_FRASL] = 8260; - values[Ids.ID_GAMMA_L] = 947; - values[Ids.ID_GAMMA_U] = 915; - values[Ids.ID_GE] = 8805; - values[Ids.ID_GT] = 62; - values[Ids.ID_HARR_L] = 8596; - values[Ids.ID_HARR_U] = 8660; - values[Ids.ID_HEARTS] = 9829; - values[Ids.ID_HELLIP] = 8230; - values[Ids.ID_IACUTE_L] = 237; - values[Ids.ID_IACUTE_U] = 205; - values[Ids.ID_ICIRC_L] = 238; - values[Ids.ID_ICIRC_U] = 206; - values[Ids.ID_IEXCL] = 161; - values[Ids.ID_IGRAVE_L] = 236; - values[Ids.ID_IGRAVE_U] = 204; - values[Ids.ID_IMAGE] = 8465; - values[Ids.ID_INFIN] = 8734; - values[Ids.ID_INT] = 8747; - values[Ids.ID_IOTA_L] = 953; - values[Ids.ID_IOTA_U] = 921; - values[Ids.ID_IQUEST] = 191; - values[Ids.ID_ISIN] = 8712; - values[Ids.ID_IUML_L] = 239; - values[Ids.ID_IUML_U] = 207; - values[Ids.ID_KAPPA_L] = 954; - values[Ids.ID_KAPPA_U] = 922; - values[Ids.ID_LAMBDA_L] = 955; - values[Ids.ID_LAMBDA_U] = 923; - values[Ids.ID_LANG] = 9001; - values[Ids.ID_LAQUO] = 171; - values[Ids.ID_LARR_L] = 8592; - values[Ids.ID_LARR_U] = 8656; - values[Ids.ID_LCEIL] = 8968; - values[Ids.ID_LDQUO] = 8220; - values[Ids.ID_LE] = 8804; - values[Ids.ID_LFLOOR] = 8970; - values[Ids.ID_LOWAST] = 8727; - values[Ids.ID_LOZ] = 9674; - values[Ids.ID_LRM] = 8206; - values[Ids.ID_LSAQUO] = 8249; - values[Ids.ID_LSQUO] = 8216; - values[Ids.ID_LT] = 60; - values[Ids.ID_MACR] = 175; - values[Ids.ID_MDASH] = 8212; - values[Ids.ID_MICRO] = 181; - values[Ids.ID_MIDDOT] = 183; - values[Ids.ID_MINUS] = 8722; - values[Ids.ID_MU_L] = 956; - values[Ids.ID_MU_U] = 924; - values[Ids.ID_NABLA] = 8711; - values[Ids.ID_NBSP] = 160; - values[Ids.ID_NDASH] = 8211; - values[Ids.ID_NE] = 8800; - values[Ids.ID_NI] = 8715; - values[Ids.ID_NOT] = 172; - values[Ids.ID_NOTIN] = 8713; - values[Ids.ID_NSUB] = 8836; - values[Ids.ID_NTILDE_L] = 241; - values[Ids.ID_NTILDE_U] = 209; - values[Ids.ID_NU_L] = 957; - values[Ids.ID_NU_U] = 925; - values[Ids.ID_OACUTE_L] = 243; - values[Ids.ID_OACUTE_U] = 211; - values[Ids.ID_OCIRC_L] = 244; - values[Ids.ID_OCIRC_U] = 212; - values[Ids.ID_OELIG_L] = 339; - values[Ids.ID_OELIG_U] = 338; - values[Ids.ID_OGRAVE_L] = 242; - values[Ids.ID_OGRAVE_U] = 210; - values[Ids.ID_OLINE] = 8254; - values[Ids.ID_OMEGA_L] = 969; - values[Ids.ID_OMEGA_U] = 937; - values[Ids.ID_OMICRON_L] = 959; - values[Ids.ID_OMICRON_U] = 927; - values[Ids.ID_OPLUS] = 8853; - values[Ids.ID_OR] = 8744; - values[Ids.ID_ORDF] = 170; - values[Ids.ID_ORDM] = 186; - values[Ids.ID_OSLASH_L] = 248; - values[Ids.ID_OSLASH_U] = 216; - values[Ids.ID_OTILDE_L] = 245; - values[Ids.ID_OTILDE_U] = 213; - values[Ids.ID_OTIMES] = 8855; - values[Ids.ID_OUML_L] = 246; - values[Ids.ID_OUML_U] = 214; - values[Ids.ID_PARA] = 182; - values[Ids.ID_PART] = 8706; - values[Ids.ID_PERMIL] = 8240; - values[Ids.ID_PERP] = 8869; - values[Ids.ID_PHI_L] = 966; - values[Ids.ID_PHI_U] = 934; - values[Ids.ID_PIV] = 982; - values[Ids.ID_PI_L] = 960; - values[Ids.ID_PI_U] = 928; - values[Ids.ID_PLUSMN] = 177; - values[Ids.ID_POUND] = 163; - values[Ids.ID_PRIME_L] = 8242; - values[Ids.ID_PRIME_U] = 8243; - values[Ids.ID_PROD] = 8719; - values[Ids.ID_PROP] = 8733; - values[Ids.ID_PSI_L] = 968; - values[Ids.ID_PSI_U] = 936; - values[Ids.ID_QUOT] = 34; - values[Ids.ID_RADIC] = 8730; - values[Ids.ID_RANG] = 9002; - values[Ids.ID_RAQUO] = 187; - values[Ids.ID_RARR_L] = 8594; - values[Ids.ID_RARR_U] = 8658; - values[Ids.ID_RCEIL] = 8969; - values[Ids.ID_RDQUO] = 8221; - values[Ids.ID_REAL] = 8476; - values[Ids.ID_REG] = 174; - values[Ids.ID_RFLOOR] = 8971; - values[Ids.ID_RHO_L] = 961; - values[Ids.ID_RHO_U] = 929; - values[Ids.ID_RLM] = 8207; - values[Ids.ID_RSAQUO] = 8250; - values[Ids.ID_RSQUO] = 8217; - values[Ids.ID_SBQUO] = 8218; - values[Ids.ID_SCARON_L] = 353; - values[Ids.ID_SCARON_U] = 352; - values[Ids.ID_SDOT] = 8901; - values[Ids.ID_SECT] = 167; - values[Ids.ID_SHY] = 173; - values[Ids.ID_SIGMAF] = 962; - values[Ids.ID_SIGMA_L] = 963; - values[Ids.ID_SIGMA_U] = 931; - values[Ids.ID_SIM] = 8764; - values[Ids.ID_SPADES] = 9824; - values[Ids.ID_SUB] = 8834; - values[Ids.ID_SUBE] = 8838; - values[Ids.ID_SUM] = 8721; - values[Ids.ID_SUP] = 8835; - values[Ids.ID_SUP1] = 185; - values[Ids.ID_SUP2] = 178; - values[Ids.ID_SUP3] = 179; - values[Ids.ID_SUPE] = 8839; - values[Ids.ID_SZLIG] = 223; - values[Ids.ID_TAU_L] = 964; - values[Ids.ID_TAU_U] = 932; - values[Ids.ID_THERE4] = 8756; - values[Ids.ID_THETASYM] = 977; - values[Ids.ID_THETA_L] = 952; - values[Ids.ID_THETA_U] = 920; - values[Ids.ID_THINSP] = 8201; - values[Ids.ID_THORN_L] = 254; - values[Ids.ID_THORN_U] = 222; - values[Ids.ID_TILDE] = 732; - values[Ids.ID_TIMES] = 215; - values[Ids.ID_TRADE] = 8482; - values[Ids.ID_UACUTE_L] = 250; - values[Ids.ID_UACUTE_U] = 218; - values[Ids.ID_UARR_L] = 8593; - values[Ids.ID_UARR_U] = 8657; - values[Ids.ID_UCIRC_L] = 251; - values[Ids.ID_UCIRC_U] = 219; - values[Ids.ID_UGRAVE_L] = 249; - values[Ids.ID_UGRAVE_U] = 217; - values[Ids.ID_UML] = 168; - values[Ids.ID_UPSIH] = 978; - values[Ids.ID_UPSILON_L] = 965; - values[Ids.ID_UPSILON_U] = 933; - values[Ids.ID_UUML_L] = 252; - values[Ids.ID_UUML_U] = 220; - values[Ids.ID_WEIERP] = 8472; - values[Ids.ID_XI_L] = 958; - values[Ids.ID_XI_U] = 926; - values[Ids.ID_YACUTE_L] = 253; - values[Ids.ID_YACUTE_U] = 221; - values[Ids.ID_YEN] = 165; - values[Ids.ID_YUML_L] = 255; - values[Ids.ID_YUML_U] = 376; - values[Ids.ID_ZETA_L] = 950; - values[Ids.ID_ZETA_U] = 918; - values[Ids.ID_ZWJ] = 8205; - values[Ids.ID_ZWNJ] = 8204; - } - - /** - */ - public EntityCollection() { - super(names, STRICT_CASE); - } - - /** - * Create an entity declaration. - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param attrName java.lang.String - */ - protected CMNode create(String entityName) { - int id = getID(entityName); - if (id == ID_UNKNOWN) - return null; - - String value = String.valueOf(values[id]); - HTMLEntityDeclImpl dec = new HTMLEntityDeclImpl(entityName, value); - - return dec; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java deleted file mode 100644 index 0ba233aa50..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * CMDocument implementation for the HTML. - */ -class HCMDocImpl extends CMNodeImpl implements HTMLCMDocument { - - /** Namespace for all names of elements, entities and attributes. */ - private CMNamespaceImpl namespace = null; - private ElementCollection elements = null; - private EntityCollection entities = null; - private AttributeCollection attributes = null; - - /** - */ - public HCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) { - super(docTypeName); - namespace = targetNamespace; - attributes = new AttributeCollection(); - elements = new ElementCollection(attributes); - entities = new EntityCollection(); - } - - AttributeCollection getAttributes() { - return attributes; - } - - public HTMLElementDeclaration getElementDeclaration(String elementName) { - if (elements == null) - return null; - return (HTMLElementDeclaration) elements.getNamedItem(elementName); - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public CMNamedNodeMap getElements() { - return elements; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public CMNamedNodeMap getEntities() { - return entities; - } - - public HTMLEntityDeclaration getEntityDeclaration(String entityName) { - if (entities == null) - return null; - return (HTMLEntityDeclaration) entities.getNamedItem(entityName); - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public CMNamespace getNamespace() { - return namespace; - } - - /** - * @see CMNode - */ - public int getNodeType() { - return CMNode.DOCUMENT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java deleted file mode 100644 index ce938e3467..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Enumeration; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Implementation class of {@link <code>HTMLAttributeDeclaration</code>} interface.<br> - */ -class HTMLAttrDeclImpl extends CMNodeImpl implements HTMLAttributeDeclaration { - - private HTMLCMDataTypeImpl type = null; - private int usage = 0; - - /** - */ - public HTMLAttrDeclImpl(String attrName, HTMLCMDataTypeImpl valueType, int valueUsage) { - super(attrName); - this.type = valueType; - - switch (valueUsage) { - case OPTIONAL : - case REQUIRED : - case FIXED : - case PROHIBITED : - this.usage = valueUsage; - break; - default : - // should warn... - this.usage = OPTIONAL; // fall back - break; - } - } - - /** - * getAttrName method - * @return java.lang.String - */ - public String getAttrName() { - return getNodeName(); - } - - /** - * getAttrType method - * @return CMDataType - */ - public CMDataType getAttrType() { - return type; - } - - /** - * @deprecated by superinterface - */ - public String getDefaultValue() { - if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT) - return null; - return type.getImpliedValue(); - } - - /** - * @deprecated by superinterface - */ - public Enumeration getEnumAttr() { - Vector v = new Vector(Arrays.asList(type.getEnumeratedValues())); - return v.elements(); - } - - /** - * getNodeType method - * @return int - * - * Returns one of : - * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.ATTRIBUTE_DECLARATION; - } - - /** - * @return int - */ - public int getUsage() { - return usage; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return true; - else if (propertyName.equals(HTMLCMProperties.IS_SCRIPTABLE)) - return true; - return super.supports(propertyName); - } - - /** - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return new Boolean(true); - else if (propertyName.equals(HTMLCMProperties.IS_SCRIPTABLE)) { - return getAttrType().getDataTypeName() == HTMLCMDataType.SCRIPT ? new Boolean(true) : new Boolean(false); - } - return super.getProperty(propertyName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java deleted file mode 100644 index 675dc59adf..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - - - -/** - * This interface is intended to be a public interface which has - * interfaces defined in both of {@link <code>CMAttributeDeclaration</code>} - * and {@link <code>HTMLCMNode</code>}.<br> - */ -public interface HTMLAttributeDeclaration extends CMAttributeDeclaration { - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java deleted file mode 100644 index fba0b86e75..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * HTML extension for data types. - */ -public interface HTMLCMDataType extends CMDataType { - - /** Boolean; it should be defined in CMDataType. */ - public static final String BOOLEAN = "BOOLEAN"; //$NON-NLS-1$ - public static final String COLOR = "COLOR"; //$NON-NLS-1$ - public static final String EVENT = "EVENT"; //$NON-NLS-1$ - public static final String IDREFS = "IDREFS"; //$NON-NLS-1$ - /** Name; it should be defined in CMDataType. */ - public static final String NAME = "NAME"; //$NON-NLS-1$ - // Following types are just aliases. - /** %Character; == CDATA */ - public static final String CHARACTER = CMDataType.CDATA; - /** %Charset; == CDATA */ - public static final String CHARSET = CMDataType.CDATA; - /** %Charsets; == CDATA */ - public static final String CHARSETS = CMDataType.CDATA; - /** %ContentType; == CDATA */ - public static final String CONTENT_TYPE = CMDataType.CDATA; - /** %Coords; == CDATA */ - public static final String COORDS = CMDataType.CDATA; - /** %Datetime; == CDATA */ - public static final String DATETIME = CMDataType.CDATA; - /** %FrameTarget; == CDATA */ - public static final String FRAME_TARGET = CMDataType.CDATA; - /** %LanguageCode; == NAME */ - public static final String LANGUAGE_CODE = NAME; - /** %Length; == CDATA */ - public static final String LENGTH = CMDataType.CDATA; - /** %LinkTypes; == CDATA */ - public static final String LINK_TYPES = CMDataType.CDATA; - /** %LIStyle; == CDATA */ - public static final String LI_STYLE = CMDataType.CDATA; - /** %MediaDesc; == CDATA */ - public static final String MEDIA_DESC = CMDataType.CDATA; - /** %MultiLength; == CDATA */ - public static final String MULTI_LENGTH = CMDataType.CDATA; - /** %OLStyle; == CDATA */ - public static final String OL_STYLE = CMDataType.CDATA; - /** %Pixles; == CDATA */ - public static final String PIXELS = CMDataType.CDATA; - /** %Script; == EVENT */ - public static final String SCRIPT = EVENT; - /** %StyleSheet; == EVENT */ - public static final String STYLE_SHEET = CMDataType.CDATA; - /** %Text; == CDATA */ - public static final String TEXT = CMDataType.CDATA; -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java deleted file mode 100644 index 6e50c743c3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - - - -/** - */ -class HTMLCMDataTypeImpl extends CMNodeImpl implements HTMLCMDataType { - - private int impliedValueKind = IMPLIED_VALUE_NONE; - private String impliedValue = null; - private final static String[] emptyArray = new String[0]; - private String[] enumValues = emptyArray; - private String instanceValue = null; - - /** - * HTMLCMDataTypeImpl constructor comment. - * @param nm java.lang.String - */ - public HTMLCMDataTypeImpl(String typeName) { - super(typeName); - } - - /** - * HTMLCMDataTypeImpl constructor comment. - * @param nm java.lang.String - */ - public HTMLCMDataTypeImpl(String typeName, String instanceValue) { - super(typeName); - this.instanceValue = instanceValue; - } - - /** - * getTypeName method - * @return java.lang.String - * - * This method returns a suitable default value that can be used when an instance of the data type is created. - * This returns null of a suitable default is not available. - */ - public String generateInstanceValue() { - return instanceValue; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDataType - */ - public String getDataTypeName() { - return getNodeName(); - } - - /** - * getTypeName method - * @return java.lang.String[] - * - */ - public String[] getEnumeratedValues() { - return enumValues; - } - - /** - * getTypeName method - * @return java.lang.String - * - * Returns the implied value or null if none exists. - */ - public String getImpliedValue() { - return impliedValue; - } - - /** - * getImpliedValueKind method - * @return int - * - * Returns one of : - * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT. - */ - public int getImpliedValueKind() { - return impliedValueKind; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.DATA_TYPE; - } - - /** - */ - void setEnumValues(String[] values) { - enumValues = new String[values.length]; - for (int i = 0; i < values.length; i++) { - enumValues[i] = values[i]; - } - } - - /** - * package scope. - */ - void setImpliedValue(int kind, String value) { - switch (kind) { - case IMPLIED_VALUE_FIXED : - case IMPLIED_VALUE_DEFAULT : - impliedValueKind = kind; - impliedValue = value; - break; - case IMPLIED_VALUE_NONE : - default : - impliedValueKind = IMPLIED_VALUE_NONE; - impliedValue = null; // maybe a null string? - break; - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java deleted file mode 100644 index af6c7d9838..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; - - - -/** - * HTML extension for CMDocument. - * This interface provides some short hand methods to get declarations - * by a name. - */ -public interface HTMLCMDocument extends CMDocument { - - /** - * A short hand method to get a element declaration for a HTML element.<br> - * @param elementName java.lang.String - */ - HTMLElementDeclaration getElementDeclaration(String elementName); - - /** - * A short hand method to get a entity declaration of HTML documents.<br> - * @param entityName java.lang.String - */ - HTMLEntityDeclaration getEntityDeclaration(String entityName); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java deleted file mode 100644 index 28316ec94d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Hashtable; -import java.util.List; - -import org.eclipse.wst.html.core.internal.contentmodel.chtml.CHCMDocImpl; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; - -/** - * INodeAdapter factory for HTML and JSP documents. - */ -public final class HTMLCMDocumentFactory { - - private static Hashtable cmdocs = new Hashtable(); - private static List supportedCMtypes = Arrays.asList(new Object[]{CMDocType.HTML_DOC_TYPE, CMDocType.CHTML_DOC_TYPE, CMDocType.JSP11_DOC_TYPE, CMDocType.JSP12_DOC_TYPE, CMDocType.JSP20_DOC_TYPE, CMDocType.TAG20_DOC_TYPE}); - - private static JCMDocImpl jsp11doc = null; - - /** - * HTMLCMAdapterFactory constructor. - */ - private HTMLCMDocumentFactory() { - super(); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - * @param cmtype - * java.lang.String - */ - public static CMDocument getCMDocument(String cmtype) { - Object obj = cmdocs.get(cmtype); - if (obj == null && cmtype != null) { - if (supportedCMtypes.contains(cmtype)) { - obj = doCreateCMDocument(cmtype); - cmdocs.put(cmtype, obj); - } - } - - return (CMDocument) obj; - } - - private static Object doCreateCMDocument(String cmtype) { - if (CMDocType.HTML_DOC_TYPE.equals(cmtype)) { - CMNamespaceImpl h40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX); - HCMDocImpl html40doc = new HCMDocImpl(CMDocType.HTML_DOC_TYPE, h40ns); - return html40doc; - } - - else if (CMDocType.JSP20_DOC_TYPE.equals(cmtype)) { - CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX); - JCM20DocImpl jsp20doc = new JCM20DocImpl(CMDocType.JSP20_DOC_TYPE, j20ns); - return jsp20doc; - } - - else if (CMDocType.TAG20_DOC_TYPE.equals(cmtype)) { - CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX); - TagCMDocImpl tag20doc = new TagCMDocImpl(CMDocType.TAG20_DOC_TYPE, j20ns); - return tag20doc; - } - - else if (CMDocType.JSP11_DOC_TYPE.equals(cmtype) || CMDocType.JSP12_DOC_TYPE.equals(cmtype)) { - if (jsp11doc == null) { - CMNamespaceImpl j11ns = new CMNamespaceImpl(JSP11Namespace.JSP11_URI, JSP11Namespace.JSP_TAG_PREFIX); - jsp11doc = new JCMDocImpl(CMDocType.JSP11_DOC_TYPE, j11ns); - } - return jsp11doc; - } - - else if (CMDocType.CHTML_DOC_TYPE.equals(cmtype)) { - CMNamespaceImpl cH40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX); - CHCMDocImpl chtmldoc = new CHCMDocImpl(CMDocType.CHTML_DOC_TYPE, cH40ns); - return chtmldoc; - } - - return null; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java deleted file mode 100644 index a3623ecc1f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - -/** - * In HTML Documents, name and value of an attribute/element/entity - * should be treated ignoring theirs case. However, in XML documents, - * they should be distinguished with sensitiveness of their case. - * CMNode is basically designed to represent DTDs or Schemas for XML - * documents. So, it doesn't have interfaces to retrieve such information. - * However, declarations in the HTML CM should provide such information. - * This intermediate interface is intended to provide whether ignore cases - * or not.<br> - */ -interface HTMLCMNode extends org.eclipse.wst.xml.core.internal.contentmodel.CMNode { - - /** - * Returns <code>true</code>, if declaration is for HTML attribute/element/entity. - * Otherwise, returns <code>false</code>. - * @return boolean - */ - boolean shouldIgnoreCase(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java deleted file mode 100644 index f0b1471a07..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java +++ /dev/null @@ -1,366 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Base class for all Hed???? classes. - */ -abstract class HTMLElemDeclImpl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration { - - // DTD - protected CMNamedNodeMapImpl attributes = null; - protected String typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY; - /** Never access this field directly. Instead, use getComplexTypeDefinition method. */ - private ComplexTypeDefinition typeDefinition = null; - protected CMGroupImpl inclusion = null; - protected CMGroupImpl exclusion = null; - // advanced information - protected CMNamedNodeMap prohibitedAncestors = null; - protected int correctionType = CORRECT_NONE; - protected int formatType = FORMAT_HTML; - protected int layoutType = LAYOUT_NONE; - protected int omitType = OMIT_NONE; - protected boolean keepSpaces = false; - protected boolean indentChild = false; - protected ElementCollection elementCollection = null; - protected AttributeCollection attributeCollection = null; - protected final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() { - public int getLength() { - return 0; - } - - public CMNode getNamedItem(String name) { - return null; - } - - public CMNode item(int index) { - return null; - } - - public Iterator iterator() { - return new Iterator() { - public boolean hasNext() { - return false; - } - - public Object next() { - return null; - } - - public void remove() { - } - }; - } - }; - - /** - * HTMLElemDeclImpl constructor. - * In the HTML DTD, an element declaration has no specification - * for its occurrence. Occurrence is specifed in content model, like - * <code>(LI)+</code>. To avoid confusion (and complexity), - * occurrence of an element declaration is always 1 (it means, min = 1 and - * max = 1). Instead, occurrence of CMGroup represents actual occurrence - * of the content. - * <br> - * @param name java.lang.String - */ - public HTMLElemDeclImpl(String elementName, ElementCollection collection) { - super(elementName, 1, 1); - elementCollection = collection; - attributeCollection = collection.getAttributeCollection(); - } - - /** - */ - protected abstract void createAttributeDeclarations(); - - private ComplexTypeDefinition createComplexTypeDefinition() { - if (typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_CDATA) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_EMPTY) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_PCDATA)) - return null; - - ComplexTypeDefinitionFactory factory = ComplexTypeDefinitionFactory.getInstance(); - if (factory == null) - return null; // fatal error. - - ComplexTypeDefinition def = factory.createTypeDefinition(typeDefinitionName, elementCollection); - return def; - } - - /** - * Get an attribute declaration. - */ - public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) { - if (attributes == null) { - createAttributeDeclarations(); - if (attributes == null) - return null; // fail to create - } - - CMNode cmnode = attributes.getNamedItem(attrName); - if (cmnode == null) { - return null; - } - else { - return (HTMLAttributeDeclaration) cmnode; // already exists. - } - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMNamedNodeMap getAttributes() { - if (attributes == null) - createAttributeDeclarations(); // lazy eval. - return attributes; - } - - /** - * Get an instance of complex type definition. - */ - private ComplexTypeDefinition getComplexTypeDefinition() { - if (typeDefinition == null) - typeDefinition = createComplexTypeDefinition(); - return typeDefinition; - } - - /** - * Content.<br> - * Element declarations which type is EMPTY or CDATA (maybe PCDATA) - * <strong>MUST</strong> override this method and always return null. - * This default implementation always tries to create a complex type definition - * instance and access to it. - * <br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMContent getContent() { - ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval. - return (def != null) ? def.getContent() : null; - } - - /** - * Content type.<br> - * Element declarations which type is EMPTY or CDATA (maybe PCDATA) - * <strong>MUST</strong> override this method and return an appropriate type. - * This default implementation always tries to create a complex type definition - * instance and access to it. - * <br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval. - return (def != null) ? def.getContentType() : CMElementDeclaration.CDATA; - } - - /** - * @see HTMLElementDeclaration#getCorrectionType - */ - public int getCorrectionType() { - return correctionType; - } - - /** - * HTML element doesn't have any data type. So, this method always - * returns <code>null</code>.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMDataType getDataType() { - return null; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public String getElementName() { - return getNodeName(); - } - - /** - * Exclusion. - * Almost elements don't have a exclusion. - * Only classes those have exclusion should override this method. - */ - public CMContent getExclusion() { - return null; - } - - /** - * Default format type is <code>FORMAT_HTML</code>.<br> - */ - public int getFormatType() { - return formatType; - } - - /** - * Inclusion. - * Almost elements don't have a inclusion. - * Only classes those have inclusion should override this method. - */ - public CMContent getInclusion() { - return null; - } - - /** - */ - public int getLayoutType() { - return layoutType; - } - - /** - * Line break hint is strongly related to layout type. - * Indeed, in the C++DOM, it is determined from layout type only. - * So, this implementation, as the default implementation for all declarations, - * also determines from layout type only.<br> - * @return int - */ - public int getLineBreakHint() { - switch (getLayoutType()) { - case HTMLElementDeclaration.LAYOUT_BLOCK : - return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END; - case HTMLElementDeclaration.LAYOUT_BREAK : - return HTMLElementDeclaration.BREAK_AFTER_START; - case HTMLElementDeclaration.LAYOUT_HIDDEN : - return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END; - default : - return HTMLElementDeclaration.BREAK_NONE; - } - } - - /** - * No HTML element has local elements. So, this method always - * returns an empty map. - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMNamedNodeMap getLocalElements() { - return EMPTY_MAP; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.ELEMENT_DECLARATION; - } - - /** - */ - public int getOmitType() { - return omitType; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - return EMPTY_MAP; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return true; - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - ComplexTypeDefinition def = getComplexTypeDefinition(); - return (def != null); - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return false; - return pp.supports(this); - } - - } - - /** - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return new Boolean(true); - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - ComplexTypeDefinition def = getComplexTypeDefinition(); - return (def != null) ? def.getPrimaryCandidate() : null; - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return null; - return pp.get(this); - } - } - - /** - * Return element names which terminates this element.<br> - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return null; - } - - /** - * return true when the element is a JSP element. - */ - public boolean isJSP() { - return false; - } - - /** - * In some elements, such as APPLET, a source generator should indent child - * elements that their parents. That is, a source generator should generate - * source of APPLET and PARAMS like this: - * <PRE> - * <APPLET ...> - * <PARAM ... > - * <PARAM ... > - * </APPLET> - * <PRE> - * @return boolean - */ - public boolean shouldIndentChildSource() { - return indentChild; - } - - /** - * Most of elements can compact spaces in their child text nodes. - * Some special elements should keep them in their source. - * @return boolean - */ - public boolean shouldKeepSpaces() { - return keepSpaces; - } - - /** - * @return boolean - */ - public boolean shouldTerminateAt(HTMLElementDeclaration nextElement) { - Iterator i = getTerminators(); - if (i == null) - return false; - String nextName = nextElement.getElementName(); - while (i.hasNext()) { - if (nextName.equals(i.next())) - return true; - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java deleted file mode 100644 index 8dbf0c8411..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * This interface is intended to be a public interface which has - * interfaces defined in both of {@link <code>CMElementDeclaration</code>} - * and {@link <code>HTMLCMNode</code>}.<br> - * In addition to this, some interfaces are added to this interface, - * those are specially to HTML elements.<br> - */ -public interface HTMLElementDeclaration extends CMElementDeclaration { - - /** Tag ommission; Not ommisible. */ - int OMIT_NONE = 0; - /** Tag ommission; Both tags are ommisible. */ - int OMIT_BOTH = 1; - /** Tag ommission; The end tag is ommisible. */ - int OMIT_END = 2; - /** Tag ommission; The end tag is ommitted when created. */ - int OMIT_END_DEFAULT = 3; - /** Tag ommission; The end tag must be omitted. */ - int OMIT_END_MUST = 4; - /** Line Break; No break. */ - int BREAK_NONE = 10; - /** Line Break; Break after the start tag. */ - int BREAK_AFTER_START = 11; - /** Line Break; Break both before the start tagn and after the end tag. */ - int BREAK_BEFORE_START_AND_AFTER_END = 12; - /* Layout */ - /** initial value; the value should never returns to client programs. */ - int LAYOUT_NONE = 100; - int LAYOUT_BLOCK = 101; - int LAYOUT_WRAP = 102; - /** No wrap object; like IMG, APPLET,... */ - int LAYOUT_OBJECT = 103; - /** BR */ - int LAYOUT_BREAK = 104; - /** Hidden object; like HTML or HEAD */ - int LAYOUT_HIDDEN = 105; - /* Correction */ - /** Correct; No correct. */ - int CORRECT_NONE = 1000; - /** Correct; Meaningless when the content is empty. */ - int CORRECT_EMPTY = 1001; - /** Correct; Meaningless when no attribut is set. */ - int CORRECT_NEUTRAL = 1002; - /** Correct; Meaningless when same element is nested. */ - int CORRECT_DUPLICATED = 1003; - /** Format; HTML */ - int FORMAT_HTML = 10000; - /** Format; SSI */ - int FORMAT_SSI = 10001; - /** Format; JSP script */ - int FORMAT_JSP_SCRIPT = 10002; - /** Format; JSP directive */ - int FORMAT_JSP_DIRECTIVE = 10003; - /** Format; XML */ - int FORMAT_XML = 10004; - /** Format; MW */ - int FORMAT_MW = 10005; - - /** - * A short hand method to get an attribute declaration of a HTML element. - * @param attrName java.lang.String - */ - HTMLAttributeDeclaration getAttributeDeclaration(String attrName); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java deleted file mode 100644 index d43db28d45..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - - - -/** - */ -class HTMLEntityDeclImpl extends CMNodeImpl implements HTMLEntityDeclaration { - - private java.lang.String value = null; - - /** - * CMEntityDeclImpl constructor comment. - * @param entityName java.lang.String; Entity name. - * @param entityValue java.lang.String; Value string. - */ - public HTMLEntityDeclImpl(String entityName, String entityValue) { - super(entityName); - value = entityValue; - } - - /** - * getName method - * @return java.lang.String - */ - public String getName() { - return getNodeName(); - } - - /** - * Get CMNode type.<br> - * @return int; Always return ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.ENTITY_DECLARATION; - } - - /** - * getValue method - * @return java.lang.String - */ - public String getValue() { - return value; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return true; - return super.supports(propertyName); - } - - /** - * Entities in HTML documents are always treated with ignoring cases. - * Because no special entities are defined in JSP 1.0, this method - * can always return <code>true</code>.<br> - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return new Boolean(true); - return super.getProperty(propertyName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java deleted file mode 100644 index 1f7b2d341a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * This interface is intended to be a public interface which has - * interfaces defined in both of {@link <code>CMEntityDeclaration</code>} - * and {@link <code>HTMLCMNode</code>}.<br> - */ -public interface HTMLEntityDeclaration extends org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration { - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java deleted file mode 100644 index 448bfb3747..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * This interface is commonly used in declaration implementation, and internal use. - * Use getProperty() method for public use. - */ -public interface HTMLPropertyDeclaration { - /** - * To determin the type, look up the following keywords in C++DOM/DTDParser.cpp: - * <ul> - * <li>CORRECT_DUPLICATED - <code>GROUP_NODUP</code></li> - * <li>CORRECT_EMPTY - <code>GROUP_COMPACT</code></li> - * <li>CORRECT_NEUTRAL - <code>GROUP_NEUTRAL</code></li> - * <li>CORRECT_NONE - <code>(N/A)</code></li> - * </ul> - * @return int - */ - int getCorrectionType(); - /** - * Get the list of declarations those should be excluded from the content.<br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - CMContent getExclusion(); - /** - * To determin the type, see the following files in the C++DOM: - * ElementType.cpp - ElementType#setGroup(). - * Element.cpp - Element#getStartTag(). - * @return int - */ - int getFormatType(); - /** - * Get the list of declarations those should be included into the content.<br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - CMContent getInclusion(); - /** - * To determin the type, look up the following keywords in C++DOM/DTDParser.cpp: - * <ul> - * <li>LAYOUT_BLOCK - <code>GROUP_BLOCK</code></li> - * <li>LAYOUT_BREAK - <code>GROUP_BREAK</code></li> - * <li>LAYOUT_HIDDEN - <code>GROUP_HIDDEN</code></li> - * <li>LAYOUT_NONE - <code>(N/A)</code></li> - * <li>LAYOUT_OBJECT - <code>GROUP_NOWRAP</code></li> - * <li>LAYOUT_WRAP - <code>(N/A)</code></li> - * </ul> - * @return int - */ - int getLayoutType(); - /** - * To determine the type, see <code>Element::isBreakingBeforeElement()</code> - * and <code>Element::isBreakingAfterElement()</code> defined in C++DOM/Element.cpp.<br> - * @return int - */ - int getLineBreakHint(); - /** - * To determine the type, Check the HTML DTD. - * And look up <code>GROUP_NOEND</code> in C++DOM/DTDParser.cpp.<br> - * @return int - */ - int getOmitType(); - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap - */ - CMNamedNodeMap getProhibitedAncestors(); - /** - * return true when the element is a JSP element. - */ - boolean isJSP(); - /** - * @return boolean - */ - boolean shouldIndentChildSource(); - /** - * Some elements should keep spaces in its child text nodes. - * For example, PRE and TEXTAREA. This method returns true, - * if a target element is one of such elements. - * @return boolean - */ - boolean shouldKeepSpaces(); - /** - * Returns <code>true</code>, if <code>nextElement</code> terminates - * the current element. - * Some elements like <code>P</code> terminates other <code>P</code>. - * That is, when <code><P></code> appears at the next to <code>P</code>, - * which end tags is omitted, it represents not only the beginning of the - * new <code>P</code> element but also the end of the previous <code>P</code>. - */ - boolean shouldTerminateAt(HTMLElementDeclaration nextElement); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java deleted file mode 100644 index 92eb28e7c2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * A. - */ -final class HedA extends HedInlineContainer { - - /** - */ - public HedA(ElementCollection collection) { - super(HTML40Namespace.ElementName.A, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - } - - /** - * %attrs; - * (charset %Charset; #IMPLIED) - * (type %ContentType; #IMPLIED) - * (name CDATA #IMPLIED) - * (href %URI; #IMPLIED) - * (hreflang %LanguageCode; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - * (rel %LinkTypes; #IMPLIED) - * (rev %LinkTypes; #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (directkey %Character; #IMPLIED) - * (shape %Shape; rect) - * (coords %Coords; #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_TYPE, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_HREFLANG, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_REL, HTML40Namespace.ATTR_NAME_REV, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_DIRECTKEY, HTML40Namespace.ATTR_NAME_SHAPE, HTML40Namespace.ATTR_NAME_COORDS, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>A</code> has the exclusion. - * It is <code>A</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode a = elementCollection.getNamedItem(HTML40Namespace.ElementName.A); - if (a != null) - exclusion.appendChild(a); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.A, HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java deleted file mode 100644 index b4913f46e9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * ADDRESS. - */ -final class HedADDRESS extends HTMLElemDeclImpl { - - /** - */ - public HedADDRESS(ElementCollection collection) { - super(HTML40Namespace.ElementName.ADDRESS, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_ADDRESS; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java deleted file mode 100644 index 9a546f7f88..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * APPLET. - */ -final class HedAPPLET extends HTMLElemDeclImpl { - - /** - */ - public HedAPPLET(ElementCollection collection) { - super(HTML40Namespace.ElementName.APPLET, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER; - layoutType = LAYOUT_OBJECT; - indentChild = true; - } - - /** - * %coreattrs; - * (codebase %URI; #IMPLIED) - * (archive CDATA #IMPLIED) - * (code CDATA #IMPLIED) - * (object CDATA #IMPLIED) - * (alt %Text; #IMPLIED) ... should be defined locally. - * (name CDATA #IMPLIED) - * (width %Length; #REQUIRED) - * (height %Length; #REQUIRED) - * (align %IAlign; #IMPLIED) - * (hspace %Pixels; #IMPLIED) - * (vspace %Pixels; #IMPLIED) - * (mayscript (mayscript) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CODEBASE, HTML40Namespace.ATTR_NAME_ARCHIVE, HTML40Namespace.ATTR_NAME_CODE, HTML40Namespace.ATTR_NAME_OBJECT, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_MAYSCRIPT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // %align; ... should be defined locally. - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java deleted file mode 100644 index 3afad0630b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * AREA. - */ -final class HedAREA extends HedEmpty { - - /** - */ - public HedAREA(ElementCollection collection) { - super(HTML40Namespace.ElementName.AREA, collection); - // LAYOUT_HIDDEN. - // Because, AREA is GROUP_HIDDEN in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_HIDDEN; - } - - /** - * AREA. - * %attrs; - * (shape %Shape; rect) - * (coords %Coords; #IMPLIED) - * (href %URI; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - * (nohref (nohref) #IMPLIED) - * (alt %Text; #REQUIRED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_SHAPE, HTML40Namespace.ATTR_NAME_COORDS, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_NOHREF, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java deleted file mode 100644 index e528814937..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * BASE. - */ -final class HedBASE extends HedEmpty { - - /** - */ - public HedBASE(ElementCollection collection) { - super(HTML40Namespace.ElementName.BASE, collection); - // LAYOUT_HIDDEN. - // Because, BASE is GROUP_HIDDEN in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_HIDDEN; - } - - /** - * BASE. - * (href %URI; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java deleted file mode 100644 index 2c9109b273..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * BASEFONT. - */ -final class HedBASEFONT extends HedEmpty { - - /** - */ - public HedBASEFONT(ElementCollection collection) { - super(HTML40Namespace.ElementName.BASEFONT, collection); - // LAYOUT_OBJECT - GROUP_NOWRAP. - layoutType = LAYOUT_OBJECT; - } - - /** - * BASEFONT. - * (id ID #IMPLIED) - * (size CDATA #REQUIRED) ... should be localy defined. - * (color %Color; #IMPLIED) - * (face CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_ID, HTML40Namespace.ATTR_NAME_COLOR, HTML40Namespace.ATTR_NAME_FACE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (size CDATA #REQUIRED) ... should be localy defined. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java deleted file mode 100644 index bcee51fe2d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * BDO. - */ -final class HedBDO extends HedInlineContainer { - - /** - */ - public HedBDO(ElementCollection collection) { - super(HTML40Namespace.ElementName.BDO, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - } - - /** - * %coreattrs; - * (lang %LanguageCode; #IMPLIED) - * (dir (ltr|rtl) #REQUIRED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_LANG}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (dir (ltr|rtl) #REQUIRED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_LTR, HTML40Namespace.ATTR_VALUE_RTL}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_DIR, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_DIR, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java deleted file mode 100644 index 3e731d8006..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - - - -final class HedBGSOUND extends HedEmpty { - - public HedBGSOUND(ElementCollection collection) { - super(HTML40Namespace.ElementName.BGSOUND, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * (src, CDATA, #IMPLIED) - * (loop, CDATA, #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - // src - HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_SRC); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr); - // loop - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, HTML40Namespace.ATTR_VALUE_INFINITE); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_LOOP, atype, CMAttributeDeclaration.OPTIONAL); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LOOP, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java deleted file mode 100644 index d1cb608da1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * BLOCKQUOTE. - */ -final class HedBLOCKQUOTE extends HedFlowContainer { - - /** - */ - public HedBLOCKQUOTE(ElementCollection collection) { - super(HTML40Namespace.ElementName.BLOCKQUOTE, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * (cite %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CITE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java deleted file mode 100644 index 3324a9ab6e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * BODY. - */ -final class HedBODY extends HedFlowContainer { - - private static String[] terminators = {HTML40Namespace.ElementName.HEAD, HTML40Namespace.ElementName.BODY, HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.HTML}; - - /** - */ - public HedBODY(ElementCollection collection) { - super(HTML40Namespace.ElementName.BODY, collection); - layoutType = LAYOUT_BLOCK; - omitType = OMIT_BOTH; - } - - /** - * %attrs; - * %bodycolors; - * (onload %Script; #IMPLIED) - * (onunload %Script; #IMPLIED) - * (background %URI; #IMPLIED) - * (marginwidth %Pixels; #IMPLIED) ... D205514 - * (marginheight %Pixels; #IMPLIED) .. D205514 - * (topmargin, CDATA, #IMPLIED) ...... D205514 - * (bottommargin, CDATA, #IMPLIED) ... D205514 - * (leftmargin, CDATA, #IMPLIED) ..... D205514 - * (rightmargin, CDATA, #IMPLIED) .... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %bodycolors; - attributeCollection.getBodycolors(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_ONLOAD, HTML40Namespace.ATTR_NAME_ONUNLOAD, HTML40Namespace.ATTR_NAME_BACKGROUND, - // <<D205514 - HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_TOPMARGIN, HTML40Namespace.ATTR_NAME_BOTTOMMARGIN, HTML40Namespace.ATTR_NAME_LEFTMARGIN, HTML40Namespace.ATTR_NAME_RIGHTMARGIN - // D205514 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Inclusion. - * "Lazy eval."<br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getInclusion() { - if (inclusion != null) - return inclusion; // already created. - if (elementCollection == null) - return null; - - // (INS|DEL) - inclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {HTML40Namespace.ElementName.INS, HTML40Namespace.ElementName.DEL}; - elementCollection.getDeclarations(inclusion, Arrays.asList(names).iterator()); - return inclusion; - } - - /** - * BODY has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java deleted file mode 100644 index 45fa6ce8ca..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -/** - * BR. - */ -final class HedBR extends HedEmpty { - - /** - */ - public HedBR(ElementCollection collection) { - super(HTML40Namespace.ElementName.BR, collection); - // LAYOUT_BREAK. - // Because, BR is GROUP_BREAK in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_BREAK; - } - - /** - * BR. - * %coreattrs; - * (clear (left | all | right | none) none) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - // clear - HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_CLEAR); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_CLEAR, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java deleted file mode 100644 index 975498047e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * BUTTON. - */ -final class HedBUTTON extends HedFlowContainer { - - /** - */ - public HedBUTTON(ElementCollection collection) { - super(HTML40Namespace.ElementName.BUTTON, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * %reserved; ... empty. - * (name CDATA #IMPLIED) - * (value CDATA #IMPLIED) - * (type (button|submit|reset) submit) ... should be defined locally. - * (disabled (disabled) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (type (button|submit|reset) submit) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_BUTTON, HTML40Namespace.ATTR_VALUE_SUBMIT, HTML40Namespace.ATTR_VALUE_RESET}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - } - - /** - * Exclusion. - * <code>FORM</code> has the exclusion. - * It is <code>FORM</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; // fatal - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {HTML40Namespace.ElementName.A, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.ISINDEX, HTML40Namespace.ElementName.FIELDSET, HTML40Namespace.ElementName.IFRAME}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - elementCollection.getFormctrl(exclusion); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java deleted file mode 100644 index 82b07dcac1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -/** - * CAPTION. - */ -final class HedCAPTION extends HedInlineContainer { - - /** - */ - public HedCAPTION(ElementCollection collection) { - super(HTML40Namespace.ElementName.CAPTION, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * (align %CAlign; #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForCaption(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java deleted file mode 100644 index 9d5184f89f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * CENTER. - */ -final class HedCENTER extends HedFlowContainer { - - /** - */ - public HedCENTER(ElementCollection collection) { - super(HTML40Namespace.ElementName.CENTER, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java deleted file mode 100644 index 14f322668a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - -/** - * COL. - */ -final class HedCOL extends HedEmpty { - - /** - */ - public HedCOL(ElementCollection collection) { - super(HTML40Namespace.ElementName.COL, collection); - // LAYOUT_BLOCK. - // Because, COL is GROUP_BLOCK in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_BLOCK; - } - - /** - * COL. - * %attrs; - * (span NUMBER 1) - * (width %MultiLength; #IMPLIED) ... should be defined locally. - * %cellhalign; - * %cellvalign; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (span NUMBER 1) - String[] names = {HTML40Namespace.ATTR_NAME_SPAN}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (width %MultiLength; #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr); - - // %cellhalign; - attributeCollection.getCellhalign(attributes); - // %cellvalign; - attributeCollection.getCellvalign(attributes); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java deleted file mode 100644 index bd2e74ffa5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - -/** - * COLGROUP. - */ -final class HedCOLGROUP extends HTMLElemDeclImpl { - - private static String[] terminators = {HTML40Namespace.ElementName.COLGROUP, HTML40Namespace.ElementName.CAPTION, HTML40Namespace.ElementName.THEAD, HTML40Namespace.ElementName.TBODY, HTML40Namespace.ElementName.TFOOT, HTML40Namespace.ElementName.TR}; - - public HedCOLGROUP(ElementCollection collection) { - super(HTML40Namespace.ElementName.COLGROUP, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_COLUMN_GROUP; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END; - indentChild = true; - } - - /** - * %attrs; - * (span NUMBER 1) - * (width %MultiLength; #IMPLIED) ... should be defined locally. - * %cellhalign; - * %cellvalign; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %cellhalign; - attributeCollection.getCellhalign(attributes); - // %cellvalign; - attributeCollection.getCellvalign(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_SPAN}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (width %MultiLength; #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr); - } - - /** - * LI has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java deleted file mode 100644 index 6004f847e3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * DD. - */ -final class HedDD extends HedFlowContainer { - - private static String[] terminators = {HTML40Namespace.ElementName.DT, HTML40Namespace.ElementName.DD}; - - /** - */ - public HedDD(ElementCollection collection) { - super(HTML40Namespace.ElementName.DD, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - * DD has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java deleted file mode 100644 index b2cd2bcdc8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * DIV. - */ -final class HedDIV extends HedFlowContainer { - - /** - */ - public HedDIV(ElementCollection collection) { - super(HTML40Namespace.ElementName.DIV, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * %align; - * %reserved; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %align; - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - // %reserved; ... empty - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java deleted file mode 100644 index a45f2f89bb..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * DL. - */ -final class HedDL extends HTMLElemDeclImpl { - - /** - */ - public HedDL(ElementCollection collection) { - super(HTML40Namespace.ElementName.DL, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - indentChild = true; - } - - /** - * %arrays; - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_COMPACT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java deleted file mode 100644 index c4797fbc92..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * DT. - */ -final class HedDT extends HedInlineContainer { - - private static String[] terminators = {HTML40Namespace.ElementName.DT, HTML40Namespace.ElementName.DD}; - - /** - */ - public HedDT(ElementCollection collection) { - super(HTML40Namespace.ElementName.DT, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - * DT has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java deleted file mode 100644 index c1e301d6d5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * EMBED. - */ -final class HedEMBED extends HTMLElemDeclImpl { - - /** - */ - public HedEMBED(ElementCollection collection) { - super(HTML40Namespace.ElementName.EMBED, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMBED; - layoutType = LAYOUT_OBJECT; - omitType = OMIT_END_DEFAULT; - } - - /** - * %coreattrs; - * %events; - * (src %URI; #REQUIRED) ... should be defined locally. - * (height %Length; #IMPLIED) - * (width %Length; #IMPLIED) - * (align %IAlign; #IMPLIED) ... should be defined locally. - * (hspace %Pixels; #IMPLIED) - * (vspace %Pixels; #IMPLIED) - * (loop CDATA #IMPLIED) - * (hidden CDATA #IMPLIED) - * (volume CDATA #IMPLIED) - * (autostart (true|false) #IMPLIED) - * (autoplay (true|false) #IMPLIED) - * (autosize (true|false) #IMPLIED) - * (controller (true|false) true) - * (scale CDATA #IMPLIED) - * (showcontrols (true|false) #IMPLIED) - * (playcount NUMBER #IMPLIED) - * (repeat CDATA #IMPLIED) - * (panel CDATA #IMPLIED) - * (text CDATA #IMPLIED) - * (palette CDATA #IMPLIED) - * (textfocus CDATA #IMPLIED) - * (type CDATA #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - // %events; - attributeCollection.getEvents(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_LOOP, HTML40Namespace.ATTR_NAME_HIDDEN, HTML40Namespace.ATTR_NAME_VOLUME, HTML40Namespace.ATTR_NAME_AUTOSTART, HTML40Namespace.ATTR_NAME_AUTOPLAY, HTML40Namespace.ATTR_NAME_AUTOSIZE, HTML40Namespace.ATTR_NAME_CONTROLLER, HTML40Namespace.ATTR_NAME_SCALE, HTML40Namespace.ATTR_NAME_SHOWCONTROLS, HTML40Namespace.ATTR_NAME_PLAYCOUNT, HTML40Namespace.ATTR_NAME_REPEAT, HTML40Namespace.ATTR_NAME_PANEL, HTML40Namespace.ATTR_NAME_TEXT, HTML40Namespace.ATTR_NAME_PALETTE, HTML40Namespace.ATTR_NAME_TEXTFOCUS}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - // (src %URI; #REQUIRED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr); - - // (align %IAlign; #IMPLIED) ... should be defined locally. - attr = AttributeCollection.createAlignForImage(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - - // (type CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java deleted file mode 100644 index 4a24b8061b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * Base class for EMPTY type element declarations. - */ -abstract class HedEmpty extends HTMLElemDeclImpl { - - /** - */ - public HedEmpty(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY; - // EMPTY type has no end tag. - omitType = OMIT_END_MUST; - } - - /** - * Content.<br> - * EMPTY type always returns <code>null</code>. - * <br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * Content type.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - return CMElementDeclaration.EMPTY; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java deleted file mode 100644 index f47fbcb0ab..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * FIELDSET. - */ -final class HedFIELDSET extends HTMLElemDeclImpl { - - /** - */ - public HedFIELDSET(ElementCollection collection) { - super(HTML40Namespace.ElementName.FIELDSET, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FIELDSET; - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java deleted file mode 100644 index 61dd455408..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * FONT. - */ -final class HedFONT extends HedInlineContainer { - - /** - */ - public HedFONT(ElementCollection collection) { - super(HTML40Namespace.ElementName.FONT, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - } - - /** - * %coreattrs; - * %i18n; - * (size CDATA #IMPLIED) ... should be defined locally. - * (color %Color; #IMPLIED) - * (face CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - // %i18n; - attributeCollection.getI18n(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_COLOR, HTML40Namespace.ATTR_NAME_FACE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (size CDATA #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java deleted file mode 100644 index 9986faa0a2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * FORM. - */ -final class HedFORM extends HedFlowContainer { - - /** - */ - public HedFORM(ElementCollection collection) { - super(HTML40Namespace.ElementName.FORM, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * (action %URI; #REQUIRED) - * (method (GET|POST) GET) - * (enctype %ContentType; "application/x-www-form-urlencoded") - * (accept %ContentTypes; #IMPLIED) - * (name CDATA #IMPLIED) - * (onsubmit %Script; #IMPLIED) - * (onreset %Script; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - * (accept-charset %Charsets; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_ACTION, HTML40Namespace.ATTR_NAME_METHOD, HTML40Namespace.ATTR_NAME_ENCTYPE, HTML40Namespace.ATTR_NAME_ACCEPT, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_ONSUBMIT, HTML40Namespace.ATTR_NAME_ONRESET, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_ACCEPT_CHARSET}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>FORM</code> has the exclusion. - * It is <code>FORM</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; // fatal - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode form = elementCollection.getNamedItem(HTML40Namespace.ElementName.FORM); - if (form != null) - exclusion.appendChild(form); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java deleted file mode 100644 index 768fe2466f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * FRAME. - */ -final class HedFRAME extends HedEmpty { - - /** - */ - public HedFRAME(ElementCollection collection) { - super(HTML40Namespace.ElementName.FRAME, collection); - // LAYOUT_HIDDEN. - // Because, FRAME is GROUP_HIDDEN in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_HIDDEN; - } - - /** - * FRAME. - * %coreattrs; - * (longdesc %URI; #IMPLIED) - * (name CDATA #IMPLIED) - * (src %URI; #IMPLIED) - * (frameborder (1|0) 1) - * (marginwidth %Pixels; #IMPLIED) - * (marginheight %Pixels; #IMPLIED) - * (noresize (noresize) #IMPLIED) - * (scrolling (yes|no|auto) auto) - * (bordercolor %Color #IMPLIED) ... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_FRAMEBORDER, HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_NORESIZE, HTML40Namespace.ATTR_NAME_SCROLLING, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D20554 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java deleted file mode 100644 index 66000dcdbd..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * FRAMESET. - */ -final class HedFRAMESET extends HTMLElemDeclImpl { - - /** - */ - public HedFRAMESET(ElementCollection collection) { - super(HTML40Namespace.ElementName.FRAMESET, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FRAMESET; - layoutType = LAYOUT_HIDDEN; - indentChild = true; - } - - /** - * %coreattrs; - * (rows %MultiLengths; #IMPLIED) ... should be defined locally. - * (cols %MultiLengths; #IMPLIED) ... should be defined locally. - * (onload %Script; #IMPLIED) - * (onunload %Script; #IMPLIED) - * (frameborder (yes|no) #IMPLIED) ... should be defined locally. - * (border %Pixels; #IMPLIED) - * (bordercolor %Color #IMPLIED) ... D205514 - * (framespacing CDATA #IMPLIED) ... D215684 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getCore(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_ONLOAD, HTML40Namespace.ATTR_NAME_ONUNLOAD, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_BORDERCOLOR, // D205514 - HTML40Namespace.ATTR_NAME_FRAMESPACING // D215684 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - // (rows %MultiLengths; #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.MULTI_LENGTH); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ROWS, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ROWS, attr); - - // (cols %MultiLengths; #IMPLIED) ... should be defined locally. - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_COLS, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_COLS, attr); - - // (frameborder (yes|no) #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_YES, HTML40Namespace.ATTR_VALUE_NO}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_FRAMEBORDER, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java deleted file mode 100644 index bf211b2fad..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * Base class for (%flow;)* containers. - */ -abstract class HedFlowContainer extends HTMLElemDeclImpl { - - /** - */ - public HedFlowContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java deleted file mode 100644 index d86b1424fd..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * %fontstyle; - */ -final class HedFontStyle extends HedInlineContainer { - - /** - */ - public HedFontStyle(String elementName, ElementCollection collection) { - super(elementName, collection); - if (elementName.equalsIgnoreCase(HTML40Namespace.ElementName.BIG) || elementName.equalsIgnoreCase(HTML40Namespace.ElementName.SMALL)) { - correctionType = CORRECT_EMPTY; - } - else { // B, I, U, ... - correctionType = CORRECT_DUPLICATED; - } - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - String myName = getElementName(); - if (!myName.equalsIgnoreCase(HTML40Namespace.ElementName.BIG) && !myName.equalsIgnoreCase(HTML40Namespace.ElementName.SMALL)) - return EMPTY_MAP; - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.PRE}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java deleted file mode 100644 index 691a061621..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * HTML. - */ -final class HedHEAD extends HTMLElemDeclImpl { - - private static String[] terminators = {HTML40Namespace.ElementName.HEAD, HTML40Namespace.ElementName.BODY, HTML40Namespace.ElementName.FRAMESET, HTML40Namespace.ElementName.HTML}; - - /** - */ - public HedHEAD(ElementCollection collection) { - super(HTML40Namespace.ElementName.HEAD, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HEAD; - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_BOTH; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>HEAD</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%i18n;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>profile</td><td>URI</td><td>#IMPLIED</td><td>N/A</td><td>-</td> - * </tr> - * </tbody> - * </table> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - // profile - HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_PROFILE); - if (adec != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_PROFILE, adec); - } - - /** - * HEAD has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java deleted file mode 100644 index 868b5c729a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * HR. - */ -final class HedHR extends HedEmpty { - - /** - */ - public HedHR(ElementCollection collection) { - super(HTML40Namespace.ElementName.HR, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs - * (align (left|center|right) #IMPLIED) ... should be defined locally. - * (noshade (noshade) #IMPLIED) - * (size %Pixels; #IMPLIED) - * (width %Length; #IMPLIED) - * (color %Color; #IMPLIED) ... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (align (left|center|right) #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_LEFT, HTML40Namespace.ATTR_VALUE_CENTER, HTML40Namespace.ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - - // the rest. - String[] names = {HTML40Namespace.ATTR_NAME_NOSHADE, HTML40Namespace.ATTR_NAME_SIZE, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_COLOR // D205514 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java deleted file mode 100644 index 99b63321d2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * HTML. - */ -final class HedHTML extends HTMLElemDeclImpl { - - private static String[] terminators = {HTML40Namespace.ElementName.HTML}; - - /** - */ - public HedHTML(ElementCollection collection) { - super(HTML40Namespace.ElementName.HTML, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HTML; - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_BOTH; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>HTML</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td><code>%i18n;</code></td><td>-</td><td>-</td><td>-</td> - * <td>{@link PDCMDocImpl#getAttrDeclarationsI18n}</td> - * </tr> - * <tr> - * <td>version</td><td>CDATA</td><td>#FIXED</td> - * <td>{@link HTML_VERSION_TRANSITIONAL}</td><td>deplecated in HTML4.01</td> - * </tr> - * </tbody> - * </table> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - // version - HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_VERSION); - if (adec != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VERSION, adec); - } - - /** - * HTML has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java deleted file mode 100644 index 6a17c164ad..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * H[1-6]. - */ -final class HedHeading extends HedInlineContainer { - - /** - */ - public HedHeading(String elementName, ElementCollection collection) { - super(elementName, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>H1</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * </tbody> - * </table> - * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>. - * Unfortunately, this <code>align</code> is different from one in - * <code>IMG</code> or <code>TABLE</code>. So, the attribute declaration - * of <code>align</code> should be localy created and it shouldn't be registered - * in a <code>HCMDocImpl</code> instance.</p> - * <p>However, %align is used in sevaral times. I wouldn't write same code - * in many times. So, I add a new utility method into <code>CMUtil</code> - * to create the attribute declaration.</p> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // align - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java deleted file mode 100644 index 191615ec24..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * IFRAME. - */ -final class HedIFRAME extends HedFlowContainer { - - /** - */ - public HedIFRAME(ElementCollection collection) { - super(HTML40Namespace.ElementName.IFRAME, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * %coreattrs; - * (longdesc %URI; #IMPLIED) - * (name CDATA #IMPLIED) - * (src %URI; #IMPLIED) - * (frameborder (1|0) 1) - * (marginwidth %Pixels; #IMPLIED) - * (marginheight %Pixels; #IMPLIED) - * (scrolling (yes|no|auto) auto) - * (align %IAlign; #IMPLIED) ... should be defined locally. - * (height %Length; #IMPLIED) - * (width %Length; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_FRAMEBORDER, HTML40Namespace.ATTR_NAME_MARGINWIDTH, HTML40Namespace.ATTR_NAME_MARGINHEIGHT, HTML40Namespace.ATTR_NAME_SCROLLING, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // align - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java deleted file mode 100644 index 1e1805e58a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * IMG. - */ -final class HedIMG extends HedEmpty { - - /** - */ - public HedIMG(ElementCollection collection) { - super(HTML40Namespace.ElementName.IMG, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * IMG. - * %attrs; - * (src %URI; #REQUIRED): should be defined locally. - * (alt %Text; #REQUIRED) - * (longdesc %URI; #IMPLIED) - * (name CDATA #IMPLIED) - * (height %Length; #IMPLIED) - * (width %Length; #IMPLIED) - * (usemap %URI; #IMPLIED) - * (ismap (ismap) #IMPLIED) - * (align %IAlign; #IMPLIED): should be defined locally. - * (border %Pixels; #IMPLIED) - * (hspace %Pixels; #IMPLIED) - * (vspace %Pixels; #IMPLIED) - * (mapfile %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (src %URI; #REQUIRED): should be defined locally. - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SRC, attr); - - String[] names = {HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_LONGDESC, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_ISMAP, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE, HTML40Namespace.ATTR_NAME_MAPFILE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // align (local); should be defined locally. - attr = AttributeCollection.createAlignForImage(); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.PRE}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java deleted file mode 100644 index 60b3049406..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * INPUT. - */ -final class HedINPUT extends HedEmpty { - - /** - */ - public HedINPUT(ElementCollection collection) { - super(HTML40Namespace.ElementName.INPUT, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * INPUT. - * %attrs; - * (type %InputType; TEXT) ... should be defined locally. - * (name CDATA #IMPLIED) - * (value CDATA #IMPLIED) - * (checked (checked) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (readonly (readonly) #IMPLIED) - * (size CDATA #IMPLIED) ... should be defined locally. - * (maxlength NUMBER #IMPLIED) - * (src %URI; #IMPLIED) - * (alt CDATA #IMPLIED) ... should be defined locally. - * (usemap %URI; #IMPLIED) - * (ismap (ismap) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onselect %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - * (accept %ContentTypes; #IMPLIED) - * (align %IAlign; #IMPLIED) ... should be defined locally. - * (istyle CDATA #IMPLIED) - * <<D215684 - * (width CDATA; #IMPLIED) - * (height CDATA; #IMPLIED) - * (border CDATA; #IMPLIED) - * D215684 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - // (type %InputType; TEXT) ... should be defined locally. - // NOTE: %InputType is ENUM; - // (text | password | checkbox | radio | submit | reset | - // file | hidden | image | button) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_TEXT, HTML40Namespace.ATTR_VALUE_PASSWORD, HTML40Namespace.ATTR_VALUE_CHECKBOX, HTML40Namespace.ATTR_VALUE_RADIO, HTML40Namespace.ATTR_VALUE_SUBMIT, HTML40Namespace.ATTR_VALUE_RESET, HTML40Namespace.ATTR_VALUE_FILE, HTML40Namespace.ATTR_VALUE_HIDDEN, HTML40Namespace.ATTR_VALUE_IMAGE, HTML40Namespace.ATTR_VALUE_BUTTON}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, HTML40Namespace.ATTR_VALUE_TEXT); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - - // (size CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr); - - // (alt CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALT, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALT, attr); - - // (align %IAlign; #IMPLIED) ... should be defined locally. - attr = AttributeCollection.createAlignForImage(); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - - // the rest. - String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_CHECKED, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_READONLY, HTML40Namespace.ATTR_NAME_SIZE, HTML40Namespace.ATTR_NAME_MAXLENGTH, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_ISMAP, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONSELECT, HTML40Namespace.ATTR_NAME_ONCHANGE, HTML40Namespace.ATTR_NAME_ACCEPT, HTML40Namespace.ATTR_NAME_ALIGN, HTML40Namespace.ATTR_NAME_ISTYLE, - //<<D215684 - HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BORDER - //<D215684 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java deleted file mode 100644 index 8c744d6a8b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * ISINDEX. - */ -final class HedISINDEX extends HedEmpty { - - /** - */ - public HedISINDEX(ElementCollection collection) { - super(HTML40Namespace.ElementName.ISINDEX, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * ISINDEX. - * %coreattrs; - * %i18n; - * (prompt %Text; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - // %i18n; - attributeCollection.getI18n(attributes); - - HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(HTML40Namespace.ATTR_NAME_PROMPT); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_PROMPT, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java deleted file mode 100644 index dd08221a2e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * Base class for (%inline;)* containers. - */ -abstract class HedInlineContainer extends HTMLElemDeclImpl { - - /** - * HedInlineContainer. - * @param elementName java.lang.String - * @param collection ElementCollection - */ - public HedInlineContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java deleted file mode 100644 index e0010323d2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * LABEL. - */ -final class HedLABEL extends HedInlineContainer { - - /** - */ - public HedLABEL(ElementCollection collection) { - super(HTML40Namespace.ElementName.LABEL, collection); - } - - /** - * %attrs; - * (for IDREF #IMPLIED) ... should be defined locally. - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (for IDREF #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.IDREF); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_FOR, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_FOR, attr); - - String[] names = {HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>LABEL</code> has the exclusion. - * It is <code>LABEL</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode label = elementCollection.getNamedItem(HTML40Namespace.ElementName.LABEL); - if (label != null) - exclusion.appendChild(label); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON, HTML40Namespace.ElementName.LABEL}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java deleted file mode 100644 index 5e3928b6b4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * LEGEND. - */ -final class HedLEGEND extends HedInlineContainer { - - /** - */ - public HedLEGEND(ElementCollection collection) { - super(HTML40Namespace.ElementName.LEGEND, collection); - } - - /** - * (accesskey %Character; #IMPLIED) - * (align %LAlign; #IMPLIED) ... shuld be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_ACCESSKEY}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // align - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForLegend(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java deleted file mode 100644 index f43785eaf7..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * LI. - */ -final class HedLI extends HedFlowContainer { - - private static String[] terminators = {HTML40Namespace.ElementName.LI}; - - /** - */ - public HedLI(ElementCollection collection) { - super(HTML40Namespace.ElementName.LI, collection); - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - * (type %LIStyle; #IMPLIED) ... should be defined locally. - * (value NUMBER #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (type %LIStyle; #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LI_STYLE); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - - // (value NUMBER #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VALUE, attr); - } - - /** - * LI has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java deleted file mode 100644 index bfe132c099..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - -/** - * LINK. - */ -final class HedLINK extends HedEmpty { - - /** - */ - public HedLINK(ElementCollection collection) { - super(HTML40Namespace.ElementName.LINK, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * LINK. - * %attrs; - * (charset %Charset; #IMPLIED) - * (href %URI; #IMPLIED) - * (hreflang %LanguageCode; #IMPLIED) - * (type %ContentType; #IMPLIED): should be defined locally. - * (rel %LinkTypes; #IMPLIED) - * (rev %LinkTypes; #IMPLIED) - * (media %MediaDesc; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_HREFLANG, HTML40Namespace.ATTR_NAME_REL, HTML40Namespace.ATTR_NAME_REV, HTML40Namespace.ATTR_NAME_MEDIA, HTML40Namespace.ATTR_NAME_TARGET}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (type %ContentType; #IMPLIED) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java deleted file mode 100644 index a7ccf63be3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * Base class for list item container declarations. - * - OL, UL, MENU, DIR. - */ -abstract class HedListItemContainer extends HTMLElemDeclImpl { - - /** - */ - public HedListItemContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - indentChild = true; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java deleted file mode 100644 index 2a3c2a7356..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - - - -/** - * MAP. - */ -final class HedMAP extends HTMLElemDeclImpl { - - /** - */ - public HedMAP(ElementCollection collection) { - super(HTML40Namespace.ElementName.MAP, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_MAP; - layoutType = LAYOUT_OBJECT; - indentChild = true; - } - - /** - * %attrs; - * (name CDATA #REQUIRED) ... should be defined locally - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (name CDATA #REQUIRED) ... should be defined locally - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java deleted file mode 100644 index f8653e27c4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * MARQUEE. - */ -final class HedMARQUEE extends HedFlowContainer { - - /** - */ - public HedMARQUEE(ElementCollection collection) { - super(HTML40Namespace.ElementName.MARQUEE, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * %attrs; - * (behavior (scroll|slide|alternate) scroll) - * (bgcolor %Color; #IMPLIED) - * (direction (left|right|up|down) left) - * (height CDATA #IMPLIED) ... should be defined locally. - * (hspace NUMBER #IMPLIED) ... should be defined locally. - * (loop CDATA #IMPLIED) - * (scrollamount NUMBER #IMPLIED) - * (scrolldelay NUMBER #IMPLIED) - * (vspace NUMBER #IMPLIED) ... should be defined locally. - * (width CDATA #IMPLIED) ... should be defined locally. - * (truespeed (truespeed) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_BEHAVIOR, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_DIRECTION, HTML40Namespace.ATTR_NAME_LOOP, HTML40Namespace.ATTR_NAME_SCROLLAMOUNT, HTML40Namespace.ATTR_NAME_SCROLLDELAY, HTML40Namespace.ATTR_NAME_TRUESPEED}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - // (height CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_HEIGHT, attr); - - // (width CDATA #IMPLIED) ... should be defined locally. - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr); - - // (hspace NUMBER #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_HSPACE, attr); - - // (vspace NUMBER #IMPLIED) ... should be defined locally. - attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VSPACE, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java deleted file mode 100644 index 0142558fc0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * MENU/DIR. - */ -final class HedMENU extends HedListItemContainer { - - /** - */ - public HedMENU(String elementName, ElementCollection collection) { - super(elementName, collection); - } - - /** - * MENU/DIR. - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_COMPACT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>MENU/DIR</code> has the exclusion. - * It is <code>%block;</code>. - * %block; is: - * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | - * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | - * TABLE | FIELDSET | ADDRESS. - * %heading; is: H1 | H2 | H3 | H4 | H5 | H6. - * %list; is : UL | OL | DIR | MENU. - * %preformatted; is PRE. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - // %block; - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {HTML40Namespace.ElementName.P, HTML40Namespace.ElementName.H1, HTML40Namespace.ElementName.H2, HTML40Namespace.ElementName.H3, HTML40Namespace.ElementName.H4, HTML40Namespace.ElementName.H5, HTML40Namespace.ElementName.H6, HTML40Namespace.ElementName.UL, HTML40Namespace.ElementName.OL, HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU, HTML40Namespace.ElementName.PRE, HTML40Namespace.ElementName.DL, HTML40Namespace.ElementName.DIV, HTML40Namespace.ElementName.CENTER, HTML40Namespace.ElementName.NOSCRIPT, HTML40Namespace.ElementName.NOFRAMES, HTML40Namespace.ElementName.BLOCKQUOTE, HTML40Namespace.ElementName.FORM, HTML40Namespace.ElementName.ISINDEX, HTML40Namespace.ElementName.HR, HTML40Namespace.ElementName.TABLE, HTML40Namespace.ElementName.FIELDSET, HTML40Namespace.ElementName.ADDRESS}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java deleted file mode 100644 index d5b232c13c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - -/** - * META. - */ -final class HedMETA extends HedEmpty { - - /** - */ - public HedMETA(ElementCollection collection) { - super(HTML40Namespace.ElementName.META, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * META. - * %i18n; - * (http-equiv NAME #IMPLIED) - * (name NAME #IMPLIED) ... should be defined locally. - * (content CDATA #REQUIRED) - * (scheme CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - - // (name NAME #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr); - - String[] names = {HTML40Namespace.ATTR_NAME_HTTP_EQUIV, HTML40Namespace.ATTR_NAME_CONTENT, HTML40Namespace.ATTR_NAME_SCHEME}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java deleted file mode 100644 index 92c3d0ce3c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * (INS|DEL) - */ -final class HedMarkChanges extends HedFlowContainer { - - /** - */ - public HedMarkChanges(String elementName, ElementCollection collection) { - super(elementName, collection); - } - - /** - * %attrs; - * (cite %URI; #IMPLIED) - * (datetime %Datetime; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CITE, HTML40Namespace.ATTR_NAME_DATETIME}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java deleted file mode 100644 index 42adbd14f0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * NOBR -- not standard tag but it is commonly used. - */ -final class HedNOBR extends HedInlineContainer { - - - public HedNOBR(ElementCollection collection) { - super(HTML40Namespace.ElementName.NOBR, collection); - correctionType = HTMLElementDeclaration.CORRECT_DUPLICATED; - } - - protected void createAttributeDeclarations() { - // No attributes is defined. - if (attributes != null) - return; - attributes = new CMNamedNodeMapImpl(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java deleted file mode 100644 index ed71166d4b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -/** - * NOEMBED. - */ -final class HedNOEMBED extends HedFlowContainer { - - /** - */ - public HedNOEMBED(ElementCollection collection) { - super(HTML40Namespace.ElementName.NOEMBED, collection); - } - - /** - * %coreattrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java deleted file mode 100644 index 2ad931b052..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * NOFRAMES. - */ -final class HedNOFRAMES extends HTMLElemDeclImpl { - - /** - */ - public HedNOFRAMES(ElementCollection collection) { - super(HTML40Namespace.ElementName.NOFRAMES, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_NOFRAMES_CONTENT; - layoutType = LAYOUT_HIDDEN; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - * Exclusion. - * <code>NOFRAMES</code> has the exclusion. - * It is <code>NOFRAMES</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode label = elementCollection.getNamedItem(HTML40Namespace.ElementName.NOFRAMES); - if (label != null) - exclusion.appendChild(label); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU, HTML40Namespace.ElementName.NOFRAMES}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java deleted file mode 100644 index 2747c2348d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * NOSCRIPT. - */ -final class HedNOSCRIPT extends HedFlowContainer { - - /** - */ - public HedNOSCRIPT(ElementCollection collection) { - super(HTML40Namespace.ElementName.NOSCRIPT, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java deleted file mode 100644 index ad48e2f190..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * OBJECT. - */ -final class HedOBJECT extends HTMLElemDeclImpl { - - /** - */ - public HedOBJECT(ElementCollection collection) { - super(HTML40Namespace.ElementName.OBJECT, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER; - layoutType = LAYOUT_OBJECT; - indentChild = true; - } - - /** - * %attrs; - * %reserved; ... empty. - * (declare (declare) #IMPLIED) - * (classid %URI; #IMPLIED) - * (codebase %URI; #IMPLIED) - * (data %URI; #IMPLIED) - * (type %ContentType; #IMPLIED) - * (codetype %ContentType; #IMPLIED) - * (archive CDATA #IMPLIED) - * (standby %Text; #IMPLIED) - * (height %Length; #IMPLIED) - * (width %Length; #IMPLIED) - * (usemap %URI; #IMPLIED) - * (name CDATA #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (align %IAlign; #IMPLIED) ... should be defined locally. - * (border %Pixels; #IMPLIED) - * (hspace %Pixels; #IMPLIED) - * (vspace %Pixels; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %reserved; ... empty. - - String[] names = {HTML40Namespace.ATTR_NAME_DECLARE, HTML40Namespace.ATTR_NAME_CLASSID, HTML40Namespace.ATTR_NAME_CODEBASE, HTML40Namespace.ATTR_NAME_DATA, HTML40Namespace.ATTR_NAME_TYPE, HTML40Namespace.ATTR_NAME_CODETYPE, HTML40Namespace.ATTR_NAME_ARCHIVE, HTML40Namespace.ATTR_NAME_STANDBY, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_USEMAP, HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_HSPACE, HTML40Namespace.ATTR_NAME_VSPACE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - // %align; ... should be defined locally. - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForImage(); - if (attr != null) - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.PRE}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java deleted file mode 100644 index 6668b903c1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * OL. - */ -final class HedOL extends HedListItemContainer { - - /** - */ - public HedOL(ElementCollection collection) { - super(HTML40Namespace.ElementName.OL, collection); - } - - /** - * OL. - * (type %OLStyle; #IMPLIED) ... should be defined locally. - * (compact (compact) #IMPLIED) - * (start NUMBER #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (type %OLStyle; #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.OL_STYLE); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - - // the rest. - String[] names = {HTML40Namespace.ATTR_NAME_COMPACT, HTML40Namespace.ATTR_NAME_START}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java deleted file mode 100644 index 87a3fc3591..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; - -/** - * OPTGROUP. - */ -final class HedOPTGROUP extends HTMLElemDeclImpl { - - /** - */ - public HedOPTGROUP(ElementCollection collection) { - super(HTML40Namespace.ElementName.OPTGROUP, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER; - layoutType = LAYOUT_HIDDEN; - indentChild = true; - } - - /** - * %attrs; - * (disabled (disabled) #IMPLIED) - * (label %Text; #REQUIRED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // (disabled (disabled) #IMPLIED) - String[] names = {HTML40Namespace.ATTR_NAME_DISABLED}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (label %Text; #REQUIRED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_LABEL, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LABEL, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java deleted file mode 100644 index b225ee8c92..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * OPTION. - */ -final class HedOPTION extends HedPcdata { - - private static String[] terminators = {HTML40Namespace.ElementName.OPTION}; - - /** - */ - public HedOPTION(ElementCollection collection) { - super(HTML40Namespace.ElementName.OPTION, collection); - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_END; - } - - /** - * OPTION. - * %attrs; - * (selected (selected) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (label %Text; #IMPLIED) - * (value CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_SELECTED, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_LABEL, HTML40Namespace.ATTR_NAME_VALUE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * OPTION has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java deleted file mode 100644 index 70feed7b9b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Collection; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * P. - */ -final class HedP extends HedInlineContainer { - - private static Collection terminators = null; - - /** - */ - public HedP(ElementCollection collection) { - super(HTML40Namespace.ElementName.P, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>P</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * </tbody> - * </table> - * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>. - * Unfortunately, this <code>align</code> is different from one in - * <code>IMG</code> or <code>TABLE</code>. So, the attribute declaration - * of <code>align</code> should be localy created and it shouldn't be registered - * in a <code>HCMDocImpl</code> instance.</p> - * <p>However, %align is used in sevaral times. I wouldn't write same code - * in many times. So, I add a new utility method into <code>CMUtil</code> - * to create the attribute declaration.</p> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - // %attrs; - attributeCollection.getAttrs(attributes); - // align - HTMLAttrDeclImpl adec = AttributeCollection.createAlignForParagraph(); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, adec); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - return prohibitedAncestors; - } - - /** - * Return names of terminators. - * <code>P</code> has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - if (terminators != null) - return terminators.iterator(); - //<<D217982 - terminators = new Vector(); - terminators.addAll(elementCollection.getNamesOfBlock()); - terminators.add(HTML40Namespace.ElementName.LI); - terminators.add(HTML40Namespace.ElementName.DT); - terminators.add(HTML40Namespace.ElementName.DD); - //D217982 - return terminators.iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java deleted file mode 100644 index 5541a1f43d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * PARAM. - */ -final class HedPARAM extends HedEmpty { - - /** - */ - public HedPARAM(ElementCollection collection) { - super(HTML40Namespace.ElementName.PARAM, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * PARAM. - * (id ID #IMPLIED) - * (name CDATA #REQUIRED) ... should be defined locally. - * (value CDATA #IMPLIED) - * (valuetype (DATA|REF|OBJECT) DATA) - * (type %ContentType; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_ID, HTML40Namespace.ATTR_NAME_VALUE, HTML40Namespace.ATTR_NAME_VALUETYPE, HTML40Namespace.ATTR_NAME_TYPE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (name CDATA #REQUIRED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java deleted file mode 100644 index 2ba3479759..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * PRE. - */ -final class HedPRE extends HedInlineContainer { - - /** - * PRE element should keep spaces in its source. - */ - public HedPRE(ElementCollection collection) { - super(HTML40Namespace.ElementName.PRE, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - - keepSpaces = true; - } - - /** - * %attrs; - * (width NUMBER #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // (width NUMBER #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_WIDTH, attr); - } - - /** - * Exclusion. - * <code>PRE</code> has the exclusion. - * It is <code>%pre.exclusion;</code>. - * %pre.exclusion is: - * IMG | OBJECT | APPLET | BIG | SMALL | SUB | SUP | FONT | BASEFONT - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {HTML40Namespace.ElementName.IMG, HTML40Namespace.ElementName.OBJECT, HTML40Namespace.ElementName.APPLET, HTML40Namespace.ElementName.BIG, HTML40Namespace.ElementName.SMALL, HTML40Namespace.ElementName.SUB, HTML40Namespace.ElementName.SUP, HTML40Namespace.ElementName.FONT, HTML40Namespace.ElementName.BASEFONT}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java deleted file mode 100644 index 556149530c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * Base class for PCDATA type element declarations.<br> - */ -abstract class HedPcdata extends HTMLElemDeclImpl { - - /** - */ - public HedPcdata(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PCDATA; - } - - /** - * Content.<br> - * PCDATA type always returns <code>null</code>. - * <br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * Content type.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - return CMElementDeclaration.PCDATA; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java deleted file mode 100644 index 0e680d5dee..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * %phrase; - */ -final class HedPhrase extends HedInlineContainer { - - /** - */ - public HedPhrase(String elementName, ElementCollection collection) { - super(elementName, collection); - correctionType = HTMLElementDeclaration.CORRECT_DUPLICATED; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java deleted file mode 100644 index 185b757f9d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * Q. - */ -final class HedQ extends HedInlineContainer { - - /** - */ - public HedQ(ElementCollection collection) { - super(HTML40Namespace.ElementName.Q, collection); - correctionType = CORRECT_DUPLICATED; - } - - /** - * %attrs; - * (cite %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_CITE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java deleted file mode 100644 index ae910b78f1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * SCRIPT. - */ -final class HedSCRIPT extends HTMLElemDeclImpl { - - /** - */ - public HedSCRIPT(ElementCollection collection) { - super(HTML40Namespace.ElementName.SCRIPT, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_CDATA; - layoutType = LAYOUT_OBJECT; - } - - /** - * SCRIPT. - * (charset %Charset; #IMPLIED) - * (type %ContentType; #REQUIRED) ... should be defined locally. - * (language CDATA #IMPLIED) - * (src %URI; #IMPLIED) - * (defer (defer) #IMPLIED) - * (event CDATA #IMPLIED) - * (for %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_CHARSET, HTML40Namespace.ATTR_NAME_LANGUAGE, HTML40Namespace.ATTR_NAME_SRC, HTML40Namespace.ATTR_NAME_DEFER, HTML40Namespace.ATTR_NAME_EVENT, HTML40Namespace.ATTR_NAME_FOR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // (type %ContentType; #REQUIRED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/javascript"); //$NON-NLS-1$ - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - } - - /** - * <code>SCRIPT</code> is CDATA type. - * So, the method always returns <code>null</code>. - * <br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * CDATA content.<br> - * @return int - */ - public int getContentType() { - return CMElementDeclaration.CDATA; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java deleted file mode 100644 index 78c3a08703..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * SELECT. - */ -final class HedSELECT extends HTMLElemDeclImpl { - - /** - */ - public HedSELECT(ElementCollection collection) { - super(HTML40Namespace.ElementName.SELECT, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_SELECT; - layoutType = LAYOUT_OBJECT; - indentChild = true; - } - - /** - * %attrs; - * %reserved; - * (name CDATA #IMPLIED) - * (size NUMBER #IMPLIED) ... should be defined locally. - * (multiple (multiple) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (size NUMBER #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr); - - String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_MULTIPLE, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONCHANGE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java deleted file mode 100644 index 42932f6d1d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -/** - * SPAN. - */ -final class HedSPAN extends HedInlineContainer { - - /** - * SPAN. - */ - public HedSPAN(ElementCollection collection) { - super(HTML40Namespace.ElementName.SPAN, collection); - } - - /** - * %attrs; - * %reserved; ... empty. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java deleted file mode 100644 index 46c7a80f1a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; - - - -/** - * Base class for SSI declarations. - */ -abstract class HedSSIBase extends HedEmpty { - - /** - */ - public HedSSIBase(String elementName, ElementCollection collection) { - super(elementName, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - */ - public int getFormatType() { - return HTMLElementDeclaration.FORMAT_SSI; - } - - /** - */ - public boolean supports(String propName) { - if (propName.equals(HTMLCMProperties.IS_SSI)) - return true; - return super.supports(propName); - } - - /* - */ - public Object getProperty(String propName) { - if (propName.equals(HTMLCMProperties.IS_SSI)) - return new Boolean(true); - return super.getProperty(propName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java deleted file mode 100644 index b8406a95f5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:CONFIG. - */ -final class HedSSIConfig extends HedSSIBase { - - /** - */ - public HedSSIConfig(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_CONFIG, collection); - } - - /** - * SSI:CONFIG. - * (errmsg CDATA #IMPLIED) - * (sizefmt CDATA #IMPLIED) - * (timefmt CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_ERRMSG, HTML40Namespace.ATTR_NAME_SIZEFMT, HTML40Namespace.ATTR_NAME_TIMEFMT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java deleted file mode 100644 index 47388122c5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:ECHO. - */ -final class HedSSIEcho extends HedSSIBase { - - /** - */ - public HedSSIEcho(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_ECHO, collection); - } - - /** - * SSI:ECHO - * (var CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_VAR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java deleted file mode 100644 index 2824d576da..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:EXEC. - */ -final class HedSSIExec extends HedSSIBase { - - /** - */ - public HedSSIExec(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_EXEC, collection); - } - - /** - * SSI:EXEC - * (cgi %URI; #IMPLIED) - * (cmd CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_CGI, HTML40Namespace.ATTR_NAME_CMD}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java deleted file mode 100644 index 50ebdf966e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:FLASTMOD. - */ -final class HedSSIFlastmod extends HedSSIBase { - - /** - */ - public HedSSIFlastmod(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_FLASTMOD, collection); - } - - /** - * SSI:FLASTMOD - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java deleted file mode 100644 index f2bdbf0361..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:FSIZE. - */ -final class HedSSIFsize extends HedSSIBase { - - /** - */ - public HedSSIFsize(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_FSIZE, collection); - } - - /** - * SSI:FSIZE - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java deleted file mode 100644 index 63224d8d67..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:INCLUDE. - */ -final class HedSSIInclude extends HedSSIBase { - - /** - */ - public HedSSIInclude(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_INCLUDE, collection); - } - - /** - * SSI:INCLUDE - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java deleted file mode 100644 index bc10b56e49..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * SSI:PRINTENV. - */ -final class HedSSIPrintenv extends HedSSIBase { - - /** - */ - public HedSSIPrintenv(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_PRINTENV, collection); - } - - /** - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - } - - /** - * SSI:PRINTENV has no attributes. So, this method should - * always return <code>null</code>. - * Note: Since somebody doesn't expect null is returned, return the empty attribute - * like a custom tag which doesn't have attributes - */ - public CMNamedNodeMap getAttributes() { - return super.getAttributes(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java deleted file mode 100644 index 182b85ca2d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * SSI:SET. - */ -final class HedSSISet extends HedSSIBase { - - /** - */ - public HedSSISet(ElementCollection collection) { - super(HTML40Namespace.ElementName.SSI_SET, collection); - } - - /** - * SSI:SET - * (var CDATA #IMPLIED) - * (value CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {HTML40Namespace.ATTR_NAME_VAR, HTML40Namespace.ATTR_NAME_VALUE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java deleted file mode 100644 index 985b7faa87..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * STYLE. - */ -final class HedSTYLE extends HTMLElemDeclImpl { - - /** - */ - public HedSTYLE(ElementCollection collection) { - super(HTML40Namespace.ElementName.STYLE, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_CDATA; - layoutType = LAYOUT_HIDDEN; - } - - /** - * STYLE - * %i18n; - * (type %ContentType; #REQUIRED) ... should be defined locally. - * (media %MediaDesc; #IMPLIED) - * (title %Text; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_MEDIA, HTML40Namespace.ATTR_NAME_TITLE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - // (type %ContentType; #REQUIRED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/css"); //$NON-NLS-1$ - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - } - - /** - * Content.<br> - * <code>STYLE</code> is CDATA content type. So, it always returns <code>null</code>. - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * CDATA content.<br> - * @return int - */ - public int getContentType() { - return CMElementDeclaration.CDATA; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java deleted file mode 100644 index 76bf70e6cf..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * SUB and SUP. - */ -final class HedScripts extends HedInlineContainer { - - /** - */ - public HedScripts(String elementName, ElementCollection collection) { - super(elementName, collection); - correctionType = CORRECT_EMPTY; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.PRE}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java deleted file mode 100644 index bed267c3c2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * TABLE. - */ -final class HedTABLE extends HTMLElemDeclImpl { - - /** - */ - public HedTABLE(ElementCollection collection) { - super(HTML40Namespace.ElementName.TABLE, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TABLE; - layoutType = LAYOUT_BLOCK; - indentChild = true; - } - - /** - * TABLE. - * %attrs; - * %reserved; - * (summary %Text; #IMPLIED) - * (width %Length; #IMPLIED) - * (border %Pixels; #IMPLIED) - * (frame %TFrame; #IMPLIED) - * (rules %TRules; #IMPLIED) - * (cellspacing %Length; #IMPLIED) - * (cellpadding %Length; #IMPLIED) - * (align %TAlign; #IMPLIED) - * (bgcolor %Color; #IMPLIED) - * (datapagesize CDATA #IMPLIED) - * (height %Pixels; #IMPLIED) - * (background %URI; #IMPLIED) - * (bordercolor %Color #IMPLIED) ... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %reserved; - // ... %reserved; is empty in the current DTD. - - String[] names = {HTML40Namespace.ATTR_NAME_SUMMARY, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_BORDER, HTML40Namespace.ATTR_NAME_FRAME, HTML40Namespace.ATTR_NAME_RULES, HTML40Namespace.ATTR_NAME_CELLSPACING, HTML40Namespace.ATTR_NAME_CELLPADDING, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_DATAPAGESIZE, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D205514 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // align (local) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] alignValues = {HTML40Namespace.ATTR_VALUE_LEFT, HTML40Namespace.ATTR_VALUE_CENTER, HTML40Namespace.ATTR_VALUE_RIGHT}; - atype.setEnumValues(alignValues); - HTMLAttrDeclImpl adec = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, adec); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java deleted file mode 100644 index f8a61c6f05..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * TEXTAREA. - */ -final class HedTEXTAREA extends HedPcdata { - - /** - * TEXTAREA should keep spaces in its source. - */ - public HedTEXTAREA(ElementCollection collection) { - super(HTML40Namespace.ElementName.TEXTAREA, collection); - layoutType = LAYOUT_OBJECT; - - keepSpaces = true; - } - - /** - * TEXTAREA. - * %attrs; - * %reserved; ... empty - * (name CDATA #IMPLIED) - * (rows NUMBER #REQUIRED) - * (cols NUMBER #REQUIRED) - * (disabled (disabled) #IMPLIED) - * (readonly (readonly) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onselect %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - * (istyle CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_NAME, HTML40Namespace.ATTR_NAME_ROWS, HTML40Namespace.ATTR_NAME_COLS, HTML40Namespace.ATTR_NAME_DISABLED, HTML40Namespace.ATTR_NAME_READONLY, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR, HTML40Namespace.ATTR_NAME_ONSELECT, HTML40Namespace.ATTR_NAME_ONCHANGE, HTML40Namespace.ATTR_NAME_ISTYLE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.BUTTON}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java deleted file mode 100644 index 6919004101..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * TITLE. - */ -final class HedTITLE extends HedPcdata { - - /** - */ - public HedTITLE(ElementCollection collection) { - super(HTML40Namespace.ElementName.TITLE, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * TITLE. - * %i18n; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - } - - /** - * Exclusion. - * <code>TITLE</code> has the exclusion. - * It is <code>%head.misc;</code>. - * %head.misc; is <code>SCRIPT|STYLE|META|LINK|OBJECT</code>. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - // (SCRIPT|STYLE|META|LINK|OBJECT) - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - - String[] names = {HTML40Namespace.ElementName.SCRIPT, HTML40Namespace.ElementName.STYLE, HTML40Namespace.ElementName.META, HTML40Namespace.ElementName.LINK, HTML40Namespace.ElementName.OBJECT}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - return exclusion; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java deleted file mode 100644 index d68a54ac5c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * TR. - */ -final class HedTR extends HTMLElemDeclImpl { - - private static String[] terminators = {HTML40Namespace.ElementName.TR}; - - /** - */ - public HedTR(ElementCollection collection) { - super(HTML40Namespace.ElementName.TR, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TCELL_CONTAINER; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END; - indentChild = true; - } - - /** - * %attrs; - * %cellhalign; - * %cellvalign; - * (bgcolor %Color; #IMPLIED) - * (background %URI; #IMPLIED) - * (bordercolor %Color #IMPLIED) ... D205514 - * (height %Length #IMPLIED) bug2246 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %cellhalign; - attributeCollection.getCellhalign(attributes); - // %cellvalign; - attributeCollection.getCellvalign(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR, HTML40Namespace.ATTR_NAME_HEIGHT // D205514 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * TR has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java deleted file mode 100644 index f66eeefaf0..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * THEAD/TFOOT/TBODY - */ -final class HedTableBody extends HTMLElemDeclImpl { - - private static String[] terminators = {HTML40Namespace.ElementName.CAPTION, HTML40Namespace.ElementName.COL, HTML40Namespace.ElementName.COLGROUP, HTML40Namespace.ElementName.THEAD, HTML40Namespace.ElementName.TBODY, HTML40Namespace.ElementName.TFOOT}; - - /** - */ - public HedTableBody(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_TR_CONTAINER; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - if (elementName == HTML40Namespace.ElementName.TBODY) { - omitType = OMIT_BOTH; - } - else { - omitType = OMIT_END; - } - indentChild = true; - } - - /** - * TBODY/TFOOT/THEAD - * %attrs; - * %cellhalign; - * %cellvalign; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %cellhalign; - attributeCollection.getCellhalign(attributes); - // %cellvalign; - attributeCollection.getCellvalign(attributes); - } - - /** - * THEAD, TFOOT and TBODY have terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java deleted file mode 100644 index 14fcb490cc..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - -/** - * (TH | TD). - */ -final class HedTableCell extends HedFlowContainer { - - private static String[] terminators = {HTML40Namespace.ElementName.TR, HTML40Namespace.ElementName.TH, HTML40Namespace.ElementName.TD}; - - /** - */ - public HedTableCell(String elementName, ElementCollection collection) { - super(elementName, collection); - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END; - } - - /** - * %attrs; - * (abbr %Text; #IMPLIED) - * (axis CDATA #IMPLIED) - * (headers IDREFS #IMPLIED) - * (scope %Scope; #IMPLIED) - * (rowspan NUMBER 1) - * (colspan NUMBER 1) - * %cellhalign; - * %cellvalign; - * (nowrap (nowrap) #IMPLIED) - * (bgcolor %Color; #IMPLIED) - * (width %Length; #IMPLIED) - * (height %Length; #IMPLIED) - * (background %URI; #IMPLIED) - * (bordercolor %Color #IMPLIED) ... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %cellhalign; - attributeCollection.getCellhalign(attributes); - // %cellvalign; - attributeCollection.getCellvalign(attributes); - - String[] names = {HTML40Namespace.ATTR_NAME_ABBR, HTML40Namespace.ATTR_NAME_AXIS, HTML40Namespace.ATTR_NAME_HEADERS, HTML40Namespace.ATTR_NAME_SCOPE, HTML40Namespace.ATTR_NAME_ROWSPAN, HTML40Namespace.ATTR_NAME_COLSPAN, HTML40Namespace.ATTR_NAME_NOWRAP, HTML40Namespace.ATTR_NAME_BGCOLOR, HTML40Namespace.ATTR_NAME_WIDTH, HTML40Namespace.ATTR_NAME_HEIGHT, HTML40Namespace.ATTR_NAME_BACKGROUND, HTML40Namespace.ATTR_NAME_BORDERCOLOR // D205514 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * TH and TD have terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java deleted file mode 100644 index 041c5a56a5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * UL. - */ -final class HedUL extends HedListItemContainer { - - /** - */ - public HedUL(ElementCollection collection) { - super(HTML40Namespace.ElementName.UL, collection); - } - - /** - * UL. - * (type %ULStyle; #IMPLIED) ... should be defined locally. - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (type %ULStyle; #IMPLIED) ... should be defined locally. - // %ULStyle; is (disc|square|circle). - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {HTML40Namespace.ATTR_VALUE_DISC, HTML40Namespace.ATTR_VALUE_SQUARE, HTML40Namespace.ATTR_VALUE_CIRCLE}; - atype.setEnumValues(values); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr); - - // the rest. - String[] names = {HTML40Namespace.ATTR_NAME_COMPACT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {HTML40Namespace.ElementName.DIR, HTML40Namespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java deleted file mode 100644 index f958fe7ed4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -final class HedWBR extends HedEmpty { - - public HedWBR(ElementCollection collection) { - super(HTML40Namespace.ElementName.WBR, collection); - // LAYOUT_BREAK. - // same as BR. - layoutType = LAYOUT_BREAK; - } - - protected void createAttributeDeclarations() { - // No attributes is defined. - if (attributes != null) - return; - attributes = new CMNamedNodeMapImpl(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java deleted file mode 100644 index 767b594cb8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - - -/** - * Implementation of CMDocument for JSP 2.0. - */ -class JCM20DocImpl extends JCMDocImpl { - /** - * JCM20DocImpl constructor comment. - */ - public JCM20DocImpl(String docTypeName, CMNamespaceImpl targetNamespace) { - super(docTypeName, targetNamespace, new JSP20ElementCollection()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java deleted file mode 100644 index b5fe4da5f3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Implementation of CMDocument for JSP 1.1 and JSP 1.2. - */ -class JCMDocImpl extends CMNodeImpl implements JSPCMDocument { - - /** Namespace for all names of elements, entities and attributes. */ - private CMNamespaceImpl namespace = null; - private JSPElementCollection elements = null; - - /** - * HCMDocImpl constructor comment. - */ - public JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) { - this(docTypeName, targetNamespace, new JSPElementCollection()); - } - - JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace, JSPElementCollection collection) { - super(docTypeName); - namespace = targetNamespace; - elements = collection; - } - - public HTMLElementDeclaration getElementDeclaration(String elementName) { - if (elements == null) - return null; - return (HTMLElementDeclaration) elements.getNamedItem(elementName); - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public CMNamedNodeMap getElements() { - return elements; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public CMNamedNodeMap getEntities() { - return null; - } - - public HTMLEntityDeclaration getEntityDeclaration(String entityName) { - return null; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace getNamespace() { - return namespace; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.DOCUMENT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java deleted file mode 100644 index 4d1a9b8b8b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - -/** - * JSP 1.1 Namespace. Note, this interface was - * copied form JSP core packages. One implication - * is that extra care is needed in using '==' instead - * of '.equals'. - */ -public interface JSP11Namespace { - - public static interface ElementName { - // Element names - public static final String SCRIPTLET = "jsp:scriptlet"; //$NON-NLS-1$ - public static final String EXPRESSION = "jsp:expression"; //$NON-NLS-1$ - public static final String DECLARATION = "jsp:declaration"; //$NON-NLS-1$ - public static final String DIRECTIVE_PAGE = "jsp:directive.page"; //$NON-NLS-1$ - public static final String DIRECTIVE_INCLUDE = "jsp:directive.include"; //$NON-NLS-1$ - public static final String DIRECTIVE_TAGLIB = "jsp:directive.taglib"; //$NON-NLS-1$ - public static final String USEBEAN = "jsp:useBean"; //$NON-NLS-1$ - public static final String SETPROPERTY = "jsp:setProperty"; //$NON-NLS-1$ - public static final String GETPROPERTY = "jsp:getProperty"; //$NON-NLS-1$ - public static final String INCLUDE = "jsp:include"; //$NON-NLS-1$ - public static final String FORWARD = "jsp:forward"; //$NON-NLS-1$ - public static final String PLUGIN = "jsp:plugin"; //$NON-NLS-1$ - public static final String PARAMS = "jsp:params"; //$NON-NLS-1$ - public static final String FALLBACK = "jsp:fallback"; //$NON-NLS-1$ - public static final String PARAM = "jsp:param"; //$NON-NLS-1$ - public static final String ROOT = "jsp:root"; //$NON-NLS-1$ - public static final String TEXT = "jsp:text"; //$NON-NLS-1$ - } - - public static final String JSP11_URI = ""; //$NON-NLS-1$ - public static final String JSP_TAG_PREFIX = "jsp"; //$NON-NLS-1$ - // attribute names - // directive.page - public static final String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$ - public static final String ATTR_NAME_EXTENDS = "extends"; //$NON-NLS-1$ - public static final String ATTR_NAME_CONTENT_TYPE = "contentType"; //$NON-NLS-1$ - public static final String ATTR_NAME_IMPORT = "import"; //$NON-NLS-1$ - public static final String ATTR_NAME_SESSION = "session"; //$NON-NLS-1$ - public static final String ATTR_NAME_BUFFER = "buffer"; //$NON-NLS-1$ - public static final String ATTR_NAME_AUTOFLUSH = "autoFlush"; //$NON-NLS-1$ - public static final String ATTR_NAME_IS_THREAD_SAFE = "isThreadSafe"; //$NON-NLS-1$ - public static final String ATTR_NAME_INFO = "info"; //$NON-NLS-1$ - public static final String ATTR_NAME_ERROR_PAGE = "errorPage"; //$NON-NLS-1$ - public static final String ATTR_NAME_IS_ERROR_PAGE = "isErrorPage"; //$NON-NLS-1$ - public static final String ATTR_NAME_PAGE_ENCODING = "pageEncoding"; //$NON-NLS-1$ - // directive.include - public static final String ATTR_NAME_FILE = "file"; //$NON-NLS-1$ - // directive.taglib - public static final String ATTR_NAME_URI = "uri"; //$NON-NLS-1$ - public static final String ATTR_NAME_PREFIX = "prefix"; //$NON-NLS-1$ - // useBean - public static final String ATTR_NAME_ID = "id"; //$NON-NLS-1$ - public static final String ATTR_NAME_SCOPE = "scope"; //$NON-NLS-1$ - public static final String ATTR_NAME_CLASS = "class"; //$NON-NLS-1$ - public static final String ATTR_NAME_BEAN_NAME = "beanName"; //$NON-NLS-1$ - public static final String ATTR_NAME_TYPE = "type"; //$NON-NLS-1$ - // setProperty - public static final String ATTR_NAME_NAME = "name"; //$NON-NLS-1$ - public static final String ATTR_NAME_PROPERTY = "property"; //$NON-NLS-1$ - public static final String ATTR_NAME_VALUE = "value"; //$NON-NLS-1$ - public static final String ATTR_NAME_PARAM = "param"; //$NON-NLS-1$ - // include - public static final String ATTR_NAME_PAGE = "page"; //$NON-NLS-1$ - public static final String ATTR_NAME_FLUSH = "flush"; //$NON-NLS-1$ - // plugin - public static final String ATTR_NAME_CODE = "code"; //$NON-NLS-1$ - public static final String ATTR_NAME_CODEBASE = "codebase"; //$NON-NLS-1$ - public static final String ATTR_NAME_ALIGN = "align"; //$NON-NLS-1$ - public static final String ATTR_NAME_ARCHIVE = "archive"; //$NON-NLS-1$ - public static final String ATTR_NAME_HEIGHT = "height"; //$NON-NLS-1$ - public static final String ATTR_NAME_HSPACE = "hspace"; //$NON-NLS-1$ - public static final String ATTR_NAME_JREVERSION = "jreversion"; //$NON-NLS-1$ - public static final String ATTR_NAME_VSPACE = "vspace"; //$NON-NLS-1$ - public static final String ATTR_NAME_WIDTH = "width"; //$NON-NLS-1$ - public static final String ATTR_NAME_NSPLUGINURL = "nspluginurl"; //$NON-NLS-1$ - public static final String ATTR_NAME_IEPLUGINURL = "iepluginurl"; //$NON-NLS-1$ - // root - public static final String ATTR_NAME_XMLNS_JSP = "xmlns:jsp"; //$NON-NLS-1$ - public static final String ATTR_NAME_VERSION = "version"; //$NON-NLS-1$ - // attribute values - public static final String ATTR_VALUE_TRUE = "true"; //$NON-NLS-1$ - public static final String ATTR_VALUE_FALSE = "false"; //$NON-NLS-1$ - public static final String ATTR_VALUE_JAVA = "java"; //$NON-NLS-1$ - public static final String ATTR_VALUE_CT_DEFAULT = "text/html; charset=ISO-8859-1";//D195366 //$NON-NLS-1$ - public static final String ATTR_VALUE_BUFSIZ_DEFAULT = "8kb"; //$NON-NLS-1$ - public static final String ATTR_VALUE_PAGE = "page"; //$NON-NLS-1$ - public static final String ATTR_VALUE_SESSION = "session"; //$NON-NLS-1$ - public static final String ATTR_VALUE_REQUEST = "request"; //$NON-NLS-1$ - public static final String ATTR_VALUE_APPLICATION = "application"; //$NON-NLS-1$ - public static final String ATTR_VALUE_BEAN = "bean"; //$NON-NLS-1$ - public static final String ATTR_VALUE_APPLET = "applet"; //$NON-NLS-1$ - public static final String ATTR_VALUE_TOP = "top"; //$NON-NLS-1$ - public static final String ATTR_VALUE_MIDDLE = "middle"; //$NON-NLS-1$ - public static final String ATTR_VALUE_BOTTOM = "bottom"; //$NON-NLS-1$ - public static final String ATTR_VALUE_LEFT = "left"; //$NON-NLS-1$ - public static final String ATTR_VALUE_RIGHT = "right"; //$NON-NLS-1$ - public static final String ATTR_VALUE_JVER11 = "1.1"; //$NON-NLS-1$ - public static final String ATTR_VALUE_XMLNS_JSP = "http://java.sun.com/JSP/Page"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java deleted file mode 100644 index d2e1be8b22..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.lang.reflect.Field; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for element declarations of JSP 1.1 and JSP 1.2. - */ -final class JSP20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName { - - // element IDs - private static class Ids20 extends Ids { - public static final int ID_BODY = 17; - public static final int ID_ATTRIBUTE = 18; - public static final int ID_ELEMENT = 19; - public static final int ID_OUTPUT = 20; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 105. - // -- 5/25/2001 - Class clazz = Ids20.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - // attribute creater - private class JACreater20 extends JACreater { - public JACreater20() { - super(); - } - - public CMNamedNodeMapImpl getDeclarations(int eid) { - switch (eid) { - case Ids20.ID_ATTRIBUTE : - createForAttribute(); - break; - case Ids20.ID_ELEMENT : - createForElement(); - break; - case Ids20.ID_BODY : - createForBody(); - break; - case Ids20.ID_OUTPUT : - createForOutput(); - break; - case Ids.ID_DIRECTIVE_TAGLIB : - createForDirTaglib(); - break; - default : - super.getDeclarations(eid); - } - return declarations; - } - - private void createForBody() { - } - - private void createForOutput() { - AttrDecl adec = new AttrDecl(JSP20Namespace.ElementName.OUTPUT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ElementName.OUTPUT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec); - } - - /** - * Changed in 2.0 - */ - void createForDirTaglib() { - // ("uri" URI OPTIONAL) - AttrDecl adec = new AttrDecl(ATTR_NAME_URI); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(ATTR_NAME_URI, adec); - - // ("tagdir" URI OPTIONAL) - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec); - - // ("prefix" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_PREFIX); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PREFIX, adec); - } - - private void createForElement() { - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - } - - private void createForAttribute() { - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec); - } - } - - private static String[] names = null; - - static { - names = new String[Ids20.getNumOfIds()]; - names[Ids.ID_SCRIPTLET] = SCRIPTLET; - names[Ids.ID_EXPRESSION] = EXPRESSION; - names[Ids.ID_DECLARATION] = DECLARATION; - names[Ids.ID_DIRECTIVE_PAGE] = DIRECTIVE_PAGE; - names[Ids.ID_DIRECTIVE_INCLUDE] = DIRECTIVE_INCLUDE; - names[Ids.ID_DIRECTIVE_TAGLIB] = DIRECTIVE_TAGLIB; - names[Ids.ID_USEBEAN] = USEBEAN; - names[Ids.ID_SETPROPERTY] = SETPROPERTY; - names[Ids.ID_GETPROPERTY] = GETPROPERTY; - names[Ids.ID_INCLUDE] = INCLUDE; - names[Ids.ID_FORWARD] = FORWARD; - names[Ids.ID_PLUGIN] = PLUGIN; - names[Ids.ID_PARAMS] = PARAMS; - names[Ids.ID_FALLBACK] = FALLBACK; - names[Ids.ID_PARAM] = PARAM; - names[Ids.ID_ROOT] = ROOT; - names[Ids.ID_TEXT] = TEXT; - names[Ids20.ID_BODY] = JSP20Namespace.ElementName.BODY; - names[Ids20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE; - names[Ids20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT; - names[Ids20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT; - } - - /** - */ - public JSP20ElementCollection() { - super(JSP20ElementCollection.names, TOLERANT_CASE); - } - - /** - * @param eid - * int - */ - CMGroupImpl createContent(int eid) { - if (eid == ID_UNKNOWN) - return null; - - CMGroupImpl content = null; - CMNode child = null; - - switch (eid) { - case Ids.ID_ROOT : - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - int validChildren[] = { - // %Directives; - Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, Ids20.ID_BODY, Ids20.ID_ATTRIBUTE, - // %Scripts; - Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION, - // %Actions; - Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN}; - for (int i = 0; i < validChildren.length; i++) { - child = item(validChildren[i]); - if (child != null) - content.appendChild(child); - } - break; - default : - content = super.createContent(eid); - break; - } - - return content; - } - - /** - * @param eid - * int - */ - HTMLElementDeclaration createElemDecl(int eid) { - if (eid == ID_UNKNOWN) - return null; - - TypePacket packet = new TypePacket(); - switch (eid) { - case Ids20.ID_BODY : - // declaration - packet.name = JSP20Namespace.ElementName.BODY; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids20.ID_ELEMENT : - // declaration - packet.name = JSP20Namespace.ElementName.ELEMENT; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids20.ID_ATTRIBUTE : - // declaration - packet.name = JSP20Namespace.ElementName.ATTRIBUTE; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids20.ID_OUTPUT : - // declaration - packet.name = JSP20Namespace.ElementName.OUTPUT; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids.ID_DIRECTIVE_TAGLIB : - // directive.taglib - packet.name = DIRECTIVE_TAGLIB; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - default : - return super.createElemDecl(eid); - } - ElemDecl decl = new ElemDecl(packet); - - CMGroupImpl content = createContent(eid); - if (content != null) - decl.setContent(content); - - JACreater20 creater = new JACreater20(); - decl.setAttributes(creater.getDeclarations(eid)); - - return decl; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java deleted file mode 100644 index 5a0dc9a81f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -/** - * New names for JSP 2.0 spec. - * - * @deprecated - use - * org.eclipse.jst.jsp.core.internal.provisional.JSP20Namespace - */ - -public interface JSP20Namespace extends JSP11Namespace { - public static String JSP20_URI = "";//$NON-NLS-1$ - - /** - * New elements for JSP 2.0 spec. - */ - public static interface ElementName extends JSP11Namespace.ElementName { - String DIRECTIVE_TAG = "jsp:directive.tag"; //$NON-NLS-1$ - String DIRECTIVE_ATTRIBUTE = "jsp:directive.attribute"; //$NON-NLS-1$ - String DIRECTIVE_VARIABLE = "jsp:directive.variable"; //$NON-NLS-1$ - String BODY = "jsp:body"; //$NON-NLS-1$ - String ATTRIBUTE = "jsp:attribute"; //$NON-NLS-1$ - String ELEMENT = "jsp:element"; //$NON-NLS-1$ - String DOBODY = "jsp:doBody"; - String INVOKE = "jsp:invoke"; - String OUTPUT = "jsp:output"; - } - - String ATTR_NAME_TAGDIR = "tagdir"; //$NON-NLS-1$ - - String ATTR_NAME_DISPLAY_NAME = "display-name"; //$NON-NLS-1$ - String ATTR_NAME_BODY_CONTENT = "body-content"; //$NON-NLS-1$ - String ATTR_NAME_SMALL_ICON = "small-icon"; //$NON-NLS-1$ - String ATTR_NAME_LARGE_ICON = "large-icon"; //$NON-NLS-1$ - String ATTR_NAME_DESCRIPTION = "description"; //$NON-NLS-1$ - String ATTR_NAME_EXAMPLE = "example"; //$NON-NLS-1$ - String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$ - String ATTR_NAME_IMPORT = "import"; //$NON-NLS-1$ - String ATTR_NAME_PAGEENCODING = "pageEncoding"; //$NON-NLS-1$ - String ATTR_NAME_ISELIGNORED = "isELIgnored"; //$NON-NLS-1$ - - String ATTR_NAME_REQUIRED = "required"; //$NON-NLS-1$ - String ATTR_NAME_FRAGMENT = "fragment"; //$NON-NLS-1$ - String ATTR_NAME_RTEXPRVALUE = "rtexprvalue"; //$NON-NLS-1$ - String ATTR_NAME_TYPE = "type"; //$NON-NLS-1$ - - String ATTR_NAME_NAME_GIVEN = "name-given"; //$NON-NLS-1$ - String ATTR_NAME_NAME_FROM_ATTRIBUTE = "name-from-attribute"; //$NON-NLS-1$ - String ATTR_NAME_ALIAS = "alias"; //$NON-NLS-1$ - String ATTR_NAME_VARIABLE_CLASS = "variable-class"; //$NON-NLS-1$ - String ATTR_NAME_DECLARE = "declare"; //$NON-NLS-1$ - - String ATTR_VALUE_SCRIPTLESS = "scriptless"; //$NON-NLS-1$ - String ATTR_VALUE_TAGDEPENDENT = "tagdependent"; //$NON-NLS-1$ - String ATTR_VALUE_EMPTY = "empty"; //$NON-NLS-1$ - - String ATTR_NAME_TRIM = "trim"; //$NON-NLS-1$ - - String ATTR_NAME_VAR = "var"; //$NON-NLS-1$ - String ATTR_NAME_VARREADER = "varReader"; //$NON-NLS-1$ - - String ATTR_NAME_DOCTYPE_ROOT_ELEMENT = "doctype-root-element"; //$NON-NLS-1$ - String ATTR_NAME_DOCTYPE_SYSTEM = "doctype-system"; //$NON-NLS-1$ - String ATTR_NAME_DOCTYPE_PUBLIC = "doctype-public"; //$NON-NLS-1$ - - String ATTR_VALUE_NO = "no"; - String ATTR_VALUE_YES = "yes"; - - String ATTR_VALUE_SCOPE_AT_END = "AT_END"; - String ATTR_VALUE_SCOPE_AT_BEGIN = "AT_BEGIN"; - String ATTR_VALUE_SCOPE_NESTED = "NESTED"; -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java deleted file mode 100644 index 802bfb2994..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -/** - * JSP extension for CMDocument. - * This interface provides some short hand methods to get declarations - * by a name. - */ -public interface JSPCMDocument extends org.eclipse.wst.xml.core.internal.contentmodel.CMDocument { - - /** - * A short hand method to get a element declaration for a JSP element. - * JSP declaration class implements HTMLElementDeclaration interface. - * @param elementName java.lang.String - */ - HTMLElementDeclaration getElementDeclaration(String elementName); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java deleted file mode 100644 index 67832d974d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java +++ /dev/null @@ -1,900 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for element declarations of the JSP 1.1 and 1.2. - */ -class JSPElementCollection extends DeclCollection implements JSP11Namespace.ElementName { - - - class TypePacket { - public String name = null; - public int content = CMElementDeclaration.EMPTY; - public int omit = HTMLElementDeclaration.OMIT_NONE; - public int lineBreak = HTMLElementDeclaration.BREAK_NONE; - public int layout = HTMLElementDeclaration.LAYOUT_NONE; - public int correct = HTMLElementDeclaration.CORRECT_NONE; - public int format = HTMLElementDeclaration.FORMAT_XML; - public boolean indentChild = false; - - public TypePacket() { - } - } - - /** JSP element declaration. */ - class ElemDecl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration { - private TypePacket type = null; - private CMGroupImpl content = null; - private CMNamedNodeMapImpl attributes = null; - - public ElemDecl(TypePacket t) { - super(t.name, 1, 1); - type = t; - } - - public void setContent(CMGroupImpl group) { - content = group; - } - - public void setAttributes(CMNamedNodeMapImpl attrs) { - attributes = attrs; - } - - // implements CMNode - public int getNodeType() { - return CMNode.ELEMENT_DECLARATION; - } - - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return true; - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - return true; - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return false; - return pp.supports(this); - } - } - - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return Boolean.FALSE; //D208839 - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - String myName = getElementName(); - if (myName == JSP11Namespace.ElementName.PLUGIN) { - return getNamedItem(JSP11Namespace.ElementName.PARAMS); // outer class method. - } - else if (myName == JSP11Namespace.ElementName.PARAMS) { - return getNamedItem(JSP11Namespace.ElementName.PARAM); // outer class method. - } - else { - return null; - } - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return null; - return pp.get(this); - } - } - - // implementes CMElementDeclaration - public CMNamedNodeMap getAttributes() { - return attributes; - } - - public CMContent getContent() { - return content; - } - - public int getContentType() { - return type.content; - } - - public CMDataType getDataType() { - return null; - } - - public String getElementName() { - return getNodeName(); - } - - public CMNamedNodeMap getLocalElements() { - return null; - } - - // implementes HTMLElementDeclaration - public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) { - if (attributes == null) - return null; - return (HTMLAttributeDeclaration) attributes.getNamedItem(attrName); - } - - public int getCorrectionType() { - return type.correct; - } - - public CMContent getExclusion() { - return null; - } - - public CMContent getInclusion() { - return null; - } - - public CMNamedNodeMap getProhibitedAncestors() { - return EMPTY_MAP; - } - - public int getFormatType() { - return type.format; - } - - public int getLayoutType() { - return type.layout; - } - - public int getLineBreakHint() { - return type.lineBreak; - } - - public int getOmitType() { - return type.omit; - } - - public boolean shouldTerminateAt(HTMLElementDeclaration dec) { - return false; - } - - public boolean shouldKeepSpaces() { - return false; - } - - public boolean shouldIndentChildSource() { - return type.indentChild; - } - - public boolean isJSP() { - return true; - } - } - - // element IDs - static class Ids { - public static final int ID_SCRIPTLET = 0; - public static final int ID_EXPRESSION = 1; - public static final int ID_DECLARATION = 2; - public static final int ID_DIRECTIVE_PAGE = 3; - public static final int ID_DIRECTIVE_INCLUDE = 4; - public static final int ID_DIRECTIVE_TAGLIB = 5; - public static final int ID_USEBEAN = 6; - public static final int ID_SETPROPERTY = 7; - public static final int ID_GETPROPERTY = 8; - public static final int ID_INCLUDE = 9; - public static final int ID_FORWARD = 10; - public static final int ID_PLUGIN = 11; - public static final int ID_PARAMS = 12; - public static final int ID_FALLBACK = 13; - public static final int ID_PARAM = 14; - public static final int ID_ROOT = 15; - public static final int ID_TEXT = 16; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 105. - // -- 5/25/2001 - Class clazz = Ids.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - // attribute creater - class JACreater implements JSP11Namespace { - // attribute declaration - class AttrDecl extends CMNodeImpl implements HTMLAttributeDeclaration { - HTMLCMDataTypeImpl type = null; - int usage = CMAttributeDeclaration.OPTIONAL; - - // methods - public AttrDecl(String attrName) { - super(attrName); - } - - public String getAttrName() { - return getNodeName(); - } - - public CMDataType getAttrType() { - return type; - } - - /** @deprecated by superclass */ - public String getDefaultValue() { - if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT) - return null; - return type.getImpliedValue(); - } - - /** @deprecated by superclass */ - public Enumeration getEnumAttr() { - Vector v = new Vector(Arrays.asList(type.getEnumeratedValues())); - return v.elements(); - } - - public int getNodeType() { - return CMNode.ATTRIBUTE_DECLARATION; - } - - public int getUsage() { - return usage; - } - - public boolean shouldIgnoreCase() { - return false; - } - } - - CMNamedNodeMapImpl declarations = null; - - public JACreater() { - declarations = new CMNamedNodeMapImpl(); - } - - public CMNamedNodeMapImpl getDeclarations(int eid) { - switch (eid) { - case Ids.ID_DIRECTIVE_PAGE : - createForDirPage(); - break; - case Ids.ID_DIRECTIVE_INCLUDE : - createForDirInclude(); - break; - case Ids.ID_DIRECTIVE_TAGLIB : - createForDirTaglib(); - break; - case Ids.ID_USEBEAN : - createForUseBean(); - break; - case Ids.ID_SETPROPERTY : - createForSetProperty(); - break; - case Ids.ID_GETPROPERTY : - createForGetProperty(); - break; - case Ids.ID_INCLUDE : - createForInclude(); - break; - case Ids.ID_FORWARD : - createForForward(); - break; - case Ids.ID_PLUGIN : - createForPlugin(); - break; - case Ids.ID_PARAM : - createForParam(); - break; - case Ids.ID_ROOT : - createForRoot(); - break; - default : - // should warn. - break; - } - return declarations; - } - - private AttrDecl createBoolType(String name, String defValue) { - AttrDecl adec = new AttrDecl(name); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, defValue); - return adec; - } - - private void createForDirPage() { - AttrDecl adec = null; - // ("language" CDATA DECLARED "java") - adec = new AttrDecl(ATTR_NAME_LANGUAGE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA); - declarations.putNamedItem(ATTR_NAME_LANGUAGE, adec); - - // ("extends" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_EXTENDS); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_EXTENDS, adec); - - // ("contentType" CDATA DECLARED "text/html; ISO-8859-1") - adec = new AttrDecl(ATTR_NAME_CONTENT_TYPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_CT_DEFAULT); - declarations.putNamedItem(ATTR_NAME_CONTENT_TYPE, adec); - - // ("import" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_IMPORT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_IMPORT, adec); - - // ("session" ENUM DECLARED (true|false) "true") - adec = createBoolType(ATTR_NAME_SESSION, ATTR_VALUE_TRUE); - if (adec != null) - declarations.putNamedItem(ATTR_NAME_SESSION, adec); - - // ("buffer" CDATA DECLARED "8kb") - adec = new AttrDecl(ATTR_NAME_BUFFER); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BUFSIZ_DEFAULT); - declarations.putNamedItem(ATTR_NAME_BUFFER, adec); - - // ("autoFlush" ENUM DECLARED (true|false) "true") - adec = createBoolType(ATTR_NAME_AUTOFLUSH, ATTR_VALUE_TRUE); - if (adec != null) - declarations.putNamedItem(ATTR_NAME_AUTOFLUSH, adec); - - // ("isThreadSafe" ENUM DECLARED (true|false) "true") - adec = createBoolType(ATTR_NAME_IS_THREAD_SAFE, ATTR_VALUE_TRUE); - if (adec != null) - declarations.putNamedItem(ATTR_NAME_IS_THREAD_SAFE, adec); - - // ("info" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_INFO); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_INFO, adec); - - // ("errorPage" URI IMPLIED) - adec = new AttrDecl(ATTR_NAME_ERROR_PAGE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - declarations.putNamedItem(ATTR_NAME_ERROR_PAGE, adec); - - // ("isErrorPage" ENUM DECLARED (true|false) "false") - adec = createBoolType(ATTR_NAME_IS_ERROR_PAGE, ATTR_VALUE_FALSE); - if (adec != null) - declarations.putNamedItem(ATTR_NAME_IS_ERROR_PAGE, adec); - - // ("pageEncoding" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_PAGE_ENCODING); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_PAGE_ENCODING, adec); - - } - - private void createForDirInclude() { - // ("file" URI REQUIRED); Defect TORO:185241 - AttrDecl adec = new AttrDecl(ATTR_NAME_FILE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_FILE, adec); - } - - void createForDirTaglib() { - // ("uri" URI REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_URI); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_URI, adec); - - // ("prefix" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_PREFIX); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PREFIX, adec); - } - - private void createForUseBean() { - // ("id" ID REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_ID); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ID); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_ID, adec); - - // ("scope" ENUM DECLARED (page|session|request|application) "page") - adec = new AttrDecl(ATTR_NAME_SCOPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_SESSION, ATTR_VALUE_REQUEST, ATTR_VALUE_APPLICATION}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE); - declarations.putNamedItem(ATTR_NAME_SCOPE, adec); - - // ("class" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_CLASS); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_CLASS, adec); - - // ("beanName" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_BEAN_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_BEAN_NAME, adec); - - // ("type" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_TYPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_TYPE, adec); - } - - private void createForSetProperty() { - // ("name" IDREF REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.IDREF); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - // ("property" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_PROPERTY); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PROPERTY, adec); - - // ("value" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_VALUE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_VALUE, adec); - - // ("param" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_PARAM); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_PARAM, adec); - - } - - private void createForGetProperty() { - // ("name" IDREF REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.IDREF); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - // ("property" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_PROPERTY); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PROPERTY, adec); - - } - - private void createForInclude() { - AttrDecl adec = null; - // ("page" URI REQUIRED) - adec = new AttrDecl(ATTR_NAME_PAGE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PAGE, adec); - - // ("flush" ENUM OPTIONAL (true|false)); Defect TORO:185241 - adec = new AttrDecl(ATTR_NAME_FLUSH); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - adec.usage = CMAttributeDeclaration.OPTIONAL; - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE); - declarations.putNamedItem(ATTR_NAME_FLUSH, adec); - } - - private void createForForward() { - // ("page" URI REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_PAGE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PAGE, adec); - } - - private void createForPlugin() { - // ("type" ENUM REQUIRED (bean|applet)) - AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - adec.usage = CMAttributeDeclaration.REQUIRED; - String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET}; - adec.type.setEnumValues(values); - declarations.putNamedItem(ATTR_NAME_TYPE, adec); - - // ("code" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_CODE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_CODE, adec); - - // ("codebase" URI REQUIRED) - adec = new AttrDecl(ATTR_NAME_CODEBASE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_CODEBASE, adec); - - // ("align" ENUM IMPLIED (top|middle|bottom|left|right)) - adec = new AttrDecl(ATTR_NAME_ALIGN); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT}; - adec.type.setEnumValues(aligns); - declarations.putNamedItem(ATTR_NAME_ALIGN, adec); - - // ("archive" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_ARCHIVE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec); - - // ("height" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_HEIGHT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_HEIGHT, adec); - - // ("hspace" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_HSPACE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_HSPACE, adec); - - // ("jreversion" CDATA DECLARED "1.1") - adec = new AttrDecl(ATTR_NAME_JREVERSION); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JVER11); - declarations.putNamedItem(ATTR_NAME_JREVERSION, adec); - - // ("name" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - // ("vspace" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_VSPACE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_VSPACE, adec); - - // ("width" CDATA IMPLIED) - adec = new AttrDecl(ATTR_NAME_WIDTH); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - declarations.putNamedItem(ATTR_NAME_WIDTH, adec); - - // ("nspluginurl" URI IMPLIED) - adec = new AttrDecl(ATTR_NAME_NSPLUGINURL); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec); - - // ("iepluginurl" URI IMPLIED) - adec = new AttrDecl(ATTR_NAME_IEPLUGINURL); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec); - } - - private void createForParam() { - // ("name" CDATA REQUIRED) - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - // ("value" CDATA REQUIRED); Defect TORO:185241 - adec = new AttrDecl(ATTR_NAME_VALUE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_VALUE, adec); - - } - - private void createForRoot() { - // ("xmlns:jsp" CDATA "http://jva.sun.com/JSP/Page") - AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP); - declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec); - // ("version" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_VERSION); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_VERSION, adec); - } - } - - private final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() { - public int getLength() { - return 0; - } - - public CMNode getNamedItem(String name) { - return null; - } - - public CMNode item(int index) { - return null; - } - - public Iterator iterator() { - return new Iterator() { - public boolean hasNext() { - return false; - } - - public Object next() { - return null; - } - - public void remove() { - } - }; - } - }; - private static String[] names = null; - - static { - names = new String[Ids.getNumOfIds()]; - names[Ids.ID_SCRIPTLET] = SCRIPTLET; - names[Ids.ID_EXPRESSION] = EXPRESSION; - names[Ids.ID_DECLARATION] = DECLARATION; - names[Ids.ID_DIRECTIVE_PAGE] = DIRECTIVE_PAGE; - names[Ids.ID_DIRECTIVE_INCLUDE] = DIRECTIVE_INCLUDE; - names[Ids.ID_DIRECTIVE_TAGLIB] = DIRECTIVE_TAGLIB; - names[Ids.ID_USEBEAN] = USEBEAN; - names[Ids.ID_SETPROPERTY] = SETPROPERTY; - names[Ids.ID_GETPROPERTY] = GETPROPERTY; - names[Ids.ID_INCLUDE] = INCLUDE; - names[Ids.ID_FORWARD] = FORWARD; - names[Ids.ID_PLUGIN] = PLUGIN; - names[Ids.ID_PARAMS] = PARAMS; - names[Ids.ID_FALLBACK] = FALLBACK; - names[Ids.ID_PARAM] = PARAM; - names[Ids.ID_ROOT] = ROOT; - names[Ids.ID_TEXT] = TEXT; - } - - JSPElementCollection(String[] names, boolean tolerant) { - super(names, tolerant); - } - - /** - */ - public JSPElementCollection() { - super(names, TOLERANT_CASE); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param elementName java.lang.String - */ - protected CMNode create(String elementName) { - return createElemDecl(getID(elementName)); - } - - /** - * @param eid int - */ - CMGroupImpl createContent(int eid) { - if (eid == ID_UNKNOWN) - return null; - - CMGroupImpl content = null; - CMNode child = null; - - switch (eid) { - case Ids.ID_INCLUDE : - case Ids.ID_FORWARD : - // (jsp:param)* - content = new CMGroupImpl(CMGroup.SEQUENCE, 0, CMContentImpl.UNBOUNDED); - child = item(Ids.ID_PARAM); - if (child != null) - content.appendChild(child); - break; - case Ids.ID_PLUGIN : - // (jsp:params | jsp:fallback)? - content = new CMGroupImpl(CMGroup.CHOICE, 0, 1); - // jsp:params - child = item(Ids.ID_PARAMS); - if (child != null) - content.appendChild(child); - // jsp:fallback - child = item(Ids.ID_FALLBACK); - if (child != null) - content.appendChild(child); - break; - case Ids.ID_PARAMS : - // (jsp:param)+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - child = item(Ids.ID_PARAM); - if (child != null) - content.appendChild(child); - break; - case Ids.ID_ROOT : - // %Body; - // --> (jsp:text|%Directives;|%Scripts;|%Actions;)* - // %Directives --> jsp:directive.page|jsp:directive.include - // %Scripts; --> jsp:scriptlet|jsp:declaration|jsp:expression - // %Actions --> jsp:useBean|jsp.setProperty|jsp:getProperty - // |jsp:include|jsp:forward|jsp:plugin - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - int validChildren[] = {Ids.ID_TEXT, - // %Directves; - Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, - // %Scripts; - Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION, - // %Actions; - Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN}; - for (int i = 0; i < validChildren.length; i++) { - child = item(validChildren[i]); - if (child != null) - content.appendChild(child); - } - break; - } - - return content; - } - - /** - * @param eid int - */ - HTMLElementDeclaration createElemDecl(int eid) { - if (eid == ID_UNKNOWN) - return null; - - TypePacket packet = new TypePacket(); - switch (eid) { - case Ids.ID_SCRIPTLET : - // content, omit, lineBreak, layout, correct, format - // scriptlet - packet.name = SCRIPTLET; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids.ID_EXPRESSION : - // expression - packet.name = EXPRESSION; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids.ID_DECLARATION : - // declaration - packet.name = DECLARATION; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case Ids.ID_DIRECTIVE_PAGE : - // directive.page - packet.name = DIRECTIVE_PAGE; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case Ids.ID_DIRECTIVE_INCLUDE : - // directive.inlcude - packet.name = DIRECTIVE_INCLUDE; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case Ids.ID_DIRECTIVE_TAGLIB : - // directive.taglib - packet.name = DIRECTIVE_TAGLIB; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case Ids.ID_USEBEAN : - // useBean - packet.name = USEBEAN; - packet.content = CMElementDeclaration.ANY; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.indentChild = true; - break; - case Ids.ID_SETPROPERTY : - // setProperty - packet.name = SETPROPERTY; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - break; - case Ids.ID_GETPROPERTY : - // getProperty - packet.name = GETPROPERTY; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - break; - case Ids.ID_INCLUDE : - // include - packet.name = INCLUDE; - packet.content = CMElementDeclaration.ELEMENT; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - break; - case Ids.ID_FORWARD : - // forward - packet.name = FORWARD; - packet.content = CMElementDeclaration.ELEMENT; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - break; - case Ids.ID_PLUGIN : - // plugin - packet.name = PLUGIN; - packet.content = CMElementDeclaration.ELEMENT; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - break; - case Ids.ID_PARAMS : - // params - packet.name = PARAMS; - packet.content = CMElementDeclaration.ELEMENT; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.indentChild = true; - break; - case Ids.ID_FALLBACK : - // fallback - packet.name = FALLBACK; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - break; - case Ids.ID_PARAM : - // param - packet.name = PARAM; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - break; - case Ids.ID_ROOT : - packet.name = ROOT; - packet.content = CMElementDeclaration.ELEMENT; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML - break; - case Ids.ID_TEXT : - packet.name = TEXT; - packet.content = CMElementDeclaration.PCDATA; - break; - default : - // unknown ID - return null; - } - - ElemDecl dec = new ElemDecl(packet); - - CMGroupImpl content = createContent(eid); - if (content != null) - dec.setContent(content); - - JACreater creater = new JACreater(); - dec.setAttributes(creater.getDeclarations(eid)); - - return dec; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java deleted file mode 100644 index f3972ecd36..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - -/** - * PropertyProvider class. - * This class is intended to be used in HTMLElementDeclaration instances. - */ -interface PropertyProvider { - - boolean supports(HTMLElementDeclaration edecl); - - Object get(HTMLElementDeclaration edecl); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java deleted file mode 100644 index 5eb1abe27e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java +++ /dev/null @@ -1,360 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -import java.util.Hashtable; - -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap; - -/** - * The factory object of PropertyProvider. - */ -final class PropertyProviderFactory { - - - /** - * DefaultProvider is intended to be used for unknown properties. - * It always returns null value for any properties. - */ - class DefaultProvider implements PropertyProvider { - public DefaultProvider() { - super(); - } - - public boolean supports(HTMLElementDeclaration edecl) { - return false; - } - - public Object get(HTMLElementDeclaration edecl) { - return null; - } - } - - abstract class AbstractElementPropertyProvider implements PropertyProvider { - protected AbstractElementPropertyProvider() { - super(); - } - - public boolean supports(HTMLElementDeclaration edecl) { - return (edecl != null); - } - - public Object get(HTMLElementDeclaration edecl) { - if (!(edecl instanceof HTMLPropertyDeclaration)) - return null; - return getElementProperty((HTMLPropertyDeclaration)edecl); - } - - abstract protected Object getElementProperty(HTMLPropertyDeclaration decl); - } - - /* - * "tagInfo" - * gets documentation for the element - */ - class PPTagInfo extends AbstractElementPropertyProvider { - private final static String htmlAnnotationLoc = "data/htmref.xml"; //$NON-NLS-1$ - protected AnnotationMap fAnnotationMap = null; - - public PPTagInfo() { - super(); - } - - /** - * Gets the annotationMap. - * @return Returns a AnnotationMap - */ - protected AnnotationMap getAnnotationMap() { - if (fAnnotationMap == null) { - fAnnotationMap = new AnnotationMap(); - try { - fAnnotationMap.load(htmlAnnotationLoc, HTMLCorePlugin.getDefault().getBundle().getSymbolicName()); - } - catch (Exception e) { - // no annotation available - } - } - return fAnnotationMap; - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - if (decl instanceof HTMLElementDeclaration) { - return getAnnotationMap().getProperty(((HTMLElementDeclaration)decl).getElementName(), "tagInfo"); //$NON-NLS-1$ - } else { - return null; - } - } - } - - /* - * "shouldKeepSpace" - */ - class PPShouldKeepSpace extends AbstractElementPropertyProvider { - public PPShouldKeepSpace() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.shouldKeepSpaces()); - } - } - - /* - * "shouldIndentChildSource" - */ - class PPShouldIndentChildSource extends AbstractElementPropertyProvider { - public PPShouldIndentChildSource() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.shouldIndentChildSource()); - } - } - - /* - * "terminators" - */ - class PPTerminators extends AbstractElementPropertyProvider { - public PPTerminators() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - if (! (decl instanceof HTMLElemDeclImpl)) return null; - return ((HTMLElemDeclImpl)decl).getTerminators(); - } - } - - /* - * "prohibitedAncestors" - */ - class PPProhibitedAncestors extends AbstractElementPropertyProvider { - public PPProhibitedAncestors() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return decl.getProhibitedAncestors(); - } - } - - /* - * "isJSP" - */ - class PPIsJSP extends AbstractElementPropertyProvider { - public PPIsJSP() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.isJSP()); - } - } - - /* - * "isXHTML" - * HTMLElementDeclaration itself never represent any XHTML element declaration. - * So, this property must be always false. - */ - class PPIsXHTML extends AbstractElementPropertyProvider { - public PPIsXHTML() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(false); - } - } - - /* - * "isSSI" - * Each declaration class for SSI elements must provide this property itself, - * and then return true. Other declaration must always return false. - */ - class PPIsSSI extends AbstractElementPropertyProvider { - public PPIsSSI() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(false); - } - } - - /* - * "lineBreakHint" - */ - class PPLineBreakHint extends AbstractElementPropertyProvider { - public PPLineBreakHint() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String hint = HTMLCMProperties.Values.BREAK_NONE; - switch (decl.getLineBreakHint()) { - case HTMLElementDeclaration.BREAK_AFTER_START : - hint = HTMLCMProperties.Values.BREAK_AFTER_START; - break; - case HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END : - hint = HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END; - break; - case HTMLElementDeclaration.BREAK_NONE : - // nothing to do - default : - break; - } - return hint; - } - } - - /* - * "layoutType" - */ - class PPLayoutType extends AbstractElementPropertyProvider { - public PPLayoutType() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String type = HTMLCMProperties.Values.LAYOUT_NONE; - switch (decl.getLayoutType()) { - case HTMLElementDeclaration.LAYOUT_BLOCK : - type = HTMLCMProperties.Values.LAYOUT_BLOCK; - break; - case HTMLElementDeclaration.LAYOUT_BREAK : - type = HTMLCMProperties.Values.LAYOUT_BREAK; - break; - case HTMLElementDeclaration.LAYOUT_HIDDEN : - type = HTMLCMProperties.Values.LAYOUT_HIDDEN; - break; - case HTMLElementDeclaration.LAYOUT_OBJECT : - type = HTMLCMProperties.Values.LAYOUT_OBJECT; - break; - case HTMLElementDeclaration.LAYOUT_WRAP : - type = HTMLCMProperties.Values.LAYOUT_WRAP; - break; - case HTMLElementDeclaration.LAYOUT_NONE : - // nothing to do. - default : - break; - } - return type; - } - } - - /* - * "omitType" - */ - class PPOmitType extends AbstractElementPropertyProvider { - public PPOmitType() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String type = HTMLCMProperties.Values.OMIT_NONE; - switch (decl.getOmitType()) { - case HTMLElementDeclaration.OMIT_BOTH : - type = HTMLCMProperties.Values.OMIT_BOTH; - break; - case HTMLElementDeclaration.OMIT_END : - type = HTMLCMProperties.Values.OMIT_END; - break; - case HTMLElementDeclaration.OMIT_END_DEFAULT : - type = HTMLCMProperties.Values.OMIT_END_DEFAULT; - break; - case HTMLElementDeclaration.OMIT_END_MUST : - type = HTMLCMProperties.Values.OMIT_END_MUST; - break; - case HTMLElementDeclaration.OMIT_NONE : - // nothing to do. - default : - break; - } - return type; - } - } - - /* - * "inclusion" - */ - class PPInclusion extends AbstractElementPropertyProvider { - public PPInclusion() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return decl.getInclusion(); - } - } - - public static PropertyProvider getProvider(String propName) { - PropertyProviderFactory factory = getInstance(); - PropertyProvider pp = (PropertyProvider) factory.registry.get(propName); - if (pp != null) - return pp; - - pp = factory.create(propName); - if (pp == null) - return factory.defaultProvider; - - factory.registry.put(propName, pp); - return pp; - } - - private static PropertyProviderFactory instance = null; - - private synchronized static PropertyProviderFactory getInstance() { - if (instance != null) - return instance; - instance = new PropertyProviderFactory(); - return instance; - } - - private Hashtable registry = new Hashtable(); - private PropertyProvider defaultProvider = new DefaultProvider(); - - private PropertyProviderFactory() { - super(); - } - - private PropertyProvider create(String propName) { - PropertyProvider pp = null; - if (propName.equals(HTMLCMProperties.IS_JSP)) - pp = new PPIsJSP(); - else if (propName.equals(HTMLCMProperties.IS_XHTML)) - pp = new PPIsXHTML(); - else if (propName.equals(HTMLCMProperties.IS_SSI)) - pp = new PPIsSSI(); - else if (propName.equals(HTMLCMProperties.LAYOUT_TYPE)) - pp = new PPLayoutType(); - else if (propName.equals(HTMLCMProperties.LINE_BREAK_HINT)) - pp = new PPLineBreakHint(); - else if (propName.equals(HTMLCMProperties.PROHIBITED_ANCESTORS)) - pp = new PPProhibitedAncestors(); - else if (propName.equals(HTMLCMProperties.SHOULD_KEEP_SPACE)) - pp = new PPShouldKeepSpace(); - else if (propName.equals(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)) - pp = new PPShouldIndentChildSource(); - else if (propName.equals(HTMLCMProperties.TERMINATORS)) - pp = new PPTerminators(); - else if (propName.equals(HTMLCMProperties.TAGINFO)) - pp = new PPTagInfo(); - else if (propName.equals(HTMLCMProperties.OMIT_TYPE)) - pp = new PPOmitType(); - else if (propName.equals(HTMLCMProperties.INCLUSION)) - pp = new PPInclusion(); - - return pp; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java deleted file mode 100644 index c8fb4ba270..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java +++ /dev/null @@ -1,570 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - - - -import java.lang.reflect.Field; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for element declarations of JSP 2.0 Tag files. - */ -final class Tag20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName { - // element IDs - private static class TagIds20 { - public static final int ID_SCRIPTLET = 0; - public static final int ID_EXPRESSION = 1; - public static final int ID_DECLARATION = 2; - public static final int ID_DIRECTIVE_TAG = 3; - public static final int ID_DIRECTIVE_INCLUDE = 4; - public static final int ID_DIRECTIVE_TAGLIB = 5; - public static final int ID_USEBEAN = 6; - public static final int ID_SETPROPERTY = 7; - public static final int ID_GETPROPERTY = 8; - public static final int ID_INCLUDE = 9; - public static final int ID_FORWARD = 10; - public static final int ID_PLUGIN = 11; - public static final int ID_PARAMS = 12; - public static final int ID_FALLBACK = 13; - public static final int ID_PARAM = 14; - public static final int ID_ROOT = 15; - public static final int ID_TEXT = 16; - public static final int ID_DIRECTIVE_VARIABLE = 17; - public static final int ID_DIRECTIVE_ATTRIBUTE = 18; - public static final int ID_BODY = 19; - public static final int ID_ATTRIBUTE = 20; - public static final int ID_ELEMENT = 21; - public static final int ID_DOBODY = 22; - public static final int ID_INVOKE = 23; - public static final int ID_OUTPUT = 24; - - // chache the result of the reflection. - private static int numofids = -1; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 105. - // -- 5/25/2001 - Class clazz = TagIds20.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - } - - // attribute creater - private class TACreater20 extends JACreater { - - public TACreater20() { - super(); - } - - private void createForAttribute() { - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec); - } - - private void createForBody() { - } - - private void createForDirAttribute() { - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_REQUIRED); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_REQUIRED, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_RTEXPRVALUE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_RTEXPRVALUE, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TYPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TYPE, adec); - - adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec); - } - - private void createForDirTag() { - // ("import" URI optional) - AttrDecl adec = new AttrDecl(ATTR_NAME_IMPORT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(ATTR_NAME_IMPORT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DISPLAY_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ID); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DISPLAY_NAME, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_BODY_CONTENT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {JSP20Namespace.ATTR_VALUE_EMPTY, JSP20Namespace.ATTR_VALUE_TAGDEPENDENT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_BODY_CONTENT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_SMALL_ICON); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_SMALL_ICON, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LARGE_ICON); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LARGE_ICON, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_EXAMPLE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_EXAMPLE, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LANGUAGE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LANGUAGE, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_IMPORT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_IMPORT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_PAGEENCODING); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_PAGEENCODING, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec); - } - - /** - * Changed in 2.0 (tagdir added) - */ - void createForDirTaglib() { - // ("uri" URI OPTIONAL) - AttrDecl adec = new AttrDecl(ATTR_NAME_URI); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(ATTR_NAME_URI, adec); - - // ("tagdir" URI OPTIONAL) - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec); - - // ("prefix" CDATA REQUIRED) - adec = new AttrDecl(ATTR_NAME_PREFIX); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_PREFIX, adec); - } - - private void createForDirVariable() { - AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_GIVEN); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_GIVEN, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ALIAS); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ALIAS, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DECLARE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE}; - adec.type.setEnumValues(values); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DECLARE, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec); - - adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - values = new String[]{JSP20Namespace.ATTR_VALUE_SCOPE_NESTED, JSP20Namespace.ATTR_VALUE_SCOPE_AT_BEGIN, JSP20Namespace.ATTR_VALUE_SCOPE_AT_END}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCOPE_NESTED); - declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec); - } - - private void createForDoBody() { - AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec); - - adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec); - } - - private void createForElement() { - AttrDecl adec = new AttrDecl(ATTR_NAME_NAME); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(ATTR_NAME_NAME, adec); - } - - private void createForInvoke() { - AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.URI); - adec.usage = CMAttributeDeclaration.REQUIRED; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec); - - adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec); - } - - private void createForOutput() { - AttrDecl adec = new AttrDecl(JSP20Namespace.ElementName.OUTPUT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO}; - adec.type.setEnumValues(values); - adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ElementName.OUTPUT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec); - - adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC); - adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA); - adec.usage = CMAttributeDeclaration.OPTIONAL; - declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec); - } - - public CMNamedNodeMapImpl getDeclarations(int eid) { - switch (eid) { - case TagIds20.ID_DIRECTIVE_TAG : - createForDirTag(); - break; - case TagIds20.ID_DIRECTIVE_VARIABLE : - createForDirVariable(); - break; - case TagIds20.ID_DIRECTIVE_ATTRIBUTE : - createForDirAttribute(); - break; - case TagIds20.ID_DIRECTIVE_TAGLIB : - createForDirTaglib(); - break; - case TagIds20.ID_ATTRIBUTE : - createForAttribute(); - break; - case TagIds20.ID_ELEMENT : - createForElement(); - break; - case TagIds20.ID_BODY : - createForBody(); - break; - case TagIds20.ID_DOBODY : - createForDoBody(); - break; - case TagIds20.ID_INVOKE : - createForInvoke(); - break; - case TagIds20.ID_OUTPUT : - createForOutput(); - break; - default : - super.getDeclarations(eid); - break; - } - return declarations; - } - } - - private static String[] names = null; - - static { - names = new String[TagIds20.getNumOfIds()]; - names[Ids.ID_SCRIPTLET] = JSP11Namespace.ElementName.SCRIPTLET; - names[Ids.ID_EXPRESSION] = JSP11Namespace.ElementName.EXPRESSION; - names[Ids.ID_DECLARATION] = JSP11Namespace.ElementName.DECLARATION; - names[TagIds20.ID_DIRECTIVE_TAG] = JSP20Namespace.ElementName.DIRECTIVE_TAG; - names[Ids.ID_DIRECTIVE_INCLUDE] = JSP11Namespace.ElementName.DIRECTIVE_INCLUDE; - names[Ids.ID_DIRECTIVE_TAGLIB] = JSP11Namespace.ElementName.DIRECTIVE_TAGLIB; - names[Ids.ID_USEBEAN] = JSP11Namespace.ElementName.USEBEAN; - names[Ids.ID_SETPROPERTY] = JSP11Namespace.ElementName.SETPROPERTY; - names[Ids.ID_GETPROPERTY] = JSP11Namespace.ElementName.GETPROPERTY; - names[Ids.ID_INCLUDE] = JSP11Namespace.ElementName.INCLUDE; - names[Ids.ID_FORWARD] = JSP11Namespace.ElementName.FORWARD; - names[Ids.ID_PLUGIN] = JSP11Namespace.ElementName.PLUGIN; - names[Ids.ID_PARAMS] = JSP11Namespace.ElementName.PARAMS; - names[Ids.ID_FALLBACK] = JSP11Namespace.ElementName.FALLBACK; - names[Ids.ID_PARAM] = JSP11Namespace.ElementName.PARAM; - names[Ids.ID_ROOT] = JSP11Namespace.ElementName.ROOT; - names[Ids.ID_TEXT] = JSP11Namespace.ElementName.TEXT; - names[TagIds20.ID_DIRECTIVE_VARIABLE] = JSP20Namespace.ElementName.DIRECTIVE_VARIABLE; - names[TagIds20.ID_DIRECTIVE_ATTRIBUTE] = JSP20Namespace.ElementName.DIRECTIVE_ATTRIBUTE; - names[TagIds20.ID_BODY] = JSP20Namespace.ElementName.BODY; - names[TagIds20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE; - names[TagIds20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT; - names[TagIds20.ID_DOBODY] = JSP20Namespace.ElementName.DOBODY; - names[TagIds20.ID_INVOKE] = JSP20Namespace.ElementName.INVOKE; - names[TagIds20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT; - } - - /** - */ - public Tag20ElementCollection() { - super(Tag20ElementCollection.names, TOLERANT_CASE); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param elementName - * java.lang.String - */ - protected CMNode create(String elementName) { - return createElemDecl(getID(elementName)); - } - - /** - * @param eid - * int - */ - CMGroupImpl createContent(int eid) { - if (eid == ID_UNKNOWN) - return null; - - CMGroupImpl content = null; - CMNode child = null; - - switch (eid) { - case Ids.ID_ROOT : - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - int validChildren[] = { - // %Directives; - Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, TagIds20.ID_DIRECTIVE_TAG, TagIds20.ID_DIRECTIVE_VARIABLE, TagIds20.ID_DIRECTIVE_ATTRIBUTE, TagIds20.ID_BODY, TagIds20.ID_ATTRIBUTE, - // %Scripts; - Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION, - // %Actions; - Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN}; - for (int i = 0; i < validChildren.length; i++) { - child = item(validChildren[i]); - if (child != null) - content.appendChild(child); - } - break; - default : - content = super.createContent(eid); - break; - } - - return content; - } - - /** - * @param eid - * int - */ - HTMLElementDeclaration createElemDecl(int eid) { - if (eid == ID_UNKNOWN) - return null; - - TypePacket packet = new TypePacket(); - switch (eid) { - case TagIds20.ID_DIRECTIVE_TAG : - // directive.taglib - packet.name = DIRECTIVE_TAG; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case TagIds20.ID_DIRECTIVE_VARIABLE : - // directive.taglib - packet.name = DIRECTIVE_VARIABLE; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case TagIds20.ID_DIRECTIVE_ATTRIBUTE : - // directive.taglib - packet.name = DIRECTIVE_ATTRIBUTE; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case TagIds20.ID_DIRECTIVE_TAGLIB : - // directive.taglib - packet.name = DIRECTIVE_TAGLIB; - packet.omit = HTMLElementDeclaration.OMIT_END; - packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; - packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE; - break; - case TagIds20.ID_BODY : - // declaration - packet.name = BODY; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case TagIds20.ID_ELEMENT : - // declaration - packet.name = JSP20Namespace.ElementName.ELEMENT; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case TagIds20.ID_ATTRIBUTE : - // declaration - packet.name = JSP20Namespace.ElementName.ATTRIBUTE; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case TagIds20.ID_DOBODY : - // declaration - packet.name = JSP20Namespace.ElementName.DOBODY; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case TagIds20.ID_INVOKE : - // declaration - packet.name = JSP20Namespace.ElementName.INVOKE; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - case TagIds20.ID_OUTPUT : - // declaration - packet.name = JSP20Namespace.ElementName.OUTPUT; - packet.content = CMElementDeclaration.CDATA; - packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT; - packet.indentChild = true; - packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT; - break; - default : - return super.createElemDecl(eid); - } - ElemDecl decl = new ElemDecl(packet); - - CMGroupImpl content = createContent(eid); - if (content != null) - decl.setContent(content); - - TACreater20 creater = new TACreater20(); - decl.setAttributes(creater.getDeclarations(eid)); - - return decl; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java deleted file mode 100644 index b2298f22b7..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel; - -/** - * Implementation of CMDocument for the JSP 2.0 tag files. - */ -class TagCMDocImpl extends JCMDocImpl { - /** - * HCMDocImpl constructor comment. - */ - public TagCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) { - super(docTypeName, targetNamespace, new Tag20ElementCollection()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java deleted file mode 100644 index e563228f3c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for attribute declarations. - */ -final class AttributeCollection extends CMNamedNodeMapImpl implements CHTMLNamespace { - /** - * constructor. - */ - public AttributeCollection() { - super(); - } - - /** - * Create an attribute declaration. - * @param attrName java.lang.String - */ - private HTMLAttrDeclImpl create(String attrName) { - HTMLAttrDeclImpl attr = null; - HTMLCMDataTypeImpl atype = null; - - if (attrName.equalsIgnoreCase(ATTR_NAME_ACTION)) { - // (action %URI #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ACTION, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ALT)) { - // (alt %Text; #REQUIRED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.TEXT); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ALT, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_BORDER)) { - // (border %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDER, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CHECKED)) { - // (checked (checked) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_CHECKED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_CHECKED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_CLEAR)) { - // (clear (left | all | right | none) none) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_ALL, ATTR_VALUE_RIGHT, ATTR_VALUE_NONE}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_NONE); - - attr = new HTMLAttrDeclImpl(ATTR_NAME_CLEAR, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_COLS)) { - // (cols NUMBER #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_COLS, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ENCTYPE)) { - // (enctype %ContentType; "application/x-www-form-urlencoded") - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_WWW_FORM_URLENCODED); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ENCTYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HEIGHT)) { - // (height %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HEIGHT, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HREF)) { - // (href %URI; #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HREF, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HSPACE)) { - // (hspace %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HSPACE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_HTTP_EQUIV)) { - // (http-equiv NAME #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME); - attr = new HTMLAttrDeclImpl(ATTR_NAME_HTTP_EQUIV, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MAXLENGTH)) { - // (maxlength NUMBER #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MAXLENGTH, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_METHOD)) { - // (method (GET|POST) GET) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_VALUE_GET, ATTR_VALUE_POST}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_GET); - attr = new HTMLAttrDeclImpl(ATTR_NAME_METHOD, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_MULTIPLE)) { - // (multiple (multiple) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_MULTIPLE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_MULTIPLE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NAME)) { - // (name CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_NOSHADE)) { - // (noshade (noshade) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_NOSHADE}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_NOSHADE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_ROWS)) { - // (rows NUMBER #REQUIRED) - atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - attr = new HTMLAttrDeclImpl(ATTR_NAME_ROWS, atype, CMAttributeDeclaration.REQUIRED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SELECTED)) { - // (selected (selected) #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {ATTR_NAME_SELECTED}; - atype.setEnumValues(values); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SELECTED, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SIZE)) { - // (size %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_SRC)) { - // (src %URI; #IMPLIED) - // NOTE: "src" attributes are defined in several elements. - // The definition of IMG is different from others. - // So, it should be locally defined. - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(ATTR_NAME_SRC, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_TYPE)) { - // (type %CotentType; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE); - attr = new HTMLAttrDeclImpl(ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VALUE)) { - // (value CDATA #IMPLIED) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VALUE, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VERSION)) { - // (version CDATA #FIXED '%HTML.Version;) - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_FIXED, ATTR_VALUE_VERSION_TRANSITIONAL); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VERSION, atype, CMAttributeDeclaration.FIXED); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_WIDTH)) { - // (width %Length; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.LENGTH); - attr = new HTMLAttrDeclImpl(ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - - } - else if (attrName.equalsIgnoreCase(ATTR_NAME_VSPACE)) { - // (vspace %Pixels; #IMPLIED) - atype = new HTMLCMDataTypeImpl(HTMLCMDataType.PIXELS); - attr = new HTMLAttrDeclImpl(ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL); - - // <<D205514 - } - else { - // unknown attribute; maybe error. - // should warn. - attr = null; - } - - return attr; - } - - /** - * Get %bodycolors; declarations. - */ - public void getBodycolors(CMNamedNodeMapImpl declarations) { - } - - /** - * Get align attribute which has %IAlign; as values.. - */ - public static final HTMLAttrDeclImpl createAlignForImage() { - // align (local) - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values - String[] values = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Create an attribute declaration for <code>align</code> - * in several elements, like <code>P</code>, <code>DIV</code>. - * The values are different from attributes those have the same name - * in other elements (<code>IMG</code> and <code>TABLE</code>). - * So, it can't treat as global attributes. - * <strong>NOTE: These attribute declaration has - * no owner CMDocument instance.</strong> - */ - public static final HTMLAttrDeclImpl createAlignForParagraph() { - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - // set enum values: left|center|right|justify - String[] values = {ATTR_VALUE_LEFT, ATTR_VALUE_CENTER, ATTR_VALUE_RIGHT,}; - atype.setEnumValues(values); - - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - return attr; - } - - /** - * Get %attrs; declarations. - * %attrs; consists of %coreattrs;, %i18n, and %events;. - */ - public void getAttrs(CMNamedNodeMapImpl declarations) { - } - - /** - * Get %coreattrs; declarations. - */ - public void getCore(CMNamedNodeMapImpl declarations) { - } - - /** - * Get a global attribute declaration. - * @param attrName java.lang.String - */ - public HTMLAttributeDeclaration getDeclaration(String attrName) { - CMNode cmnode = getNamedItem(attrName); - if (cmnode != null) - return (HTMLAttributeDeclaration) cmnode; // already exists. - - HTMLAttrDeclImpl dec = create(attrName); - if (dec != null) - putNamedItem(attrName, dec); - - return dec; - } - - /** - * Get declarations which are specified by names. - * @param names java.util.Iterator - */ - public void getDeclarations(CMNamedNodeMapImpl declarations, Iterator names) { - while (names.hasNext()) { - String attrName = (String) names.next(); - HTMLAttributeDeclaration dec = getDeclaration(attrName); - if (dec != null) - declarations.putNamedItem(attrName, dec); - } - } - - /** - * Get %events; declarations. - */ - public void getEvents(CMNamedNodeMapImpl declarations) { - } - - /** - * Get %i18n; declarations. - */ - public void getI18n(CMNamedNodeMapImpl declarations) { - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java deleted file mode 100644 index 00b35285ac..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocument; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLEntityDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * CMDocument implementation for the HTML. - */ -public class CHCMDocImpl extends CMNodeImpl implements HTMLCMDocument { - - /** Namespace for all names of elements, entities and attributes. */ - private CMNamespace namespace = null; - private ElementCollection elements = null; - private EntityCollection entities = null; - private AttributeCollection attributes = null; - - /** - */ - public CHCMDocImpl(String docTypeName, CMNamespace targetNamespace) { - super(docTypeName); - namespace = targetNamespace; - attributes = new AttributeCollection(); - elements = new ElementCollection(attributes); - entities = new EntityCollection(); - } - - AttributeCollection getAttributes() { - return attributes; - } - - public HTMLElementDeclaration getElementDeclaration(String elementName) { - if (elements == null) - return null; - return (HTMLElementDeclaration) elements.getNamedItem(elementName); - } - - public CMNamedNodeMap getElements() { - return elements; - } - - public CMNamedNodeMap getEntities() { - return entities; - } - - public HTMLEntityDeclaration getEntityDeclaration(String entityName) { - if (entities == null) - return null; - return (HTMLEntityDeclaration) entities.getNamedItem(entityName); - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDocument - */ - public org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace getNamespace() { - return namespace; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.DOCUMENT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java deleted file mode 100644 index 456503c123..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; - - - -/** - * Provide all names defined in the HTML 4.0? specification. - */ -public interface CHTMLNamespace { - - // Element names - public static interface ElementName { - public static final String A = HTML40Namespace.ElementName.A; - public static final String ADDRESS = HTML40Namespace.ElementName.ADDRESS; - public static final String BASE = HTML40Namespace.ElementName.BASE; - public static final String BLOCKQUOTE = HTML40Namespace.ElementName.BLOCKQUOTE; - public static final String BODY = HTML40Namespace.ElementName.BODY; - public static final String BR = HTML40Namespace.ElementName.BR; - public static final String CENTER = HTML40Namespace.ElementName.CENTER; - public static final String DD = HTML40Namespace.ElementName.DD; - public static final String DIR = HTML40Namespace.ElementName.DIR; - public static final String DIV = HTML40Namespace.ElementName.DIV; - public static final String DL = HTML40Namespace.ElementName.DL; - public static final String DT = HTML40Namespace.ElementName.DT; - public static final String FORM = HTML40Namespace.ElementName.FORM; - public static final String H1 = HTML40Namespace.ElementName.H1; - public static final String H2 = HTML40Namespace.ElementName.H2; - public static final String H3 = HTML40Namespace.ElementName.H3; - public static final String H4 = HTML40Namespace.ElementName.H4; - public static final String H5 = HTML40Namespace.ElementName.H5; - public static final String H6 = HTML40Namespace.ElementName.H6; - public static final String HEAD = HTML40Namespace.ElementName.HEAD; - public static final String HR = HTML40Namespace.ElementName.HR; - public static final String HTML = HTML40Namespace.ElementName.HTML; - public static final String IMG = HTML40Namespace.ElementName.IMG; - public static final String INPUT = HTML40Namespace.ElementName.INPUT; - public static final String LI = HTML40Namespace.ElementName.LI; - public static final String MENU = HTML40Namespace.ElementName.MENU; - public static final String META = HTML40Namespace.ElementName.META; - public static final String OL = HTML40Namespace.ElementName.OL; - public static final String OPTION = HTML40Namespace.ElementName.OPTION; - public static final String P = HTML40Namespace.ElementName.P; - public static final String PRE = HTML40Namespace.ElementName.PRE; - public static final String SELECT = HTML40Namespace.ElementName.SELECT; - public static final String TEXTAREA = HTML40Namespace.ElementName.TEXTAREA; - public static final String TITLE = HTML40Namespace.ElementName.TITLE; - public static final String UL = HTML40Namespace.ElementName.UL; - public static final String SSI_CONFIG = HTML40Namespace.ElementName.SSI_CONFIG; - public static final String SSI_ECHO = HTML40Namespace.ElementName.SSI_ECHO; - public static final String SSI_EXEC = HTML40Namespace.ElementName.SSI_EXEC; - public static final String SSI_FSIZE = HTML40Namespace.ElementName.SSI_FSIZE; - public static final String SSI_FLASTMOD = HTML40Namespace.ElementName.SSI_FLASTMOD; - public static final String SSI_INCLUDE = HTML40Namespace.ElementName.SSI_INCLUDE; - public static final String SSI_PRINTENV = HTML40Namespace.ElementName.SSI_PRINTENV; - public static final String SSI_SET = HTML40Namespace.ElementName.SSI_SET; - } - - // Character Entities - public static interface EntityName { - } - - // global attribute names - public static final String ATTR_NAME_VERSION = HTML40Namespace.ATTR_NAME_VERSION; - public static final String ATTR_NAME_SRC = HTML40Namespace.ATTR_NAME_SRC; - public static final String ATTR_NAME_ALT = HTML40Namespace.ATTR_NAME_ALT; - public static final String ATTR_NAME_HEIGHT = HTML40Namespace.ATTR_NAME_HEIGHT; - public static final String ATTR_NAME_WIDTH = HTML40Namespace.ATTR_NAME_WIDTH; - public static final String ATTR_NAME_ALIGN = HTML40Namespace.ATTR_NAME_ALIGN; - public static final String ATTR_NAME_BORDER = HTML40Namespace.ATTR_NAME_BORDER; - public static final String ATTR_NAME_HSPACE = HTML40Namespace.ATTR_NAME_HSPACE; - public static final String ATTR_NAME_VSPACE = HTML40Namespace.ATTR_NAME_VSPACE; - public static final String ATTR_NAME_NAME = HTML40Namespace.ATTR_NAME_NAME; - public static final String ATTR_NAME_CLEAR = HTML40Namespace.ATTR_NAME_CLEAR; - public static final String ATTR_NAME_NOSHADE = HTML40Namespace.ATTR_NAME_NOSHADE; - public static final String ATTR_NAME_CHECKED = HTML40Namespace.ATTR_NAME_CHECKED; - public static final String ATTR_NAME_MAXLENGTH = HTML40Namespace.ATTR_NAME_MAXLENGTH; - public static final String ATTR_NAME_ISTYLE = HTML40Namespace.ATTR_NAME_ISTYLE; - public static final String ATTR_NAME_HTTP_EQUIV = HTML40Namespace.ATTR_NAME_HTTP_EQUIV; - public static final String ATTR_NAME_CONTENT = HTML40Namespace.ATTR_NAME_CONTENT; - - public static final String ATTR_NAME_HREF = HTML40Namespace.ATTR_NAME_HREF; - public static final String ATTR_NAME_MULTIPLE = HTML40Namespace.ATTR_NAME_MULTIPLE; - public static final String ATTR_NAME_SELECTED = HTML40Namespace.ATTR_NAME_SELECTED; - public static final String ATTR_NAME_ROWS = HTML40Namespace.ATTR_NAME_ROWS; - public static final String ATTR_NAME_COLS = HTML40Namespace.ATTR_NAME_COLS; - public static final String ATTR_NAME_ACTION = HTML40Namespace.ATTR_NAME_ACTION; - public static final String ATTR_NAME_METHOD = HTML40Namespace.ATTR_NAME_METHOD; - public static final String ATTR_NAME_ENCTYPE = HTML40Namespace.ATTR_NAME_ENCTYPE; - public static final String ATTR_NAME_SIZE = HTML40Namespace.ATTR_NAME_SIZE; - public static final String ATTR_NAME_TYPE = HTML40Namespace.ATTR_NAME_TYPE; - public static final String ATTR_NAME_VALUE = HTML40Namespace.ATTR_NAME_VALUE; - - - - public static final String ATTR_NAME_ERRMSG = HTML40Namespace.ATTR_NAME_ERRMSG; - public static final String ATTR_NAME_SIZEFMT = HTML40Namespace.ATTR_NAME_SIZEFMT; - public static final String ATTR_NAME_TIMEFMT = HTML40Namespace.ATTR_NAME_TIMEFMT; - public static final String ATTR_NAME_VAR = HTML40Namespace.ATTR_NAME_VAR; - public static final String ATTR_NAME_CGI = HTML40Namespace.ATTR_NAME_CGI; - public static final String ATTR_NAME_CMD = HTML40Namespace.ATTR_NAME_CMD; - public static final String ATTR_NAME_FILE = HTML40Namespace.ATTR_NAME_FILE; - public static final String ATTR_NAME_VIRTUAL = HTML40Namespace.ATTR_NAME_VIRTUAL; - - // global attribute values; mainly used in enumeration. - public static final String ATTR_VALUE_VERSION_TRANSITIONAL = "-//W3C//DTD Compact HTML 1.0 Draft//EN"; //$NON-NLS-1$ - // for align (top|middle|bottom|left|right) - public static final String ATTR_VALUE_TOP = HTML40Namespace.ATTR_VALUE_TOP; - public static final String ATTR_VALUE_MIDDLE = HTML40Namespace.ATTR_VALUE_MIDDLE; - public static final String ATTR_VALUE_BOTTOM = HTML40Namespace.ATTR_VALUE_BOTTOM; - public static final String ATTR_VALUE_LEFT = HTML40Namespace.ATTR_VALUE_LEFT; - public static final String ATTR_VALUE_CENTER = HTML40Namespace.ATTR_VALUE_CENTER; - public static final String ATTR_VALUE_RIGHT = HTML40Namespace.ATTR_VALUE_RIGHT; - // for clear (left|all|right|none): left and right are already defined above. - public static final String ATTR_VALUE_ALL = HTML40Namespace.ATTR_VALUE_ALL; - public static final String ATTR_VALUE_NONE = HTML40Namespace.ATTR_VALUE_NONE; - // for type of INPUT - // (text | password | checkbox | radio | submit | reset | - // file | hidden | image | button) - public static final String ATTR_VALUE_TEXT = HTML40Namespace.ATTR_VALUE_TEXT; - public static final String ATTR_VALUE_PASSWORD = HTML40Namespace.ATTR_VALUE_PASSWORD; - public static final String ATTR_VALUE_CHECKBOX = HTML40Namespace.ATTR_VALUE_CHECKBOX; - public static final String ATTR_VALUE_RADIO = HTML40Namespace.ATTR_VALUE_RADIO; - public static final String ATTR_VALUE_SUBMIT = HTML40Namespace.ATTR_VALUE_SUBMIT; - public static final String ATTR_VALUE_RESET = HTML40Namespace.ATTR_VALUE_RESET; - public static final String ATTR_VALUE_HIDDEN = HTML40Namespace.ATTR_VALUE_HIDDEN; - // for span, colspan, rowspan - public static final String ATTR_VALUE_1 = HTML40Namespace.ATTR_VALUE_1; - // for frameborder - public static final String ATTR_VALUE_0 = HTML40Namespace.ATTR_VALUE_0; - // for method of FORM - public static final String ATTR_VALUE_GET = HTML40Namespace.ATTR_VALUE_GET; - public static final String ATTR_VALUE_POST = HTML40Namespace.ATTR_VALUE_POST; - public static final String ATTR_VALUE_WWW_FORM_URLENCODED = HTML40Namespace.ATTR_VALUE_WWW_FORM_URLENCODED; - // for behaviro of MARQUEE - public static final String ATTR_VALUE_SCROLL = HTML40Namespace.ATTR_VALUE_SCROLL; - public static final String ATTR_VALUE_SLIDE = HTML40Namespace.ATTR_VALUE_SLIDE; - public static final String ATTR_VALUE_ALTERNATE = HTML40Namespace.ATTR_VALUE_ALTERNATE; - // for direction of MARQUEE - public static final String ATTR_VALUE_UP = HTML40Namespace.ATTR_VALUE_UP; - public static final String ATTR_VALUE_DOWN = HTML40Namespace.ATTR_VALUE_DOWN; -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java deleted file mode 100644 index 5633cf535a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -/** - * Implementation of CMContent for HTML CM. - */ -abstract class CMContentImpl extends CMNodeImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMContent { - - public static final int UNBOUNDED = -1; - /** -1: it's UNBOUNDED. */ - private int maxOccur = UNBOUNDED; - /** 0: it's OPTIONAL, 1, it's REQUIRED. */ - private int minOccur = 0; - - /** - * The primary consturctor. - * Use this one for usual cases.<br> - */ - public CMContentImpl(String name, int min, int max) { - super(name); - minOccur = min; - maxOccur = max; - } - - /** - * getMaxOccur method - * @return int - * - * If -1, it's UNBOUNDED. - */ - public int getMaxOccur() { - return maxOccur; - } - - /** - * getMinOccur method - * @return int - * - * If 0, it's OPTIONAL. - * If 1, it's REQUIRED. - */ - public int getMinOccur() { - return minOccur; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java deleted file mode 100644 index 2c546f5d6b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; - -/** - */ -class CMGroupImpl extends CMContentImpl implements CMGroup { - - private int operator = CMGroup.SEQUENCE; - private CMNodeListImpl children = null; - - /** - * CMGroupImpl constructor comment. - */ - public CMGroupImpl(int op, int minOccur, int maxOccur) { - super(null, minOccur, maxOccur); - switch (op) { - case CMGroup.ALL : - case CMGroup.CHOICE : - case CMGroup.SEQUENCE : - operator = op; - break; - default : - // should warn. - break; - } - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - protected CMNode appendChild(CMNode child) { - if (child == null) - return null; - if (children == null) - children = new CMNodeListImpl(); - return children.appendNode(child); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList - */ - public CMNodeList getChildNodes() { - return children; - } - - /** - * getNodeType method - * @return int - * - * Returns one of : - * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.GROUP; - } - - /** - * getOperation method - * @return int - * - * Returns one of : - * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b). - */ - public int getOperator() { - return operator; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java deleted file mode 100644 index d1bae1ef76..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Iterator; -import java.util.Locale; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * An implementation of the CMNamedNodeMap interface. This class is intented - * to be used as a container of attribute declarations. If someone wants to - * use this class for other purpose, he must pay attention to the fact that - * this class is tolerant of the key name case. That is, this class does not - * distinguish "name", "NAME", and "Name" as a key name. - */ -class CMNamedNodeMapImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap { - - private java.util.Hashtable items = null; - - /** - */ - public CMNamedNodeMapImpl() { - super(); - items = new java.util.Hashtable(); - } - - /** - * getLength method - * - * @return int - */ - public int getLength() { - return items.size(); - } - - /** - * getNamedItem method - * - * @return CMNode <code>null</code> for unknown keys. - * @param name - * java.lang.String - */ - public CMNode getNamedItem(String name) { - String cookedName = makeCanonicalForm(name); - if (!items.containsKey(cookedName)) - return null; - return (CMNode) items.get(cookedName); - } - - /** - * item method - * - * @return CMNode - * @param index - * int - */ - public CMNode item(int index) { - Iterator iter = iterator(); - while (iter.hasNext()) { - CMNode node = (CMNode) iter.next(); - if (--index < 0) - return node; - } - return null; - } - - /** - * @return java.util.Iterator - */ - public Iterator iterator() { - return items.values().iterator(); - } - - /** - * @return java.lang.String - * @param rawForm - * java.lang.String - */ - private String makeCanonicalForm(String raw) { - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152 - // we are able to "cheat" here a little and use US Locale - // to get a good cononical form, since we are using this only - // for HTML and JSP standard tags. - // Long term, for similar needs with XML 1.1 (for example) - // we should use a class such as com.ibm.icu.text.Normalizer - return raw.toUpperCase(Locale.US); - } - - /** - * @param key - * java.lang.String - * @param item - * java.lang.String - */ - void putNamedItem(String name, CMNode item) { - String cookedName = makeCanonicalForm(name); - if (items.containsKey(cookedName)) - return; // already registered. - items.put(cookedName, item); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java deleted file mode 100644 index 62f7a01d45..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; - - - -/** - */ -abstract class CMNodeImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNode { - - private java.lang.String name = null; - - /** - * CMNodeImpl constructor comment. - */ - public CMNodeImpl(String nm) { - super(); - name = nm; - } - - /** - * getNodeName method - * @return java.lang.String - */ - public String getNodeName() { - return name; - } - - /** - * getProperty method - * @return java.lang.Object - * - * Returns the object property desciped by the propertyName - * - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) - return new Boolean(false); - return null; - } - - /** - * supports method - * @return boolean - * - * Returns true if the CMNode supports a specified property - * - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) - return true; - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java deleted file mode 100644 index c1b1cdac40..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Analog of dom.NodeList for CM. - */ -class CMNodeListImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList { - - private java.util.Vector nodes = null; - - /** - * CMNodeListImpl constructor comment. - */ - public CMNodeListImpl() { - super(); - nodes = new java.util.Vector(); - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param node org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - protected CMNode appendNode(CMNode node) { - nodes.addElement(node); - return node; - } - - /** - * getLength method - * @return int - */ - public int getLength() { - return nodes.size(); - } - - /** - * item method - * @return CMNode - * @param index int - */ - public CMNode item(int index) { - if (index < 0 || index >= nodes.size()) - return null; - return (CMNode) nodes.elementAt(index); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java deleted file mode 100644 index fd47c7e63d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * This class is intended to represent a complex type definition - * in XML Schema.<br> - */ -abstract class ComplexTypeDefinition { - - protected CMGroupImpl content = null; - protected ElementCollection collection = null; - protected String primaryCandidateName = null; - - /** - * ComplexTypeDefinition constructor comment. - */ - public ComplexTypeDefinition(ElementCollection elementCollection) { - super(); - collection = elementCollection; - createContent(); - } - - /** - * Create an actual content model. - * This method should be called once and only once in the constructor.<br> - */ - protected abstract void createContent(); - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMGroup - */ - public CMGroup getContent() { - return content; - } - - /** - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - /* NOTE: Do we need LOGICAL type? - * -- 3/7/2001 - */ - public abstract int getContentType(); - - /** - * Get content hint. - */ - public HTMLElementDeclaration getPrimaryCandidate() { - if (primaryCandidateName == null) - return null; - return (HTMLElementDeclaration) collection.getNamedItem(primaryCandidateName); - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public abstract String getTypeName(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java deleted file mode 100644 index 2a682f9706..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -/** - * Factory of ComplexTypeDefinition. - */ -final class ComplexTypeDefinitionFactory { - - private static ComplexTypeDefinitionFactory instance = null; - private java.util.Hashtable definitions = null; - // constants for complex type name - /** for ADDRESS. */ - public final static String CTYPE_ADDRESS = "CTYPE_ADDRESS";//$NON-NLS-1$ - /** CDATA content. No ComplexTypeDefinition instance shuld be created. */ - public final static String CTYPE_CDATA = "CTYPE_CDATA";//$NON-NLS-1$ - /** col group content. COL* */ - public final static String CTYPE_COLUMN_GROUP = "CTYPE_COLUMN_GROUP";//$NON-NLS-1$ - /** for DL. */ - public final static String CTYPE_DEFINITION_LIST = "CTYPE_DEFINITION_LIST";//$NON-NLS-1$ - /** for EMBED. */ - public final static String CTYPE_EMBED = "CTYPE_EMBED";//$NON-NLS-1$ - /** empty content. No ComplexTypeDefinition instance should be created. */ - public final static String CTYPE_EMPTY = "CTYPE_EMPTY";//$NON-NLS-1$ - /** for FIELDSET. */ - public final static String CTYPE_FIELDSET = "CTYPE_FIELDSET";//$NON-NLS-1$ - /** for FRAMESET. */ - public final static String CTYPE_FRAMESET = "CTYPE_FRAMESET";//$NON-NLS-1$ - /** flow content. (%flow;)* */ - public final static String CTYPE_FLOW_CONTAINER = "CTYPE_FLOW_CONTAINER";//$NON-NLS-1$ - /** html content. HEAD, (FRAMESET|BODY) */ - public final static String CTYPE_HTML = "CTYPE_HTML";//$NON-NLS-1$ - /** head content. TITLE & ISINDEX? & BASE? */ - public final static String CTYPE_HEAD = "CTYPE_HEAD";//$NON-NLS-1$ - /** inline content. (%inline;)* */ - public final static String CTYPE_INLINE_CONTAINER = "CTYPE_INLINE_CONTAINER";//$NON-NLS-1$ - /** list item container. (LI)+ */ - public final static String CTYPE_LI_CONTAINER = "CTYPE_LI_CONTAINER";//$NON-NLS-1$ - /** for MAP. */ - public final static String CTYPE_MAP = "CTYPE_MAP";//$NON-NLS-1$ - /** noframes content. */ - public final static String CTYPE_NOFRAMES_CONTENT = "CTYPE_NOFRAMES_CONTENT";//$NON-NLS-1$ - /** for OPTGROUP. */ - public final static String CTYPE_OPTION_CONTAINER = "CTYPE_OPTION_CONTAINER";//$NON-NLS-1$ - /** param container. For OBJECT/APPLET. */ - public final static String CTYPE_PARAM_CONTAINER = "CTYPE_PARAM_CONTAINER";//$NON-NLS-1$ - /** PCDATA content. No ComplexTypeDefinition instance shuld be created. */ - public final static String CTYPE_PCDATA = "CTYPE_PCDATA";//$NON-NLS-1$ - /** for SELECT. */ - public final static String CTYPE_SELECT = "CTYPE_SELECT";//$NON-NLS-1$ - /** table content. CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+ */ - public final static String CTYPE_TABLE = "CTYPE_TABLE";//$NON-NLS-1$ - /** table cell contaier. (TH|TD)+ */ - public final static String CTYPE_TCELL_CONTAINER = "CTYPE_TCELL_CONTAINER";//$NON-NLS-1$ - /** table record container. (TR)+ */ - public final static String CTYPE_TR_CONTAINER = "CTYPE_TR_CONTAINER";//$NON-NLS-1$ - - /** - * ComplexTypeDefinitionFactory constructor comment. - */ - private ComplexTypeDefinitionFactory() { - super(); - definitions = new java.util.Hashtable(); - } - - /** - * Factory method for ComplexTypeDefinition. - * Each instance created in this method must be registered into - * the map with its name. - * @param definitionName java.lang.String - * @param elementCollection ElementCollection - */ - public ComplexTypeDefinition createTypeDefinition(String definitionName, ElementCollection elementCollection) { - if (definitions.containsKey(definitionName)) { - return (ComplexTypeDefinition) definitions.get(definitionName); - } - - ComplexTypeDefinition def = null; - if (definitionName == CTYPE_ADDRESS) { - def = new CtdAddress(elementCollection); - - } - else if (definitionName == CTYPE_DEFINITION_LIST) { - def = new CtdDl(elementCollection); - - } - else if (definitionName == CTYPE_FLOW_CONTAINER) { - def = new CtdFlowContainer(elementCollection); - - } - else if (definitionName == CTYPE_HEAD) { - def = new CtdHead(elementCollection); - - } - else if (definitionName == CTYPE_HTML) { - def = new CtdHtml(elementCollection); - - } - else if (definitionName == CTYPE_INLINE_CONTAINER) { - def = new CtdInlineContainer(elementCollection); - - } - else if (definitionName == CTYPE_LI_CONTAINER) { - def = new CtdLiContainer(elementCollection); - - - } - else if (definitionName == CTYPE_OPTION_CONTAINER) { - def = new CtdOptionContainer(elementCollection); - - } - else if (definitionName == CTYPE_SELECT) { - def = new CtdSelect(elementCollection); - - } - else { - def = null; - } - if (def == null) - return null; // fail to create. - definitions.put(definitionName, def); - return def; - } - - /** - * For singleton.<br> - */ - public synchronized static ComplexTypeDefinitionFactory getInstance() { - if (instance != null) - return instance; - instance = new ComplexTypeDefinitionFactory(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java deleted file mode 100644 index 4ad13c025b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for ADDRESS. - */ -final class CtdAddress extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdAddress(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * ((%inline) | P)*. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )* - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - // (%inline) - CMGroupImpl inlines = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (inlines == null) - return; - collection.getInline(inlines); - content.appendChild(inlines); - // P - CMNode p = collection.getNamedItem(CHTMLNamespace.ElementName.P); - if (p != null) - content.appendChild(p); - } - - /** - * ((%inline) | P)*. - * Because %inline; contains #PCDATA, the type is MIXED. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_ADDRESS; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java deleted file mode 100644 index c0abf8afb4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for DL. - */ -final class CtdDl extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdDl(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.DT; - } - - /** - * (DT | DD)+ - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // DT - CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.DT); - if (dec != null) - content.appendChild(dec); - // DD - dec = collection.getNamedItem(CHTMLNamespace.ElementName.DD); - if (dec != null) - content.appendChild(dec); - } - - /** - * (DT | DD)+. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java deleted file mode 100644 index a198d74ec4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * Complex type definition for containers of <code>%flow;</code>. - */ -final class CtdFlowContainer extends ComplexTypeDefinition { - - /** - */ - public CtdFlowContainer(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (%flow;)* - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - collection.getFlow(content); - } - - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java deleted file mode 100644 index 9af78c671d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java +++ /dev/null @@ -1,174 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Complex type definition for the head content. - * Content Model: (TITLE & ISINDEX? & BASE?) - */ -final class CtdHead extends ComplexTypeDefinition { - - /** - */ - public CtdHead(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.TITLE; - } - - /** - * for HEAD. - * To avoid using inclusion, the content model comes from the XHTML 1.0. - * - * (%head.misc;, ((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;)))) - * And %head.misc; is: - * (script|style|meta|link|object|isindex)* - * - * 0: (%head.misc, A) - * A: (B | C) - * B: (title, %head.misc;, D) - * C: (base, %head.misc;, E) - * D: (base, %head.misc;)? - * E: (title, %head.misc;) - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // At 1st, create %head.misc; content. - // %head.misc; - // ( | )* - CMGroupImpl misc = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - if (misc == null) - return; - String[] names = {CHTMLNamespace.ElementName.META,}; - collection.getDeclarations(misc, Arrays.asList(names).iterator()); - // 2nd, get a title - CMNode title = collection.getNamedItem(CHTMLNamespace.ElementName.TITLE); - // 3rd, get a base - CMNode base = collection.getNamedItem(CHTMLNamespace.ElementName.BASE); - if (title == null || base == null) - return; - - // Top level content is a sequence of %head.misc; and A. - // 0: (%head.misc;, A) - // create a sequence - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (content == null) - return; - // append %head.misc; - content.appendChild(misc); - // create A and append it to the top level. - { - // A is a choice of B and C. - // A: (B | C) - // create a choice - CMGroupImpl gA = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - if (gA == null) - return; - // append A to the top level. - content.appendChild(gA); - - // create B and append it to A - { - // B is a sequence of title, %head.misc;, and D. - // B: (title, %head.misc;, D) - // create a sequence - CMGroupImpl gB = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gB == null) - return; - // append B to A. - gA.appendChild(gB); - - // append title to B - gB.appendChild(title); - // append %head.misc; to B - gB.appendChild(misc); - // create D and append it to B. - { - // D is a sequence of base, %head.misc;. - // D: (base, %head.misc;)? - // create a sequence - CMGroupImpl gD = new CMGroupImpl(CMGroup.SEQUENCE, 0, 1); - if (gD == null) - return; - // append D to B. - gB.appendChild(gD); - - // append base to D - gD.appendChild(base); - // append %head.misc; to D. - gD.appendChild(misc); - } - } - // create C and append it to A - { - // C is a sequence of base, %head.misc;, and E - // C: (base, %head.misc;, E) - // create a sequence - CMGroupImpl gC = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gC == null) - return; - // append C to A. - gA.appendChild(gC); - - // append base to C - gC.appendChild(base); - // append %head.misc; to C - gC.appendChild(misc); - - // create E and append it to C. - { - // E is a sequence of title and %head.misc;. - // E: (title, %head.misc;) - // create a sequence - CMGroupImpl gE = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (gE == null) - return; - // append E to C. - gC.appendChild(gE); - - // append title to E - gE.appendChild(title); - // append %head.misc; to E. - gE.appendChild(misc); - } - } - } - } - - /** - * Element content.<br> - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_HEAD; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java deleted file mode 100644 index cf4fe4ae30..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Complex type definition for <code>HTML</code>.<br> - * Content Model: - * HEAD, (FRAMESET|BODY)<br> - */ -final class CtdHtml extends ComplexTypeDefinition { - - /** - */ - public CtdHtml(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.HEAD; - } - - /** - * (%html.content;). - * %html.content; is HEAD, (FRAMESET | BODY). - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( ) - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, 1); - if (content == null) - return; - - // HEAD - CMNode edec = collection.getNamedItem(CHTMLNamespace.ElementName.HEAD); - if (edec != null) - content.appendChild(edec); - - // ( | ) - CMGroupImpl group = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - content.appendChild(group); - - // FRAMESET, BODY - String[] names = {CHTMLNamespace.ElementName.BODY}; - collection.getDeclarations(group, Arrays.asList(names).iterator()); - } - - /** - * Element content. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_HTML; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java deleted file mode 100644 index ed234aadae..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * Complex type definition for (%inline;)*. - */ -final class CtdInlineContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdInlineContainer(ElementCollection elementCollection) { - super(elementCollection); - } - - /** - * (%inline)*. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED); - collection.getInline(content); - } - - public int getContentType() { - return CMElementDeclaration.MIXED; - } - - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java deleted file mode 100644 index b28956ef73..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * List item container. - * (LI)+ - */ -final class CtdLiContainer extends ComplexTypeDefinition { - - /** - * @param elemenCollection ElementCollection - */ - public CtdLiContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.LI; - } - - /** - * (LI)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // (LI)+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - CMNode li = collection.getNamedItem(CHTMLNamespace.ElementName.LI); - if (li != null) - content.appendChild(li); - } - - /** - * ELEMENT content.<br> - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java deleted file mode 100644 index c2ec6c535f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * OPTION container. - * (OPTION)+ - */ -final class CtdOptionContainer extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdOptionContainer(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.OPTION; - } - - /** - * (OPTION)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( )+ - content = new CMGroupImpl(CMGroup.SEQUENCE, 1, CMContentImpl.UNBOUNDED); - // OPTION - CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.OPTION); - if (dec != null) - content.appendChild(dec); - } - - /** - * (OPTION)+ - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * Name of complex type definition. - * Each singleton must know its own name. - * All names should be defined in - * {@link <code>ComplexTypeDefinitionFactory</code>} as constants.<br> - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java deleted file mode 100644 index 7f0c96c0c8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * for SELECT. - */ -final class CtdSelect extends ComplexTypeDefinition { - - /** - * @param elementCollection ElementCollection - */ - public CtdSelect(ElementCollection elementCollection) { - super(elementCollection); - primaryCandidateName = CHTMLNamespace.ElementName.OPTION; - } - - /** - * (OPTGROUP | OPTION)+. - */ - protected void createContent() { - if (content != null) - return; // already created. - if (collection == null) - return; - - // ( | )+ - content = new CMGroupImpl(CMGroup.CHOICE, 1, CMContentImpl.UNBOUNDED); - // OPTION - CMNode dec = collection.getNamedItem(CHTMLNamespace.ElementName.OPTION); - if (dec != null) - content.appendChild(dec); - } - - /** - * (OPTGROUP | OPTION)+. - * @return int; Should be one of ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA, - * those are defined in CMElementDeclaration. - */ - public int getContentType() { - return CMElementDeclaration.ELEMENT; - } - - /** - * @return java.lang.String - */ - public String getTypeName() { - return ComplexTypeDefinitionFactory.CTYPE_SELECT; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java deleted file mode 100644 index af90b74336..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - */ -abstract class DeclCollection implements CMNamedNodeMap { - - - protected class DualMap { - public DualMap() { - super(); - } - - public DualMap(Object[] objects) { - super(); - initialize(objects); - } - - public int size() { - return table.length; - } - - public Object getValue(int key) { - if (!isValidIndex(key)) - return null; - return table[key]; - } - - public int getKey(Object value) { - Integer keyObj = (Integer) map.get(value); - if (keyObj == null) - return ID_UNKNOWN; - return keyObj.intValue(); - } - - protected void initialize(Object[] objects) { - if (objects == null) - return; - table = objects; - map = new HashMap(); - for (int key = 0; key < objects.length; key++) { - Object value = table[key]; - map.put(value, new Integer(key)); - } - } - - private Object[] table = null; - private HashMap map = null; - - private boolean isValidIndex(int index) { - return index >= 0 && index < table.length; - } - } - - protected class TolerantStringDualMap extends DualMap { - public TolerantStringDualMap(String[] names) { - super(); - Object[] objects = new Object[names.length]; - for (int i = 0; i < names.length; i++) { - objects[i] = makeCanonicalForm(names[i]); - } - initialize(objects); - } - - public int getKey(Object value) { - try { - String name = (String) value; - return super.getKey(makeCanonicalForm(name)); - } - catch (ClassCastException e) { - return ID_UNKNOWN; - } - } - - private String makeCanonicalForm(String raw) { - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152 - // we are able to "cheat" here a little and use US Locale - // to get a good cononical form, since we are using this only - // for HTML and JSP standard tags. - // Long term, for similar needs with XML 1.1 (for example) - // we should use a class such as com.ibm.icu.text.Normalizer - return raw.toUpperCase(Locale.US); - } - } - - private class DeclIterator implements Iterator { - public DeclIterator() { - maxid = fDecls.length - 1; - } - - public boolean hasNext() { - return id < maxid; - } - - public Object next() { - if (!hasNext()) - return null; - return item(++id); - } - - public void remove() { /* nothing should be done. */ - } - - private int id = -1; - private int maxid = -1; - } - - CMNode[] fDecls = null; - protected final static boolean STRICT_CASE = false; - protected final static boolean TOLERANT_CASE = true; - protected final static int ID_UNKNOWN = -1; - private DualMap fMap = null; - - /** - */ - public DeclCollection(String[] names, boolean tolerant) { - super(); - fDecls = new CMNode[names.length]; - if (tolerant) { - fMap = new TolerantStringDualMap(names); - } - else { - fMap = new DualMap(names); - } - } - - /** - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param id - * int - */ - protected abstract CMNode create(String name); - - /** - */ - public CMNamedNodeMap getDeclarations(String[] names) { - CMNamedNodeMapImpl map = new CMNamedNodeMapImpl(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - CMNode node = getNamedItem(name); - if (node == null) - continue; - map.putNamedItem(name, node); - } - return map; - } - - public void getDeclarations(CMGroupImpl group, Iterator names) { - while (names.hasNext()) { - String entityName = (String) names.next(); - CMNode dec = getNamedItem(entityName); - if (dec != null) - group.appendChild(dec); - } - } - - /** - * Map name to id. - * - * @return int - * @param name - * java.lang.String - */ - protected int getID(String name) { - return fMap.getKey(name); - } - - /** - * getLength method - * - * @return int - */ - public int getLength() { - return fDecls.length; - } - - /** - * @return java.lang.String - * @param id - * int - */ - protected String getName(int id) { - return (String) fMap.getValue(id); - } - - /** - * getNamedItem method - * - * @return CMNode - * @param name - * java.lang.String - */ - public CMNode getNamedItem(String name) { - int id = getID(name); - if (!isValidID(id)) - return null; - return item(id); - } - - /** - * @return boolean - * @param id - * int - */ - private boolean isValidID(int id) { - return id >= 0 && id < fDecls.length; - } - - /** - * item method - * - * @return CMNode - * @param index - * int - */ - public CMNode item(int index) { - if (!isValidID(index)) - return null; - CMNode decl = fDecls[index]; - if (decl != null) - return decl; // already exist. - - decl = create(getName(index)); - fDecls[index] = decl; - return decl; - } - - /** - */ - public Iterator iterator() { - return new DeclIterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java deleted file mode 100644 index 8a80135eb5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java +++ /dev/null @@ -1,492 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.Collection; -import java.util.Vector; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for element declarations. - */ -final class ElementCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ElementName { - - - // Element IDs - private static class Ids { - public static final int ID_A = 0; - public static final int ID_ADDRESS = 1; - public static final int ID_BASE = 2; - public static final int ID_BLOCKQUOTE = 3; - public static final int ID_BODY = 4; - public static final int ID_BR = 5; - public static final int ID_CENTER = 6; - public static final int ID_DD = 7; - public static final int ID_DIR = 8; - public static final int ID_DIV = 9; - public static final int ID_DL = 10; - public static final int ID_DT = 11; - public static final int ID_FORM = 12; - public static final int ID_H1 = 13; - public static final int ID_H2 = 14; - public static final int ID_H3 = 15; - public static final int ID_H4 = 16; - public static final int ID_H5 = 17; - public static final int ID_H6 = 18; - public static final int ID_HEAD = 19; - public static final int ID_HR = 20; - public static final int ID_HTML = 21; - public static final int ID_IMG = 22; - public static final int ID_INPUT = 23; - public static final int ID_LI = 24; - public static final int ID_MENU = 25; - public static final int ID_META = 26; - public static final int ID_OL = 27; - public static final int ID_OPTION = 28; - public static final int ID_P = 29; - public static final int ID_PRE = 30; - public static final int ID_SELECT = 31; - public static final int ID_TEXTAREA = 32; - public static final int ID_TITLE = 33; - public static final int ID_UL = 34; - public static final int ID_SSI_CONFIG = 35; - public static final int ID_SSI_ECHO = 36; - public static final int ID_SSI_EXEC = 37; - public static final int ID_SSI_FSIZE = 38; - public static final int ID_SSI_FLASTMOD = 39; - public static final int ID_SSI_INCLUDE = 40; - public static final int ID_SSI_PRINTENV = 41; - public static final int ID_SSI_SET = 42; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 105. - // -- 5/25/2001 - Class clazz = Ids.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - /** %formctl;. INPUT | SELECT | TEXTAREA */ - private static final String[] FORMCTL = {INPUT, SELECT, TEXTAREA}; - /** %phrase;. - * DFN - */ - private static final String[] PHRASE = {DFN}; - /** %special;. - * A | IMG | BR - */ - private static final String[] SPECIAL = {A, IMG, BR}; - /** %heading;. H[1-6] */ - private static final String[] HEADING = {H1, H2, H3, H4, H5, H6}; - /** %list;. UL | OL | DIR | MENU */ - private static final String[] LIST = {UL, OL, DIR, MENU}; - /** %preformatted;. PRE */ - private static final String[] PREFORMATTED = {PRE}; - private AttributeCollection attributeCollection = null; - private static String[] names = null; - - static { - names = new String[Ids.getNumOfIds()]; - names[Ids.ID_A] = A; - names[Ids.ID_ADDRESS] = ADDRESS; - names[Ids.ID_BASE] = BASE; - names[Ids.ID_BLOCKQUOTE] = BLOCKQUOTE; - names[Ids.ID_BODY] = BODY; - names[Ids.ID_BR] = BR; - names[Ids.ID_CENTER] = CENTER; - names[Ids.ID_DD] = DD; - names[Ids.ID_DIR] = DIR; - names[Ids.ID_DIV] = DIV; - names[Ids.ID_DL] = DL; - names[Ids.ID_DT] = DT; - names[Ids.ID_FORM] = FORM; - names[Ids.ID_H1] = H1; - names[Ids.ID_H2] = H2; - names[Ids.ID_H3] = H3; - names[Ids.ID_H4] = H4; - names[Ids.ID_H5] = H5; - names[Ids.ID_H6] = H6; - names[Ids.ID_HEAD] = HEAD; - names[Ids.ID_HR] = HR; - names[Ids.ID_HTML] = HTML; - names[Ids.ID_IMG] = IMG; - names[Ids.ID_INPUT] = INPUT; - names[Ids.ID_LI] = LI; - names[Ids.ID_MENU] = MENU; - names[Ids.ID_META] = META; - names[Ids.ID_OL] = OL; - names[Ids.ID_OPTION] = OPTION; - names[Ids.ID_P] = P; - names[Ids.ID_PRE] = PRE; - names[Ids.ID_SELECT] = SELECT; - names[Ids.ID_TEXTAREA] = TEXTAREA; - names[Ids.ID_TITLE] = TITLE; - names[Ids.ID_UL] = UL; - names[Ids.ID_SSI_CONFIG] = SSI_CONFIG; - names[Ids.ID_SSI_ECHO] = SSI_ECHO; - names[Ids.ID_SSI_EXEC] = SSI_EXEC; - names[Ids.ID_SSI_FSIZE] = SSI_FSIZE; - names[Ids.ID_SSI_FLASTMOD] = SSI_FLASTMOD; - names[Ids.ID_SSI_INCLUDE] = SSI_INCLUDE; - names[Ids.ID_SSI_PRINTENV] = SSI_PRINTENV; - names[Ids.ID_SSI_SET] = SSI_SET; - } - - /** - */ - public ElementCollection(AttributeCollection collection) { - super(names, TOLERANT_CASE); - attributeCollection = collection; - } - - /** - * Actually creates HTMLElementDeclaration instance. - * @return HTMLElementDeclaration - */ - protected CMNode create(String elementName) { - HTMLElemDeclImpl edec = null; - - if (elementName.equalsIgnoreCase(A)) { - edec = new HedA(this); - - } - else if (elementName.equalsIgnoreCase(ADDRESS)) { - edec = new HedADDRESS(this); - - } - else if (elementName.equalsIgnoreCase(BASE)) { - edec = new HedBASE(this); - - } - else if (elementName.equalsIgnoreCase(BLOCKQUOTE)) { - edec = new HedBLOCKQUOTE(this); - - } - else if (elementName.equalsIgnoreCase(BODY)) { - edec = new HedBODY(this); - - } - else if (elementName.equalsIgnoreCase(BR)) { - edec = new HedBR(this); - - } - else if (elementName.equalsIgnoreCase(CENTER)) { - edec = new HedCENTER(this); - - } - else if (elementName.equalsIgnoreCase(DD)) { - edec = new HedDD(this); - - } - else if (elementName.equalsIgnoreCase(DIR)) { - edec = new HedMENU(DIR, this); - - } - else if (elementName.equalsIgnoreCase(DIV)) { - edec = new HedDIV(this); - - } - else if (elementName.equalsIgnoreCase(DL)) { - edec = new HedDL(this); - - } - else if (elementName.equalsIgnoreCase(DT)) { - edec = new HedDT(this); - - } - else if (elementName.equalsIgnoreCase(FORM)) { - edec = new HedFORM(this); - - } - else if (elementName.equalsIgnoreCase(H1)) { - edec = new HedHeading(H1, this); - - } - else if (elementName.equalsIgnoreCase(H2)) { - edec = new HedHeading(H2, this); - - } - else if (elementName.equalsIgnoreCase(H3)) { - edec = new HedHeading(H3, this); - - } - else if (elementName.equalsIgnoreCase(H4)) { - edec = new HedHeading(H4, this); - - } - else if (elementName.equalsIgnoreCase(H5)) { - edec = new HedHeading(H5, this); - - } - else if (elementName.equalsIgnoreCase(H6)) { - edec = new HedHeading(H6, this); - - } - else if (elementName.equalsIgnoreCase(HEAD)) { - edec = new HedHEAD(this); - - } - else if (elementName.equalsIgnoreCase(HR)) { - edec = new HedHR(this); - - } - else if (elementName.equalsIgnoreCase(HTML)) { - edec = new HedHTML(this); - - } - else if (elementName.equalsIgnoreCase(IMG)) { - edec = new HedIMG(this); - - } - else if (elementName.equalsIgnoreCase(INPUT)) { - edec = new HedINPUT(this); - - } - else if (elementName.equalsIgnoreCase(LI)) { - edec = new HedLI(this); - - } - else if (elementName.equalsIgnoreCase(MENU)) { - edec = new HedMENU(MENU, this); - - } - else if (elementName.equalsIgnoreCase(META)) { - edec = new HedMETA(this); - - } - else if (elementName.equalsIgnoreCase(OL)) { - edec = new HedOL(this); - - } - else if (elementName.equalsIgnoreCase(OPTION)) { - edec = new HedOPTION(this); - - } - else if (elementName.equalsIgnoreCase(P)) { - edec = new HedP(this); - - } - else if (elementName.equalsIgnoreCase(PRE)) { - edec = new HedPRE(this); - - } - else if (elementName.equalsIgnoreCase(SELECT)) { - edec = new HedSELECT(this); - - } - else if (elementName.equalsIgnoreCase(TEXTAREA)) { - edec = new HedTEXTAREA(this); - - } - else if (elementName.equalsIgnoreCase(TITLE)) { - edec = new HedTITLE(this); - - } - else if (elementName.equalsIgnoreCase(UL)) { - edec = new HedUL(this); - - } - else if (elementName.equalsIgnoreCase(SSI_CONFIG)) { - edec = new HedSSIConfig(this); - - } - else if (elementName.equalsIgnoreCase(SSI_ECHO)) { - edec = new HedSSIEcho(this); - - } - else if (elementName.equalsIgnoreCase(SSI_EXEC)) { - edec = new HedSSIExec(this); - - } - else if (elementName.equalsIgnoreCase(SSI_FSIZE)) { - edec = new HedSSIFsize(this); - - } - else if (elementName.equalsIgnoreCase(SSI_FLASTMOD)) { - edec = new HedSSIFlastmod(this); - - } - else if (elementName.equalsIgnoreCase(SSI_INCLUDE)) { - edec = new HedSSIInclude(this); - - } - else if (elementName.equalsIgnoreCase(SSI_PRINTENV)) { - edec = new HedSSIPrintenv(this); - - } - else if (elementName.equalsIgnoreCase(SSI_SET)) { - edec = new HedSSISet(this); - - } // unknown - else { - // NOTE: We don't define the UNKNOWN element declaration. - // <code>null</code> for a declaration is a sign of - // the target element is unknown. - // -- 3/9/2001 - edec = null; - } - return edec; - } - - public AttributeCollection getAttributeCollection() { - return attributeCollection; - } - - /** - */ - public final Collection getNamesOfBlock() { - // P | %list | %preformatted | DL | DIV | CENTER | BLOCKQUOTE | FORM | HR - String[] blockMisc = {P, DL, DIV, CENTER, BLOCKQUOTE, FORM, HR,}; - Vector blockNames = new Vector(Arrays.asList(blockMisc)); - // %heading; - blockNames.addAll(Arrays.asList(HEADING)); - // %list; - blockNames.addAll(Arrays.asList(LIST)); - // %preformatted; - blockNames.addAll(Arrays.asList(PREFORMATTED)); - - return blockNames; - } - - /** - * %block;. - * %block; is: - * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | - * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | - * TABLE | FIELDSET | ADDRESS.<br> - * @param group CMGroupImpl Return values. - */ - public final void getBlock(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, getNamesOfBlock().iterator()); - } - - /** - * Create element declarations and store them - * into a <code>CMGroupImpl</code> instance. - * @param group CMGroupImpl Return values. - */ - public final void getFlow(CMGroupImpl group) { - if (group == null) - return; - getBlock(group); - getInline(group); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getFontstyle(CMGroupImpl group) { - return; - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getFormctrl(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(FORMCTL).iterator()); - } - - /** - * %heading;. - * @param group CMGroupImpl Return values. - */ - public final void getHeading(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(HEADING).iterator()); - } - - /** - * Create element declarations and store them - * into a <code>CMGroupImpl</code> instance. - * @param group CMGroupImpl Return values. - */ - public final void getInline(CMGroupImpl group) { - if (group == null) - return; - getFontstyle(group); - getPhrase(group); - getSpecial(group); - getFormctrl(group); - } - - /** - * %list;. - * @param group CMGroupImpl Return values. - */ - public final void getList(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(LIST).iterator()); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getPhrase(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(PHRASE).iterator()); - } - - /** - * %preformatted; - * @param group CMGroupImpl Return values. - */ - public final void getPreformatted(CMGroupImpl group) { - if (group == null) - return; - - getDeclarations(group, Arrays.asList(PREFORMATTED).iterator()); - } - - /** - * Create element declarations and store them into a <code>CMGroupImpl</code> - * instance.<br> - * @param group CMGroupImpl Return values. - */ - public final void getSpecial(CMGroupImpl group) { - if (group == null) - return; - getDeclarations(group, Arrays.asList(SPECIAL).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java deleted file mode 100644 index 4f371fc77d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java +++ /dev/null @@ -1,837 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.lang.reflect.Field; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Factory for entity declarations. - */ -final class EntityCollection extends DeclCollection implements org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.EntityName { - - - private static class Ids { - public static final int ID_AACUTE_L = 0; - public static final int ID_AACUTE_U = 1; - public static final int ID_ACIRC_L = 2; - public static final int ID_ACIRC_U = 3; - public static final int ID_ACUTE = 4; - public static final int ID_AELIG_L = 5; - public static final int ID_AELIG_U = 6; - public static final int ID_AGRAVE_L = 7; - public static final int ID_AGRAVE_U = 8; - public static final int ID_ALEFSYM = 9; - public static final int ID_ALPHA_L = 10; - public static final int ID_ALPHA_U = 11; - public static final int ID_AMP = 12; - public static final int ID_AND = 13; - public static final int ID_ANG = 14; - public static final int ID_ARING_L = 15; - public static final int ID_ARING_U = 16; - public static final int ID_ASYMP = 17; - public static final int ID_ATILDE_L = 18; - public static final int ID_ATILDE_U = 19; - public static final int ID_AUML_L = 20; - public static final int ID_AUML_U = 21; - public static final int ID_BDQUO = 22; - public static final int ID_BETA_L = 23; - public static final int ID_BETA_U = 24; - public static final int ID_BRVBAR = 25; - public static final int ID_BULL = 26; - public static final int ID_CAP = 27; - public static final int ID_CCEDIL_L = 28; - public static final int ID_CCEDIL_U = 29; - public static final int ID_CEDIL = 30; - public static final int ID_CENT = 31; - public static final int ID_CHI_L = 32; - public static final int ID_CHI_U = 33; - public static final int ID_CIRC = 34; - public static final int ID_CLUBS = 35; - public static final int ID_CONG = 36; - public static final int ID_COPY = 37; - public static final int ID_CRARR = 38; - public static final int ID_CUP = 39; - public static final int ID_CURREN = 40; - public static final int ID_DAGGER_L = 41; - public static final int ID_DAGGER_U = 42; - public static final int ID_DARR_L = 43; - public static final int ID_DARR_U = 44; - public static final int ID_DEG = 45; - public static final int ID_DELTA_L = 46; - public static final int ID_DELTA_U = 47; - public static final int ID_DIAMS = 48; - public static final int ID_DIVIDE = 49; - public static final int ID_EACUTE_L = 50; - public static final int ID_EACUTE_U = 51; - public static final int ID_ECIRC_L = 52; - public static final int ID_ECIRC_U = 53; - public static final int ID_EGRAVE_L = 54; - public static final int ID_EGRAVE_U = 55; - public static final int ID_EMPTY = 56; - public static final int ID_EMSP = 57; - public static final int ID_ENSP = 58; - public static final int ID_EPSILON_L = 59; - public static final int ID_EPSILON_U = 60; - public static final int ID_EQUIV = 61; - public static final int ID_ETA_L = 62; - public static final int ID_ETA_U = 63; - public static final int ID_ETH_L = 64; - public static final int ID_ETH_U = 65; - public static final int ID_EUML_L = 66; - public static final int ID_EUML_U = 67; - public static final int ID_EURO = 68; - public static final int ID_EXIST = 69; - public static final int ID_FNOF = 70; - public static final int ID_FORALL = 71; - public static final int ID_FRAC12 = 72; - public static final int ID_FRAC14 = 73; - public static final int ID_FRAC34 = 74; - public static final int ID_FRASL = 75; - public static final int ID_GAMMA_L = 76; - public static final int ID_GAMMA_U = 77; - public static final int ID_GE = 78; - public static final int ID_GT = 79; - public static final int ID_HARR_L = 80; - public static final int ID_HARR_U = 81; - public static final int ID_HEARTS = 82; - public static final int ID_HELLIP = 83; - public static final int ID_IACUTE_L = 84; - public static final int ID_IACUTE_U = 85; - public static final int ID_ICIRC_L = 86; - public static final int ID_ICIRC_U = 87; - public static final int ID_IEXCL = 88; - public static final int ID_IGRAVE_L = 89; - public static final int ID_IGRAVE_U = 90; - public static final int ID_IMAGE = 91; - public static final int ID_INFIN = 92; - public static final int ID_INT = 93; - public static final int ID_IOTA_L = 94; - public static final int ID_IOTA_U = 95; - public static final int ID_IQUEST = 96; - public static final int ID_ISIN = 97; - public static final int ID_IUML_L = 98; - public static final int ID_IUML_U = 99; - public static final int ID_KAPPA_L = 100; - public static final int ID_KAPPA_U = 101; - public static final int ID_LAMBDA_L = 102; - public static final int ID_LAMBDA_U = 103; - public static final int ID_LANG = 104; - public static final int ID_LAQUO = 105; - public static final int ID_LARR_L = 106; - public static final int ID_LARR_U = 107; - public static final int ID_LCEIL = 108; - public static final int ID_LDQUO = 109; - public static final int ID_LE = 110; - public static final int ID_LFLOOR = 111; - public static final int ID_LOWAST = 112; - public static final int ID_LOZ = 113; - public static final int ID_LRM = 114; - public static final int ID_LSAQUO = 115; - public static final int ID_LSQUO = 116; - public static final int ID_LT = 117; - public static final int ID_MACR = 118; - public static final int ID_MDASH = 119; - public static final int ID_MICRO = 120; - public static final int ID_MIDDOT = 121; - public static final int ID_MINUS = 122; - public static final int ID_MU_L = 123; - public static final int ID_MU_U = 124; - public static final int ID_NABLA = 125; - public static final int ID_NBSP = 126; - public static final int ID_NDASH = 127; - public static final int ID_NE = 128; - public static final int ID_NI = 129; - public static final int ID_NOT = 130; - public static final int ID_NOTIN = 131; - public static final int ID_NSUB = 132; - public static final int ID_NTILDE_L = 133; - public static final int ID_NTILDE_U = 134; - public static final int ID_NU_L = 135; - public static final int ID_NU_U = 136; - public static final int ID_OACUTE_L = 137; - public static final int ID_OACUTE_U = 138; - public static final int ID_OCIRC_L = 139; - public static final int ID_OCIRC_U = 140; - public static final int ID_OELIG_L = 141; - public static final int ID_OELIG_U = 142; - public static final int ID_OGRAVE_L = 143; - public static final int ID_OGRAVE_U = 144; - public static final int ID_OLINE = 145; - public static final int ID_OMEGA_L = 146; - public static final int ID_OMEGA_U = 147; - public static final int ID_OMICRON_L = 148; - public static final int ID_OMICRON_U = 149; - public static final int ID_OPLUS = 150; - public static final int ID_OR = 151; - public static final int ID_ORDF = 152; - public static final int ID_ORDM = 153; - public static final int ID_OSLASH_L = 154; - public static final int ID_OSLASH_U = 155; - public static final int ID_OTILDE_L = 156; - public static final int ID_OTILDE_U = 157; - public static final int ID_OTIMES = 158; - public static final int ID_OUML_L = 159; - public static final int ID_OUML_U = 160; - public static final int ID_PARA = 161; - public static final int ID_PART = 162; - public static final int ID_PERMIL = 163; - public static final int ID_PERP = 164; - public static final int ID_PHI_L = 165; - public static final int ID_PHI_U = 166; - public static final int ID_PIV = 167; - public static final int ID_PI_L = 168; - public static final int ID_PI_U = 169; - public static final int ID_PLUSMN = 170; - public static final int ID_POUND = 171; - public static final int ID_PRIME_L = 172; - public static final int ID_PRIME_U = 173; - public static final int ID_PROD = 174; - public static final int ID_PROP = 175; - public static final int ID_PSI_L = 176; - public static final int ID_PSI_U = 177; - public static final int ID_QUOT = 178; - public static final int ID_RADIC = 179; - public static final int ID_RANG = 180; - public static final int ID_RAQUO = 181; - public static final int ID_RARR_L = 182; - public static final int ID_RARR_U = 183; - public static final int ID_RCEIL = 184; - public static final int ID_RDQUO = 185; - public static final int ID_REAL = 186; - public static final int ID_REG = 187; - public static final int ID_RFLOOR = 188; - public static final int ID_RHO_L = 189; - public static final int ID_RHO_U = 190; - public static final int ID_RLM = 191; - public static final int ID_RSAQUO = 192; - public static final int ID_RSQUO = 193; - public static final int ID_SBQUO = 194; - public static final int ID_SCARON_L = 195; - public static final int ID_SCARON_U = 196; - public static final int ID_SDOT = 197; - public static final int ID_SECT = 198; - public static final int ID_SHY = 199; - public static final int ID_SIGMAF = 200; - public static final int ID_SIGMA_L = 201; - public static final int ID_SIGMA_U = 202; - public static final int ID_SIM = 203; - public static final int ID_SPADES = 204; - public static final int ID_SUB = 205; - public static final int ID_SUBE = 206; - public static final int ID_SUM = 207; - public static final int ID_SUP = 208; - public static final int ID_SUP1 = 209; - public static final int ID_SUP2 = 210; - public static final int ID_SUP3 = 211; - public static final int ID_SUPE = 212; - public static final int ID_SZLIG = 213; - public static final int ID_TAU_L = 214; - public static final int ID_TAU_U = 215; - public static final int ID_THERE4 = 216; - public static final int ID_THETASYM = 217; - public static final int ID_THETA_L = 218; - public static final int ID_THETA_U = 219; - public static final int ID_THINSP = 220; - public static final int ID_THORN_L = 221; - public static final int ID_THORN_U = 222; - public static final int ID_TILDE = 223; - public static final int ID_TIMES = 224; - public static final int ID_TRADE = 225; - public static final int ID_UACUTE_L = 226; - public static final int ID_UACUTE_U = 227; - public static final int ID_UARR_L = 228; - public static final int ID_UARR_U = 229; - public static final int ID_UCIRC_L = 230; - public static final int ID_UCIRC_U = 231; - public static final int ID_UGRAVE_L = 232; - public static final int ID_UGRAVE_U = 233; - public static final int ID_UML = 234; - public static final int ID_UPSIH = 235; - public static final int ID_UPSILON_L = 236; - public static final int ID_UPSILON_U = 237; - public static final int ID_UUML_L = 238; - public static final int ID_UUML_U = 239; - public static final int ID_WEIERP = 240; - public static final int ID_XI_L = 241; - public static final int ID_XI_U = 242; - public static final int ID_YACUTE_L = 243; - public static final int ID_YACUTE_U = 244; - public static final int ID_YEN = 245; - public static final int ID_YUML_L = 246; - public static final int ID_YUML_U = 247; - public static final int ID_ZETA_L = 248; - public static final int ID_ZETA_U = 249; - public static final int ID_ZWJ = 250; - public static final int ID_ZWNJ = 251; - - public static int getNumOfIds() { - if (numofids != -1) - return numofids; - - // NOTE: If the reflection is too slow, this method should - // just return the literal value, like 252. - // -- 5/24/2001 - Class clazz = Ids.class; - Field[] fields = clazz.getFields(); - numofids = 0; - for (int i = 0; i < fields.length; i++) { - String name = fields[i].getName(); - if (name.startsWith("ID_"))//$NON-NLS-1$ - numofids++; - } - return numofids; - } - - // chache the result of the reflection. - private static int numofids = -1; - } - - private static String[] names = null; - - static { - names = new String[Ids.getNumOfIds()]; - names[Ids.ID_AACUTE_L] = AACUTE_L; - names[Ids.ID_AACUTE_U] = AACUTE_U; - names[Ids.ID_ACIRC_L] = ACIRC_L; - names[Ids.ID_ACIRC_U] = ACIRC_U; - names[Ids.ID_ACUTE] = ACUTE; - names[Ids.ID_AELIG_L] = AELIG_L; - names[Ids.ID_AELIG_U] = AELIG_U; - names[Ids.ID_AGRAVE_L] = AGRAVE_L; - names[Ids.ID_AGRAVE_U] = AGRAVE_U; - names[Ids.ID_ALEFSYM] = ALEFSYM; - names[Ids.ID_ALPHA_L] = ALPHA_L; - names[Ids.ID_ALPHA_U] = ALPHA_U; - names[Ids.ID_AMP] = AMP; - names[Ids.ID_AND] = AND; - names[Ids.ID_ANG] = ANG; - names[Ids.ID_ARING_L] = ARING_L; - names[Ids.ID_ARING_U] = ARING_U; - names[Ids.ID_ASYMP] = ASYMP; - names[Ids.ID_ATILDE_L] = ATILDE_L; - names[Ids.ID_ATILDE_U] = ATILDE_U; - names[Ids.ID_AUML_L] = AUML_L; - names[Ids.ID_AUML_U] = AUML_U; - names[Ids.ID_BDQUO] = BDQUO; - names[Ids.ID_BETA_L] = BETA_L; - names[Ids.ID_BETA_U] = BETA_U; - names[Ids.ID_BRVBAR] = BRVBAR; - names[Ids.ID_BULL] = BULL; - names[Ids.ID_CAP] = CAP; - names[Ids.ID_CCEDIL_L] = CCEDIL_L; - names[Ids.ID_CCEDIL_U] = CCEDIL_U; - names[Ids.ID_CEDIL] = CEDIL; - names[Ids.ID_CENT] = CENT; - names[Ids.ID_CHI_L] = CHI_L; - names[Ids.ID_CHI_U] = CHI_U; - names[Ids.ID_CIRC] = CIRC; - names[Ids.ID_CLUBS] = CLUBS; - names[Ids.ID_CONG] = CONG; - names[Ids.ID_COPY] = COPY; - names[Ids.ID_CRARR] = CRARR; - names[Ids.ID_CUP] = CUP; - names[Ids.ID_CURREN] = CURREN; - names[Ids.ID_DAGGER_L] = DAGGER_L; - names[Ids.ID_DAGGER_U] = DAGGER_U; - names[Ids.ID_DARR_L] = DARR_L; - names[Ids.ID_DARR_U] = DARR_U; - names[Ids.ID_DEG] = DEG; - names[Ids.ID_DELTA_L] = DELTA_L; - names[Ids.ID_DELTA_U] = DELTA_U; - names[Ids.ID_DIAMS] = DIAMS; - names[Ids.ID_DIVIDE] = DIVIDE; - names[Ids.ID_EACUTE_L] = EACUTE_L; - names[Ids.ID_EACUTE_U] = EACUTE_U; - names[Ids.ID_ECIRC_L] = ECIRC_L; - names[Ids.ID_ECIRC_U] = ECIRC_U; - names[Ids.ID_EGRAVE_L] = EGRAVE_L; - names[Ids.ID_EGRAVE_U] = EGRAVE_U; - names[Ids.ID_EMPTY] = EMPTY; - names[Ids.ID_EMSP] = EMSP; - names[Ids.ID_ENSP] = ENSP; - names[Ids.ID_EPSILON_L] = EPSILON_L; - names[Ids.ID_EPSILON_U] = EPSILON_U; - names[Ids.ID_EQUIV] = EQUIV; - names[Ids.ID_ETA_L] = ETA_L; - names[Ids.ID_ETA_U] = ETA_U; - names[Ids.ID_ETH_L] = ETH_L; - names[Ids.ID_ETH_U] = ETH_U; - names[Ids.ID_EUML_L] = EUML_L; - names[Ids.ID_EUML_U] = EUML_U; - names[Ids.ID_EURO] = EURO; - names[Ids.ID_EXIST] = EXIST; - names[Ids.ID_FNOF] = FNOF; - names[Ids.ID_FORALL] = FORALL; - names[Ids.ID_FRAC12] = FRAC12; - names[Ids.ID_FRAC14] = FRAC14; - names[Ids.ID_FRAC34] = FRAC34; - names[Ids.ID_FRASL] = FRASL; - names[Ids.ID_GAMMA_L] = GAMMA_L; - names[Ids.ID_GAMMA_U] = GAMMA_U; - names[Ids.ID_GE] = GE; - names[Ids.ID_GT] = GT; - names[Ids.ID_HARR_L] = HARR_L; - names[Ids.ID_HARR_U] = HARR_U; - names[Ids.ID_HEARTS] = HEARTS; - names[Ids.ID_HELLIP] = HELLIP; - names[Ids.ID_IACUTE_L] = IACUTE_L; - names[Ids.ID_IACUTE_U] = IACUTE_U; - names[Ids.ID_ICIRC_L] = ICIRC_L; - names[Ids.ID_ICIRC_U] = ICIRC_U; - names[Ids.ID_IEXCL] = IEXCL; - names[Ids.ID_IGRAVE_L] = IGRAVE_L; - names[Ids.ID_IGRAVE_U] = IGRAVE_U; - names[Ids.ID_IMAGE] = IMAGE; - names[Ids.ID_INFIN] = INFIN; - names[Ids.ID_INT] = INT; - names[Ids.ID_IOTA_L] = IOTA_L; - names[Ids.ID_IOTA_U] = IOTA_U; - names[Ids.ID_IQUEST] = IQUEST; - names[Ids.ID_ISIN] = ISIN; - names[Ids.ID_IUML_L] = IUML_L; - names[Ids.ID_IUML_U] = IUML_U; - names[Ids.ID_KAPPA_L] = KAPPA_L; - names[Ids.ID_KAPPA_U] = KAPPA_U; - names[Ids.ID_LAMBDA_L] = LAMBDA_L; - names[Ids.ID_LAMBDA_U] = LAMBDA_U; - names[Ids.ID_LANG] = LANG; - names[Ids.ID_LAQUO] = LAQUO; - names[Ids.ID_LARR_L] = LARR_L; - names[Ids.ID_LARR_U] = LARR_U; - names[Ids.ID_LCEIL] = LCEIL; - names[Ids.ID_LDQUO] = LDQUO; - names[Ids.ID_LE] = LE; - names[Ids.ID_LFLOOR] = LFLOOR; - names[Ids.ID_LOWAST] = LOWAST; - names[Ids.ID_LOZ] = LOZ; - names[Ids.ID_LRM] = LRM; - names[Ids.ID_LSAQUO] = LSAQUO; - names[Ids.ID_LSQUO] = LSQUO; - names[Ids.ID_LT] = LT; - names[Ids.ID_MACR] = MACR; - names[Ids.ID_MDASH] = MDASH; - names[Ids.ID_MICRO] = MICRO; - names[Ids.ID_MIDDOT] = MIDDOT; - names[Ids.ID_MINUS] = MINUS; - names[Ids.ID_MU_L] = MU_L; - names[Ids.ID_MU_U] = MU_U; - names[Ids.ID_NABLA] = NABLA; - names[Ids.ID_NBSP] = NBSP; - names[Ids.ID_NDASH] = NDASH; - names[Ids.ID_NE] = NE; - names[Ids.ID_NI] = NI; - names[Ids.ID_NOT] = NOT; - names[Ids.ID_NOTIN] = NOTIN; - names[Ids.ID_NSUB] = NSUB; - names[Ids.ID_NTILDE_L] = NTILDE_L; - names[Ids.ID_NTILDE_U] = NTILDE_U; - names[Ids.ID_NU_L] = NU_L; - names[Ids.ID_NU_U] = NU_U; - names[Ids.ID_OACUTE_L] = OACUTE_L; - names[Ids.ID_OACUTE_U] = OACUTE_U; - names[Ids.ID_OCIRC_L] = OCIRC_L; - names[Ids.ID_OCIRC_U] = OCIRC_U; - names[Ids.ID_OELIG_L] = OELIG_L; - names[Ids.ID_OELIG_U] = OELIG_U; - names[Ids.ID_OGRAVE_L] = OGRAVE_L; - names[Ids.ID_OGRAVE_U] = OGRAVE_U; - names[Ids.ID_OLINE] = OLINE; - names[Ids.ID_OMEGA_L] = OMEGA_L; - names[Ids.ID_OMEGA_U] = OMEGA_U; - names[Ids.ID_OMICRON_L] = OMICRON_L; - names[Ids.ID_OMICRON_U] = OMICRON_U; - names[Ids.ID_OPLUS] = OPLUS; - names[Ids.ID_OR] = OR; - names[Ids.ID_ORDF] = ORDF; - names[Ids.ID_ORDM] = ORDM; - names[Ids.ID_OSLASH_L] = OSLASH_L; - names[Ids.ID_OSLASH_U] = OSLASH_U; - names[Ids.ID_OTILDE_L] = OTILDE_L; - names[Ids.ID_OTILDE_U] = OTILDE_U; - names[Ids.ID_OTIMES] = OTIMES; - names[Ids.ID_OUML_L] = OUML_L; - names[Ids.ID_OUML_U] = OUML_U; - names[Ids.ID_PARA] = PARA; - names[Ids.ID_PART] = PART; - names[Ids.ID_PERMIL] = PERMIL; - names[Ids.ID_PERP] = PERP; - names[Ids.ID_PHI_L] = PHI_L; - names[Ids.ID_PHI_U] = PHI_U; - names[Ids.ID_PIV] = PIV; - names[Ids.ID_PI_L] = PI_L; - names[Ids.ID_PI_U] = PI_U; - names[Ids.ID_PLUSMN] = PLUSMN; - names[Ids.ID_POUND] = POUND; - names[Ids.ID_PRIME_L] = PRIME_L; - names[Ids.ID_PRIME_U] = PRIME_U; - names[Ids.ID_PROD] = PROD; - names[Ids.ID_PROP] = PROP; - names[Ids.ID_PSI_L] = PSI_L; - names[Ids.ID_PSI_U] = PSI_U; - names[Ids.ID_QUOT] = QUOT; - names[Ids.ID_RADIC] = RADIC; - names[Ids.ID_RANG] = RANG; - names[Ids.ID_RAQUO] = RAQUO; - names[Ids.ID_RARR_L] = RARR_L; - names[Ids.ID_RARR_U] = RARR_U; - names[Ids.ID_RCEIL] = RCEIL; - names[Ids.ID_RDQUO] = RDQUO; - names[Ids.ID_REAL] = REAL; - names[Ids.ID_REG] = REG; - names[Ids.ID_RFLOOR] = RFLOOR; - names[Ids.ID_RHO_L] = RHO_L; - names[Ids.ID_RHO_U] = RHO_U; - names[Ids.ID_RLM] = RLM; - names[Ids.ID_RSAQUO] = RSAQUO; - names[Ids.ID_RSQUO] = RSQUO; - names[Ids.ID_SBQUO] = SBQUO; - names[Ids.ID_SCARON_L] = SCARON_L; - names[Ids.ID_SCARON_U] = SCARON_U; - names[Ids.ID_SDOT] = SDOT; - names[Ids.ID_SECT] = SECT; - names[Ids.ID_SHY] = SHY; - names[Ids.ID_SIGMAF] = SIGMAF; - names[Ids.ID_SIGMA_L] = SIGMA_L; - names[Ids.ID_SIGMA_U] = SIGMA_U; - names[Ids.ID_SIM] = SIM; - names[Ids.ID_SPADES] = SPADES; - names[Ids.ID_SUB] = SUB; - names[Ids.ID_SUBE] = SUBE; - names[Ids.ID_SUM] = SUM; - names[Ids.ID_SUP] = SUP; - names[Ids.ID_SUP1] = SUP1; - names[Ids.ID_SUP2] = SUP2; - names[Ids.ID_SUP3] = SUP3; - names[Ids.ID_SUPE] = SUPE; - names[Ids.ID_SZLIG] = SZLIG; - names[Ids.ID_TAU_L] = TAU_L; - names[Ids.ID_TAU_U] = TAU_U; - names[Ids.ID_THERE4] = THERE4; - names[Ids.ID_THETASYM] = THETASYM; - names[Ids.ID_THETA_L] = THETA_L; - names[Ids.ID_THETA_U] = THETA_U; - names[Ids.ID_THINSP] = THINSP; - names[Ids.ID_THORN_L] = THORN_L; - names[Ids.ID_THORN_U] = THORN_U; - names[Ids.ID_TILDE] = TILDE; - names[Ids.ID_TIMES] = TIMES; - names[Ids.ID_TRADE] = TRADE; - names[Ids.ID_UACUTE_L] = UACUTE_L; - names[Ids.ID_UACUTE_U] = UACUTE_U; - names[Ids.ID_UARR_L] = UARR_L; - names[Ids.ID_UARR_U] = UARR_U; - names[Ids.ID_UCIRC_L] = UCIRC_L; - names[Ids.ID_UCIRC_U] = UCIRC_U; - names[Ids.ID_UGRAVE_L] = UGRAVE_L; - names[Ids.ID_UGRAVE_U] = UGRAVE_U; - names[Ids.ID_UML] = UML; - names[Ids.ID_UPSIH] = UPSIH; - names[Ids.ID_UPSILON_L] = UPSILON_L; - names[Ids.ID_UPSILON_U] = UPSILON_U; - names[Ids.ID_UUML_L] = UUML_L; - names[Ids.ID_UUML_U] = UUML_U; - names[Ids.ID_WEIERP] = WEIERP; - names[Ids.ID_XI_L] = XI_L; - names[Ids.ID_XI_U] = XI_U; - names[Ids.ID_YACUTE_L] = YACUTE_L; - names[Ids.ID_YACUTE_U] = YACUTE_U; - names[Ids.ID_YEN] = YEN; - names[Ids.ID_YUML_L] = YUML_L; - names[Ids.ID_YUML_U] = YUML_U; - names[Ids.ID_ZETA_L] = ZETA_L; - names[Ids.ID_ZETA_U] = ZETA_U; - names[Ids.ID_ZWJ] = ZWJ; - names[Ids.ID_ZWNJ] = ZWNJ; - } - private static char[] values = null; - - static { - values = new char[Ids.getNumOfIds()]; - values[Ids.ID_AACUTE_L] = 225; - values[Ids.ID_AACUTE_U] = 193; - values[Ids.ID_ACIRC_L] = 226; - values[Ids.ID_ACIRC_U] = 194; - values[Ids.ID_ACUTE] = 180; - values[Ids.ID_AELIG_L] = 230; - values[Ids.ID_AELIG_U] = 198; - values[Ids.ID_AGRAVE_L] = 224; - values[Ids.ID_AGRAVE_U] = 192; - values[Ids.ID_ALEFSYM] = 8501; - values[Ids.ID_ALPHA_L] = 945; - values[Ids.ID_ALPHA_U] = 913; - values[Ids.ID_AMP] = 38; - values[Ids.ID_AND] = 8743; - values[Ids.ID_ANG] = 8736; - values[Ids.ID_ARING_L] = 229; - values[Ids.ID_ARING_U] = 197; - values[Ids.ID_ASYMP] = 8776; - values[Ids.ID_ATILDE_L] = 227; - values[Ids.ID_ATILDE_U] = 195; - values[Ids.ID_AUML_L] = 228; - values[Ids.ID_AUML_U] = 196; - values[Ids.ID_BDQUO] = 8222; - values[Ids.ID_BETA_L] = 946; - values[Ids.ID_BETA_U] = 914; - values[Ids.ID_BRVBAR] = 166; - values[Ids.ID_BULL] = 8226; - values[Ids.ID_CAP] = 8745; - values[Ids.ID_CCEDIL_L] = 231; - values[Ids.ID_CCEDIL_U] = 199; - values[Ids.ID_CEDIL] = 184; - values[Ids.ID_CENT] = 162; - values[Ids.ID_CHI_L] = 967; - values[Ids.ID_CHI_U] = 935; - values[Ids.ID_CIRC] = 710; - values[Ids.ID_CLUBS] = 9827; - values[Ids.ID_CONG] = 8773; - values[Ids.ID_COPY] = 169; - values[Ids.ID_CRARR] = 8629; - values[Ids.ID_CUP] = 8746; - values[Ids.ID_CURREN] = 164; - values[Ids.ID_DAGGER_L] = 8224; - values[Ids.ID_DAGGER_U] = 8225; - values[Ids.ID_DARR_L] = 8595; - values[Ids.ID_DARR_U] = 8659; - values[Ids.ID_DEG] = 176; - values[Ids.ID_DELTA_L] = 948; - values[Ids.ID_DELTA_U] = 916; - values[Ids.ID_DIAMS] = 9830; - values[Ids.ID_DIVIDE] = 247; - values[Ids.ID_EACUTE_L] = 233; - values[Ids.ID_EACUTE_U] = 201; - values[Ids.ID_ECIRC_L] = 234; - values[Ids.ID_ECIRC_U] = 202; - values[Ids.ID_EGRAVE_L] = 232; - values[Ids.ID_EGRAVE_U] = 200; - values[Ids.ID_EMPTY] = 8709; - values[Ids.ID_EMSP] = 8195; - values[Ids.ID_ENSP] = 8194; - values[Ids.ID_EPSILON_L] = 949; - values[Ids.ID_EPSILON_U] = 917; - values[Ids.ID_EQUIV] = 8801; - values[Ids.ID_ETA_L] = 951; - values[Ids.ID_ETA_U] = 919; - values[Ids.ID_ETH_L] = 240; - values[Ids.ID_ETH_U] = 208; - values[Ids.ID_EUML_L] = 235; - values[Ids.ID_EUML_U] = 203; - values[Ids.ID_EURO] = 8364; - values[Ids.ID_EXIST] = 8707; - values[Ids.ID_FNOF] = 402; - values[Ids.ID_FORALL] = 8704; - values[Ids.ID_FRAC12] = 189; - values[Ids.ID_FRAC14] = 188; - values[Ids.ID_FRAC34] = 190; - values[Ids.ID_FRASL] = 8260; - values[Ids.ID_GAMMA_L] = 947; - values[Ids.ID_GAMMA_U] = 915; - values[Ids.ID_GE] = 8805; - values[Ids.ID_GT] = 62; - values[Ids.ID_HARR_L] = 8596; - values[Ids.ID_HARR_U] = 8660; - values[Ids.ID_HEARTS] = 9829; - values[Ids.ID_HELLIP] = 8230; - values[Ids.ID_IACUTE_L] = 237; - values[Ids.ID_IACUTE_U] = 205; - values[Ids.ID_ICIRC_L] = 238; - values[Ids.ID_ICIRC_U] = 206; - values[Ids.ID_IEXCL] = 161; - values[Ids.ID_IGRAVE_L] = 236; - values[Ids.ID_IGRAVE_U] = 204; - values[Ids.ID_IMAGE] = 8465; - values[Ids.ID_INFIN] = 8734; - values[Ids.ID_INT] = 8747; - values[Ids.ID_IOTA_L] = 953; - values[Ids.ID_IOTA_U] = 921; - values[Ids.ID_IQUEST] = 191; - values[Ids.ID_ISIN] = 8712; - values[Ids.ID_IUML_L] = 239; - values[Ids.ID_IUML_U] = 207; - values[Ids.ID_KAPPA_L] = 954; - values[Ids.ID_KAPPA_U] = 922; - values[Ids.ID_LAMBDA_L] = 955; - values[Ids.ID_LAMBDA_U] = 923; - values[Ids.ID_LANG] = 9001; - values[Ids.ID_LAQUO] = 171; - values[Ids.ID_LARR_L] = 8592; - values[Ids.ID_LARR_U] = 8656; - values[Ids.ID_LCEIL] = 8968; - values[Ids.ID_LDQUO] = 8220; - values[Ids.ID_LE] = 8804; - values[Ids.ID_LFLOOR] = 8970; - values[Ids.ID_LOWAST] = 8727; - values[Ids.ID_LOZ] = 9674; - values[Ids.ID_LRM] = 8206; - values[Ids.ID_LSAQUO] = 8249; - values[Ids.ID_LSQUO] = 8216; - values[Ids.ID_LT] = 60; - values[Ids.ID_MACR] = 175; - values[Ids.ID_MDASH] = 8212; - values[Ids.ID_MICRO] = 181; - values[Ids.ID_MIDDOT] = 183; - values[Ids.ID_MINUS] = 8722; - values[Ids.ID_MU_L] = 956; - values[Ids.ID_MU_U] = 924; - values[Ids.ID_NABLA] = 8711; - values[Ids.ID_NBSP] = 160; - values[Ids.ID_NDASH] = 8211; - values[Ids.ID_NE] = 8800; - values[Ids.ID_NI] = 8715; - values[Ids.ID_NOT] = 172; - values[Ids.ID_NOTIN] = 8713; - values[Ids.ID_NSUB] = 8836; - values[Ids.ID_NTILDE_L] = 241; - values[Ids.ID_NTILDE_U] = 209; - values[Ids.ID_NU_L] = 957; - values[Ids.ID_NU_U] = 925; - values[Ids.ID_OACUTE_L] = 243; - values[Ids.ID_OACUTE_U] = 211; - values[Ids.ID_OCIRC_L] = 244; - values[Ids.ID_OCIRC_U] = 212; - values[Ids.ID_OELIG_L] = 339; - values[Ids.ID_OELIG_U] = 338; - values[Ids.ID_OGRAVE_L] = 242; - values[Ids.ID_OGRAVE_U] = 210; - values[Ids.ID_OLINE] = 8254; - values[Ids.ID_OMEGA_L] = 969; - values[Ids.ID_OMEGA_U] = 937; - values[Ids.ID_OMICRON_L] = 959; - values[Ids.ID_OMICRON_U] = 927; - values[Ids.ID_OPLUS] = 8853; - values[Ids.ID_OR] = 8744; - values[Ids.ID_ORDF] = 170; - values[Ids.ID_ORDM] = 186; - values[Ids.ID_OSLASH_L] = 248; - values[Ids.ID_OSLASH_U] = 216; - values[Ids.ID_OTILDE_L] = 245; - values[Ids.ID_OTILDE_U] = 213; - values[Ids.ID_OTIMES] = 8855; - values[Ids.ID_OUML_L] = 246; - values[Ids.ID_OUML_U] = 214; - values[Ids.ID_PARA] = 182; - values[Ids.ID_PART] = 8706; - values[Ids.ID_PERMIL] = 8240; - values[Ids.ID_PERP] = 8869; - values[Ids.ID_PHI_L] = 966; - values[Ids.ID_PHI_U] = 934; - values[Ids.ID_PIV] = 982; - values[Ids.ID_PI_L] = 960; - values[Ids.ID_PI_U] = 928; - values[Ids.ID_PLUSMN] = 177; - values[Ids.ID_POUND] = 163; - values[Ids.ID_PRIME_L] = 8242; - values[Ids.ID_PRIME_U] = 8243; - values[Ids.ID_PROD] = 8719; - values[Ids.ID_PROP] = 8733; - values[Ids.ID_PSI_L] = 968; - values[Ids.ID_PSI_U] = 936; - values[Ids.ID_QUOT] = 34; - values[Ids.ID_RADIC] = 8730; - values[Ids.ID_RANG] = 9002; - values[Ids.ID_RAQUO] = 187; - values[Ids.ID_RARR_L] = 8594; - values[Ids.ID_RARR_U] = 8658; - values[Ids.ID_RCEIL] = 8969; - values[Ids.ID_RDQUO] = 8221; - values[Ids.ID_REAL] = 8476; - values[Ids.ID_REG] = 174; - values[Ids.ID_RFLOOR] = 8971; - values[Ids.ID_RHO_L] = 961; - values[Ids.ID_RHO_U] = 929; - values[Ids.ID_RLM] = 8207; - values[Ids.ID_RSAQUO] = 8250; - values[Ids.ID_RSQUO] = 8217; - values[Ids.ID_SBQUO] = 8218; - values[Ids.ID_SCARON_L] = 353; - values[Ids.ID_SCARON_U] = 352; - values[Ids.ID_SDOT] = 8901; - values[Ids.ID_SECT] = 167; - values[Ids.ID_SHY] = 173; - values[Ids.ID_SIGMAF] = 962; - values[Ids.ID_SIGMA_L] = 963; - values[Ids.ID_SIGMA_U] = 931; - values[Ids.ID_SIM] = 8764; - values[Ids.ID_SPADES] = 9824; - values[Ids.ID_SUB] = 8834; - values[Ids.ID_SUBE] = 8838; - values[Ids.ID_SUM] = 8721; - values[Ids.ID_SUP] = 8835; - values[Ids.ID_SUP1] = 185; - values[Ids.ID_SUP2] = 178; - values[Ids.ID_SUP3] = 179; - values[Ids.ID_SUPE] = 8839; - values[Ids.ID_SZLIG] = 223; - values[Ids.ID_TAU_L] = 964; - values[Ids.ID_TAU_U] = 932; - values[Ids.ID_THERE4] = 8756; - values[Ids.ID_THETASYM] = 977; - values[Ids.ID_THETA_L] = 952; - values[Ids.ID_THETA_U] = 920; - values[Ids.ID_THINSP] = 8201; - values[Ids.ID_THORN_L] = 254; - values[Ids.ID_THORN_U] = 222; - values[Ids.ID_TILDE] = 732; - values[Ids.ID_TIMES] = 215; - values[Ids.ID_TRADE] = 8482; - values[Ids.ID_UACUTE_L] = 250; - values[Ids.ID_UACUTE_U] = 218; - values[Ids.ID_UARR_L] = 8593; - values[Ids.ID_UARR_U] = 8657; - values[Ids.ID_UCIRC_L] = 251; - values[Ids.ID_UCIRC_U] = 219; - values[Ids.ID_UGRAVE_L] = 249; - values[Ids.ID_UGRAVE_U] = 217; - values[Ids.ID_UML] = 168; - values[Ids.ID_UPSIH] = 978; - values[Ids.ID_UPSILON_L] = 965; - values[Ids.ID_UPSILON_U] = 933; - values[Ids.ID_UUML_L] = 252; - values[Ids.ID_UUML_U] = 220; - values[Ids.ID_WEIERP] = 8472; - values[Ids.ID_XI_L] = 958; - values[Ids.ID_XI_U] = 926; - values[Ids.ID_YACUTE_L] = 253; - values[Ids.ID_YACUTE_U] = 221; - values[Ids.ID_YEN] = 165; - values[Ids.ID_YUML_L] = 255; - values[Ids.ID_YUML_U] = 376; - values[Ids.ID_ZETA_L] = 950; - values[Ids.ID_ZETA_U] = 918; - values[Ids.ID_ZWJ] = 8205; - values[Ids.ID_ZWNJ] = 8204; - } - - /** - */ - public EntityCollection() { - super(names, STRICT_CASE); - } - - /** - * Create an entity declaration. - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode - * @param attrName java.lang.String - */ - protected CMNode create(String entityName) { - int id = getID(entityName); - if (id == ID_UNKNOWN) - return null; - - String value = String.valueOf(values[id]); - HTMLEntityDeclImpl dec = new HTMLEntityDeclImpl(entityName, value); - - return dec; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java deleted file mode 100644 index 98ab2d9ad8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Enumeration; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Implementation class of {@link <code>HTMLAttributeDeclaration</code>} interface.<br> - */ -class HTMLAttrDeclImpl extends CMNodeImpl implements HTMLAttributeDeclaration { - - private HTMLCMDataTypeImpl type = null; - private int usage = 0; - - /** - */ - public HTMLAttrDeclImpl(String attrName, HTMLCMDataTypeImpl valueType, int valueUsage) { - super(attrName); - this.type = valueType; - - switch (valueUsage) { - case OPTIONAL : - case REQUIRED : - case FIXED : - case PROHIBITED : - this.usage = valueUsage; - break; - default : - // should warn... - this.usage = OPTIONAL; // fall back - break; - } - } - - /** - * getAttrName method - * @return java.lang.String - */ - public String getAttrName() { - return getNodeName(); - } - - /** - * getAttrType method - * @return CMDataType - */ - public CMDataType getAttrType() { - return type; - } - - /** - * @deprecated in superclass - */ - public String getDefaultValue() { - if (type.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_DEFAULT) - return null; - return type.getImpliedValue(); - } - - /** - * @deprecated in superclass - */ - public Enumeration getEnumAttr() { - Vector v = new Vector(Arrays.asList(type.getEnumeratedValues())); - return v.elements(); - } - - /** - * getNodeType method - * @return int - * - * Returns one of : - * ELEMENT_DECLARATION, ATTRIBUTE_DECLARATION, GROUP, ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.ATTRIBUTE_DECLARATION; - } - - /** - * @return int - */ - public int getUsage() { - return usage; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return true; - return super.supports(propertyName); - } - - /** - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return new Boolean(true); - return super.getProperty(propertyName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java deleted file mode 100644 index 63366fd3f9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - - - -/** - */ -class HTMLCMDataTypeImpl extends CMNodeImpl implements HTMLCMDataType { - - private int impliedValueKind = IMPLIED_VALUE_NONE; - private String impliedValue = null; - private final static String[] emptyArray = new String[0]; - private String[] enumValues = emptyArray; - private String instanceValue = null; - - /** - * HTMLCMDataTypeImpl constructor comment. - * @param nm java.lang.String - */ - public HTMLCMDataTypeImpl(String typeName) { - super(typeName); - } - - /** - * HTMLCMDataTypeImpl constructor comment. - * @param nm java.lang.String - */ - public HTMLCMDataTypeImpl(String typeName, String instanceValue) { - super(typeName); - this.instanceValue = instanceValue; - } - - /** - * getTypeName method - * @return java.lang.String - * - * This method returns a suitable default value that can be used when an instance of the data type is created. - * This returns null of a suitable default is not available. - */ - public String generateInstanceValue() { - return instanceValue; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMDataType - */ - public String getDataTypeName() { - return getNodeName(); - } - - /** - * getTypeName method - * @return java.lang.String[] - * - */ - public String[] getEnumeratedValues() { - return enumValues; - } - - /** - * getTypeName method - * @return java.lang.String - * - * Returns the implied value or null if none exists. - */ - public String getImpliedValue() { - return impliedValue; - } - - /** - * getImpliedValueKind method - * @return int - * - * Returns one of : - * IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED, IMPLIED_VALUE_DEFAULT. - */ - public int getImpliedValueKind() { - return impliedValueKind; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.DATA_TYPE; - } - - /** - */ - void setEnumValues(String[] values) { - enumValues = new String[values.length]; - for (int i = 0; i < values.length; i++) { - enumValues[i] = values[i]; - } - } - - /** - * package scope. - */ - void setImpliedValue(int kind, String value) { - switch (kind) { - case IMPLIED_VALUE_FIXED : - case IMPLIED_VALUE_DEFAULT : - impliedValueKind = kind; - impliedValue = value; - break; - case IMPLIED_VALUE_NONE : - default : - impliedValueKind = IMPLIED_VALUE_NONE; - impliedValue = null; // maybe a null string? - break; - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java deleted file mode 100644 index b294b27576..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - -/** - * In HTML Documents, name and value of an attribute/element/entity - * should be treated ignoring theirs case. However, in XML documents, - * they should be distinguished with sensitiveness of their case. - * CMNode is basically designed to represent DTDs or Schemas for XML - * documents. So, it doesn't have interfaces to retrieve such information. - * However, declarations in the HTML CM should provide such information. - * This intermediate interface is intended to provide whether ignore cases - * or not.<br> - */ -interface HTMLCMNode extends org.eclipse.wst.xml.core.internal.contentmodel.CMNode { - - /** - * Returns <code>true</code>, if declaration is for HTML attribute/element/entity. - * Otherwise, returns <code>false</code>. - * @return boolean - */ - boolean shouldIgnoreCase(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java deleted file mode 100644 index c003526d22..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java +++ /dev/null @@ -1,369 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLPropertyDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * Base class for all Hed???? classes. - */ -abstract class HTMLElemDeclImpl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration { - - // DTD - protected CMNamedNodeMapImpl attributes = null; - protected String typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY; - /** Never access this field directly. Instead, use getComplexTypeDefinition method. */ - private ComplexTypeDefinition typeDefinition = null; - protected CMGroupImpl inclusion = null; - protected CMGroupImpl exclusion = null; - // advanced information - protected CMNamedNodeMap prohibitedAncestors = null; - protected int correctionType = CORRECT_NONE; - protected int formatType = FORMAT_HTML; - protected int layoutType = LAYOUT_NONE; - protected int omitType = OMIT_NONE; - protected boolean keepSpaces = false; - protected boolean indentChild = false; - protected ElementCollection elementCollection = null; - protected AttributeCollection attributeCollection = null; - protected final static CMNamedNodeMap EMPTY_MAP = new CMNamedNodeMap() { - public int getLength() { - return 0; - } - - public CMNode getNamedItem(String name) { - return null; - } - - public CMNode item(int index) { - return null; - } - - public Iterator iterator() { - return new Iterator() { - public boolean hasNext() { - return false; - } - - public Object next() { - return null; - } - - public void remove() { - } - }; - } - }; - - /** - * HTMLElemDeclImpl constructor. - * In the HTML DTD, an element declaration has no specification - * for its occurrence. Occurrence is specifed in content model, like - * <code>(LI)+</code>. To avoid confusion (and complexity), - * occurrence of an element declaration is always 1 (it means, min = 1 and - * max = 1). Instead, occurrence of CMGroup represents actual occurrence - * of the content. - * <br> - * @param name java.lang.String - */ - public HTMLElemDeclImpl(String elementName, ElementCollection collection) { - super(elementName, 1, 1); - elementCollection = collection; - attributeCollection = collection.getAttributeCollection(); - } - - /** - */ - protected abstract void createAttributeDeclarations(); - - private ComplexTypeDefinition createComplexTypeDefinition() { - if (typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_CDATA) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_EMPTY) || typeDefinitionName.equals(ComplexTypeDefinitionFactory.CTYPE_PCDATA)) - return null; - - ComplexTypeDefinitionFactory factory = ComplexTypeDefinitionFactory.getInstance(); - if (factory == null) - return null; // fatal error. - - ComplexTypeDefinition def = factory.createTypeDefinition(typeDefinitionName, elementCollection); - return def; - } - - /** - * Get an attribute declaration. - */ - public HTMLAttributeDeclaration getAttributeDeclaration(String attrName) { - if (attributes == null) { - createAttributeDeclarations(); - if (attributes == null) - return null; // fail to create - } - - CMNode cmnode = attributes.getNamedItem(attrName); - if (cmnode == null) { - return null; - } - else { - return (HTMLAttributeDeclaration) cmnode; // already exists. - } - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMNamedNodeMap getAttributes() { - if (attributes == null) - createAttributeDeclarations(); // lazy eval. - return attributes; - } - - /** - * Get an instance of complex type definition. - */ - private ComplexTypeDefinition getComplexTypeDefinition() { - if (typeDefinition == null) - typeDefinition = createComplexTypeDefinition(); - return typeDefinition; - } - - /** - * Content.<br> - * Element declarations which type is EMPTY or CDATA (maybe PCDATA) - * <strong>MUST</strong> override this method and always return null. - * This default implementation always tries to create a complex type definition - * instance and access to it. - * <br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMContent getContent() { - ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval. - return (def != null) ? def.getContent() : null; - } - - /** - * Content type.<br> - * Element declarations which type is EMPTY or CDATA (maybe PCDATA) - * <strong>MUST</strong> override this method and return an appropriate type. - * This default implementation always tries to create a complex type definition - * instance and access to it. - * <br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - ComplexTypeDefinition def = getComplexTypeDefinition(); // lazy eval. - return (def != null) ? def.getContentType() : CMElementDeclaration.CDATA; - } - - /** - * @see HTMLElementDeclaration#getCorrectionType - */ - public int getCorrectionType() { - return correctionType; - } - - /** - * HTML element doesn't have any data type. So, this method always - * returns <code>null</code>.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMDataType getDataType() { - return null; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public String getElementName() { - return getNodeName(); - } - - /** - * Exclusion. - * Almost elements don't have a exclusion. - * Only classes those have exclusion should override this method. - */ - public CMContent getExclusion() { - return null; - } - - /** - * Default format type is <code>FORMAT_HTML</code>.<br> - */ - public int getFormatType() { - return formatType; - } - - /** - * Inclusion. - * Almost elements don't have a inclusion. - * Only classes those have inclusion should override this method. - */ - public CMContent getInclusion() { - return null; - } - - /** - */ - public int getLayoutType() { - return layoutType; - } - - /** - * Line break hint is strongly related to layout type. - * Indeed, in the C++DOM, it is determined from layout type only. - * So, this implementation, as the default implementation for all declarations, - * also determines from layout type only.<br> - * @return int - */ - public int getLineBreakHint() { - switch (getLayoutType()) { - case HTMLElementDeclaration.LAYOUT_BLOCK : - return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END; - case HTMLElementDeclaration.LAYOUT_BREAK : - return HTMLElementDeclaration.BREAK_AFTER_START; - case HTMLElementDeclaration.LAYOUT_HIDDEN : - return HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END; - default : - return HTMLElementDeclaration.BREAK_NONE; - } - } - - /** - * No HTML element has local elements. So, this method always - * returns an empty map. - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public CMNamedNodeMap getLocalElements() { - return EMPTY_MAP; - } - - /** - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMNode - */ - public int getNodeType() { - return CMNode.ELEMENT_DECLARATION; - } - - /** - */ - public int getOmitType() { - return omitType; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - return EMPTY_MAP; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return true; - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - ComplexTypeDefinition def = getComplexTypeDefinition(); - return (def != null); - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return false; - return pp.supports(this); - } - - } - - /** - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return new Boolean(true); - } - else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) { - ComplexTypeDefinition def = getComplexTypeDefinition(); - return (def != null) ? def.getPrimaryCandidate() : null; - } - else { - PropertyProvider pp = PropertyProviderFactory.getProvider(propertyName); - if (pp == null) - return null; - return pp.get(this); - } - } - - /** - * Return element names which terminates this element.<br> - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return null; - } - - /** - * return true when the element is a JSP element. - */ - public boolean isJSP() { - return false; - } - - /** - * In some elements, such as APPLET, a source generator should indent child - * elements that their parents. That is, a source generator should generate - * source of APPLET and PARAMS like this: - * <PRE> - * <APPLET ...> - * <PARAM ... > - * <PARAM ... > - * </APPLET> - * <PRE> - * @return boolean - */ - public boolean shouldIndentChildSource() { - return indentChild; - } - - /** - * Most of elements can compact spaces in their child text nodes. - * Some special elements should keep them in their source. - * @return boolean - */ - public boolean shouldKeepSpaces() { - return keepSpaces; - } - - /** - * @return boolean - */ - public boolean shouldTerminateAt(HTMLElementDeclaration nextElement) { - Iterator i = getTerminators(); - if (i == null) - return false; - String nextName = nextElement.getElementName(); - while (i.hasNext()) { - if (nextName.equals(i.next())) - return true; - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java deleted file mode 100644 index 1a47b01dfb..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLEntityDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - - - -/** - */ -class HTMLEntityDeclImpl extends CMNodeImpl implements HTMLEntityDeclaration { - - private java.lang.String value = null; - - /** - * CMEntityDeclImpl constructor comment. - * @param entityName java.lang.String; Entity name. - * @param entityValue java.lang.String; Value string. - */ - public HTMLEntityDeclImpl(String entityName, String entityValue) { - super(entityName); - value = entityValue; - } - - /** - * getName method - * @return java.lang.String - */ - public String getName() { - return getNodeName(); - } - - /** - * Get CMNode type.<br> - * @return int; Always return ENTITY_DECLARATION. - */ - public int getNodeType() { - return CMNode.ENTITY_DECLARATION; - } - - /** - * getValue method - * @return java.lang.String - */ - public String getValue() { - return value; - } - - /** - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return true; - return super.supports(propertyName); - } - - /** - * Entities in HTML documents are always treated with ignoring cases. - * Because no special entities are defined in JSP 1.0, this method - * can always return <code>true</code>.<br> - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return new Boolean(true); - return super.getProperty(propertyName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java deleted file mode 100644 index f603c37b79..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * A. - */ -final class HedA extends HedInlineContainer { - - /** - */ - public HedA(ElementCollection collection) { - super(CHTMLNamespace.ElementName.A, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - } - - /** - * %attrs; - * (charset %Charset; #IMPLIED) - * (type %ContentType; #IMPLIED) - * (name CDATA #IMPLIED) - * (href %URI; #IMPLIED) - * (hreflang %LanguageCode; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - * (rel %LinkTypes; #IMPLIED) - * (rev %LinkTypes; #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (directkey %Character; #IMPLIED) - * (shape %Shape; rect) - * (coords %Coords; #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_HREF,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>A</code> has the exclusion. - * It is <code>A</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode a = elementCollection.getNamedItem(CHTMLNamespace.ElementName.A); - if (a != null) - exclusion.appendChild(a); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.A,}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java deleted file mode 100644 index 36a72f2f0f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * ADDRESS. - */ -final class HedADDRESS extends HTMLElemDeclImpl { - - /** - */ - public HedADDRESS(ElementCollection collection) { - super(CHTMLNamespace.ElementName.ADDRESS, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_ADDRESS; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java deleted file mode 100644 index f33abe0813..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * BASE. - */ -final class HedBASE extends HedEmpty { - - /** - */ - public HedBASE(ElementCollection collection) { - super(CHTMLNamespace.ElementName.BASE, collection); - // LAYOUT_HIDDEN. - // Because, BASE is GROUP_HIDDEN in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_HIDDEN; - } - - /** - * BASE. - * (href %URI; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_HREF,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java deleted file mode 100644 index 5aef97b8a6..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * BLOCKQUOTE. - */ -final class HedBLOCKQUOTE extends HedFlowContainer { - - /** - */ - public HedBLOCKQUOTE(ElementCollection collection) { - super(CHTMLNamespace.ElementName.BLOCKQUOTE, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * (cite %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java deleted file mode 100644 index 7483c58911..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * BODY. - */ -final class HedBODY extends HedFlowContainer { - - private static String[] terminators = {CHTMLNamespace.ElementName.HEAD, CHTMLNamespace.ElementName.BODY, CHTMLNamespace.ElementName.HTML}; - - /** - */ - public HedBODY(ElementCollection collection) { - super(CHTMLNamespace.ElementName.BODY, collection); - layoutType = LAYOUT_BLOCK; - omitType = OMIT_BOTH; - } - - /** - * %attrs; - * %bodycolors; - * (onload %Script; #IMPLIED) - * (onunload %Script; #IMPLIED) - * (background %URI; #IMPLIED) - * (marginwidth %Pixels; #IMPLIED) ... D205514 - * (marginheight %Pixels; #IMPLIED) .. D205514 - * (topmargin, CDATA, #IMPLIED) ...... D205514 - * (bottommargin, CDATA, #IMPLIED) ... D205514 - * (leftmargin, CDATA, #IMPLIED) ..... D205514 - * (rightmargin, CDATA, #IMPLIED) .... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %bodycolors; - attributeCollection.getBodycolors(attributes); - - } - - /** - * BODY has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java deleted file mode 100644 index 3ec16f585b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration; - - - -/** - * BR. - */ -final class HedBR extends HedEmpty { - - /** - */ - public HedBR(ElementCollection collection) { - super(CHTMLNamespace.ElementName.BR, collection); - // LAYOUT_BREAK. - // Because, BR is GROUP_BREAK in the C++DOM/DTDParser.cpp. - layoutType = LAYOUT_BREAK; - } - - /** - * BR. - * %coreattrs; - * (clear (left | all | right | none) none) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %coreattrs; - attributeCollection.getCore(attributes); - // clear - HTMLAttributeDeclaration attr = attributeCollection.getDeclaration(CHTMLNamespace.ATTR_NAME_CLEAR); - if (attr != null) - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_CLEAR, attr); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java deleted file mode 100644 index 769393380e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * CENTER. - */ -final class HedCENTER extends HedFlowContainer { - - /** - */ - public HedCENTER(ElementCollection collection) { - super(CHTMLNamespace.ElementName.CENTER, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java deleted file mode 100644 index dd70e26781..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * DD. - */ -final class HedDD extends HedFlowContainer { - - private static String[] terminators = {CHTMLNamespace.ElementName.DT, CHTMLNamespace.ElementName.DD}; - - /** - */ - public HedDD(ElementCollection collection) { - super(CHTMLNamespace.ElementName.DD, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - * DD has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java deleted file mode 100644 index 8e2d794f13..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * DIV. - */ -final class HedDIV extends HedFlowContainer { - - /** - */ - public HedDIV(ElementCollection collection) { - super(CHTMLNamespace.ElementName.DIV, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * %align; - * %reserved; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // %align; - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph(); - if (attr != null) - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr); - // %reserved; ... empty - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java deleted file mode 100644 index 1746bb23ed..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * DL. - */ -final class HedDL extends HTMLElemDeclImpl { - - /** - */ - public HedDL(ElementCollection collection) { - super(CHTMLNamespace.ElementName.DL, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - indentChild = true; - } - - /** - * %arrays; - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java deleted file mode 100644 index 933d877c13..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * DT. - */ -final class HedDT extends HedInlineContainer { - - private static String[] terminators = {CHTMLNamespace.ElementName.DT, CHTMLNamespace.ElementName.DD}; - - /** - */ - public HedDT(ElementCollection collection) { - super(CHTMLNamespace.ElementName.DT, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - } - - /** - * DT has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java deleted file mode 100644 index c6de6e0bc4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * Base class for EMPTY type element declarations. - */ -abstract class HedEmpty extends HTMLElemDeclImpl { - - /** - */ - public HedEmpty(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_EMPTY; - // EMPTY type has no end tag. - omitType = OMIT_END_MUST; - } - - /** - * Content.<br> - * EMPTY type always returns <code>null</code>. - * <br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * Content type.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - return CMElementDeclaration.EMPTY; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java deleted file mode 100644 index 090d61aacc..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - * FORM. - */ -final class HedFORM extends HedFlowContainer { - - /** - */ - public HedFORM(ElementCollection collection) { - super(CHTMLNamespace.ElementName.FORM, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs; - * (action %URI; #REQUIRED) - * (method (GET|POST) GET) - * (enctype %ContentType; "application/x-www-form-urlencoded") - * (accept %ContentTypes; #IMPLIED) - * (name CDATA #IMPLIED) - * (onsubmit %Script; #IMPLIED) - * (onreset %Script; #IMPLIED) - * (target %FrameTarget; #IMPLIED) - * (accept-charset %Charsets; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {CHTMLNamespace.ATTR_NAME_ACTION, CHTMLNamespace.ATTR_NAME_METHOD, CHTMLNamespace.ATTR_NAME_ENCTYPE, CHTMLNamespace.ATTR_NAME_NAME,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * Exclusion. - * <code>FORM</code> has the exclusion. - * It is <code>FORM</code> itself. - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; // fatal - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - CMNode form = elementCollection.getNamedItem(CHTMLNamespace.ElementName.FORM); - if (form != null) - exclusion.appendChild(form); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.FORM, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java deleted file mode 100644 index 8c484160f5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -/** - * Base class for (%flow;)* containers. - */ -abstract class HedFlowContainer extends HTMLElemDeclImpl { - - /** - */ - public HedFlowContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java deleted file mode 100644 index e8ef6f9640..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * HTML. - */ -final class HedHEAD extends HTMLElemDeclImpl { - - private static String[] terminators = {CHTMLNamespace.ElementName.HEAD, CHTMLNamespace.ElementName.BODY, CHTMLNamespace.ElementName.HTML}; - - /** - */ - public HedHEAD(ElementCollection collection) { - super(CHTMLNamespace.ElementName.HEAD, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HEAD; - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_BOTH; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>HEAD</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%i18n;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>profile</td><td>URI</td><td>#IMPLIED</td><td>N/A</td><td>-</td> - * </tr> - * </tbody> - * </table> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - } - - /** - * HEAD has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java deleted file mode 100644 index 732d09528a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * HR. - */ -final class HedHR extends HedEmpty { - - /** - */ - public HedHR(ElementCollection collection) { - super(CHTMLNamespace.ElementName.HR, collection); - layoutType = LAYOUT_BLOCK; - } - - /** - * %attrs - * (align (left|center|right) #IMPLIED) ... should be defined locally. - * (noshade (noshade) #IMPLIED) - * (size %Pixels; #IMPLIED) - * (width %Length; #IMPLIED) - * (color %Color; #IMPLIED) ... D205514 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (align (left|center|right) #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {CHTMLNamespace.ATTR_VALUE_LEFT, CHTMLNamespace.ATTR_VALUE_CENTER, CHTMLNamespace.ATTR_VALUE_RIGHT}; - atype.setEnumValues(values); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_ALIGN, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr); - - // the rest. - String[] names = {CHTMLNamespace.ATTR_NAME_NOSHADE, CHTMLNamespace.ATTR_NAME_SIZE, CHTMLNamespace.ATTR_NAME_WIDTH,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java deleted file mode 100644 index 36c2e4adee..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLAttributeDeclaration; - - -/** - * HTML. - */ -final class HedHTML extends HTMLElemDeclImpl { - - private static String[] terminators = {CHTMLNamespace.ElementName.HTML}; - - /** - */ - public HedHTML(ElementCollection collection) { - super(CHTMLNamespace.ElementName.HTML, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_HTML; - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_BOTH; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>HTML</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td><code>%i18n;</code></td><td>-</td><td>-</td><td>-</td> - * <td>{@link PDCMDocImpl#getAttrDeclarationsI18n}</td> - * </tr> - * <tr> - * <td>version</td><td>CDATA</td><td>#FIXED</td> - * <td>{@link HTML_VERSION_TRANSITIONAL}</td><td>deplecated in HTML4.01</td> - * </tr> - * </tbody> - * </table><br> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - // version - HTMLAttributeDeclaration adec = attributeCollection.getDeclaration(CHTMLNamespace.ATTR_NAME_VERSION); - if (adec != null) - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_VERSION, adec); - } - - /** - * HTML has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java deleted file mode 100644 index af3be378f6..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * H[1-6]. - */ -final class HedHeading extends HedInlineContainer { - - /** - */ - public HedHeading(String elementName, ElementCollection collection) { - super(elementName, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>H1</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * </tbody> - * </table> - * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>. - * Unfortunately, this <code>align</code> is different from one in - * <code>IMG</code> or <code>TABLE</code>. So, the attribute declaration - * of <code>align</code> should be localy created and it shouldn't be registered - * in a <code>HCMDocImpl</code> instance.</p> - * <p>However, %align is used in sevaral times. I wouldn't write same code - * in many times. So, I add a new utility method into <code>CMUtil</code> - * to create the attribute declaration.</p> - * <br> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // align - HTMLAttrDeclImpl attr = AttributeCollection.createAlignForParagraph(); - if (attr != null) - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java deleted file mode 100644 index e8454e2774..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * IMG. - */ -final class HedIMG extends HedEmpty { - - /** - */ - public HedIMG(ElementCollection collection) { - super(CHTMLNamespace.ElementName.IMG, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * IMG. - * %attrs; - * (src %URI; #REQUIRED): should be defined locally. - * (alt %Text; #REQUIRED) - * (longdesc %URI; #IMPLIED) - * (name CDATA #IMPLIED) - * (height %Length; #IMPLIED) - * (width %Length; #IMPLIED) - * (usemap %URI; #IMPLIED) - * (ismap (ismap) #IMPLIED) - * (align %IAlign; #IMPLIED): should be defined locally. - * (border %Pixels; #IMPLIED) - * (hspace %Pixels; #IMPLIED) - * (vspace %Pixels; #IMPLIED) - * (mapfile %URI; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (src %URI; #REQUIRED): should be defined locally. - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - atype = new HTMLCMDataTypeImpl(CMDataType.URI); - attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SRC, atype, CMAttributeDeclaration.REQUIRED); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SRC, attr); - - String[] names = {CHTMLNamespace.ATTR_NAME_ALT, CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_HEIGHT, CHTMLNamespace.ATTR_NAME_WIDTH, CHTMLNamespace.ATTR_NAME_BORDER, CHTMLNamespace.ATTR_NAME_HSPACE, CHTMLNamespace.ATTR_NAME_VSPACE,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - - // align (local); should be defined locally. - attr = AttributeCollection.createAlignForImage(); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.PRE}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java deleted file mode 100644 index 29acb3aa73..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * INPUT. - */ -final class HedINPUT extends HedEmpty { - - /** - */ - public HedINPUT(ElementCollection collection) { - super(CHTMLNamespace.ElementName.INPUT, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - * INPUT. - * %attrs; - * (type %InputType; TEXT) ... should be defined locally. - * (name CDATA #IMPLIED) - * (value CDATA #IMPLIED) - * (checked (checked) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (readonly (readonly) #IMPLIED) - * (size CDATA #IMPLIED) ... should be defined locally. - * (maxlength NUMBER #IMPLIED) - * (src %URI; #IMPLIED) - * (alt CDATA #IMPLIED) ... should be defined locally. - * (usemap %URI; #IMPLIED) - * (ismap (ismap) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onselect %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - * (accept %ContentTypes; #IMPLIED) - * (align %IAlign; #IMPLIED) ... should be defined locally. - * (istyle CDATA #IMPLIED) - * <<D215684 - * (width CDATA; #IMPLIED) - * (height CDATA; #IMPLIED) - * (border CDATA; #IMPLIED) - * D215684 - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - HTMLCMDataTypeImpl atype = null; - HTMLAttrDeclImpl attr = null; - // (type %InputType; TEXT) ... should be defined locally. - // NOTE: %InputType is ENUM; - // (text | password | checkbox | radio | submit | reset | - // file | hidden | image | button) - atype = new HTMLCMDataTypeImpl(CMDataType.ENUM); - String[] values = {CHTMLNamespace.ATTR_VALUE_TEXT, CHTMLNamespace.ATTR_VALUE_PASSWORD, CHTMLNamespace.ATTR_VALUE_CHECKBOX, CHTMLNamespace.ATTR_VALUE_RADIO, CHTMLNamespace.ATTR_VALUE_SUBMIT, CHTMLNamespace.ATTR_VALUE_RESET, CHTMLNamespace.ATTR_VALUE_HIDDEN,}; - atype.setEnumValues(values); - atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, CHTMLNamespace.ATTR_VALUE_TEXT); - attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_TYPE, attr); - - // (size CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SIZE, attr); - - // (alt CDATA #IMPLIED) ... should be defined locally. - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_ALT, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALT, attr); - - // (align %IAlign; #IMPLIED) ... should be defined locally. - attr = AttributeCollection.createAlignForImage(); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, attr); - - // the rest. - String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_VALUE, CHTMLNamespace.ATTR_NAME_CHECKED, CHTMLNamespace.ATTR_NAME_SIZE, CHTMLNamespace.ATTR_NAME_MAXLENGTH, CHTMLNamespace.ATTR_NAME_SRC, CHTMLNamespace.ATTR_NAME_ALT, CHTMLNamespace.ATTR_NAME_ALIGN, CHTMLNamespace.ATTR_NAME_ISTYLE, - //<<D215684 - CHTMLNamespace.ATTR_NAME_WIDTH, CHTMLNamespace.ATTR_NAME_HEIGHT, CHTMLNamespace.ATTR_NAME_BORDER - //<D215684 - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java deleted file mode 100644 index dbd4bc94b4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -/** - * Base class for (%inline;)* containers. - */ -abstract class HedInlineContainer extends HTMLElemDeclImpl { - - /** - * HedInlineContainer. - * @param elementName java.lang.String - * @param collection ElementCollection - */ - public HedInlineContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java deleted file mode 100644 index ea1f4a63a9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * LI. - */ -final class HedLI extends HedFlowContainer { - - private static String[] terminators = {CHTMLNamespace.ElementName.LI}; - - /** - */ - public HedLI(ElementCollection collection) { - super(CHTMLNamespace.ElementName.LI, collection); - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END_DEFAULT; - } - - /** - * %attrs; - * (type %LIStyle; #IMPLIED) ... should be defined locally. - * (value NUMBER #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - } - - /** - * LI has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java deleted file mode 100644 index 1f35e93674..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -/** - * Base class for list item container declarations. - * - OL, UL, MENU, DIR. - */ -abstract class HedListItemContainer extends HTMLElemDeclImpl { - - /** - */ - public HedListItemContainer(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER; - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - indentChild = true; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java deleted file mode 100644 index c0f0e83b06..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * MENU/DIR. - */ -final class HedMENU extends HedListItemContainer { - - /** - */ - public HedMENU(String elementName, ElementCollection collection) { - super(elementName, collection); - } - - /** - * MENU/DIR. - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - } - - /** - * Exclusion. - * <code>MENU/DIR</code> has the exclusion. - * It is <code>%block;</code>. - * %block; is: - * P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | - * NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | - * TABLE | FIELDSET | ADDRESS. - * %heading; is: H1 | H2 | H3 | H4 | H5 | H6. - * %list; is : UL | OL | DIR | MENU. - * %preformatted; is PRE. - * <br> - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - // %block; - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {CHTMLNamespace.ElementName.P, CHTMLNamespace.ElementName.H1, CHTMLNamespace.ElementName.H2, CHTMLNamespace.ElementName.H3, CHTMLNamespace.ElementName.H4, CHTMLNamespace.ElementName.H5, CHTMLNamespace.ElementName.H6, CHTMLNamespace.ElementName.UL, CHTMLNamespace.ElementName.OL, CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU, CHTMLNamespace.ElementName.PRE, CHTMLNamespace.ElementName.DL, CHTMLNamespace.ElementName.DIV, CHTMLNamespace.ElementName.CENTER, CHTMLNamespace.ElementName.BLOCKQUOTE, CHTMLNamespace.ElementName.FORM, CHTMLNamespace.ElementName.HR, CHTMLNamespace.ElementName.ADDRESS}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java deleted file mode 100644 index 172a6fb407..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * META. - */ -final class HedMETA extends HedEmpty { - - /** - */ - public HedMETA(ElementCollection collection) { - super(CHTMLNamespace.ElementName.META, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * META. - * %i18n; - * (http-equiv NAME #IMPLIED) - * (name NAME #IMPLIED) ... should be defined locally. - * (content CDATA #REQUIRED) - * (scheme CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - - // (name NAME #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.NAME); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_NAME, attr); - - // 249493 - atype = new HTMLCMDataTypeImpl(CMDataType.CDATA); - attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_CONTENT, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_CONTENT, attr); - - String[] names = {CHTMLNamespace.ATTR_NAME_HTTP_EQUIV, - // CHTMLNamespace.ATTR_NAME_CONTENT - }; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java deleted file mode 100644 index 7e801d2065..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * OL. - */ -final class HedOL extends HedListItemContainer { - - /** - */ - public HedOL(ElementCollection collection) { - super(CHTMLNamespace.ElementName.OL, collection); - } - - /** - * OL. - * (type %OLStyle; #IMPLIED) ... should be defined locally. - * (compact (compact) #IMPLIED) - * (start NUMBER #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java deleted file mode 100644 index 6df202d46e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; -import java.util.Iterator; - -/** - * OPTION. - */ -final class HedOPTION extends HedPcdata { - - private static String[] terminators = {CHTMLNamespace.ElementName.OPTION}; - - /** - */ - public HedOPTION(ElementCollection collection) { - super(CHTMLNamespace.ElementName.OPTION, collection); - layoutType = LAYOUT_HIDDEN; - omitType = OMIT_END; - } - - /** - * OPTION. - * %attrs; - * (selected (selected) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (label %Text; #IMPLIED) - * (value CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {CHTMLNamespace.ATTR_NAME_SELECTED, CHTMLNamespace.ATTR_NAME_VALUE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } - - /** - * OPTION has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - return Arrays.asList(terminators).iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java deleted file mode 100644 index a92e091b70..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Collection; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * P. - */ -final class HedP extends HedInlineContainer { - - private static Collection terminators = null; - - /** - */ - public HedP(ElementCollection collection) { - super(CHTMLNamespace.ElementName.P, collection); - correctionType = CORRECT_EMPTY; - layoutType = LAYOUT_BLOCK; - omitType = OMIT_END; - } - - /** - * Create all attribute declarations. - * This method is called once in the constructor of the super class. - * The <code>P</code> element may have the following attributes: - * <table> - * <tbody> - * <tr> - * <th>NAME</th><th>TYPE</th><th>USAGE</th><th>DEFAULT (INITIAL) VALUE</th><th>MEMO</th> - * </tr> - * <tr> - * <td>%attrs;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * <tr> - * <td>%align;</td><td>-</td><td>-</td><td>-</td><td>-</td> - * </tr> - * </tbody> - * </table> - * <p><b>%align;</b> means <code>align (left|center|right|justify) #IMPLIED</code>. - * Unfortunately, this <code>align</code> is different from one in - * <code>IMG</code> or <code>TABLE</code>. So, the attribute declaration - * of <code>align</code> should be localy created and it shouldn't be registered - * in a <code>HCMDocImpl</code> instance.</p> - * <p>However, %align is used in sevaral times. I wouldn't write same code - * in many times. So, I add a new utility method into <code>CMUtil</code> - * to create the attribute declaration.</p> - * <br> - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - // %attrs; - attributeCollection.getAttrs(attributes); - // align - HTMLAttrDeclImpl adec = AttributeCollection.createAlignForParagraph(); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_ALIGN, adec); - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - return prohibitedAncestors; - } - - /** - * Return names of terminators. - * <code>P</code> has terminators. - * @return java.util.Iterator - */ - protected Iterator getTerminators() { - if (terminators != null) - return terminators.iterator(); - //<<D217982 - terminators = new Vector(); - terminators.addAll(elementCollection.getNamesOfBlock()); - terminators.add(CHTMLNamespace.ElementName.LI); - terminators.add(CHTMLNamespace.ElementName.DT); - terminators.add(CHTMLNamespace.ElementName.DD); - //D217982 - return terminators.iterator(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java deleted file mode 100644 index 02f53537b1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * PRE. - */ -final class HedPRE extends HedInlineContainer { - - /** - * PRE element should keep spaces in its source. - */ - public HedPRE(ElementCollection collection) { - super(CHTMLNamespace.ElementName.PRE, collection); - // CORRECT_EMPTY - GROUP_COMPACT - correctionType = CORRECT_EMPTY; - - keepSpaces = true; - } - - /** - * %attrs; - * (width NUMBER #IMPLIED) ... should be defined locally. - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - // (width NUMBER #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_WIDTH, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_WIDTH, attr); - } - - /** - * Exclusion. - * <code>PRE</code> has the exclusion. - * It is <code>%pre.exclusion;</code>. - * %pre.exclusion is: - * IMG | OBJECT | APPLET | BIG | SMALL | SUB | SUP | FONT | BASEFONT - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - String[] names = {CHTMLNamespace.ElementName.IMG,}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - - return exclusion; - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java deleted file mode 100644 index 6490df0185..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * Base class for PCDATA type element declarations.<br> - */ -abstract class HedPcdata extends HTMLElemDeclImpl { - - /** - */ - public HedPcdata(String elementName, ElementCollection collection) { - super(elementName, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_PCDATA; - } - - /** - * Content.<br> - * PCDATA type always returns <code>null</code>. - * <br> - * @return org.eclipse.wst.xml.core.internal.contentmodel.CMContent - */ - public CMContent getContent() { - return null; - } - - /** - * Content type.<br> - * @see org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration - */ - public int getContentType() { - return CMElementDeclaration.PCDATA; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java deleted file mode 100644 index db036f7b0d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - * SELECT. - */ -final class HedSELECT extends HTMLElemDeclImpl { - - /** - */ - public HedSELECT(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SELECT, collection); - typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_SELECT; - layoutType = LAYOUT_OBJECT; - indentChild = true; - } - - /** - * %attrs; - * %reserved; - * (name CDATA #IMPLIED) - * (size NUMBER #IMPLIED) ... should be defined locally. - * (multiple (multiple) #IMPLIED) - * (disabled (disabled) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - // (size NUMBER #IMPLIED) ... should be defined locally. - HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(CMDataType.NUMBER); - HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(CHTMLNamespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL); - attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_SIZE, attr); - - String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_MULTIPLE,}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java deleted file mode 100644 index fddb04df9f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; - - - - -/** - * Base class for SSI declarations. - */ -abstract class HedSSIBase extends HedEmpty { - - /** - */ - public HedSSIBase(String elementName, ElementCollection collection) { - super(elementName, collection); - layoutType = LAYOUT_OBJECT; - } - - /** - */ - public int getFormatType() { - return HTMLElementDeclaration.FORMAT_SSI; - } - - /** - */ - public boolean supports(String propName) { - if (propName.equals(HTMLCMProperties.IS_SSI)) - return true; - return super.supports(propName); - } - - /* - */ - public Object getProperty(String propName) { - if (propName.equals(HTMLCMProperties.IS_SSI)) - return new Boolean(true); - return super.getProperty(propName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java deleted file mode 100644 index 3b52b06414..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:CONFIG. - */ -final class HedSSIConfig extends HedSSIBase { - - /** - */ - public HedSSIConfig(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_CONFIG, collection); - } - - /** - * SSI:CONFIG. - * (errmsg CDATA #IMPLIED) - * (sizefmt CDATA #IMPLIED) - * (timefmt CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_ERRMSG, CHTMLNamespace.ATTR_NAME_SIZEFMT, CHTMLNamespace.ATTR_NAME_TIMEFMT}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java deleted file mode 100644 index 9d1b226d53..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:ECHO. - */ -final class HedSSIEcho extends HedSSIBase { - - /** - */ - public HedSSIEcho(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_ECHO, collection); - } - - /** - * SSI:ECHO - * (var CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_VAR}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java deleted file mode 100644 index 26ad58e4d4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:EXEC. - */ -final class HedSSIExec extends HedSSIBase { - - /** - */ - public HedSSIExec(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_EXEC, collection); - } - - /** - * SSI:EXEC - * (cgi %URI; #IMPLIED) - * (cmd CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_CGI, CHTMLNamespace.ATTR_NAME_CMD}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java deleted file mode 100644 index 5a0cb7333c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:FLASTMOD. - */ -final class HedSSIFlastmod extends HedSSIBase { - - /** - */ - public HedSSIFlastmod(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_FLASTMOD, collection); - } - - /** - * SSI:FLASTMOD - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java deleted file mode 100644 index c56f2823a4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:FSIZE. - */ -final class HedSSIFsize extends HedSSIBase { - - /** - */ - public HedSSIFsize(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_FSIZE, collection); - } - - /** - * SSI:FSIZE - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java deleted file mode 100644 index 220f7264a8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:INCLUDE. - */ -final class HedSSIInclude extends HedSSIBase { - - /** - */ - public HedSSIInclude(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_INCLUDE, collection); - } - - /** - * SSI:INCLUDE - * (file %URI; #IMPLIED) - * (virtual %URI #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java deleted file mode 100644 index 6860996ba5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * SSI:PRINTENV. - */ -final class HedSSIPrintenv extends HedSSIBase { - - /** - */ - public HedSSIPrintenv(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_PRINTENV, collection); - } - - /** - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - } - - /** - * SSI:PRINTENV has no attributes. So, this method should - * always return <code>null</code>. - * Note: Since somebody doesn't expect null is returned, return the empty attribute - * like a custom tag which doesn't have attributes - */ - public CMNamedNodeMap getAttributes() { - return super.getAttributes(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java deleted file mode 100644 index d447488828..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * SSI:SET. - */ -final class HedSSISet extends HedSSIBase { - - /** - */ - public HedSSISet(ElementCollection collection) { - super(CHTMLNamespace.ElementName.SSI_SET, collection); - } - - /** - * SSI:SET - * (var CDATA #IMPLIED) - * (value CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - String[] names = {CHTMLNamespace.ATTR_NAME_VAR, CHTMLNamespace.ATTR_NAME_VALUE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java deleted file mode 100644 index 18198ea54f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -/** - * TEXTAREA. - */ -final class HedTEXTAREA extends HedPcdata { - - /** - * TEXTAREA should keep spaces in its source. - */ - public HedTEXTAREA(ElementCollection collection) { - super(CHTMLNamespace.ElementName.TEXTAREA, collection); - layoutType = LAYOUT_OBJECT; - - keepSpaces = true; - } - - /** - * TEXTAREA. - * %attrs; - * %reserved; ... empty - * (name CDATA #IMPLIED) - * (rows NUMBER #REQUIRED) - * (cols NUMBER #REQUIRED) - * (disabled (disabled) #IMPLIED) - * (readonly (readonly) #IMPLIED) - * (tabindex NUMBER #IMPLIED) - * (accesskey %Character; #IMPLIED) - * (onfocus %Script; #IMPLIED) - * (onblur %Script; #IMPLIED) - * (onselect %Script; #IMPLIED) - * (onchange %Script; #IMPLIED) - * (istyle CDATA #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_ROWS, CHTMLNamespace.ATTR_NAME_COLS, CHTMLNamespace.ATTR_NAME_ISTYLE}; - attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator()); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java deleted file mode 100644 index e92e0ad46d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import java.util.Arrays; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; - -/** - * TITLE. - */ -final class HedTITLE extends HedPcdata { - - /** - */ - public HedTITLE(ElementCollection collection) { - super(CHTMLNamespace.ElementName.TITLE, collection); - layoutType = LAYOUT_HIDDEN; - } - - /** - * TITLE. - * %i18n; - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %i18n; - attributeCollection.getI18n(attributes); - } - - /** - * Exclusion. - * <code>TITLE</code> has the exclusion. - * It is <code>%head.misc;</code>. - * %head.misc; is <code>SCRIPT|STYLE|META|LINK|OBJECT</code>. - * <br> - */ - public CMContent getExclusion() { - if (exclusion != null) - return exclusion; // already created. - if (elementCollection == null) - return null; - - // (SCRIPT|STYLE|META|LINK|OBJECT) - exclusion = new CMGroupImpl(CMGroup.CHOICE, 1, 1); - - String[] names = {CHTMLNamespace.ElementName.META,}; - elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator()); - return exclusion; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java deleted file mode 100644 index a2249a8d7b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - - - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; - -/** - * UL. - */ -final class HedUL extends HedListItemContainer { - - /** - */ - public HedUL(ElementCollection collection) { - super(CHTMLNamespace.ElementName.UL, collection); - } - - /** - * UL. - * (type %ULStyle; #IMPLIED) ... should be defined locally. - * (compact (compact) #IMPLIED) - */ - protected void createAttributeDeclarations() { - if (attributes != null) - return; // already created. - if (attributeCollection == null) - return; // fatal - - attributes = new CMNamedNodeMapImpl(); - - // %attrs; - attributeCollection.getAttrs(attributes); - - } - - /** - */ - public CMNamedNodeMap getProhibitedAncestors() { - if (prohibitedAncestors != null) - return prohibitedAncestors; - - String[] names = {CHTMLNamespace.ElementName.DIR, CHTMLNamespace.ElementName.MENU}; - prohibitedAncestors = elementCollection.getDeclarations(names); - - return prohibitedAncestors; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java deleted file mode 100644 index 6040a3eec9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; - - - -/** - * PropertyProvider class. - * This class is intended to be used in HTMLElementDeclaration instances. - */ -interface PropertyProvider { - - boolean supports(HTMLElementDeclaration edecl); - - Object get(HTMLElementDeclaration edecl); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java deleted file mode 100644 index 214a2ca5ac..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java +++ /dev/null @@ -1,364 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.chtml; - -import java.util.Hashtable; - -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLPropertyDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap; - -/** - * The factory object of PropertyProvider. - */ -final class PropertyProviderFactory { - - - /** - * DefaultProvider is intended to be used for unknown properties. - * It always returns null value for any properties. - */ - class DefaultProvider implements PropertyProvider { - public DefaultProvider() { - super(); - } - - public boolean supports(HTMLElementDeclaration edecl) { - return false; - } - - public Object get(HTMLElementDeclaration edecl) { - return null; - } - } - - abstract class AbstractElementPropertyProvider implements PropertyProvider { - protected AbstractElementPropertyProvider() { - super(); - } - - public boolean supports(HTMLElementDeclaration edecl) { - return (edecl != null); - } - - public Object get(HTMLElementDeclaration edecl) { - if (!(edecl instanceof HTMLPropertyDeclaration)) - return null; - return getElementProperty((HTMLPropertyDeclaration)edecl); - } - - abstract protected Object getElementProperty(HTMLPropertyDeclaration decl); - } - - /* - * "tagInfo" - * gets documentation for the element - */ - class PPTagInfo extends AbstractElementPropertyProvider { - private final static String htmlAnnotationLoc = "data/htmref.xml"; //$NON-NLS-1$ - protected AnnotationMap fAnnotationMap = null; - - public PPTagInfo() { - super(); - } - - /** - * Gets the annotationMap. - * @return Returns a AnnotationMap - */ - protected AnnotationMap getAnnotationMap() { - if (fAnnotationMap == null) { - fAnnotationMap = new AnnotationMap(); - try { - fAnnotationMap.load(htmlAnnotationLoc, HTMLCorePlugin.getDefault().getBundle().getSymbolicName()); - } - catch (Exception e) { - // no annotation available - } - } - return fAnnotationMap; - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - if (decl instanceof HTMLElementDeclaration) { - return getAnnotationMap().getProperty(((HTMLElementDeclaration)decl).getElementName(), "tagInfo"); //$NON-NLS-1$ - } else { - return null; - } - } - } - - /* - * "shouldKeepSpace" - */ - class PPShouldKeepSpace extends AbstractElementPropertyProvider { - public PPShouldKeepSpace() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.shouldKeepSpaces()); - } - } - - /* - * "shouldIndentChildSource" - */ - class PPShouldIndentChildSource extends AbstractElementPropertyProvider { - public PPShouldIndentChildSource() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.shouldIndentChildSource()); - } - } - - /* - * "terminators" - */ - class PPTerminators extends AbstractElementPropertyProvider { - public PPTerminators() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - if (decl == null) - return null; - if (! (decl instanceof HTMLElemDeclImpl)) return null; - return ((HTMLElemDeclImpl)decl).getTerminators(); - } - } - - /* - * "prohibitedAncestors" - */ - class PPProhibitedAncestors extends AbstractElementPropertyProvider { - public PPProhibitedAncestors() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return decl.getProhibitedAncestors(); - } - } - - /* - * "isJSP" - */ - class PPIsJSP extends AbstractElementPropertyProvider { - public PPIsJSP() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(decl.isJSP()); - } - } - - /* - * "isXHTML" - * HTMLElementDeclaration itself never represent any XHTML element declaration. - * So, this property must be always false. - */ - class PPIsXHTML extends AbstractElementPropertyProvider { - public PPIsXHTML() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(false); - } - } - - /* - * "isSSI" - * Each declaration class for SSI elements must provide this property itself, - * and then return true. Other declaration must always return false. - */ - class PPIsSSI extends AbstractElementPropertyProvider { - public PPIsSSI() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return new Boolean(false); - } - } - - /* - * "lineBreakHint" - */ - class PPLineBreakHint extends AbstractElementPropertyProvider { - public PPLineBreakHint() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String hint = HTMLCMProperties.Values.BREAK_NONE; - switch (decl.getLineBreakHint()) { - case HTMLElementDeclaration.BREAK_AFTER_START : - hint = HTMLCMProperties.Values.BREAK_AFTER_START; - break; - case HTMLElementDeclaration.BREAK_BEFORE_START_AND_AFTER_END : - hint = HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END; - break; - case HTMLElementDeclaration.BREAK_NONE : - // nothing to do - default : - break; - } - return hint; - } - } - - /* - * "layoutType" - */ - class PPLayoutType extends AbstractElementPropertyProvider { - public PPLayoutType() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String type = HTMLCMProperties.Values.LAYOUT_NONE; - switch (decl.getLayoutType()) { - case HTMLElementDeclaration.LAYOUT_BLOCK : - type = HTMLCMProperties.Values.LAYOUT_BLOCK; - break; - case HTMLElementDeclaration.LAYOUT_BREAK : - type = HTMLCMProperties.Values.LAYOUT_BREAK; - break; - case HTMLElementDeclaration.LAYOUT_HIDDEN : - type = HTMLCMProperties.Values.LAYOUT_HIDDEN; - break; - case HTMLElementDeclaration.LAYOUT_OBJECT : - type = HTMLCMProperties.Values.LAYOUT_OBJECT; - break; - case HTMLElementDeclaration.LAYOUT_WRAP : - type = HTMLCMProperties.Values.LAYOUT_WRAP; - break; - case HTMLElementDeclaration.LAYOUT_NONE : - // nothing to do. - default : - break; - } - return type; - } - } - - /* - * "omitType" - */ - class PPOmitType extends AbstractElementPropertyProvider { - public PPOmitType() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - String type = HTMLCMProperties.Values.OMIT_NONE; - switch (decl.getOmitType()) { - case HTMLElementDeclaration.OMIT_BOTH : - type = HTMLCMProperties.Values.OMIT_BOTH; - break; - case HTMLElementDeclaration.OMIT_END : - type = HTMLCMProperties.Values.OMIT_END; - break; - case HTMLElementDeclaration.OMIT_END_DEFAULT : - type = HTMLCMProperties.Values.OMIT_END_DEFAULT; - break; - case HTMLElementDeclaration.OMIT_END_MUST : - type = HTMLCMProperties.Values.OMIT_END_MUST; - break; - case HTMLElementDeclaration.OMIT_NONE : - // nothing to do. - default : - break; - } - return type; - } - } - - /* - * "inclusion" - */ - class PPInclusion extends AbstractElementPropertyProvider { - public PPInclusion() { - super(); - } - - protected Object getElementProperty(HTMLPropertyDeclaration decl) { - return decl.getInclusion(); - } - } - - public static PropertyProvider getProvider(String propName) { - PropertyProviderFactory factory = getInstance(); - PropertyProvider pp = (PropertyProvider) factory.registry.get(propName); - if (pp != null) - return pp; - - pp = factory.create(propName); - if (pp == null) - return factory.defaultProvider; - - factory.registry.put(propName, pp); - return pp; - } - - private static PropertyProviderFactory instance = null; - - private synchronized static PropertyProviderFactory getInstance() { - if (instance != null) - return instance; - instance = new PropertyProviderFactory(); - return instance; - } - - private Hashtable registry = new Hashtable(); - private PropertyProvider defaultProvider = new DefaultProvider(); - - private PropertyProviderFactory() { - super(); - } - - private PropertyProvider create(String propName) { - PropertyProvider pp = null; - if (propName.equals(HTMLCMProperties.IS_JSP)) - pp = new PPIsJSP(); - else if (propName.equals(HTMLCMProperties.IS_XHTML)) - pp = new PPIsXHTML(); - else if (propName.equals(HTMLCMProperties.IS_SSI)) - pp = new PPIsSSI(); - else if (propName.equals(HTMLCMProperties.LAYOUT_TYPE)) - pp = new PPLayoutType(); - else if (propName.equals(HTMLCMProperties.LINE_BREAK_HINT)) - pp = new PPLineBreakHint(); - else if (propName.equals(HTMLCMProperties.PROHIBITED_ANCESTORS)) - pp = new PPProhibitedAncestors(); - else if (propName.equals(HTMLCMProperties.SHOULD_KEEP_SPACE)) - pp = new PPShouldKeepSpace(); - else if (propName.equals(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)) - pp = new PPShouldIndentChildSource(); - else if (propName.equals(HTMLCMProperties.TERMINATORS)) - pp = new PPTerminators(); - else if (propName.equals(HTMLCMProperties.TAGINFO)) - pp = new PPTagInfo(); - else if (propName.equals(HTMLCMProperties.OMIT_TYPE)) - pp = new PPOmitType(); - else if (propName.equals(HTMLCMProperties.INCLUSION)) - pp = new PPInclusion(); - - return pp; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java deleted file mode 100644 index 3a4dfd70e4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentmodel.ssi; - -import java.util.Hashtable; -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; - -/** - * CMDocument factory for SSI documents. - */ -public final class SSICMDocumentFactory { - - private final static String PREFIX = "SSI";//$NON-NLS-1$ - private final static String DOC_TYPE_NAME = "SSI";//$NON-NLS-1$ - - static class CMNamespaceImpl implements CMNamespace { - public CMNamespaceImpl() { - super(); - } - - public String getPrefix() { - return PREFIX; - } - - public String getURI() { - return ""; //$NON-NLS-1$ - } - - public String getNodeName() { - return DOC_TYPE_NAME; - } - - public int getNodeType() { - return CMNode.NAME_SPACE; - } - - public boolean supports(String propertyName) { - return false; - } - - public Object getProperty(String propertyName) { - return null; - } - - } - - static class CMDocImpl implements CMDocument { - private static CMDocument hcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE); - - static class Elements implements CMNamedNodeMap { - private static String[] names = {HTML40Namespace.ElementName.SSI_CONFIG, HTML40Namespace.ElementName.SSI_ECHO, HTML40Namespace.ElementName.SSI_EXEC, HTML40Namespace.ElementName.SSI_FSIZE, HTML40Namespace.ElementName.SSI_FLASTMOD, HTML40Namespace.ElementName.SSI_INCLUDE, HTML40Namespace.ElementName.SSI_PRINTENV, HTML40Namespace.ElementName.SSI_SET}; - private Hashtable map = new Hashtable(); - - public Elements() { - CMNamedNodeMap elems = hcm.getElements(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - CMElementDeclaration dec = (CMElementDeclaration) elems.getNamedItem(name); - if (dec != null) - map.put(name, dec); - } - } - - public int getLength() { - return map.size(); - } - - public CMNode getNamedItem(String name) { - String cooked = getCanonicalName(name); - if (!map.containsKey(cooked)) - return null; - return (CMNode) map.get(cooked); - } - - public CMNode item(int index) { - Iterator iter = iterator(); - while (iter.hasNext()) { - Object node = iter.next(); - if (--index < 0) - return (CMNode) node; - } - return null; - } - - public Iterator iterator() { - return map.values().iterator(); - } - - private String getCanonicalName(String rawName) { - return rawName.toUpperCase(); - } - } - - static private Elements elements = new Elements(); - - - public CMDocImpl() { - super(); - } - - public String getNodeName() { - return ""; //$NON-NLS-1$ - } - - public int getNodeType() { - return CMNode.DOCUMENT; - } - - public CMNamedNodeMap getElements() { - return elements; - } - - public CMNamedNodeMap getEntities() { - return null; - } - - public CMNamespace getNamespace() { - return ssins; - } - - public Object getProperty(String propertyName) { - return null; - } - - public boolean supports(String propertyName) { - return false; - } - } - - private static CMNamespace ssins = new CMNamespaceImpl(); - private static CMDocument mycm = new CMDocImpl(); - - private SSICMDocumentFactory() { - super(); - } - - public static CMDocument getCMDocument() { - return mycm; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java deleted file mode 100644 index 4c7a41b31e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentProperties.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentproperties; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ProjectScope; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.Logger; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -/** - * Properties constants used by HTML. Clients should only read and modify the - * HTML properties programmatically using this class. - * - * @since 1.1 - */ -public class HTMLContentProperties { - static final String HTMLCORE_ID = HTMLCorePlugin.getDefault().getBundle().getSymbolicName(); - private static final String PROJECT_KEY = "<project>"; //$NON-NLS-1$ - - /** - * The default document type to use when none is specified. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String DOCUMENT_TYPE = "document-type"; //$NON-NLS-1$ - - /** - * Generates a preference key based on resourcePath - * - * @param resourcePath - * the path the key will be based off of - * @return preference key based on resourcePath (basically the - * resourcePath without the filename); PROJECT_KEY if resourcePath - * is null - */ - static String getKeyFor(IPath resourcePath) { - String key = PROJECT_KEY; - if (resourcePath != null && resourcePath.segmentCount() > 1) { - key = resourcePath.removeFirstSegments(1).toString(); - } - return key; - } - - /** - * Get the preferences node associated with the given project scope and - * preference key (subNode) If create is true, the preference node will be - * created if one does not already exist - * - * @param project - * the project the preference node is under - * @param preferenceKey - * the subnode/category the preference node is located in - * @param create - * if true, a preference node will be created if one does not - * already exist - * @return Preferences associated with the given project scope and - * preference key. null if one could not be found and create is - * false - */ - static Preferences getPreferences(IProject project, String preferenceKey, boolean create) { - if (create) - // create all nodes down to the one we are interested in - return new ProjectScope(project).getNode(HTMLCORE_ID).node(preferenceKey); - // be careful looking up for our node so not to create any nodes as - // side effect - Preferences node = Platform.getPreferencesService().getRootNode().node(ProjectScope.SCOPE); - try { - // TODO once bug 90500 is fixed, should be as simple as this: - // String path = project.getName() + IPath.SEPARATOR + - // ResourcesPlugin.PI_RESOURCES + IPath.SEPARATOR + - // ENCODING_PREF_NODE; - // return node.nodeExists(path) ? node.node(path) : null; - // for now, take the long way - if (!node.nodeExists(project.getName())) - return null; - node = node.node(project.getName()); - if (!node.nodeExists(HTMLCORE_ID)) - return null; - node = node.node(HTMLCORE_ID); - if (!node.nodeExists(preferenceKey)) - return null; - return node.node(preferenceKey); - } - catch (BackingStoreException e) { - // nodeExists failed - Logger.log(Logger.WARNING_DEBUG, "Could not retrieve preference node", e); //$NON-NLS-1$ - } - return null; - } - - /** - * Returns the value for the given key in the given context. - * - * @param key - * The property key - * @param resource - * The current context or <code>null</code> if no context is - * available and the workspace setting should be taken. Note - * that passing <code>null</code> should be avoided. - * @param recurse - * whether the parent should be queried till property is found - * @return Returns the current value for the key. - * @since 1.1 - */ - public static String getProperty(String key, IResource resource, boolean recurse) { - String val = null; - // boolean preferenceFound = false; - if (resource != null) { - IProject project = resource.getProject(); - if (project != null) { - Preferences preferences = getPreferences(project, key, false); - if (preferences != null) { - val = internalGetProperty(resource, recurse, preferences); - // preferenceFound = true; - } - } - } - // Workbench preference may not be needed so leave out for now - // // no preferences found - for performance reasons, - // // short-circuit - // // lookup by falling back to workspace's default - // // setting - // if (!preferenceFound) - // val = getWorkbenchPreference(key); - return val; - } - - private static String internalGetProperty(IResource resource, boolean recurse, Preferences preferences) { - String value = preferences.get(getKeyFor(resource.getFullPath()), null); - if (value == null && resource != resource.getProject() && recurse) { - value = preferences.get(getKeyFor(null), null); - } - - // Workbench preference may not be needed so leave out for now - // // ensure we default to the workspace preference if none is found - // return value == null ? getWorkbenchPreference(key) : value; - return value; - } - - /** - * Sets the value for the given key in the given context. - * - * @param key - * The property key - * @param resource - * The current context. Note context cannot be - * <code>null</code>. - * @param value - * The value to set for the key. If value is <code>null</code> - * the key is removed from properties. - * @since 1.1 - */ - public static void setProperty(String key, IResource resource, String value) throws CoreException { - if (resource != null) { - IProject project = resource.getProject(); - if (project != null) { - Preferences preferences = getPreferences(project, key, true); - if (value == null || value.trim().length() == 0) - preferences.remove(getKeyFor(resource.getFullPath())); - else - preferences.put(getKeyFor(resource.getFullPath()), value); - try { - // save changes - preferences.flush(); - } - catch (BackingStoreException e) { - throw new CoreException(new Status(IStatus.ERROR, HTMLCORE_ID, IStatus.ERROR, "Unable to set property", e)); //$NON-NLS-1$ - } - } - } - // Workbench preference may not be needed so leave out for now - // just set a preference in the instance scope - // if (!preferenceFound) { - // setWorkbenchPreference(key); - // } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java deleted file mode 100644 index 41f03c8a94..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentproperties/HTMLContentPropertiesManager.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contentproperties; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -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.IResourceStatus; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osgi.util.NLS; -import org.eclipse.wst.html.core.internal.HTMLCoreMessages; -import org.eclipse.wst.html.core.internal.Logger; -import org.osgi.framework.Bundle; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -public class HTMLContentPropertiesManager { - public HTMLContentPropertiesManager() { - super(); - fResourceChangeListener = new ResourceChangeListener(); - fJob = new ContentPropertiesManagerJob(); - } - - private static HTMLContentPropertiesManager _instance = null; - private IResourceChangeListener fResourceChangeListener; - ContentPropertiesManagerJob fJob; - - /** - * This job implementation is used to allow the resource change listener - * to schedule operations that need to modify the workspace. - */ - private class ContentPropertiesManagerJob extends Job { - private static final int PROPERTIES_UPDATE_DELAY = 500; - private List asyncChanges = new ArrayList(); - - public ContentPropertiesManagerJob() { - super(HTMLCoreMessages.HTMLContentPropertiesManager_Updating); - setSystem(true); - setPriority(Job.INTERACTIVE); - } - - public void addChanges(Set newChanges) { - if (newChanges.isEmpty()) - return; - synchronized (asyncChanges) { - asyncChanges.addAll(newChanges); - asyncChanges.notify(); - } - schedule(PROPERTIES_UPDATE_DELAY); - } - - public IProject getNextChange() { - synchronized (asyncChanges) { - return asyncChanges.isEmpty() ? null : (IProject) asyncChanges.remove(asyncChanges.size() - 1); - } - } - - protected IStatus run(IProgressMonitor monitor) { - MultiStatus result = new MultiStatus(HTMLContentProperties.HTMLCORE_ID, IResourceStatus.FAILED_SETTING_CHARSET, HTMLCoreMessages.HTMLContentPropertiesManager_Updating, null); - monitor = monitor == null ? new NullProgressMonitor() : monitor; - try { - monitor.beginTask(HTMLCoreMessages.HTMLContentPropertiesManager_Updating, asyncChanges.size()); - try { - IProject next; - while ((next = getNextChange()) != null) { - // just exit if the system is shutting down or has - // been shut down - // it is too late to change the workspace at this - // point anyway - if (Platform.getBundle("org.eclipse.osgi").getState() != Bundle.ACTIVE) //$NON-NLS-1$ - return Status.OK_STATUS; - try { - // save the preferences nodes - if (next.isAccessible()) { - // save document type preferences - Preferences projectPrefs = HTMLContentProperties.getPreferences(next, HTMLContentProperties.DOCUMENT_TYPE, false); - if (projectPrefs != null) - projectPrefs.flush(); - } - } - catch (BackingStoreException e) { - // we got an error saving - String detailMessage = NLS.bind(HTMLCoreMessages.HTMLContentPropertiesManager_Problems_Updating, next.getFullPath()); - result.add(new Status(1 << (IResourceStatus.FAILED_SETTING_CHARSET % 100 / 33), ResourcesPlugin.PI_RESOURCES, IResourceStatus.FAILED_SETTING_CHARSET, detailMessage, e)); - } - } - monitor.worked(1); - } - catch (OperationCanceledException e) { - throw e; - } - } - finally { - monitor.done(); - } - return result; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.jobs.Job#shouldRun() - */ - public boolean shouldRun() { - synchronized (asyncChanges) { - return !asyncChanges.isEmpty(); - } - } - } - - class ResourceChangeListener implements IResourceChangeListener { - private void processEntryChanges(IResourceDelta projectDelta, Set projectsToSave) { - // check each resource with web content setting to see if it has - // been moved/deleted - boolean resourceChanges = false; - - // project affected - IProject currentProject = (IProject) projectDelta.getResource(); - - resourceChanges = processPreferences(currentProject, HTMLContentProperties.DOCUMENT_TYPE, projectDelta, projectsToSave); - - // if there was a preference key change, need to save preferences - if (resourceChanges) - projectsToSave.add(currentProject); - } - - /** - * Goes through all the resource-dependent preferences associated with - * currentProject & key and updates the preference keys if needed - * based on projectDelta - * - * @param currentProject - * current project of the preferences to be looked at - * @param key - * current key/subcategory of the preferences to be looked - * at - * @param projectDelta - * the changes to process the preference keys against - * @param projectsToSave - * the projects that need to be updated/saved - * @return true if currentProject's preferences were modified - */ - private boolean processPreferences(IProject currentProject, String key, IResourceDelta projectDelta, Set projectsToSave) { - boolean resourceChanges = false; - - // get the project-key preference node - Preferences projectPrefs = HTMLContentProperties.getPreferences(currentProject, key, false); - if (projectPrefs == null) - // no preferences for this project-key, just bail - return false; - String[] affectedResources; - try { - affectedResources = projectPrefs.keys(); - } - catch (BackingStoreException e) { - // problems with the project scope... we gonna miss the - // changes (but will log) - Logger.log(Logger.WARNING_DEBUG, "Problem retreiving JSP Fragment preferences", e); //$NON-NLS-1$ - return false; - } - - // go through each preference key (which is really a file name) - for (int i = 0; i < affectedResources.length; i++) { - // see if preference key/file name was file that was changed - IResourceDelta memberDelta = projectDelta.findMember(new Path(affectedResources[i])); - // no changes for the given resource - if (memberDelta == null) - continue; - if (memberDelta.getKind() == IResourceDelta.REMOVED) { - resourceChanges = true; - // remove the setting for the original location - String currentValue = projectPrefs.get(affectedResources[i], null); - projectPrefs.remove(affectedResources[i]); - if ((memberDelta.getFlags() & IResourceDelta.MOVED_TO) != 0) { - // if moving, copy the setting for the new location - IProject targetProject = ResourcesPlugin.getWorkspace().getRoot().getProject(memberDelta.getMovedToPath().segment(0)); - Preferences targetPrefs = HTMLContentProperties.getPreferences(targetProject, key, true); - targetPrefs.put(HTMLContentProperties.getKeyFor(memberDelta.getMovedToPath()), currentValue); - if (targetProject != currentProject) - projectsToSave.add(targetProject); - } - } - } - return resourceChanges; - } - - /** - * For any change to the encoding file or any resource with encoding - * set, just discard the cache for the corresponding project. - */ - public void resourceChanged(IResourceChangeEvent event) { - IResourceDelta delta = event.getDelta(); - if (delta == null) - return; - IResourceDelta[] projectDeltas = delta.getAffectedChildren(); - // process each project in the delta - Set projectsToSave = new HashSet(); - for (int i = 0; i < projectDeltas.length; i++) - // nothing to do if a project has been added/removed/moved - if (projectDeltas[i].getKind() == IResourceDelta.CHANGED && (projectDeltas[i].getFlags() & IResourceDelta.OPEN) == 0) - processEntryChanges(projectDeltas[i], projectsToSave); - fJob.addChanges(projectsToSave); - } - } - - public synchronized static void startup() { - _instance = new HTMLContentPropertiesManager(); - ResourcesPlugin.getWorkspace().addResourceChangeListener(_instance.fResourceChangeListener, IResourceChangeEvent.POST_CHANGE); - } - - public synchronized static void shutdown() { - ResourcesPlugin.getWorkspace().removeResourceChangeListener(_instance.fResourceChangeListener); - _instance = null; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java deleted file mode 100644 index 8b359e683a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java +++ /dev/null @@ -1,261 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.nio.charset.Charset; -import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.UnsupportedCharsetException; - -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.sse.core.internal.encoding.CodedIO; -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector; - - -public abstract class AbstractResourceEncodingDetector implements IResourceCharsetDetector { - - protected EncodingMemento fEncodingMemento; - - protected boolean fHeaderParsed; - - protected Reader fReader; - - /** - * - */ - public AbstractResourceEncodingDetector() { - super(); - } - - /** - * Note: once this instance is created, trace info still needs to be - * appended by caller, depending on the context its created. - */ - private void createEncodingMemento(String detectedCharsetName) { - fEncodingMemento = new EncodingMemento(); - fEncodingMemento.setJavaCharsetName(getAppropriateJavaCharset(detectedCharsetName)); - fEncodingMemento.setDetectedCharsetName(detectedCharsetName); - // TODO: if detectedCharset and spec default is - // null, need to use "work - // bench based" defaults. - fEncodingMemento.setAppropriateDefault(getSpecDefaultEncoding()); - } - - /** - * convience method all subclasses can use (but not override) - * - * @param detectedCharsetName - * @param reason - */ - final protected void createEncodingMemento(String detectedCharsetName, String reason) { - createEncodingMemento(detectedCharsetName); - } - - /** - * convience method all subclasses can use (but not override) - */ - final protected void ensureInputSet() { - if (fReader == null) { - throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$ - } - } - - /** - * This method can return null, if invalid charset name (in which case - * "appropriateDefault" should be used, if a name is really need for some - * "save anyway" cases). - * - * @param detectedCharsetName - * @return - */ - private String getAppropriateJavaCharset(String detectedCharsetName) { - String result = null; - // 1. Check explicit mapping overrides from - // property file -- its here we pick up "rules" for cases - // that are not even in Java - result = CodedIO.checkMappingOverrides(detectedCharsetName); - // 2. Use the "canonical" name from JRE mappings - // Note: see Charset JavaDoc, the name you get one - // with can be alias, - // the name you get back is "standard" name. - Charset javaCharset = null; - try { - javaCharset = Charset.forName(detectedCharsetName); - } - catch (UnsupportedCharsetException e) { - // only set invalid, if result is same as detected -- they won't - // be equal if - // overridden - if (result != null && result.equals(detectedCharsetName)) { - fEncodingMemento.setInvalidEncoding(detectedCharsetName); - } - } - catch (IllegalCharsetNameException e) { - // only set invalid, if result is same as detected -- they won't - // be equal if - // overridden - if (result != null && result.equals(detectedCharsetName)) { - fEncodingMemento.setInvalidEncoding(detectedCharsetName); - } - } - // give priority to java cononical name, if present - if (javaCharset != null) { - result = javaCharset.name(); - // but still allow overrides - result = CodedIO.checkMappingOverrides(result); - } - return result; - } - - public String getEncoding() throws IOException { - return getEncodingMemento().getDetectedCharsetName(); - } - - // to ensure consist overall rules used, we'll mark as - // final, - // and require subclasses to provide certain pieces of - // the - // implementation - public EncodingMemento getEncodingMemento() throws IOException { - ensureInputSet(); - if (!fHeaderParsed) { - parseInput(); - // we keep track of if header's already been - // parse, so can make - // multiple 'get' calls, without causing - // reparsing. - fHeaderParsed = true; - // Note: there is a "hidden assumption" here - // that an empty - // string in content should be treated same as - // not present. - } - if (fEncodingMemento == null) { - handleSpecDefault(); - } - if (fEncodingMemento == null) { - // safty net - fEncodingMemento = new NullMemento(); - } - return fEncodingMemento; - } - - /** - * This is to return a default encoding -- as specified by an industry - * content type spec -- when not present in the stream, for example, XML - * specifies UTF-8, JSP specifies ISO-8859-1. This method should return - * null if there is no such "spec default". - */ - abstract public String getSpecDefaultEncoding(); - - public EncodingMemento getSpecDefaultEncodingMemento() { - resetAll(); - EncodingMemento result = null; - String enc = getSpecDefaultEncoding(); - if (enc != null) { - createEncodingMemento(enc, EncodingMemento.DEFAULTS_ASSUMED_FOR_EMPTY_INPUT); - fEncodingMemento.setAppropriateDefault(enc); - result = fEncodingMemento; - } - return result; - } - - private void handleSpecDefault() { - String encodingName; - encodingName = getSpecDefaultEncoding(); - if (encodingName != null) { - // createEncodingMemento(encodingName, - // EncodingMemento.USED_CONTENT_TYPE_DEFAULT); - fEncodingMemento = new EncodingMemento(); - fEncodingMemento.setJavaCharsetName(encodingName); - fEncodingMemento.setAppropriateDefault(encodingName); - } - } - - /** - * Every subclass must provide a way to parse the input. This method has - * several critical responsibilities: - * <li>set the fEncodingMemento field appropriately, according to the - * results of the parse of fReader.</li> - * <li>set fHarderParsed to true, to avoid wasted re-parsing.</li> - */ - abstract protected void parseInput() throws IOException; - - /** - * - */ - private void resetAll() { - fReader = null; - fHeaderParsed = false; - fEncodingMemento = null; - } - - /** - * - */ - public void set(InputStream inputStream) { - resetAll(); - fReader = new ByteReader(inputStream); - try { - fReader.mark(CodedIO.MAX_MARK_SIZE); - } - catch (IOException e) { - // impossible, since we know ByteReader - // supports marking - throw new Error(e); - } - } - - /** - * - */ - public void set(IStorage iStorage) throws CoreException { - resetAll(); - InputStream inputStream = iStorage.getContents(); - InputStream resettableStream = new BufferedInputStream(inputStream, CodedIO.MAX_BUF_SIZE); - resettableStream.mark(CodedIO.MAX_MARK_SIZE); - set(resettableStream); - // TODO we'll need to "remember" IFile, or - // get its (or its project's) settings, in case - // those are needed to handle cases when the - // encoding is not in the file stream. - } - - /** - * Note: this is not part of interface to help avoid confusion ... it - * expected this Reader is a well formed character reader ... that is, its - * all ready been determined to not be a unicode marked input stream. And, - * its assumed to be in the correct position, at position zero, ready to - * read first character. - */ - public void set(Reader reader) { - resetAll(); - fReader = reader; - if (!fReader.markSupported()) { - fReader = new BufferedReader(fReader); - } - try { - fReader.mark(CodedIO.MAX_MARK_SIZE); - } - catch (IOException e) { - // impossble, since we just checked if markable - throw new Error(e); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java deleted file mode 100644 index 98199b01de..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; - -import org.eclipse.wst.sse.core.internal.encoding.CodedIO; - -/** - * This is an "adapter" class, simply to get in input stream to act like a - * reader. We could not use InputStreamReader directly because its internal - * buffers are not controllable, and it sometimes pulls too much out of input - * stream (even when it wasn't needed for our purposes). - * - * The use of this class is highly specialized and by not means meant to be - * general purpose. Its use is restricted to those cases where the input - * stream can be regarded as ascii just long enough to determine what the real - * encoding should be. - */ - -public class ByteReader extends Reader { - - - public static final int DEFAULT_BUFFER_SIZE = CodedIO.MAX_BUF_SIZE; - - protected byte[] fBuffer; - - protected InputStream fInputStream; - - protected ByteReader() { - super(); - } - - public ByteReader(InputStream inputStream) { - this(inputStream, DEFAULT_BUFFER_SIZE); - if (!inputStream.markSupported()) { - throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$ - } - } - - public ByteReader(InputStream inputStream, int size) { - this.fInputStream = inputStream; - if (!inputStream.markSupported()) { - throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$ - } - this.fBuffer = new byte[size]; - - } - - public void close() throws IOException { - this.fInputStream.close(); - } - - public void mark(int readAheadLimit) { - this.fInputStream.mark(readAheadLimit); - } - - public boolean markSupported() { - return true; - } - - public int read() throws IOException { - int b0 = this.fInputStream.read(); - return (b0 & 0x00FF); - } - - public int read(char ch[], int offset, int length) throws IOException { - if (length > this.fBuffer.length) { - length = this.fBuffer.length; - } - - int count = this.fInputStream.read(this.fBuffer, 0, length); - - for (int i = 0; i < count; i++) { - int b0 = this.fBuffer[i]; - // the 0x00FF is to "lose" the negative bits filled in the byte to - // int conversion - // (and which would be there if cast directly from byte to char). - char c0 = (char) (b0 & 0x00FF); - ch[offset + i] = c0; - } - return count; - } - - public boolean ready() throws IOException { - return this.fInputStream.available() > 0; - } - - public void reset() throws IOException { - this.fInputStream.reset(); - } - - public long skip(long n) throws IOException { - return this.fInputStream.skip(n); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java deleted file mode 100644 index 8a7098359a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java +++ /dev/null @@ -1,231 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; - -import org.eclipse.core.runtime.QualifiedName; -import org.eclipse.core.runtime.content.IContentDescriber; -import org.eclipse.core.runtime.content.IContentDescription; -import org.eclipse.core.runtime.content.ITextContentDescriber; -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.IContentDescriptionExtended; -import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector; - -/** - * - * ContentDescriberForHTML - * - * A few design principles to remember with content describers: - * <ul> - * <li>Remember not to store values/data in the descriptions array of properties, - * especially not large objects! and even no value that is already the default value, - * since those description properties are cached per session, so can add up in memory. - * <li>Remember that a ContentDescriber instance becomes a "root object" in the - * ContentDescriberManager (that is, always in memory, never GC'd), so it should - * not have any instance or state data since it would always become stale and - * "hold on" to objects unneccessarily. - * </ul> - */ - -public final class ContentDescriberForHTML implements ITextContentDescriber { - - final private static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT}; - - public int describe(InputStream contents, IContentDescription description) throws IOException { - int result = IContentDescriber.INDETERMINATE; - - if (description == null) { - result = computeValidity(contents); - } - else { - calculateSupportedOptions(contents, description); - // assummming we should return same 'validity' value we did - // when called before. (technically, could be a performance issue - // in future, so might want to check if any 'ol value would - // be ok here. - result = computeValidity(contents); - } - - return result; - } - - public int describe(Reader contents, IContentDescription description) throws IOException { - int result = IContentDescriber.INDETERMINATE; - - if (description == null) { - result = computeValidity(contents); - } - else { - calculateSupportedOptions(contents, description); - // assummming we should return same 'validity' value we did - // when called before. (technically, could be a performance issue - // in future, so might want to check if hard coded 'valid' would - // be ok here. - result = computeValidity(contents); - } - - return result; - } - - public QualifiedName[] getSupportedOptions() { - - return SUPPORTED_OPTIONS; - } - - private void calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException { - if (isRelevent(description)) { - IResourceCharsetDetector detector = getDetector(); - detector.set(contents); - handleCalculations(description, detector); - } - } - - /** - * @param contents - * @param description - * @throws IOException - */ - private void calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException { - if (isRelevent(description)) { - IResourceCharsetDetector detector = getDetector(); - detector.set(contents); - handleCalculations(description, detector); - } - } - - private int computeValidity(InputStream inputStream) { - // currently no contents specific check for valid HTML contents - // (this may change once we add XHTML content type) - return IContentDescriber.INDETERMINATE; - } - - private int computeValidity(Reader reader) { - // currently no contents specific check for valid HTML contents - // (this may change once we add XHTML content type) - return IContentDescriber.INDETERMINATE; - } - - private IResourceCharsetDetector getDetector() { - - return new HTMLResourceEncodingDetector(); - - } - - /** - * @param description - * @param detector - * @throws IOException - */ - private void handleCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException { - - EncodingMemento encodingMemento = ((HTMLResourceEncodingDetector) detector).getEncodingMemento(); - // TODO: I need to verify to see if this BOM work is always done - // by text type. - Object detectedByteOrderMark = encodingMemento.getUnicodeBOM(); - if (detectedByteOrderMark != null) { - Object existingByteOrderMark = description.getProperty(IContentDescription.BYTE_ORDER_MARK); - // not sure why would ever be different, so if is different, may - // need to "push" up into base. - if (!detectedByteOrderMark.equals(existingByteOrderMark)) - description.setProperty(IContentDescription.BYTE_ORDER_MARK, detectedByteOrderMark); - } - - - if (!encodingMemento.isValid()) { - /* - * note: after setting here, its the mere presence of - * IContentDescriptionExtended.UNSUPPORTED_CHARSET in the - * resource's description that can be used to determine if invalid - * in those cases, the "detected" property contains an - * "appropriate default" to use. - */ - description.setProperty(IContentDescriptionExtended.UNSUPPORTED_CHARSET, encodingMemento.getInvalidEncoding()); - description.setProperty(IContentDescriptionExtended.APPROPRIATE_DEFAULT, encodingMemento.getAppropriateDefault()); - } - - Object detectedCharset = encodingMemento.getDetectedCharsetName(); - Object javaCharset = encodingMemento.getJavaCharsetName(); - - // we always include detected, if its different than java - handleDetectedSpecialCase(description, detectedCharset, javaCharset); - - if (javaCharset != null) { - Object existingCharset = description.getProperty(IContentDescription.CHARSET); - if (javaCharset.equals(existingCharset)) { - handleDetectedSpecialCase(description, detectedCharset, javaCharset); - } - else { - // we may need to add what we found, but only need to add - // if different from default.the - Object defaultCharset = detector.getSpecDefaultEncoding(); - if (defaultCharset != null) { - if (!defaultCharset.equals(javaCharset)) { - description.setProperty(IContentDescription.CHARSET, javaCharset); - } - } - else { - // assuming if there is no spec default, we always need to - // add, I'm assuming - description.setProperty(IContentDescription.CHARSET, javaCharset); - } - } - } - - } - - private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) { - // since equal, we don't need to add, but if our detected version is - // different than - // javaCharset, then we should add it. This will happen, for example, - // if there's - // differences in case, or differences due to override properties - if (detectedCharset != null) { - // if (!detectedCharset.equals(javaCharset)) { - // description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET, - // detectedCharset); - // } - - // Once we detected a charset, we should set the property even - // though it's the same as javaCharset - // because there are clients that rely on this property to - // determine if the charset is actually detected in file or not. - description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET, detectedCharset); - } - } - - /** - * @param description - * @return - */ - private boolean isRelevent(IContentDescription description) { - boolean result = false; - if (description == null) - result = false; - else if (description.isRequested(IContentDescription.BYTE_ORDER_MARK)) - result = true; - else if (description.isRequested(IContentDescription.CHARSET)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.APPROPRIATE_DEFAULT)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.DETECTED_CHARSET)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.UNSUPPORTED_CHARSET)) - result = true; - // else if - // (description.isRequested(IContentDescriptionExtended.ENCODING_MEMENTO)) - // result = true; - return result; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java deleted file mode 100644 index eb46433f48..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java +++ /dev/null @@ -1,173 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -/** - * - * This is ported from PageDesigner's hpbcom/Kanji.cpp's - * Kanji::guess_kanji_code(), - * - */ -public class EncodingGuesser { - private static final int ASCII = 0; // ASCII - // ISO-2022-JP - private static final int ASCII_IN = 8; // This is after ISO2022's change - // Shift-JIS - private static final int EUC_HALFKANA = 6; // This is Half Kana in EUC-JP - private static final int EUC_JP = 3; // This is EUC-JP - private static final int ISO2022_JP = 4; // This is ISO-2022-JP - private static final int JIS_HALFKANA = 7; // THis is Half Kana in - private static final byte KT_EUC1 = 0x40; - private static final byte KT_EUC2 = (byte) 0x80; - // ASCII - private static final byte KT_JIN = 0x01; - private static final byte KT_JOUT = 0x02; - // private static final byte KT_ESC = 0x04; - // private static final byte KT_JIS = 0x08; - private static final byte KT_SFT1 = 0x10; - private static final byte KT_SFT2 = 0x20; - private static final byte ktype[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x09, 0x08, 0x08, 0x08, /* !"#$%&' *//* " */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* ()*+,-./ */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 01234567 */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 89:; <=>? */ - 0x29, 0x28, 0x2b, 0x28, 0x28, 0x28, 0x28, 0x28, /* @ABCDEFG */ - 0x2a, 0x28, 0x2a, 0x28, 0x28, 0x28, 0x28, 0x28, /* HIJKLMNO */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* PQRSTUVW */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* XYZ[\]^_ */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* abcdefg */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* hijklmno */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* pqrstuvw */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, /* xyz{|}~ */ - 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 80 */ - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 90 */ - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* A0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* B0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* C0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* D0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* E0 */ - (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* F0 */ - (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xc0, (byte) 0xc0, 0x00,}; - // private static final int ISO8859_1 = 1; // ISO-1 - private static final int SHIFT_JIS = 2; // This is Shift-JIS - private static final int SJIS_HALFKANA = 5; // This is Half Kana in - - /** - * Currently, only Japanese encodings are supported. - */ - private static final int UNKNOWN = -1; // Unknown - - /** - * @return java.lang.String - * @param code - * int - * - * Convert private int to IANA Encoding name. - */ - private static String convertToIANAEncodingName(int code) { - String encoding = null; - - switch (code) { - case SHIFT_JIS : - case SJIS_HALFKANA : - encoding = "Shift_JIS";//$NON-NLS-1$ - break; - case EUC_JP : - case EUC_HALFKANA : - encoding = "EUC-JP";//$NON-NLS-1$ - break; - case ISO2022_JP : - case JIS_HALFKANA : - encoding = "ISO-2022-JP";//$NON-NLS-1$ - default : - break; - } - - return encoding; - } - - /** - * Return guessed Java Encoding name target: bytes to be inspected length: - * length of target - */ - public static String guessEncoding(byte[] target, int length) { - int code = UNKNOWN; - - // Currently, only Japanese is supported. - String system_ctype = java.util.Locale.getDefault().getLanguage(); - String jp_ctype = java.util.Locale.JAPANESE.getLanguage(); - if (system_ctype.compareTo(jp_ctype) == 0) { - // Ok, I'm under ja_JP. - code = ASCII; - int pos = 0; - while ((code == ASCII) && (length > 0)) { - int ch1 = target[pos]; - ch1 = ch1 & 0x000000FF; - int ch2 = (length >= 2) ? target[pos + 1] : 0; - ch2 = ch2 & 0x000000FF; - int ch3 = (length >= 3) ? target[pos + 2] : 0; - ch3 = ch3 & 0x000000FF; - code = guessJapaneseKanjiCode(ch1, ch2, ch3, 0); - pos++; - length--; - } - switch (code) { - case ISO2022_JP : - case JIS_HALFKANA : - code = ISO2022_JP; - break; - case EUC_JP : - code = EUC_JP; - break; - default : - code = SHIFT_JIS; - } - } - return (convertToIANAEncodingName(code)); - } - - /** - * Guess the encoding. halfkana_flag = 0x01 ( detect SJIS half kana ) - * halfkana_flag = 0x02 ( detect EUC half kana ) - */ - private static int guessJapaneseKanjiCode(int ch1, int ch2, int ch3, int halfkana_flag) { - boolean sjis_hankaku_flag = ((halfkana_flag & 0x01) != 0) ? true : false; - boolean euc_hankaku_flag = ((halfkana_flag & 0x02) != 0) ? true : false; - - if (ch1 == 0) - return UNKNOWN; - if (sjis_hankaku_flag && ch1 >= 0xa1 && ch1 <= 0xdf) - return SJIS_HALFKANA; - else if (euc_hankaku_flag && ch1 == 0x8e && ch2 >= 0xa1 && ch2 <= 0xdf) - return EUC_HALFKANA; - else if (((ktype[ch1] & KT_SFT1) != 0) && ((ktype[ch2] & KT_SFT2) != 0)) - return SHIFT_JIS; - else if (((ktype[ch1] & KT_EUC1) != 0) && ((ktype[ch2] & KT_EUC2) != 0)) - return EUC_JP; - else if (ch1 == 0x1b && ((ktype[ch2] & KT_JIN) != 0)) - return ISO2022_JP; - else if (ch1 >= 0xa1 && ch1 <= 0xdf) - return SJIS_HALFKANA; - else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ch3 == 0x49/* 'I' */) - return JIS_HALFKANA; - else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ((ktype[ch3] & KT_JOUT) != 0)) - return ASCII_IN; - - return ASCII; - } - - public EncodingGuesser() { - super(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java deleted file mode 100644 index 33e48f210a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java +++ /dev/null @@ -1,1690 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:41 PM */ - -/*nlsXXX*/ -package org.eclipse.wst.html.core.internal.contenttype; - -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants; -import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants; - - - -/** - * This class is a scanner generated by - * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 1/27/04 6:41 PM from the specification file - * <tt>file:/D:/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jflex</tt> - */ -public class HTMLHeadTokenizer { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int ST_META_TAG = 4; - final public static int YYINITIAL = 0; - final public static int UnDelimitedString = 12; - final public static int DQ_STRING = 8; - final public static int SQ_STRING = 10; - final public static int ST_XMLDecl = 2; - final public static int QuotedAttributeValue = 6; - - /** - * YY_LEXSTATE[l] is the state in the DFA for the lexical state l - * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l - * at the beginning of a line - * l is of the form l = 2*k, k a non negative integer - */ - private final static int YY_LEXSTATE[] = {0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7}; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = "\11\0\1\6\1\7\2\0\1\11\22\0\1\22\1\0\1\40\2\0" + "\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45\1\12" + "\1\10\1\31\1\13\1\0\1\21\1\0\1\24\1\26\1\17\1\0" + "\1\30\1\32\1\27\2\0\1\16\1\15\1\23\1\25\1\33\1\35" + "\2\0\1\20\1\36\1\37\1\0\1\14\1\41\7\0\1\21\1\0" + "\1\24\1\26\1\17\1\0\1\30\1\32\1\27\2\0\1\16\1\15" + "\1\23\1\25\1\33\1\35\2\0\1\20\1\36\1\37\1\0\1\14" + "\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0" + "\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0"; - - /** - * Translates characters to character classes - */ - final private static char[] yycmap = yy_unpack_cmap(yycmap_packed); - - - /* error codes */ - final private static int YY_UNKNOWN_ERROR = 0; - final private static int YY_ILLEGAL_STATE = 1; - final private static int YY_NO_MATCH = 2; - final private static int YY_PUSHBACK_2BIG = 3; - - /* error messages for the codes above */ - final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"}; - - /** the input device */ - private java.io.Reader yy_reader; - - /** the current state of the DFA */ - private int yy_state; - - /** the current lexical state */ - private int yy_lexical_state = YYINITIAL; - - /** this buffer contains the current text to be matched and is - the source of the yytext() string */ - private char yy_buffer[] = new char[16384]; - - /** the textposition at the last accepting state */ - private int yy_markedPos; - - /** the textposition at the last state to be included in yytext */ - private int yy_pushbackPos; - - /** the current text position in the buffer */ - private int yy_currentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int yy_startRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int yy_endRead; - - - /** the number of characters up to the start of the matched text */ - private int yychar; - - - /** - * yy_atBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean yy_atBOL; - - /** yy_atEOF == true <=> the scanner has returned a value for EOF */ - private boolean yy_atEOF; - - /** denotes if the user-EOF-code has already been executed */ - private boolean yy_eof_done; - - /* user code: */ - - - private boolean hasMore = true; - private final static int MAX_TO_SCAN = 8000; - StringBuffer string = new StringBuffer(); - // state stack for easier state handling - private IntStack fStateStack = new IntStack(); - private String valueText = null; - boolean foundContentTypeValue = false; - - - - public HTMLHeadTokenizer() { - super(); - } - - public void reset(Reader in) { - /* the input device */ - yy_reader = in; - - /* the current state of the DFA */ - yy_state = 0; - - /* the current lexical state */ - yy_lexical_state = YYINITIAL; - - /* this buffer contains the current text to be matched and is - the source of the yytext() string */ - java.util.Arrays.fill(yy_buffer, (char) 0); - - /* the textposition at the last accepting state */ - yy_markedPos = 0; - - /* the textposition at the last state to be included in yytext */ - yy_pushbackPos = 0; - - /* the current text position in the buffer */ - yy_currentPos = 0; - - /* startRead marks the beginning of the yytext() string in the buffer */ - yy_startRead = 0; - - /** - * endRead marks the last character in the buffer, that has been read - * from input - */ - yy_endRead = 0; - - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - - /** - * yy_atBOL == true <=> the scanner is currently at the beginning - * of a line - */ - yy_atBOL = false; - - /* yy_atEOF == true <=> the scanner has returned a value for EOF */ - yy_atEOF = false; - - /* denotes if the user-EOF-code has already been executed */ - yy_eof_done = false; - - - fStateStack.clear(); - - hasMore = true; - - // its a little wasteful to "throw away" first char array generated - // by class init (via auto generated code), but we really do want - // a small buffer for our head parsers. - if (yy_buffer.length != MAX_TO_SCAN) { - yy_buffer = new char[MAX_TO_SCAN]; - } - - - } - - - public final HeadParserToken getNextToken() throws IOException { - String context = null; - context = primGetNextToken(); - HeadParserToken result = null; - if (valueText != null) { - result = createToken(context, yychar, valueText); - valueText = null; - } - else { - result = createToken(context, yychar, yytext()); - } - return result; - } - - public final boolean hasMoreTokens() { - return hasMore && yychar < MAX_TO_SCAN; - } - - private void pushCurrentState() { - fStateStack.push(yystate()); - - } - - private void popState() { - yybegin(fStateStack.pop()); - } - - private HeadParserToken createToken(String context, int start, String text) { - return new HeadParserToken(context, start, text); - } - - - - /** - * Creates a new scanner - * There is also a java.io.InputStream version of this constructor. - * - * @param in the java.io.Reader to read input from. - */ - public HTMLHeadTokenizer(java.io.Reader in) { - this.yy_reader = in; - } - - /** - * Creates a new scanner. - * There is also java.io.Reader version of this constructor. - * - * @param in the java.io.Inputstream to read input from. - */ - public HTMLHeadTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table - */ - private static char[] yy_unpack_cmap(String packed) { - char[] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 174) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do - map[j++] = value; - while (--count > 0); - } - return map; - } - - - /** - * Gets the next input character. - * - * @return the next character of the input stream, EOF if the - * end of the stream is reached. - * @exception IOException if any I/O-Error occurs - */ - private int yy_advance() throws java.io.IOException { - - /* standard case */ - if (yy_currentPos < yy_endRead) - return yy_buffer[yy_currentPos++]; - - /* if the eof is reached, we don't need to work hard */ - if (yy_atEOF) - return YYEOF; - - /* otherwise: need to refill the buffer */ - - /* first: make room (if you can) */ - if (yy_startRead > 0) { - System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead); - - /* translate stored positions */ - yy_endRead -= yy_startRead; - yy_currentPos -= yy_startRead; - yy_markedPos -= yy_startRead; - yy_pushbackPos -= yy_startRead; - yy_startRead = 0; - } - - /* is the buffer big enough? */ - if (yy_currentPos >= yy_buffer.length) { - /* if not: blow it up */ - char newBuffer[] = new char[yy_currentPos * 2]; - System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length); - yy_buffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead); - - if (numRead == -1) - return YYEOF; - - yy_endRead += numRead; - - return yy_buffer[yy_currentPos++]; - } - - - /** - * Closes the input stream. - */ - final public void yyclose() throws java.io.IOException { - yy_atEOF = true; /* indicate end of file */ - yy_endRead = yy_startRead; /* invalidate buffer */ - yy_reader.close(); - } - - - /** - * Returns the current lexical state. - */ - final public int yystate() { - return yy_lexical_state; - } - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - final public void yybegin(int newState) { - yy_lexical_state = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - final public String yytext() { - return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead); - } - - /** - * Returns the length of the matched text region. - */ - final public int yylength() { - return yy_markedPos - yy_startRead; - } - - - /** - * Reports an error that occured while scanning. - * - * @param errorCode the code of the errormessage to display - */ - private void yy_ScanError(int errorCode) { - try { - System.out.println(YY_ERROR_MSG[errorCode]); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]); - } - - System.exit(1); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - private void yypushback(int number) { - if (number > yylength()) - yy_ScanError(YY_PUSHBACK_2BIG); - - yy_markedPos -= number; - } - - - /** - * Contains user EOF-code, which will be executed exactly once, - * when the end of file is reached - */ - private void yy_do_eof() { - if (!yy_eof_done) { - yy_eof_done = true; - hasMore = false; - - } - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception IOException if any I/O-Error occurs - */ - public String primGetNextToken() throws java.io.IOException { - int yy_input; - int yy_action; - - - while (true) { - - yychar += yylength(); - - yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos - 1] == '\n'; - if (!yy_atBOL && yy_buffer[yy_markedPos - 1] == '\r') { - yy_atBOL = yy_advance() != '\n'; - if (!yy_atEOF) - yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - if (yy_atBOL) - yy_state = YY_LEXSTATE[yy_lexical_state + 1]; - else - yy_state = YY_LEXSTATE[yy_lexical_state]; - - - yy_forAction : { - while (true) { - - yy_input = yy_advance(); - - if (yy_input == YYEOF) - break yy_forAction; - - yy_input = yycmap[yy_input]; - - boolean yy_isFinal = false; - boolean yy_noLookAhead = false; - - yy_forNext : { - switch (yy_state) { - case 0 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_state = 9; - break yy_forNext; - case 2 : - yy_isFinal = true; - yy_state = 10; - break yy_forNext; - case 3 : - yy_isFinal = true; - yy_state = 11; - break yy_forNext; - case 10 : - yy_isFinal = true; - yy_state = 12; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 1 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_state = 9; - break yy_forNext; - case 2 : - yy_isFinal = true; - yy_state = 10; - break yy_forNext; - case 3 : - yy_isFinal = true; - yy_state = 11; - break yy_forNext; - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 13; - break yy_forNext; - case 10 : - yy_isFinal = true; - yy_state = 14; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 2 : - switch (yy_input) { - case 11 : - yy_isFinal = true; - yy_state = 15; - break yy_forNext; - case 15 : - yy_isFinal = true; - yy_state = 16; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 3 : - switch (yy_input) { - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 17; - break yy_forNext; - case 26 : - yy_isFinal = true; - yy_state = 18; - break yy_forNext; - case 34 : - yy_isFinal = true; - yy_state = 19; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 4 : - switch (yy_input) { - case 6 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 21; - break yy_forNext; - case 7 : - yy_isFinal = true; - yy_state = 22; - break yy_forNext; - case 32 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 23; - break yy_forNext; - case 35 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 24; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 20; - break yy_forNext; - } - - case 5 : - switch (yy_input) { - case 7 : - case 9 : - case 10 : - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 26; - break yy_forNext; - case 11 : - case 34 : - yy_isFinal = true; - yy_state = 27; - break yy_forNext; - case 32 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 28; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - } - - case 6 : - switch (yy_input) { - case 7 : - case 9 : - case 10 : - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 26; - break yy_forNext; - case 34 : - yy_isFinal = true; - yy_state = 27; - break yy_forNext; - case 35 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 28; - break yy_forNext; - case 36 : - yy_isFinal = true; - yy_state = 29; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - } - - case 7 : - switch (yy_input) { - case 10 : - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 26; - break yy_forNext; - case 34 : - yy_isFinal = true; - yy_state = 27; - break yy_forNext; - case 11 : - yy_isFinal = true; - yy_state = 29; - break yy_forNext; - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 30; - break yy_forNext; - case 32 : - case 35 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 31; - break yy_forNext; - case 37 : - yy_isFinal = true; - yy_state = 32; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - } - - case 9 : - switch (yy_input) { - case 2 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 33; - break yy_forNext; - default : - break yy_forAction; - } - - case 10 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 34; - break yy_forNext; - default : - break yy_forAction; - } - - case 11 : - switch (yy_input) { - case 4 : - yy_state = 35; - break yy_forNext; - default : - break yy_forAction; - } - - case 12 : - switch (yy_input) { - case 13 : - yy_state = 36; - break yy_forNext; - default : - break yy_forAction; - } - - case 13 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 37; - break yy_forNext; - case 10 : - yy_state = 38; - break yy_forNext; - default : - break yy_forAction; - } - - case 14 : - switch (yy_input) { - case 13 : - yy_state = 36; - break yy_forNext; - case 11 : - yy_state = 39; - break yy_forNext; - default : - break yy_forAction; - } - - case 15 : - switch (yy_input) { - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 40; - break yy_forNext; - default : - break yy_forAction; - } - - case 16 : - switch (yy_input) { - case 19 : - yy_state = 41; - break yy_forNext; - default : - break yy_forAction; - } - - case 18 : - switch (yy_input) { - case 16 : - yy_state = 42; - break yy_forNext; - default : - break yy_forAction; - } - - case 19 : - switch (yy_input) { - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 43; - break yy_forNext; - default : - break yy_forAction; - } - - case 21 : - switch (yy_input) { - case 6 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 21; - break yy_forNext; - case 7 : - yy_state = 44; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 20; - break yy_forNext; - } - - case 22 : - switch (yy_input) { - case 6 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 21; - break yy_forNext; - case 7 : - yy_state = 44; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 20; - break yy_forNext; - } - - case 27 : - switch (yy_input) { - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 45; - break yy_forNext; - default : - break yy_forAction; - } - - case 29 : - switch (yy_input) { - case 25 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 46; - break yy_forNext; - default : - break yy_forAction; - } - - case 32 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 32; - break yy_forNext; - default : - break yy_forAction; - } - - case 35 : - switch (yy_input) { - case 5 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 47; - break yy_forNext; - default : - break yy_forAction; - } - - case 36 : - switch (yy_input) { - case 15 : - yy_state = 48; - break yy_forNext; - default : - break yy_forAction; - } - - case 37 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 37; - break yy_forNext; - case 10 : - yy_state = 38; - break yy_forNext; - default : - break yy_forAction; - } - - case 38 : - switch (yy_input) { - case 11 : - yy_state = 39; - break yy_forNext; - default : - break yy_forAction; - } - - case 39 : - switch (yy_input) { - case 12 : - yy_state = 49; - break yy_forNext; - default : - break yy_forAction; - } - - case 41 : - switch (yy_input) { - case 20 : - yy_state = 50; - break yy_forNext; - default : - break yy_forAction; - } - - case 42 : - switch (yy_input) { - case 16 : - yy_state = 51; - break yy_forNext; - default : - break yy_forAction; - } - - case 44 : - switch (yy_input) { - case 6 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 21; - break yy_forNext; - case 7 : - yy_state = 44; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 20; - break yy_forNext; - } - - case 48 : - switch (yy_input) { - case 16 : - yy_state = 52; - break yy_forNext; - default : - break yy_forAction; - } - - case 49 : - switch (yy_input) { - case 13 : - yy_state = 53; - break yy_forNext; - default : - break yy_forAction; - } - - case 50 : - switch (yy_input) { - case 21 : - yy_state = 54; - break yy_forNext; - default : - break yy_forAction; - } - - case 51 : - switch (yy_input) { - case 27 : - yy_state = 55; - break yy_forNext; - default : - break yy_forAction; - } - - case 52 : - switch (yy_input) { - case 17 : - yy_state = 56; - break yy_forNext; - default : - break yy_forAction; - } - - case 53 : - switch (yy_input) { - case 14 : - yy_state = 57; - break yy_forNext; - default : - break yy_forAction; - } - - case 54 : - switch (yy_input) { - case 22 : - yy_state = 58; - break yy_forNext; - default : - break yy_forAction; - } - - case 55 : - switch (yy_input) { - case 28 : - yy_state = 59; - break yy_forNext; - default : - break yy_forAction; - } - - case 56 : - switch (yy_input) { - case 18 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 60; - break yy_forNext; - default : - break yy_forAction; - } - - case 57 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 61; - break yy_forNext; - default : - break yy_forAction; - } - - case 58 : - switch (yy_input) { - case 23 : - yy_state = 62; - break yy_forNext; - default : - break yy_forAction; - } - - case 59 : - switch (yy_input) { - case 15 : - yy_state = 63; - break yy_forNext; - default : - break yy_forAction; - } - - case 61 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 61; - break yy_forNext; - default : - break yy_forAction; - } - - case 62 : - switch (yy_input) { - case 19 : - yy_state = 64; - break yy_forNext; - default : - break yy_forAction; - } - - case 63 : - switch (yy_input) { - case 29 : - yy_state = 65; - break yy_forNext; - default : - break yy_forAction; - } - - case 64 : - switch (yy_input) { - case 24 : - yy_state = 66; - break yy_forNext; - default : - break yy_forAction; - } - - case 65 : - switch (yy_input) { - case 30 : - yy_state = 67; - break yy_forNext; - default : - break yy_forAction; - } - - case 66 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 66; - break yy_forNext; - case 8 : - yy_isFinal = true; - yy_state = 68; - break yy_forNext; - default : - break yy_forAction; - } - - case 67 : - switch (yy_input) { - case 23 : - yy_state = 69; - break yy_forNext; - default : - break yy_forAction; - } - - case 68 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 68; - break yy_forNext; - default : - break yy_forAction; - } - - case 69 : - switch (yy_input) { - case 31 : - yy_state = 70; - break yy_forNext; - default : - break yy_forAction; - } - - case 70 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 70; - break yy_forNext; - case 8 : - yy_state = 71; - break yy_forNext; - default : - break yy_forAction; - } - - case 71 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 71; - break yy_forNext; - case 20 : - yy_state = 72; - break yy_forNext; - case 32 : - yy_state = 73; - break yy_forNext; - default : - break yy_forAction; - } - - case 72 : - switch (yy_input) { - case 21 : - yy_state = 74; - break yy_forNext; - default : - break yy_forAction; - } - - case 73 : - switch (yy_input) { - case 20 : - yy_state = 72; - break yy_forNext; - default : - break yy_forAction; - } - - case 74 : - switch (yy_input) { - case 19 : - yy_state = 75; - break yy_forNext; - default : - break yy_forAction; - } - - case 75 : - switch (yy_input) { - case 16 : - yy_state = 76; - break yy_forNext; - default : - break yy_forAction; - } - - case 76 : - switch (yy_input) { - case 15 : - yy_state = 77; - break yy_forNext; - default : - break yy_forAction; - } - - case 77 : - switch (yy_input) { - case 19 : - yy_state = 78; - break yy_forNext; - default : - break yy_forAction; - } - - case 78 : - switch (yy_input) { - case 16 : - yy_state = 79; - break yy_forNext; - default : - break yy_forAction; - } - - case 79 : - switch (yy_input) { - case 28 : - yy_state = 80; - break yy_forNext; - default : - break yy_forAction; - } - - case 80 : - switch (yy_input) { - case 16 : - yy_state = 81; - break yy_forNext; - default : - break yy_forAction; - } - - case 81 : - switch (yy_input) { - case 33 : - yy_state = 82; - break yy_forNext; - default : - break yy_forAction; - } - - case 82 : - switch (yy_input) { - case 27 : - yy_state = 83; - break yy_forNext; - default : - break yy_forAction; - } - - case 83 : - switch (yy_input) { - case 15 : - yy_state = 84; - break yy_forNext; - default : - break yy_forAction; - } - - case 84 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 85; - break yy_forNext; - case 32 : - yy_state = 86; - break yy_forNext; - default : - break yy_forAction; - } - - case 85 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 85; - break yy_forNext; - case 20 : - yy_state = 87; - break yy_forNext; - default : - break yy_forAction; - } - - case 86 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 85; - break yy_forNext; - default : - break yy_forAction; - } - - case 87 : - switch (yy_input) { - case 21 : - yy_state = 88; - break yy_forNext; - default : - break yy_forAction; - } - - case 88 : - switch (yy_input) { - case 19 : - yy_state = 89; - break yy_forNext; - default : - break yy_forAction; - } - - case 89 : - switch (yy_input) { - case 16 : - yy_state = 90; - break yy_forNext; - default : - break yy_forAction; - } - - case 90 : - switch (yy_input) { - case 15 : - yy_state = 91; - break yy_forNext; - default : - break yy_forAction; - } - - case 91 : - switch (yy_input) { - case 19 : - yy_state = 92; - break yy_forNext; - default : - break yy_forAction; - } - - case 92 : - switch (yy_input) { - case 16 : - yy_state = 93; - break yy_forNext; - default : - break yy_forAction; - } - - case 93 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_state = 93; - break yy_forNext; - case 8 : - yy_isFinal = true; - yy_state = 94; - break yy_forNext; - default : - break yy_forAction; - } - - case 94 : - switch (yy_input) { - case 6 : - case 7 : - case 9 : - case 18 : - yy_isFinal = true; - yy_state = 94; - break yy_forNext; - default : - break yy_forAction; - } - - default : - yy_ScanError(YY_ILLEGAL_STATE); - break; - } - } - - if (yy_isFinal) { - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if (yy_noLookAhead) - break yy_forAction; - } - - } - } - - - switch (yy_action) { - - case 26 : - { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 96 : - break; - case 20 : - case 21 : - { - yypushback(1); - yybegin(UnDelimitedString); - string.setLength(0); - } - case 97 : - break; - case 17 : - { - yybegin(YYINITIAL); - if (foundContentTypeValue) - hasMore = false; - return HTMLHeadTokenizerConstants.MetaTagEnd; - } - case 98 : - break; - case 31 : - { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; - } - case 99 : - break; - case 43 : - { - yybegin(YYINITIAL); - if (foundContentTypeValue) - hasMore = false; - return HTMLHeadTokenizerConstants.MetaTagEnd; - } - case 100 : - break; - case 45 : - { - yypushback(2); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 101 : - break; - case 46 : - { - yypushback(2); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 102 : - break; - case 61 : - { - if (yychar == 0) { - yybegin(ST_XMLDecl); - return XMLHeadTokenizerConstants.XMLDeclStart; - } - } - case 103 : - break; - case 8 : - case 9 : - case 10 : - case 11 : - case 12 : - case 13 : - case 14 : - case 15 : - case 16 : - case 18 : - case 19 : - case 22 : - { - if (yychar > MAX_TO_SCAN) { - hasMore = false; - return EncodingParserConstants.MAX_CHARS_REACHED; - } - } - case 104 : - break; - case 60 : - { - yybegin(ST_META_TAG); - return HTMLHeadTokenizerConstants.MetaTagStart; - } - case 105 : - break; - case 40 : - { - yybegin(YYINITIAL); - return XMLHeadTokenizerConstants.XMLDeclEnd; - } - case 106 : - break; - case 94 : - { - pushCurrentState(); - yybegin(QuotedAttributeValue); - foundContentTypeValue = true; - return HTMLHeadTokenizerConstants.MetaTagContentType; - } - case 107 : - break; - case 68 : - { - pushCurrentState(); - yybegin(QuotedAttributeValue); - return XMLHeadTokenizerConstants.XMLDelEncoding; - } - case 108 : - break; - case 33 : - { - hasMore = false; - return EncodingParserConstants.UTF16BE; - } - case 109 : - break; - case 34 : - { - hasMore = false; - return EncodingParserConstants.UTF16LE; - } - case 110 : - break; - case 47 : - { - hasMore = false; - return EncodingParserConstants.UTF83ByteBOM; - } - case 111 : - break; - case 28 : - { - popState(); - valueText = string.toString(); - return EncodingParserConstants.StringValue; - } - case 112 : - break; - case 25 : - case 27 : - case 29 : - case 32 : - { - string.append(yytext()); - } - case 113 : - break; - case 24 : - { - yybegin(SQ_STRING); - string.setLength(0); - } - case 114 : - break; - case 23 : - { - yybegin(DQ_STRING); - string.setLength(0); - } - case 115 : - break; - case 30 : - { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.UnDelimitedStringValue; - } - case 116 : - break; - default : - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - yy_do_eof(); - { - hasMore = false; - return EncodingParserConstants.EOF; - } - } - else { - yy_ScanError(YY_NO_MATCH); - } - } - } - } - - /** - * Runs the scanner on input files. - * - * This main method is the debugging routine for the scanner. - * It prints each returned token to System.out until the end of - * file is reached, or an error occured. - * - * @param argv the command line, contains the filenames to run - * the scanner on. - */ - public static void main(String argv[]) { - for (int i = 0; i < argv.length; i++) { - HTMLHeadTokenizer scanner = null; - try { - scanner = new HTMLHeadTokenizer(new java.io.FileReader(argv[i])); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \"" + argv[i] + "\""); - System.exit(1); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java HTMLHeadTokenizer <inputfile>"); - System.exit(1); - } - - try { - do { - System.out.println(scanner.primGetNextToken()); - } - while (!scanner.yy_atEOF); - - } - catch (java.io.IOException e) { - System.out.println("An I/O error occured while scanning :"); - System.out.println(e); - System.exit(1); - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java deleted file mode 100644 index 938bcde421..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizerConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - - -public interface HTMLHeadTokenizerConstants { - - String MetaTagEnd = "MetaTagEnd"; //$NON-NLS-1$ - String MetaTagStart = "MetaTagStart"; //$NON-NLS-1$ - String MetaTagContentType = "MetaTagContentType"; //$NON-NLS-1$ - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java deleted file mode 100644 index 4401d907a3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java +++ /dev/null @@ -1,187 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -import java.io.IOException; -import java.util.regex.Pattern; - -import org.eclipse.wst.sse.core.internal.encoding.CodedIO; -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector; -import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants; - -public class HTMLResourceEncodingDetector extends AbstractResourceEncodingDetector implements IResourceCharsetDetector { - - private HTMLHeadTokenizer fTokenizer; - - /** - * There is no spec defined encoding for HTML (historically), so null is - * returned. - */ - public String getSpecDefaultEncoding() { - return null; - } - - private boolean canHandleAsUnicodeStream(String tokenType) { - boolean canHandleAsUnicodeStream = false; - if (tokenType == EncodingParserConstants.UTF83ByteBOM) { - canHandleAsUnicodeStream = true; - String enc = "UTF-8"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - fEncodingMemento.setUTF83ByteBOMUsed(true); - } - else if (tokenType == EncodingParserConstants.UTF16BE) { - canHandleAsUnicodeStream = true; - String enc = "UTF-16BE"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - } - else if (tokenType == EncodingParserConstants.UTF16LE) { - canHandleAsUnicodeStream = true; - String enc = "UTF-16"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - } - return canHandleAsUnicodeStream; - } - - /** - * @return Returns the tokenizer. - */ - private HTMLHeadTokenizer getTokenizer() { - // TODO: need to work on 'reset' in tokenizer, so new instance isn't - // always needed - //if (fTokenizer == null) { - fTokenizer = new HTMLHeadTokenizer(); - // } - return fTokenizer; - } - - private boolean isLegalString(String valueTokenType) { - if (valueTokenType == null) - return false; - else - return valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue); - } - - protected void parseInput() throws IOException { - checkInContent(); - if (fEncodingMemento == null) { - checkHeuristics(); - } - } - - /** - * - */ - private void checkHeuristics() throws IOException { - boolean noHeuristic = false; - String heuristicEncoding = null; - try { - fReader.reset(); - fReader.mark(CodedIO.MAX_MARK_SIZE); - byte[] bytes = new byte[CodedIO.MAX_MARK_SIZE]; - int nRead = 0; - for (int i = 0; i < bytes.length; i++) { - if (fReader.ready()) { - int oneByte = fReader.read(); - nRead++; - if (oneByte <= 0xFF) { - bytes[i] = (byte) oneByte; - } - else { - noHeuristic = true; - break; - } - } - else { - break; - } - } - if (!noHeuristic) { - heuristicEncoding = EncodingGuesser.guessEncoding(bytes, nRead); - } - } - catch (IOException e) { - // if any IO exception, then not a heuristic case - } - finally { - fReader.reset(); - } - if (heuristicEncoding != null) { - createEncodingMemento(heuristicEncoding, EncodingMemento.GUESSED_ENCODING_FROM_STREAM); - } - - } - - private void checkInContent() throws IOException { - HTMLHeadTokenizer tokenizer = getTokenizer(); - tokenizer.reset(fReader); - HeadParserToken token = null; - String tokenType = null; - String contentTypeValue = null; - do { - token = tokenizer.getNextToken(); - tokenType = token.getType(); - if (canHandleAsUnicodeStream(tokenType)) { - // side effect of canHandle is to create appropriate - // memento - } - else if (tokenType == HTMLHeadTokenizerConstants.MetaTagContentType) { - if (tokenizer.hasMoreTokens()) { - HeadParserToken valueToken = tokenizer.getNextToken(); - String valueTokenType = valueToken.getType(); - if (isLegalString(valueTokenType)) { - contentTypeValue = valueToken.getText(); - - } - } - } - - } - while (tokenizer.hasMoreTokens()); - if (contentTypeValue != null) { - parseContentTypeValue(contentTypeValue); - } - } - - private void parseContentTypeValue(String contentType) { - String charset = null; - Pattern pattern = Pattern.compile(";\\s*charset\\s*=\\s*"); //$NON-NLS-1$ - String[] parts = pattern.split(contentType); - if (parts.length > 0) { - // if only one item, it can still be charset instead of - // contentType - if (parts.length == 1) { - if (parts[0].length() > 6) { - String checkForCharset = parts[0].substring(0, 7); - if (checkForCharset.equalsIgnoreCase("charset")) { //$NON-NLS-1$ - int eqpos = parts[0].indexOf('='); - eqpos = eqpos + 1; - if (eqpos < parts[0].length()) { - charset = parts[0].substring(eqpos); - charset = charset.trim(); - } - } - } - } - else { - //fContentType = parts[0]; - } - } - if (parts.length > 1) { - charset = parts[1]; - } - - if (charset != null && charset.length() > 0) { - createEncodingMemento(charset, EncodingMemento.FOUND_ENCODING_IN_CONTENT); - } - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java deleted file mode 100644 index a6190bfa43..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -public class HeadParserToken { - private int fStart; - - private String fText; - private String fType; - - protected HeadParserToken() { - super(); - } - - public HeadParserToken(String type, int start, String text) { - this(); - fType = type; - fStart = start; - fText = text; - - } - - public String getText() { - return fText; - } - - public String getType() { - return fType; - } - - public String toString() { - return ("text: " + fText + " offset: " + fStart + " type: " + fType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java deleted file mode 100644 index 88b8ba84b2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -/* - * - * A non-resizable class implementing the behavior of java.util.Stack, but - * directly for the <code> integer </code> primitive. - */ -import java.util.EmptyStackException; - -public class IntStack { - private int[] list = null; - - private int size = 0; - - public IntStack() { - this(100); - } - - public IntStack(int maxdepth) { - super(); - list = new int[maxdepth]; - initialize(); - } - - public void clear() { - initialize(); - } - - public boolean empty() { - return size == 0; - } - - public int get(int slot) { - return list[slot]; - } - - private void initialize() { - for (int i = 0; i < list.length; i++) - list[i] = -1; - } - - /** - * Returns the int at the top of the stack without removing it - * - * @return int at the top of this stack. - * @exception EmptyStackException - * when empty. - */ - public int peek() { - if (size == 0) - throw new EmptyStackException(); - return list[size - 1]; - } - - /** - * Removes and returns the int at the top of the stack - * - * @return int at the top of this stack. - * @exception EmptyStackException - * when empty. - */ - public int pop() { - int value = peek(); - list[size - 1] = -1; - size--; - return value; - } - - /** - * Pushes an item onto the top of this stack. - * - * @param newValue - - * the int to be pushed onto this stack. - * @return the <code>newValue</code> argument. - */ - public int push(int newValue) { - if (size == list.length) { - throw new StackOverflowError(); - } - list[size++] = newValue; - return newValue; - } - - public int size() { - return list.length; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java deleted file mode 100644 index 1a24c3133f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.contenttype; - -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules; - - - -/** - * This class can be used in place of an EncodingMemento (its super class), - * when there is not in fact ANY encoding information. For example, when a - * structuredDocument is created directly from a String - */ -public class NullMemento extends EncodingMemento { - /** - * - */ - public NullMemento() { - super(); - String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null); - setJavaCharsetName(defaultCharset); - setAppropriateDefault(defaultCharset); - setDetectedCharsetName(null); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java deleted file mode 100644 index dc2de33bd1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* - * Created on Sep 2, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -package org.eclipse.wst.html.core.internal.document; - -import org.eclipse.wst.xml.core.internal.document.DOMModelImpl; -import org.w3c.dom.Document; - -/** - * @author davidw - * - * To change the template for this generated type comment go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -public class DOMStyleModelImpl extends DOMModelImpl { - public DOMStyleModelImpl() { - // remember, the document is created in super constructor, - // via internalCreateDocument - super(); - } - - public void releaseFromEdit() { - releaseStyleSheets(); - super.releaseFromEdit(); - } - - /** - */ - public void releaseFromRead() { - releaseStyleSheets(); - super.releaseFromRead(); - } - - private void releaseStyleSheets() { - if (!isShared()) { - Document doc = getDocument(); - if (doc instanceof DocumentStyleImpl) { - ((DocumentStyleImpl) doc).releaseStyleSheets(); - } - } - } - - /** - * createDocument method - * @return org.w3c.dom.Document - */ - protected Document internalCreateDocument() { - DocumentStyleImpl document = new DocumentStyleImpl(); - document.setModel(this); - return document; - } - - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java deleted file mode 100644 index eda938fc69..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* - * Created on Sep 2, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -package org.eclipse.wst.html.core.internal.document; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.xml.core.internal.document.DocumentImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.DOMException; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.css.CSSStyleDeclaration; -import org.w3c.dom.css.DocumentCSS; -import org.w3c.dom.stylesheets.StyleSheetList; - -/** - * @author davidw - * - * To change the template for this generated type comment go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -public class DocumentStyleImpl extends DocumentImpl implements IDOMDocument, DocumentCSS { - public DocumentStyleImpl() { - super(); - } - - protected DocumentStyleImpl(DocumentImpl that) { - super(that); - } - - public CSSStyleDeclaration getOverrideStyle(Element element, String pseudoName) { - INodeAdapter adapter = getAdapterFor(IStyleSheetListAdapter.class); - if (adapter == null) - return null; - return ((IStyleSheetListAdapter) adapter).getOverrideStyle(element, pseudoName); - } - - public StyleSheetList getStyleSheets() { - INodeAdapter adapter = getAdapterFor(IStyleSheetListAdapter.class); - if (adapter == null) - return null; - return ((IStyleSheetListAdapter) adapter).getStyleSheets(); - } - - protected void releaseStyleSheets() { - INodeAdapter adapter = getExistingAdapter(IStyleSheetListAdapter.class); - if (adapter == null) - return; - ((IStyleSheetListAdapter) adapter).releaseStyleSheets(); - } - - /** - * createElement method - * @return org.w3c.dom.Element - * @param tagName java.lang.String - */ - public Element createElement(String tagName) throws DOMException { - checkTagNameValidity(tagName); - - ElementStyleImpl element = new ElementStyleImpl(); - element.setOwnerDocument(this); - element.setTagName(tagName); - return element; - } - - /** - * cloneNode method - * @return org.w3c.dom.Node - * @param deep boolean - */ - public Node cloneNode(boolean deep) { - DocumentStyleImpl cloned = new DocumentStyleImpl(this); - if (deep) - cloned.importChildNodes(this, true); - return cloned; - } - - protected void setModel(IDOMModel model) { - super.setModel(model); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java deleted file mode 100644 index 24e03b7999..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* - * Created on Sep 2, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -package org.eclipse.wst.html.core.internal.document; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.xml.core.internal.document.ElementImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.css.CSSStyleDeclaration; -import org.w3c.dom.css.ElementCSSInlineStyle; -import org.w3c.dom.stylesheets.LinkStyle; -import org.w3c.dom.stylesheets.StyleSheet; - -public class ElementStyleImpl extends ElementImpl implements IDOMElement, ElementCSSInlineStyle, LinkStyle { - public ElementStyleImpl() { - super(); - } - - public ElementStyleImpl(ElementImpl that) { - super(that); - } - - public StyleSheet getSheet() { - INodeAdapter adapter = getAdapterFor(IStyleSheetAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleSheetAdapter)) - return null; - return ((IStyleSheetAdapter) adapter).getSheet(); - } - - public CSSStyleDeclaration getStyle() { - INodeAdapter adapter = getAdapterFor(IStyleDeclarationAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleDeclarationAdapter)) - return null; - return ((IStyleDeclarationAdapter) adapter).getStyle(); - } - - protected void setOwnerDocument(Document ownerDocument) { - super.setOwnerDocument(ownerDocument); - } - - protected void setTagName(String tagName) { - super.setTagName(tagName); - } - - public Node cloneNode(boolean deep) { - ElementImpl cloned = new ElementStyleImpl(this); - if (deep) - cloneChildNodes(cloned, deep); - return cloned; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java deleted file mode 100644 index ae538b794f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java +++ /dev/null @@ -1,302 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.provisional.IModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.ProcessingInstruction; -import org.w3c.dom.Text; - -/** - */ -public class HTMLConverter { - - /** - */ - public HTMLConverter() { - super(); - - } - - public void cleanupModel(IDOMModel model) { - if (model == null) - return; - - HTMLCleanupProcessorImpl processor = new HTMLCleanupProcessorImpl(); - IStructuredCleanupPreferences pref = processor.getCleanupPreferences(); - - // backup options - boolean compressEmptyElementTags = pref.getCompressEmptyElementTags(); - boolean insertRequiredAttrs = pref.getInsertRequiredAttrs(); - boolean insertMissingTags = pref.getInsertMissingTags(); - boolean quoteAttrValues = pref.getQuoteAttrValues(); - boolean formatSource = pref.getFormatSource(); - int tagNameCase = pref.getTagNameCase(); - int attrNameCase = pref.getAttrNameCase(); - - // setup options - pref.setCompressEmptyElementTags(true); - pref.setInsertRequiredAttrs(true); - pref.setInsertMissingTags(true); - pref.setQuoteAttrValues(true); - pref.setFormatSource(false); - if (model.getDocument().isXMLType()) { // XHTML - pref.setTagNameCase(HTMLCorePreferenceNames.LOWER); - pref.setAttrNameCase(HTMLCorePreferenceNames.LOWER); - } - else { - pref.setTagNameCase(HTMLCorePreferenceNames.ASIS); - pref.setAttrNameCase(HTMLCorePreferenceNames.ASIS); - } - - processor.cleanupModel(model); - - // set back options - pref.setCompressEmptyElementTags(compressEmptyElementTags); - pref.setInsertRequiredAttrs(insertRequiredAttrs); - pref.setInsertMissingTags(insertMissingTags); - pref.setQuoteAttrValues(quoteAttrValues); - pref.setFormatSource(formatSource); - pref.setTagNameCase(tagNameCase); - pref.setAttrNameCase(attrNameCase); - } - - /** - * declaratoin: "data" for XML declaration, such as "version=\"1.0\"" - * publicId: publicId for DOCTYPE declaration - */ - public void convert(IDOMModel model, String declaration, String publicId) { - if (model == null) - return; - setDeclaration(model, declaration, publicId); - cleanupModel(model); - } - - /** - * declaratoin: "data" for XML declaration, such as "version=\"1.0\"" - * publicId: publicId for DOCTYPE declaration - */ - public void convert(InputStream input, OutputStream output, String declaration, String publicId) throws UnsupportedEncodingException, IOException, CoreException { - IDOMModel model = readModel(input); - if (model == null) - return; - try { - convert(model, declaration, publicId); - writeModel(model, output); - } - finally { - if (model != null) - model.releaseFromEdit(); - } - } - - /** - * declaratoin: "data" for XML declaration, such as "version=\"1.0\"" - * publicId: publicId for DOCTYPE declaration - */ - public void convert(IFile file, String declaration, String publicId) throws IOException, CoreException { - IDOMModel model = readModel(file); - if (model == null) - return; - try { - convert(model, declaration, publicId); - writeModel(model, file); - } - finally { - if (model != null) - model.releaseFromEdit(); - } - } - - /** - */ - private static void insertBreak(IDOMModel model, Node node) { - if (model == null || node == null) - return; - if (node.getNodeType() == Node.TEXT_NODE) - return; - - // get delimiter string - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - String delim = structuredDocument.getLineDelimiter(); - if (delim == null || delim.length() == 0) - return; - - Node parent = node.getParentNode(); - if (parent == null) - return; - Document document = node.getOwnerDocument(); - if (document == null) - return; - Text text = document.createTextNode(delim); - parent.insertBefore(text, node); - } - - /** - */ - private IDOMModel readModel(InputStream input) throws IOException, UnsupportedEncodingException { - if (input == null) - return null; - // create temporary model - String id = input.toString() + ".html"; //$NON-NLS-1$ - IModelManager manager = StructuredModelManager.getModelManager(); - IStructuredModel model = manager.getModelForEdit(id, input, null); - if (!(model instanceof IDOMModel)) { - if (model == null) - model.releaseFromEdit(); - return null; - } - return (IDOMModel) model; - } - - /** - */ - private IDOMModel readModel(IFile file) throws IOException, CoreException { - if (file == null) - return null; - IModelManager manager = StructuredModelManager.getModelManager(); - IStructuredModel model = manager.getModelForEdit(file); - if (!(model instanceof IDOMModel)) { - if (model != null) - model.releaseFromEdit(); - return null; - } - return (IDOMModel) model; - } - - /** - */ - public void setDeclaration(IDOMModel model, String declaration, String publicId) { - if (model == null) - return; - IDOMDocument document = model.getDocument(); - if (document == null) - return; - - try { - model.aboutToChangeModel(); - - ProcessingInstruction pi = null; - Node child = document.getFirstChild(); - if (child != null && child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) { - String target = child.getNodeName(); - if (target != null && target.equals("xml")) { //$NON-NLS-1$ - pi = (ProcessingInstruction) child; - child = child.getNextSibling(); - } - } - IDOMDocumentType docType = (IDOMDocumentType) document.getDoctype(); - - if (declaration != null) { - if (pi != null) { - pi.setData(declaration); - } - else { - pi = document.createProcessingInstruction("xml", declaration); //$NON-NLS-1$ - document.insertBefore(pi, child); - insertBreak(model, child); - } - } - - if (publicId != null) { - HTMLDocumentTypeEntry entry = HTMLDocumentTypeRegistry.getInstance().getEntry(publicId); - String name = (entry != null ? entry.getName() : null); - if (name == null || name.length() == 0) - name = "HTML"; // default //$NON-NLS-1$ - if (docType != null) { - if (!name.equals(docType.getName())) { // replace - Node parent = docType.getParentNode(); - child = docType; - docType = (IDOMDocumentType) document.createDoctype(name); - parent.insertBefore(docType, child); - parent.removeChild(child); - } - } - else { - docType = (IDOMDocumentType) document.createDoctype(name); - document.insertBefore(docType, child); - insertBreak(model, child); - } - docType.setPublicId(publicId); - if (entry != null) { - String systemId = entry.getSystemId(); - if (systemId != null) - docType.setSystemId(systemId); - String namespaceURI = entry.getNamespaceURI(); - if (namespaceURI != null) { - Element element = document.getDocumentElement(); - if (element != null) { - element.setAttribute("xmlns", namespaceURI); //$NON-NLS-1$ - } - } - } - } - } - finally { - model.changedModel(); - } - } - - /** - */ - private void writeModel(IDOMModel model, OutputStream output) throws UnsupportedEncodingException, IOException, CoreException { - if (model == null || output == null) - return; - model.save(); - } - - /** - */ - private void writeModel(IDOMModel model, IFile file) throws IOException, CoreException { - if (model == null || file == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - //ByteArrayOutputStream output = null; - ByteArrayInputStream input = null; - try { - //output = new - // ByteArrayOutputStream(structuredDocument.getLength()); - model.save(); - //input = new ByteArrayInputStream(output.toByteArray()); - //file.setContents(input, true, true, null); - } - finally { - // if (output != null) - // output.close(); - if (input != null) - input.close(); - } - - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java deleted file mode 100644 index 1f806e5c08..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java +++ /dev/null @@ -1,257 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.html.core.internal.contentproperties.HTMLContentProperties; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapterImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Node; - -/** - */ -public class HTMLDocumentTypeAdapter extends DocumentTypeAdapterImpl implements HTMLDocumentTypeConstants { - - private HTMLDocumentTypeAdapterFactory fFactory = null; - private HTMLDocumentTypeEntry entry = null; - private boolean isXMLType = false; - private final static String XML = "xml"; //$NON-NLS-1$ - private final static String XHTML = "xhtml"; //$NON-NLS-1$ - private final static String WML = "wml"; //$NON-NLS-1$ - - - /** - */ - protected HTMLDocumentTypeAdapter() { - super(); - } - - /** - */ - protected HTMLDocumentTypeAdapter(IDOMDocument document, HTMLDocumentTypeAdapterFactory factory) { - super(document); - - this.fFactory = factory; - - // initialize - documentTypeChanged(); - } - - /** - */ - private void documentTypeChanged() { - IDOMDocument document = getDocument(); - if (document == null) - return; // error - IDOMModel model = document.getModel(); - if (model == null) - return; // error - - IFile file = getFile(model); - - // find DOCTYPE delcaration and Public ID - String publicId = null; - DocumentType newDocumentType = findDocumentType(document); - if (newDocumentType != null) { - publicId = newDocumentType.getPublicId(); - } - else { - // lookup default set by contentsettings - publicId = HTMLContentProperties.getProperty(HTMLContentProperties.DOCUMENT_TYPE, file, true); - } - - // lookup DOCTYPE registry - HTMLDocumentTypeEntry newEntry = null; - if (publicId != null) { - newEntry = HTMLDocumentTypeRegistry.getInstance().getEntry(publicId); - } - - boolean newXMLType = (newEntry != null ? newEntry.isXMLType() : false); - boolean newWMLType = (newEntry != null ? newEntry.isWMLType() : false); - - if (!newXMLType) { - // find XML declaration - if (findXMLNode(document) != null) { - newXMLType = true; - } - - // check file extension - if (file != null) { - String ext = file.getFileExtension(); - if (ext != null && ext.equalsIgnoreCase(XHTML)) { - newXMLType = true; - } - - if (ext != null && ext.equalsIgnoreCase(WML)) { - newXMLType = true; - newWMLType = true; - } - } - - } - - if (newEntry == null) { - // lookup system default - if (newXMLType && newDocumentType == null) { - // use default XHTML, if it's XML and no document type - // declared - if (newWMLType) - newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_WML); - else - newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_XHTML); - - } - else { - newEntry = HTMLDocumentTypeRegistry.getInstance().getDefaultEntry(HTMLDocumentTypeRegistry.DEFAULT_HTML); - } - if (newEntry == null) - return; // error - } - - if (newDocumentType == null) { - DocumentType oldDocumentType = getDocumentType(); - if (oldDocumentType == null || oldDocumentType.getName() != newEntry.getName()) { - // create implicit DocumentType - DOMImplementation impl = document.getImplementation(); - if (impl != null) { - String name = newEntry.getName(); - publicId = newEntry.getPublicId(); - String systemId = newEntry.getSystemId(); - newDocumentType = impl.createDocumentType(name, publicId, systemId); - } - } - } - - boolean notify = false; - if (this.entry != null) { // do not notify on initialization - notify = (newEntry != this.entry || newXMLType != this.isXMLType); - } - - if (newDocumentType != null) - setDocumentType(newDocumentType); - this.entry = newEntry; - this.isXMLType = newXMLType; - - if (notify) - notifyDocumentTypeChanged(); - } - - /** - */ - private IDOMDocumentType findDocumentType(IDOMDocument document) { - IDOMDocumentType documentType = (IDOMDocumentType) document.getDoctype(); - if (documentType != null && documentType.getExistingAdapter(DocumentTypeAdapter.class) == null) { - // watch future changes - documentType.addAdapter(this); - } - return documentType; - } - - /** - */ - private Node findXMLNode(Document document) { - for (Node child = document.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child.getNodeType() != Node.PROCESSING_INSTRUCTION_NODE) - continue; - String target = child.getNodeName(); - if (target != null && target.equals(XML)) { - return child; - } - } - return null; - } - - /** - */ - public int getAttrNameCase() { - if (isXMLType()) - return LOWER_CASE; // XHTML - return this.fFactory.getAttrNameCase(); - } - - private IFile getFile(IStructuredModel model) { - IFile result = null; - String location = model.getBaseLocation(); - if (location != null) { - IPath path = new Path(location); - if (path.segmentCount() > 1) { - result = ResourcesPlugin.getWorkspace().getRoot().getFile(path); - } - } - return result; - } - - /** - */ - public int getTagNameCase() { - if (isXMLType()) - return LOWER_CASE; // XHTML - return this.fFactory.getTagNameCase(); - } - - /** - */ - public boolean hasFeature(String feature) { - if (feature == null) - return false; - if (feature.equals(HTML)) - return true; - if (feature.equals(SSI)) - return true; - if (feature.equals(FRAMESET)) { - if (this.entry == null) - return false; - return this.entry.hasFrameset(); - } - return false; - } - - /** - */ - public boolean isXMLType() { - return this.isXMLType; - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - if (notifier == null) - return; - if (notifier instanceof IDOMDocument) { - if (eventType != INodeNotifier.STRUCTURE_CHANGED) - return; - } - else { - if (eventType != INodeNotifier.CHANGE) - return; - } - documentTypeChanged(); - } - - /** - */ - public void release() { - super.release(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java deleted file mode 100644 index 3e15e1348b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import java.util.HashMap; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; - -/** - */ -public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener { - - private int tagNameCase = DocumentTypeAdapter.LOWER_CASE; - private int attrNameCase = DocumentTypeAdapter.LOWER_CASE; - private Preferences preferences = null; - - // for removal later on release() - private HashMap fDoc2AdapterMap = new HashMap(); - - /** - */ - public HTMLDocumentTypeAdapterFactory() { - super(); - this.preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); - - if (this.preferences != null) { - updateCases(); // initialize - this.preferences.addPropertyChangeListener(this); - } - } - - /** - * Method that returns the adapter associated with the given object. It - * may be a singleton or not ... depending on the needs of the - * INodeAdapter ... but in general it is recommended for an adapter to be - * stateless, so the efficiencies of a singleton can be gained. - * - * The implementation of this method should call addAdapter on the adapted - * object with the correct instance of the adapter. - */ - public INodeAdapter adapt(INodeNotifier notifier) { - INodeAdapter result = null; - // only adapt IDOMDocument - if (notifier instanceof IDOMDocument) { - - // if already has an adapter, no need to recreate/initialize. - // Note: this means if "doctype" for DOM changes, - // theDocumentTypeAdatper for that DOM - // should be removed (and released) and it will be re-created next - // time required. - DocumentTypeAdapter oldAdapter = (DocumentTypeAdapter) notifier.getExistingAdapter(DocumentTypeAdapter.class); - if (oldAdapter != null) { - result = oldAdapter; - } - else { - - // if there already was an adapter - //if(fAdapter != null) - // fAdapter.release(); - - // note, the factory is included in this case to have a central place - // to come back to for case preferences. - result = new HTMLDocumentTypeAdapter((IDOMDocument) notifier, this); - notifier.addAdapter(result); - - fDoc2AdapterMap.put(notifier, result); - } - } - return result; - } - - /** - */ - public int getAttrNameCase() { - return this.attrNameCase; - } - - /** - */ - public int getTagNameCase() { - return this.tagNameCase; - } - - /** - */ - public boolean isFactoryForType(Object type) { - return (type == DocumentTypeAdapter.class); - } - - /** - */ - public void propertyChange(Preferences.PropertyChangeEvent event) { - if (event == null) - return; - String property = event.getProperty(); - if (property == null) - return; - - if (property.equals(HTMLCorePreferenceNames.TAG_NAME_CASE) || property.equals(HTMLCorePreferenceNames.ATTR_NAME_CASE)) { - updateCases(); - } - } - - /** - */ - private void updateCases() { - this.tagNameCase = DocumentTypeAdapter.LOWER_CASE; - this.attrNameCase = DocumentTypeAdapter.LOWER_CASE; - - if (this.preferences == null) - return; - - int tagCase = this.preferences.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE); - if (tagCase == HTMLCorePreferenceNames.LOWER) - this.tagNameCase = DocumentTypeAdapter.LOWER_CASE; - else if (tagCase == HTMLCorePreferenceNames.UPPER) - this.tagNameCase = DocumentTypeAdapter.UPPER_CASE; - - int attCase = this.preferences.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE); - if (attCase == HTMLCorePreferenceNames.LOWER) - this.attrNameCase = DocumentTypeAdapter.LOWER_CASE; - else if (attCase == HTMLCorePreferenceNames.UPPER) - this.tagNameCase = DocumentTypeAdapter.UPPER_CASE; - } - - /** - */ - public void release() { - - if(!fDoc2AdapterMap.isEmpty()) { - Object[] docs = fDoc2AdapterMap.keySet().toArray(); - DocumentTypeAdapter adapter = null; - for (int i = 0; i < docs.length; i++) { - adapter = (DocumentTypeAdapter)fDoc2AdapterMap.get(docs[i]); - adapter.release(); - ((IDOMDocument)docs[i]).removeAdapter(adapter); - } - fDoc2AdapterMap.clear(); - } - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=95960 - if (this.preferences != null) { - this.preferences.removePropertyChangeListener(this); - } - } - - /** - * Overriding copy method - */ - public INodeAdapterFactory copy() { - return new HTMLDocumentTypeAdapterFactory(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java deleted file mode 100644 index 1b26c13ee7..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - -public interface HTMLDocumentTypeConstants { - - public final static String HTML = "HTML"; //$NON-NLS-1$ - public final static String FRAMESET = "FRAMESET"; //$NON-NLS-1$ - public final static String SSI = "SSI"; //$NON-NLS-1$ - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java deleted file mode 100644 index 83158e7b8d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -/** - */ -public class HTMLDocumentTypeEntry { - - private String name; - private String publicId; - private String systemId; - private String namespaceURI; - private boolean isXMLType; - private boolean isXHTMLType; - private boolean isWMLType; - private boolean hasFrameset; - private String displayName; - private boolean isDefaultXHTML; - private boolean isDefaultWML; - private static String XHTML_NAME = "html"; //$NON-NLS-1$ - private static String HTML_NAME = "HTML"; //$NON-NLS-1$ - private boolean useInternalModel = false; - - /** - */ - private HTMLDocumentTypeEntry() { - super(); - } - - /** - */ - public HTMLDocumentTypeEntry(String name, String publicId, String systemId, String namespaceURI, boolean isXHTMLType, boolean hasFrameset, String displayName, boolean isDefaultXHTML, boolean isDefaultWML, boolean isWMLType) { - this(); - - if (name != null && name.length() > 0) { - this.name = name; - } - else { - if (isXMLType) - this.name = XHTML_NAME;// need code for wml? - else - this.name = HTML_NAME; - } - this.publicId = publicId; - this.systemId = systemId; - this.namespaceURI = namespaceURI; - this.isXMLType = isXHTMLType | isWMLType; - this.hasFrameset = hasFrameset; - this.displayName = displayName; - this.isDefaultXHTML = isDefaultXHTML; - this.isDefaultWML = isDefaultWML; - this.isXHTMLType = isXHTMLType; - this.isWMLType = isWMLType; - } - - HTMLDocumentTypeEntry(String name, String publicId, String systemId, String namespaceURI, boolean isXHTMLType, boolean hasFrameset, String displayName, boolean isDefaultXHTML, boolean isDefaultWML, boolean isWMLType, boolean useInternalModel) { - this(name, publicId, systemId, namespaceURI, isXHTMLType, hasFrameset, displayName, isDefaultXHTML, isDefaultWML, isWMLType); - this.useInternalModel = useInternalModel; - } - - /** - */ - public final String getName() { - return this.name; - } - - /** - */ - public final String getNamespaceURI() { - return this.namespaceURI; - } - - /** - */ - public final String getPublicId() { - return this.publicId; - } - - /** - */ - public final String getSystemId() { - return this.systemId; - } - - /** - */ - public final boolean isXMLType() { - return this.isXMLType; - } - - /** - */ - public final boolean hasFrameset() { - return this.hasFrameset; - } - - /** - */ - public final String getDisplayName() { - return this.displayName; - } - - /** - */ - public final boolean isDefaultXHTML() { - return this.isDefaultXHTML; - } - - public final boolean isDefaultWML() { - return this.isDefaultWML; - } - - - public final boolean isXHTMLType() { - return isXHTMLType; - } - - public final boolean isWMLType() { - return isWMLType; - } - - public final boolean useInternalModel() { - return useInternalModel; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java deleted file mode 100644 index 3cd71ff2e7..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistry.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import java.util.Enumeration; -import java.util.Hashtable; - -/** - */ -public class HTMLDocumentTypeRegistry { - - private static HTMLDocumentTypeRegistry instance = null; - private Hashtable entries = null; - private HTMLDocumentTypeEntry defaultEntry = null; - private HTMLDocumentTypeEntry defaultXHTMLEntry = null; - private HTMLDocumentTypeEntry defaultWMLEntry = null; - private HTMLDocumentTypeEntry defaultCHTMLEntry = null; - - final static int DEFAULT_HTML = 0; - final static int DEFAULT_XHTML = 1; - final static int DEFAULT_WML = 2; - final static int DEFAULT_CHTML = 3; - - public static final String CHTML_PUBLIC_ID = "-//W3C//DTD Compact HTML 1.0 Draft//EN";//$NON-NLS-1$ - - /** - */ - private HTMLDocumentTypeRegistry() { - super(); - - this.entries = new Hashtable(); - // HTML 4.01 - String name = "HTML";//$NON-NLS-1$ - String publicId = "-//W3C//DTD HTML 4.01 Transitional//EN";//$NON-NLS-1$ - String systemId = "http://www.w3.org/TR/html4/loose.dtd";//$NON-NLS-1$ - String displayName = "HTML 4.01 Transitional"; //$NON-NLS-1$ - this.defaultEntry = new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, false, displayName, false, false, false, true); - this.entries.put(publicId, this.defaultEntry); - publicId = "-//W3C//DTD HTML 4.01//EN";//$NON-NLS-1$ - systemId = "http://www.w3.org/TR/html4/strict.dtd";//$NON-NLS-1$ - displayName = "HTML 4.01 Strict"; //$NON-NLS-1$ - this.entries.put(publicId, new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, false, displayName, false, false, false, true)); - publicId = "-//W3C//DTD HTML 4.01 Frameset//EN";//$NON-NLS-1$ - systemId = "http://www.w3.org/TR/html4/frameset.dtd";//$NON-NLS-1$ - displayName = "HTML 4.01 Frameset"; //$NON-NLS-1$ - this.entries.put(publicId, new HTMLDocumentTypeEntry(name, publicId, systemId, null, false, true, displayName, false, false, false, true)); - // CHTML - name = "HTML";//$NON-NLS-1$ - publicId = CHTML_PUBLIC_ID; - displayName = "Compact HTML 1.0 Draft"; //$NON-NLS-1$ - this.defaultCHTMLEntry = new HTMLDocumentTypeEntry(name, publicId, null, null, false, false, displayName, false, false, false, true); - this.entries.put(publicId, this.defaultCHTMLEntry); - - HTMLDocumentTypeRegistryReader reader = new HTMLDocumentTypeRegistryReader(); - if (reader != null) - reader.readRegistry(this); - } - - /** - */ - void regist(String pid, HTMLDocumentTypeEntry doctype) { - if (pid == null || doctype == null) - return; - this.entries.put(pid, doctype); - if (this.defaultXHTMLEntry == null) { - if (doctype.isDefaultXHTML()) - this.defaultXHTMLEntry = doctype; - } - if (this.defaultWMLEntry == null) { - if (doctype.isDefaultWML()) - this.defaultWMLEntry = doctype; - } - } - - /** - * - */ - public HTMLDocumentTypeEntry getDefaultEntry(int type) { - HTMLDocumentTypeEntry entry = null; - switch (type) { - case DEFAULT_XHTML : - entry = this.defaultXHTMLEntry; - break; - case DEFAULT_WML : - entry = this.defaultWMLEntry; - break; - case DEFAULT_CHTML : - entry = this.defaultCHTMLEntry; - break; - case DEFAULT_HTML : - default : - entry = this.defaultEntry; - break; - } - return entry; - } - - /** - * - */ - public HTMLDocumentTypeEntry getDefaultEntry() { - return this.defaultEntry; - } - - /** - */ - public HTMLDocumentTypeEntry getXHTMLDefaultEntry() { - return this.defaultXHTMLEntry; - } - - /** - */ - public Enumeration getEntries() { - return this.entries.elements(); - } - - /** - */ - public HTMLDocumentTypeEntry getEntry(String publicId) { - if (publicId == null) - return null; - return (HTMLDocumentTypeEntry) this.entries.get(publicId); - } - - /** - */ - public synchronized static HTMLDocumentTypeRegistry getInstance() { - if (instance == null) - instance = new HTMLDocumentTypeRegistry(); - return instance; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java deleted file mode 100644 index f419978fad..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.Platform; - -/** - */ -class HTMLDocumentTypeRegistryReader { - - // - private final static String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$ - private final static String EXTENSION_POINT_ID = "documentTypes"; //$NON-NLS-1$ - private final static String TAG_NAME = "documentType"; //$NON-NLS-1$ - private final static String ATT_PID = "publicID"; //$NON-NLS-1$ - private final static String ATT_SID = "systemID"; //$NON-NLS-1$ - private final static String ATT_IS_XHTML = "isXHTML"; //$NON-NLS-1$ - private final static String ATT_IS_WML = "isWML"; //$NON-NLS-1$ - private final static String ATT_HAS_FRAMESET = "hasFrameset"; //$NON-NLS-1$ - private final static String ATT_NSURI = "namespaceURI"; //$NON-NLS-1$ - private final static String ATT_ENAME = "elementName"; //$NON-NLS-1$ - private final static String ATT_DNAME = "displayName"; //$NON-NLS-1$ - private final static String ATT_IS_DEFAULT_XHTML = "defaultXHTML"; //$NON-NLS-1$ - private final static String ATT_IS_DEFAULT_WML = "defaultWML"; //$NON-NLS-1$ - private final static String ATV_TRUE = "true"; //$NON-NLS-1$ - private final static String ATV_NULL_STRING = ""; //$NON-NLS-1$ - - /** - */ - HTMLDocumentTypeRegistryReader() { - super(); - } - - /** - */ - void readRegistry(HTMLDocumentTypeRegistry reg) { - if (reg == null) - return; - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint point = registry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID); - if (point != null) { - IConfigurationElement[] elements = point.getConfigurationElements(); - for (int i = 0; i < elements.length; i++) { - HTMLDocumentTypeEntry doctype = readElement(elements[i]); - // null can be returned if there's an error reading the element - if (doctype != null) { - reg.regist(doctype.getPublicId(), doctype); - } - } - } - } - - /** - */ - private HTMLDocumentTypeEntry readElement(IConfigurationElement element) { - HTMLDocumentTypeEntry doctype = null; - String pid = null; - String sid = null; - String nsuri = null; - String root = null; - boolean xhtml = true; - boolean frameset = false; - String dname = null; - boolean defaultXhtml = false; - boolean defaultWML = false; - boolean isWML = false; - - if (element.getName().equals(TAG_NAME)) { - pid = element.getAttribute(ATT_PID); - // publicID attribute is mandatory. - if (pid == null || pid.equals(ATV_NULL_STRING)) - return null; - - sid = element.getAttribute(ATT_SID); - nsuri = element.getAttribute(ATT_NSURI); - root = element.getAttribute(ATT_ENAME); - xhtml = getBoolean(element, ATT_IS_XHTML); - frameset = getBoolean(element, ATT_HAS_FRAMESET); - dname = element.getAttribute(ATT_DNAME); - defaultXhtml = getBoolean(element, ATT_IS_DEFAULT_XHTML); - defaultWML = getBoolean(element, ATT_IS_DEFAULT_WML); - isWML = getBoolean(element, ATT_IS_WML); - doctype = new HTMLDocumentTypeEntry(root, pid, sid, nsuri, xhtml, frameset, dname, defaultXhtml, defaultWML, isWML); - } - return doctype; - } - - /** - */ - private boolean getBoolean(IConfigurationElement element, String att) { - String value = element.getAttribute(att); - if (value != null && value.equals(ATV_TRUE)) - return true; - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java deleted file mode 100644 index 6e30557274..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java +++ /dev/null @@ -1,356 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; -import org.eclipse.wst.xml.core.internal.document.CMNodeUtil; -import org.eclipse.wst.xml.core.internal.document.ModelParserAdapter; -import org.eclipse.wst.xml.core.internal.document.TagAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * HTMLDocumentImpl class - */ -public class HTMLModelParserAdapter implements ModelParserAdapter { - /** - * note: I made public, temparily, so could be used by JSPLoader - */ - protected HTMLModelParserAdapter() { - super(); - } - - private boolean shouldTerminateAt(CMElementDeclaration parent, CMElementDeclaration child) { - if (!parent.supports(HTMLCMProperties.TERMINATORS)) - return false; - java.util.Iterator i = (java.util.Iterator) parent.getProperty(HTMLCMProperties.TERMINATORS); - if (i == null) - return false; - String nextName = child.getElementName(); - while (i.hasNext()) { - // NOTE: CMElementDeclaration of child is not always HTMLCMElementDeclaration. - // It might be one of based on DTD (for XHTML element). So, comparison must - // be performed ignoring case. - // -- 3/20/2002 - String terminator = (String) i.next(); - if (terminator == null) - continue; - if (nextName.equalsIgnoreCase(terminator)) - return true; - } - return false; - } - - /** - */ - public boolean canContain(Element element, Node child) { - if (element == null || child == null) - return false; - IDOMElement impl = (IDOMElement) element; - - if (child.getNodeType() == Node.ELEMENT_NODE) { - if (!impl.isGlobalTag()) - return true; // non HTML tag - IDOMElement childElement = (IDOMElement) child; - - CMElementDeclaration myDec = CMNodeUtil.getElementDeclaration(element); - if (myDec == null) - return true; - //if (!(myDec instanceof HTMLElementDeclaration)) return true; - if (myDec.getContentType() == CMElementDeclaration.EMPTY) - return false; - - if (!childElement.isGlobalTag()) - return true; // non HTML tag - CMElementDeclaration childDec = CMNodeUtil.getElementDeclaration(childElement); - if (childDec == null) - return true; - //if (!(childDec instanceof HTMLElementDeclaration)) return true; - - if (myDec instanceof HTMLElementDeclaration) { - if (((Boolean) ((HTMLElementDeclaration) myDec).getProperty(HTMLCMProperties.IS_JSP)).booleanValue()) - return true; - } - if (shouldTerminateAt(myDec, childDec) && !isValidChild(myDec, childDec)) { - return false; - } - - String tagName = impl.getTagName(); - if (tagName == null) - return true; - String childName = childElement.getTagName(); - if (childName == null) - return true; - if (!impl.hasStartTag() && !impl.hasEndTag()) { - // implicit element - if (tagName.equalsIgnoreCase(childElement.getTagName())) - return false; - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD)) { - if (!childName.equalsIgnoreCase(HTML40Namespace.ElementName.META) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.TITLE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE) && !childName.equalsIgnoreCase(HTML40Namespace.ElementName.ISINDEX)) { - return false; - } - } - - Node parent = element.getParentNode(); - if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) { - IDOMElement parentElement = (IDOMElement) parent; - if (!parentElement.hasStartTag() && !parentElement.hasEndTag()) { - if (!canContain(parentElement, child)) - return false; - } - } - return true; - } - - // contexual termination for TABLE content tags - boolean isTableContent = false; - if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT)) { - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE)) - return true; - isTableContent = true; - } - else if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TR)) { - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE)) - return true; - isTableContent = true; - } - else if (childName.equalsIgnoreCase(HTML40Namespace.ElementName.TD) || childName.equalsIgnoreCase(HTML40Namespace.ElementName.TH)) { - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TR) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TBODY) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.THEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TFOOT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE)) - return true; - isTableContent = true; - } - if (isTableContent) { - // TABLE content tags should terminate non TABLE content tags, - // if in TABLE - for (Node parent = element.getParentNode(); parent != null; parent = parent.getParentNode()) { - if (parent.getNodeType() != Node.ELEMENT_NODE) - break; - IDOMElement parentElement = (IDOMElement) parent; - String parentName = parentElement.getTagName(); - if (parentName == null) - continue; - if (parentName.equalsIgnoreCase(HTML40Namespace.ElementName.TABLE)) - return false; - } - } - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.EMBED)) { - if (!childName.equalsIgnoreCase(HTML40Namespace.ElementName.NOEMBED)) - return false; - } - } - else if (child.getNodeType() == Node.TEXT_NODE) { - String tagName = impl.getTagName(); - if (tagName != null && tagName.equalsIgnoreCase(HTML40Namespace.ElementName.EMBED)) { - IDOMText text = (IDOMText) child; - if (!text.isElementContentWhitespace()) - return false; - } - } - else if (child.getNodeType() == Node.DOCUMENT_TYPE_NODE) { - if (impl.isImplicitTag()) - return false; - } - - return true; - } - - /** - */ - public boolean canBeImplicitTag(Element element) { - return false; - } - - /** - */ - public boolean canBeImplicitTag(Element element, Node child) { - return false; - } - - /** - */ - public Element createCommentElement(Document document, String data, boolean isJSPTag) { - if (document == null || data == null || data.length() == 0) - return null; - - return createMetaElement(document, data, isJSPTag); - } - - /** - * This routine create an implicit Element for given parent and child, - * such as HTML, BODY, HEAD, and TBODY for HTML document. - */ - public Element createImplicitElement(Document document, Node parent, Node child) { - return null; - } - - /** - */ - private Element createMetaElement(Document document, String data, boolean isJSPTag) { - if (data == null || data.length() == 0) - return null; - - TagScanner scanner = new TagScanner(data, 0, true); // one line - String name = scanner.nextName(); - if (name == null || !name.equalsIgnoreCase(MetaData.METADATA)) - return null; - - String type = null; - boolean isStartSpan = false; - boolean isEndSpan = false; - name = scanner.nextName(); - while (name != null) { - String value = scanner.nextValue(); - if (name.equalsIgnoreCase(MetaData.TYPE)) { - if (value == null) - return null; - if (value.equalsIgnoreCase(MetaData.DESIGNER_CONTROL)) { - type = MetaData.DESIGNER_CONTROL; - } - else if (value.equalsIgnoreCase(MetaData.DYNAMIC_DATA)) { - type = MetaData.DYNAMIC_DATA; - } - else if (value.equalsIgnoreCase(MetaData.AUTHOR_TIME_VISUAL)) { - type = MetaData.AUTHOR_TIME_VISUAL; - } - else if (value.equalsIgnoreCase(MetaData.ANNOTATION)) { - type = MetaData.ANNOTATION; - } - else { - return null; - } - } - else if (name.equalsIgnoreCase(MetaData.STARTSPAN)) { - isStartSpan = true; - } - else if (name.equalsIgnoreCase(MetaData.ENDSPAN)) { - if (!isStartSpan) - isEndSpan = true; - } - name = scanner.nextName(); - } - if (type == null) - return null; - if (!isStartSpan && !isEndSpan) - return null; - String metaData = null; - int offset = scanner.getNextOffset(); // skip new line - if (offset < data.length()) - metaData = data.substring(offset); - if (metaData == null) - metaData = new String(); - - IDOMElement element = (IDOMElement) document.createElement(MetaData.PREFIX + type); - - MetaDataAdapter adapter = new MetaDataAdapter(type); - if (isStartSpan) { - if (metaData != null) - adapter.setData(metaData); - } - else { - if (metaData != null) - adapter.setEndData(metaData); - } - element.addAdapter(adapter); - adapter.setElement(element); - element.setJSPTag(isJSPTag); - - return element; - } - - /** - */ - public String getFindRootName(String tagName) { - if (tagName == null) - return null; - // tag matching should not beyond TABLE tag except BODY tag - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BODY)) - return null; - return HTML40Namespace.ElementName.TABLE; - } - - /** - */ - public boolean isAdapterForType(Object type) { - return (type == ModelParserAdapter.class); - } - - /** - */ - public boolean isEndTag(IDOMElement element) { - TagAdapter adapter = (TagAdapter) element.getExistingAdapter(TagAdapter.class); - if (adapter != null) - return adapter.isEndTag(); - return element.isEndTag(); - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - // do nothing on notifiy change - // TODO: this means good candidate for regular platform adapter - } - - private static boolean isValidChild(CMElementDeclaration parent, CMElementDeclaration child) { - if (parent == null || child == null) - return false; - CMContent content = parent.getContent(); - if (content == null) - return false; - return isChild(content, child); - } - - /** - */ - private static boolean isChild(CMContent content, CMElementDeclaration target) { - switch (content.getNodeType()) { - case CMNode.ELEMENT_DECLARATION : - return isSameDeclaration((CMElementDeclaration) content, target); - case CMNode.GROUP : - CMNodeList children = ((CMGroup) content).getChildNodes(); - for (int i = 0; i < children.getLength(); i++) { - CMNode child = children.item(i); - switch (child.getNodeType()) { - case CMNode.ELEMENT_DECLARATION : - if (isSameDeclaration((CMElementDeclaration) child, target)) - return true; - continue; // Go next child. - case CMNode.GROUP : - if (isChild((CMContent) child, target)) - return true; - continue; // Go next child. - default : - continue; // Go next child. - } - } - } - return false; - } - - /** - */ - private static boolean isSameDeclaration(CMElementDeclaration aDec, CMElementDeclaration otherDec) { - return aDec.getElementName() == otherDec.getElementName(); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java deleted file mode 100644 index 98765e8d3b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.document.ModelParserAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; - -/** - */ -public class HTMLModelParserAdapterFactory implements INodeAdapterFactory { - - private static HTMLModelParserAdapterFactory instance = null; - - /** - */ - private HTMLModelParserAdapterFactory() { - super(); - } - - /** - * Method that returns the adapter associated with the given object. It - * may be a singleton or not ... depending on the needs of the - * INodeAdapter ... but in general it is recommended for an adapter to be - * stateless, so the efficiencies of a singleton can be gained. - * - * The implementation of this method should call addAdapter on the adapted - * object with the correct instance of the adapter. - */ - public INodeAdapter adapt(INodeNotifier notifier) { - INodeAdapter adapter = null; - if (notifier != null) { - if (notifier instanceof IDOMDocument) { - adapter = notifier.getExistingAdapter(ModelParserAdapter.class); - if (adapter == null) { - adapter = new HTMLModelParserAdapter(); - notifier.addAdapter(adapter); - } - } - } - return adapter; - - } - - /** - */ - public synchronized static HTMLModelParserAdapterFactory getInstance() { - if (instance == null) - instance = new HTMLModelParserAdapterFactory(); - return instance; - } - - /** - */ - public boolean isFactoryForType(Object type) { - return (type == ModelParserAdapter.class); - } - - /** - */ - public void release() { - // no state to cleanup - } - - /** - * Overriding copy method - */ - public INodeAdapterFactory copy() { - return getInstance(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java deleted file mode 100644 index a05758c072..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -/** - */ -public interface MetaData { - - static final String METADATA = "METADATA";//$NON-NLS-1$ - static final String TYPE = "type";//$NON-NLS-1$ - static final String STARTSPAN = "startspan";//$NON-NLS-1$ - static final String ENDSPAN = "endspan";//$NON-NLS-1$ - static final String DESIGNER_CONTROL = "DesignerControl";//$NON-NLS-1$ - static final String DYNAMIC_DATA = "DynamicData";//$NON-NLS-1$ - static final String AUTHOR_TIME_VISUAL = "AuthorTimeVisual";//$NON-NLS-1$ - static final String ANNOTATION = "Annotation";//$NON-NLS-1$ - static final String PREFIX = "METADATA:";//$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java deleted file mode 100644 index 9b8596e610..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java +++ /dev/null @@ -1,301 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import java.util.Iterator; - -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.xml.core.internal.document.TagAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -/** - */ -public class MetaDataAdapter implements TagAdapter, MetaData { - - private IDOMElement element = null; - private String type = null; - private String data = null; - private String endData = null; - - /** - */ - public MetaDataAdapter(String type) { - super(); - - if (type != null) { - if (type.equals(ANNOTATION)) { - this.type = ANNOTATION; - } - else if (type.equals(AUTHOR_TIME_VISUAL)) { - this.type = AUTHOR_TIME_VISUAL; - } - else { - this.type = type; - } - } - } - - /** - */ - private String getData(IStructuredDocumentRegion flatNode) { - if (flatNode == null) - return null; - ITextRegionList regions = flatNode.getRegions(); - if (regions == null) - return null; - - String data = null; - Iterator e = regions.iterator(); - while (e.hasNext()) { - ITextRegion region = (ITextRegion) e.next(); - String regionType = region.getType(); - if (isCommentText(regionType)) { - data = flatNode.getText(region); - break; - } - } - if (data == null) - return null; - int length = data.length(); - int offset = 0; - for (; offset < length; offset++) { - char c = data.charAt(offset); - if (c == '\r' || c == '\n') { - offset++; - break; - } - } - for (; offset < length; offset++) { - char c = data.charAt(offset); - if (c != '\r' && c != '\n') { - break; - } - } - return data.substring(offset); - } - - private boolean isCommentText(String regionType) { - boolean result = false; - result = isDOMComment(regionType) || isNestedContentComment(regionType); - return result; - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on - * "nestedContext". - */ - - private boolean isNestedContentComment(String regionType) { - final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$ - return regionType.equals(JSP_COMMENT_TEXT); - } - - private boolean isDOMComment(String regionType) { - return regionType == DOMRegionContext.XML_COMMENT_TEXT; - } - - public String getData() { - if (this.element == null) - return null; - IStructuredDocumentRegion flatNode = this.element.getStartStructuredDocumentRegion(); - if (flatNode == null) - return null; - if (this.data != null) - return this.data; - return getData(flatNode); - } - - /** - */ - private String getDelimiter(IDOMModel model) { - String delim = null; - if (model != null) { - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument != null) - delim = structuredDocument.getLineDelimiter(); - } - if (delim == null) - delim = "\r\n";//$NON-NLS-1$ - return delim; - } - - /** - */ - public String getEndData() { - if (this.element == null) - return null; - IStructuredDocumentRegion flatNode = this.element.getEndStructuredDocumentRegion(); - if (flatNode == null) - return null; - if (this.endData != null) - return this.endData; - return getData(flatNode); - } - - /** - */ - public String getEndTag(IDOMElement element) { - StringBuffer buffer = new StringBuffer(); - if (element.isJSPTag()) - buffer.append("<%--");//$NON-NLS-1$ - else - buffer.append("<!--");//$NON-NLS-1$ - buffer.append(METADATA); - buffer.append(' '); - buffer.append(TYPE); - buffer.append("=\"");//$NON-NLS-1$ - buffer.append(this.type); - buffer.append("\" ");//$NON-NLS-1$ - buffer.append(MetaData.ENDSPAN); - String data = getEndData(); - if (data != null && data.length() > 0) { - String delim = getDelimiter(element.getModel()); - buffer.append(delim); - buffer.append(data); - buffer.append(delim); - } - if (element.isJSPTag()) - buffer.append("--%>");//$NON-NLS-1$ - else - buffer.append("-->");//$NON-NLS-1$ - - return buffer.toString(); - } - - /** - */ - public String getStartTag(IDOMElement element) { - StringBuffer buffer = new StringBuffer(); - if (element.isJSPTag()) - buffer.append("<%--");//$NON-NLS-1$ - else - buffer.append("<!--");//$NON-NLS-1$ - buffer.append(METADATA); - buffer.append(' '); - buffer.append(TYPE); - buffer.append("=\"");//$NON-NLS-1$ - buffer.append(this.type); - buffer.append("\" ");//$NON-NLS-1$ - buffer.append(MetaData.STARTSPAN); - String data = getData(); - if (data != null && data.length() > 0) { - String delim = getDelimiter(element.getModel()); - buffer.append(delim); - buffer.append(data); - buffer.append(delim); - } - if (element.isJSPTag()) - buffer.append("--%>");//$NON-NLS-1$ - else - buffer.append("-->");//$NON-NLS-1$ - - return buffer.toString(); - } - - /** - */ - public String getType() { - return this.type; - } - - /** - */ - public boolean isAdapterForType(Object type) { - return (type == TagAdapter.class || type == MetaDataAdapter.class); - } - - /** - */ - public boolean isEndTag() { - if (this.element == null) - return false; - if (this.element.hasStartTag()) - return false; - if (this.element.hasEndTag()) - return true; - if (this.data != null) - return false; - return (this.endData != null); - } - - /** - */ - public boolean isRuntimeContainer() { - return (this.type == ANNOTATION || this.type == AUTHOR_TIME_VISUAL); - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - } - - /** - */ - public void setData(String data) { - this.data = data; - - if (this.element != null) - this.element.notifyStartTagChanged(); - } - - /** - */ - public void setEndData(String data) { - this.endData = data; - - if (this.element != null) - this.element.notifyEndTagChanged(); - } - - /** - */ - public void setElement(IDOMElement element) { - this.element = element; - - if (this.element != null) { - this.element.setCommentTag(true); - if (this.type != MetaData.ANNOTATION) { - this.element.setJSPTag(true); - } - } - } - - /** - */ - public void setRuntimeSource(String source) { - if (source == null) - return; - if (this.element == null) - return; - if (isRuntimeContainer()) - return; - - IDOMModel model = this.element.getModel(); - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - int offset = this.element.getStartEndOffset(); - int end = this.element.getEndStartOffset(); - int length = end - offset; - structuredDocument.replaceText(model, offset, length, source); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java deleted file mode 100644 index 4cbd5096b2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -/** - */ -class TagScanner { - - private String tag = null; - private int offset = 0; - private int length = 0; - private boolean oneLine = false; - - /** - */ - TagScanner(String tag, int offset) { - super(); - - this.tag = tag; - this.offset = offset; - if (tag != null) - this.length = tag.length(); - } - - /** - */ - TagScanner(String tag, int offset, boolean oneLine) { - this(tag, offset); - - this.oneLine = oneLine; - } - - /** - */ - int getNextOffset() { - for (; this.offset < this.length; this.offset++) { - char c = this.tag.charAt(this.offset); - if (!isEnd(c)) - break; - } - return this.offset; - } - - /** - */ - int getOffset() { - return this.offset; - } - - /** - */ - private final boolean isEnd(char c) { - return (this.oneLine && (c == '\r' || c == '\n')); - } - - /** - */ - private static boolean isEqual(char c) { - return (c == '='); - } - - /** - */ - private static boolean isQuote(char c) { - return (c == '"' || c == '\''); - } - - /** - */ - private static boolean isSpace(char c) { - return Character.isWhitespace(c); - } - - /** - */ - private char nextChar() { - for (; this.offset < this.length; this.offset++) { - char c = this.tag.charAt(this.offset); - if (isEnd(c)) - break; - if (!isSpace(c)) - return c; - } - return 0; - } - - /** - */ - String nextName() { - if (this.tag == null) - return null; - if (this.offset >= this.length) - return null; - - if (nextChar() == 0) - return null; - - int nameOffset = this.offset; - for (; this.offset < this.length; this.offset++) { - char c = this.tag.charAt(this.offset); - if (isEnd(c) || isSpace(c)) - break; - if (isEqual(c) && this.offset > nameOffset) - break; - } - if (this.offset == nameOffset) - return null; - - return this.tag.substring(nameOffset, this.offset); - } - - /** - */ - String nextValue() { - if (this.tag == null) - return null; - if (this.offset >= this.length) - return null; - - char seperator = nextChar(); - if (!isEqual(seperator)) - return null; - this.offset++; // skip '=' - char quote = nextChar(); - if (quote == 0) - return null; - if (isQuote(quote)) - this.offset++; - else - quote = 0; - - int valueOffset = this.offset; - for (; this.offset < this.length; this.offset++) { - char c = this.tag.charAt(this.offset); - if (isEnd(c)) { - quote = 0; - break; - } - if (quote == 0) { - if (isSpace(c)) - break; - } - else { - if (c == quote) - break; - } - } - int valueEnd = this.offset; - if (quote != 0 && this.offset < this.length) - this.offset++; - if (valueEnd == valueOffset) - return null; - - return this.tag.substring(valueOffset, valueEnd); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java deleted file mode 100644 index ec6053fe0c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.document; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.document.TagAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; - -/** - */ -public class UnknownTagAdapter implements TagAdapter { - - private String startTag = null; - private String endTag = null; - - /** - */ - public UnknownTagAdapter() { - super(); - } - - /** - */ - public String getEndTag(IDOMElement element) { - String tag = null; - if (this.endTag != null) { - tag = this.endTag; - this.endTag = null; - } - return tag; - } - - /** - */ - public String getStartTag(IDOMElement element) { - String tag = null; - if (this.startTag != null) { - tag = this.startTag; - this.startTag = null; - } - return tag; - } - - /** - */ - public boolean isAdapterForType(Object type) { - return (type == TagAdapter.class); - } - - /** - */ - public boolean isEndTag() { - return false; - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - } - - /** - */ - public void setEndTag(String endTag) { - this.endTag = endTag; - } - - /** - */ - public void setStartTag(String startTag) { - this.startTag = startTag; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java deleted file mode 100644 index 40d3692252..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.encoding; - -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.html.core.internal.contenttype.HTMLResourceEncodingDetector; -import org.eclipse.wst.sse.core.internal.document.DocumentReader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; - -/** - * This class parses beginning portion of HTML file to get the encoding value - * in a META tag. Example: - * <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - * - * Note: even though, technically, a META tag must come in a <HEAD>tag, we - * don't check for that, under the assumption that whatever, or whereever, the - * the first <META>tag is, it is the one intended to be used by the user, and - * they may just be trying to repair the error. The HTML validator will tell - * them if its in the wrong location. - * - */ -public class HTMLDocumentCharsetDetector extends HTMLResourceEncodingDetector implements IDocumentCharsetDetector { - - - public HTMLDocumentCharsetDetector() { - super(); - } - - public void set(IDocument document) { - set(new DocumentReader(document, 0)); - - - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java deleted file mode 100644 index 8027e3c5f6..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.encoding; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.text.IDocumentPartitioner; -import org.eclipse.wst.html.core.internal.contenttype.EncodingGuesser; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory; -import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory; -import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForHTML; -import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML; -import org.eclipse.wst.html.core.internal.text.StructuredTextPartitionerForHTML; -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.document.AbstractDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory; -import org.eclipse.wst.sse.core.internal.encoding.ContentTypeEncodingPreferences; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker; -import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.document.IEncodedDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument; -import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser; -import org.eclipse.wst.xml.core.internal.parser.XMLStructuredDocumentReParser; -import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -public class HTMLDocumentLoader extends AbstractDocumentLoader { - - public HTMLDocumentLoader() { - super(); - } - - /** - * Convenience method to add tag names using BlockMarker object - */ - protected void addHTMLishTag(XMLSourceParser parser, String tagname) { - BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false); - parser.addBlockMarker(bm); - } - - /** - * Default encoding. For HTML, there is no spec. - */ - protected String getSpecDefaultEncoding() { - return null; - } - - /** - * @return java.lang.String - * @param string - * byte[] - * @param length - * int - * - * Do automatic encoding detection by guess - */ - protected String getEncodingNameByGuess(byte[] string, int length) { - final String ianaEnc = EncodingGuesser.guessEncoding(string, length); - return ianaEnc; - } - - /* - * @see AbstractLoader#createNewStructuredDocument() - */ - protected IEncodedDocument newEncodedDocument() { - IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser()); - ((BasicStructuredDocument) structuredDocument).setReParser(new XMLStructuredDocumentReParser()); - - return structuredDocument; - } - - /* - * @see IModelLoader#getParser() - */ - public RegionParser getParser() { - XMLSourceParser parser = new XMLSourceParser(); - // for the "static HTML" case, we need to initialize - // Blocktags here. - addHTMLishTag(parser, "script"); //$NON-NLS-1$ - addHTMLishTag(parser, "style"); //$NON-NLS-1$ - return parser; - } - - /** - * This method must return those factories which must be attached to the - * structuredModel before content is applied. - */ - public List getAdapterFactories() { - List result = new ArrayList(); - INodeAdapterFactory factory = null; - factory = StyleAdapterFactory.getInstance(); - result.add(factory); - factory = HTMLStyleSelectorAdapterFactory.getInstance(); - result.add(factory); - factory = new HTMLDocumentTypeAdapterFactory(); - result.add(factory); - factory = HTMLModelParserAdapterFactory.getInstance(); - result.add(factory); - // - factory = new ModelQueryAdapterFactoryForHTML(); - result.add(factory); - - factory = new PropagatingAdapterFactoryImpl(); - result.add(factory); - - - return result; - } - - protected String getPreferredNewLineDelimiter(IFile file) { - String delimiter = ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(ContentTypeIdForHTML.ContentTypeID_HTML); - if (delimiter == null) - delimiter = super.getPreferredNewLineDelimiter(file); - return delimiter; - } - - public IDocumentCharsetDetector getDocumentEncodingDetector() { - if (fDocumentEncodingDetector == null) { - fDocumentEncodingDetector = new HTMLDocumentCharsetDetector(); - } - return fDocumentEncodingDetector; - } - - protected void preLoadAdapt(IStructuredModel structuredModel) { - // DMW: just added this preload on 8/16/2002 - // I noticed the ProagatingAdapterFactory was being added, - // that that the ProagatingAdapterAdapter was not being - // preload adapted -- I'm assuing it ALWAYS has to be. - IDOMModel domModel = (IDOMModel) structuredModel; - // if there is a model in the adapter, this will adapt it to - // first node. After that the PropagatingAdater spreads over the - // children being - // created. Each time that happends, a side effect is to - // also "spread" sprecific registered adapters, - // they two can propigate is needed. - ((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class); - } - - public IDocumentPartitioner getDefaultDocumentPartitioner() { - return new StructuredTextPartitionerForHTML(); - } - - public IDocumentLoader newInstance() { - return new HTMLDocumentLoader(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java deleted file mode 100644 index 398b15466e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.encoding; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory; -import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory; -import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForHTML; -import org.eclipse.wst.sse.core.internal.PropagatingAdapter; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker; -import org.eclipse.wst.sse.core.internal.model.AbstractModelLoader; -import org.eclipse.wst.sse.core.internal.provisional.IModelLoader; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.util.Debug; -import org.eclipse.wst.xml.core.internal.DebugAdapterFactory; -import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser; -import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -public class HTMLModelLoader extends AbstractModelLoader { - - - public HTMLModelLoader() { - super(); - } - - /** - * Convenience method to add tag names using BlockMarker object - */ - protected void addHTMLishTag(XMLSourceParser parser, String tagname) { - BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false); - parser.addBlockMarker(bm); - } - - public IStructuredModel newModel() { - DOMStyleModelImpl model = new DOMStyleModelImpl(); - return model; - } - - /** - * This method must return those factories which must be attached to the - * structuredModel before content is applied. - */ - public List getAdapterFactories() { - List result = new ArrayList(); - INodeAdapterFactory factory = null; - factory = StyleAdapterFactory.getInstance(); - result.add(factory); - factory = HTMLStyleSelectorAdapterFactory.getInstance(); - result.add(factory); - factory = new HTMLDocumentTypeAdapterFactory(); - result.add(factory); - factory = HTMLModelParserAdapterFactory.getInstance(); - result.add(factory); - // - factory = new ModelQueryAdapterFactoryForHTML(); - result.add(factory); - - factory = new PropagatingAdapterFactoryImpl(); - result.add(factory); - - - return result; - } - - protected void preLoadAdapt(IStructuredModel structuredModel) { - super.preLoadAdapt(structuredModel); - // DMW: just added this preload on 8/16/2002 - // I noticed the ProagatingAdapterFactory was being added, - // that that the ProagatingAdapterAdapter was not being - // preload adapted -- I'm assuing it ALWAYS has to be. - IDOMModel domModel = (IDOMModel) structuredModel; - // if there is a model in the adapter, this will adapt it to - // first node. After that the PropagatingAdater spreads over the - // children being - // created. Each time that happends, a side effect is to - // also "spread" sprecific registered adapters, - // they two can propigate is needed. - ((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class); - if (Debug.debugNotificationAndEvents) { - PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) domModel.getDocument()).getAdapterFor(PropagatingAdapter.class); - propagatingAdapter.addAdaptOnCreateFactory(new DebugAdapterFactory()); - } } - - public IModelLoader newInstance() { - return new HTMLModelLoader(); - } - - public IDocumentLoader getDocumentLoader() { - if (documentLoaderInstance == null) { - documentLoaderInstance = new HTMLDocumentLoader(); - } - return documentLoaderInstance; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java deleted file mode 100644 index 74ec679e83..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - - - -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; - -// nakamori_TODO: check and remove - -public class EmbeddedCSSFormatter extends HTMLFormatter { - - // private IAdapterFactory factory = new - // CSSSourceFormatterFactory(CSSSourceFormatter.class, true); - /** - */ - protected EmbeddedCSSFormatter() { - super(); - } - - /** - */ - protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - IDOMText text = (IDOMText) node; - - String source = getCSSContent(node); - if (source == null) { // fallback - source = text.getSource(); - } - - int offset = text.getStartOffset(); - int length = text.getEndOffset() - offset; - replaceSource(text.getModel(), offset, length, source); - setWidth(contraints, source); - } - - /** - */ - private String getCSSContent(IDOMNode text) { - ICSSModel model = getCSSModel(text); - if (model == null) - return null; - ICSSNode document = model.getDocument(); - if (document == null) - return null; - INodeNotifier notifier = (INodeNotifier) document; - CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class); - // try another way to get formatter - if (formatter == null) - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier); - if (formatter == null) - return null; - StringBuffer buffer = formatter.format(document); - if (buffer == null) - return null; - return buffer.toString(); - } - - /** - */ - private ICSSModel getCSSModel(IDOMNode text) { - if (text == null) - return null; - INodeNotifier notifier = (INodeNotifier) text.getParentNode(); - if (notifier == null) - return null; - INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleSheetAdapter)) - return null; - IStyleSheetAdapter styleAdapter = (IStyleSheetAdapter) adapter; - return styleAdapter.getModel(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java deleted file mode 100644 index abb85b7e6c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java +++ /dev/null @@ -1,390 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Attr; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -// nakamori_TODO: check and remove CSS formatting - -public class HTMLElementFormatter extends HTMLFormatter { - - /** - */ - protected HTMLElementFormatter() { - super(); - } - - /** - */ - private void compressTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region) { - int offset = region.getTextEnd(); - int count = region.getEnd() - offset; - if (count == 1) { - String source = flatNode.getFullText(region); - int start = region.getStart(); - if (source != null && source.charAt(offset - start) == ' ') { - // nothing to do - return; - } - } - replaceSource(flatNode, offset, count, " ");//$NON-NLS-1$ - } - - /** - */ - private void formatEndTag(IDOMElement element, HTMLFormatContraints contraints) { - Node lastChild = element.getLastChild(); - - if (lastChild != null && lastChild instanceof IDOMElement && lastChild.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$ - insertBreakAfter((IDOMElement) lastChild, contraints); - return; - } - - - IStructuredDocumentRegion endStructuredDocumentRegion = element.getEndStructuredDocumentRegion(); - if (endStructuredDocumentRegion == null) - return; - - if (element.isJSPTag() || element.isCommentTag()) { - String endTag = endStructuredDocumentRegion.getText(); - if (endTag != null && endTag.length() > 0) { - setWidth(contraints, endTag); - } - return; - } - - ITextRegion prevRegion = null; - ITextRegionList regions = endStructuredDocumentRegion.getRegions(); - Iterator e = regions.iterator(); - while (e.hasNext()) { - ITextRegion region = (ITextRegion) e.next(); - if (region == null) - continue; - String regionType = region.getType(); - if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTag(regionType)) { - if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_END_TAG_OPEN) { - removeTailingSpaces(endStructuredDocumentRegion, prevRegion); - } - } - else if (regionType == DOMRegionContext.XML_TAG_CLOSE) { - if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_NAME || isNestedRootTag(prevRegion.getType()))) { - removeTailingSpaces(endStructuredDocumentRegion, prevRegion); - } - } - prevRegion = region; - } - if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_NAME || isNestedRootTag(prevRegion.getType()))) { - removeTailingSpaces(endStructuredDocumentRegion, prevRegion); - } - - // BUG123890 (end tag length was already prefactored into - // formatStartTag so no need to do it here) - // String newEndTag = endStructuredDocumentRegion.getText(); - // if (newEndTag != null && newEndTag.length() > 0) { - // setWidth(contraints, newEndTag); - // } - } - - /** - */ - protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - IDOMElement element = (IDOMElement) node; - - formatStartTag(element, contraints); - - formatChildNodes(element, contraints); - - formatEndTag(element, contraints); - } - - /** - */ - private void formatStartTag(IDOMElement element, HTMLFormatContraints contraints) { - - if (element.getNodeName().equals("jsp:scriptlet")) { //$NON-NLS-1$ - insertBreakBefore(element, contraints); - return; - } - - IStructuredDocumentRegion startStructuredDocumentRegion = element.getStartStructuredDocumentRegion(); - if (startStructuredDocumentRegion == null) - return; - - // We should format attributes in JSPTag? - // if (element.isJSPTag() || element.isCommentTag()) { - if (element.isCommentTag()) { - String startTag = startStructuredDocumentRegion.getText(); - if (startTag != null && startTag.length() > 0) { - setWidth(contraints, startTag); - } - return; - } - - // first process style attribute - if (element.isGlobalTag()) { - Attr attr = element.getAttributeNode("style");//$NON-NLS-1$ - if (attr != null) - formatStyleAttr(attr); - } - boolean insertBreak = false; - insertBreak = ((StructuredFormatPreferencesXML) getFormatPreferences()).getSplitMultiAttrs(); - boolean alignEndBracket = ((StructuredFormatPreferencesXML) getFormatPreferences()).isAlignEndBracket(); - boolean attributesSplitted = false; - - if (insertBreak) { - NamedNodeMap attributes = element.getAttributes(); - if (attributes == null || attributes.getLength() < 2) - insertBreak = false; - } - String breakSpaces = getBreakSpaces(element); - String originalBreakSpaces = breakSpaces; - String indent = getIndent(); - if (indent != null && indent.length() > 0) { - breakSpaces += indent; - } - ITextRegion lastBreakRegion = null; - - ITextRegion prevRegion = null; - ITextRegionList regions = startStructuredDocumentRegion.getRegions(); - Iterator e = regions.iterator(); - while (e.hasNext()) { - ITextRegion region = (ITextRegion) e.next(); - if (region == null) - continue; - - ITextRegion breakRegion = null; - - String regionType = region.getType(); - if (regionType == DOMRegionContext.XML_TAG_NAME || isNestedTag(regionType)) { - if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_OPEN) { - removeTailingSpaces(startStructuredDocumentRegion, prevRegion); - } - breakRegion = region; - } - else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { - if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) { - // attribute name without value - breakRegion = prevRegion; - } - } - else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) { - if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) { - removeTailingSpaces(startStructuredDocumentRegion, prevRegion); - } - } - else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) { - if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) { - removeTailingSpaces(startStructuredDocumentRegion, prevRegion); - } - breakRegion = region; - } - else if (regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) { - if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) { - // attribute name without value - breakRegion = prevRegion; - } - } - - if (breakRegion != null) { - int end = breakRegion.getTextEnd(); - if (lastBreakRegion != null) { - int offset = lastBreakRegion.getEnd(); - int count = end - offset; - if (insertBreak || !isWidthAvailable(contraints, count + 1)) { - replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces); - setWidth(contraints, breakSpaces); - attributesSplitted = true; - } - else { - compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion); - addWidth(contraints, 1); - } - addWidth(contraints, count); - } - else { - addWidth(contraints, end); - } - lastBreakRegion = breakRegion; - } - - prevRegion = region; - } - if (prevRegion != null && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)) { - // attribute name without value - int end = prevRegion.getTextEnd(); - if (lastBreakRegion != null) { - int offset = lastBreakRegion.getEnd(); - int count = end - offset; - if (insertBreak || !isWidthAvailable(contraints, count + 1)) { - replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces); - setWidth(contraints, breakSpaces); - attributesSplitted = true; - } - else { - compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion); - addWidth(contraints, 1); - } - addWidth(contraints, count); - } - else { - addWidth(contraints, end); - } - lastBreakRegion = prevRegion; - } - - if (lastBreakRegion != null) { - int offset = lastBreakRegion.getTextEnd(); - int count = startStructuredDocumentRegion.getLength() - offset; - if (prevRegion != null && prevRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) { - compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion); - count++; - } - else { - removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion); - // BUG123890 (pre-factor in end tag) - count += element.getTagName().length() + 3; - } - addWidth(contraints, count); - } - else { - addWidth(contraints, startStructuredDocumentRegion.getLength()); - } - // BUG113584 - align last bracket - if (alignEndBracket && attributesSplitted) { - removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion); - replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, originalBreakSpaces); - contraints.setAvailableLineWidth(getLineWidth() - originalBreakSpaces.length() - 1); - } - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on - * "nestedContext". - */ - private boolean isNestedTag(String regionType) { - final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$ - final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$ - boolean result = regionType.equals(JSP_ROOT_TAG_NAME) || regionType.equals(JSP_DIRECTIVE_NAME); - return result; - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on - * "nestedContext". - */ - private boolean isNestedRootTag(String regionType) { - final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$ - boolean result = regionType.equals(JSP_ROOT_TAG_NAME); - return result; - } - - - /** - */ - private void formatStyleAttr(Attr attr) { - if (attr == null) - return; - String value = getCSSValue(attr); - if (value == null) - return; - String oldValue = ((IDOMNode) attr).getValueSource(); - if (oldValue != null && value.equals(oldValue)) - return; - attr.setValue(value); - } - - /** - */ - private ICSSModel getCSSModel(Attr attr) { - if (attr == null) - return null; - INodeNotifier notifier = (INodeNotifier) attr.getOwnerElement(); - if (notifier == null) - return null; - INodeAdapter adapter = notifier.getAdapterFor(IStyleDeclarationAdapter.class); - if (adapter == null) - return null; - if (!(adapter instanceof IStyleDeclarationAdapter)) - return null; - IStyleDeclarationAdapter styleAdapter = (IStyleDeclarationAdapter) adapter; - return styleAdapter.getModel(); - } - - /** - */ - private String getCSSValue(Attr attr) { - ICSSModel model = getCSSModel(attr); - if (model == null) - return null; - ICSSNode document = model.getDocument(); - if (document == null) - return null; - INodeNotifier notifier = (INodeNotifier) document; - CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class); - // try another way to get formatter - if (formatter == null) - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier); - if (formatter == null) - return null; - StringBuffer buffer = formatter.format(document); - if (buffer == null) - return null; - return buffer.toString(); - } - - /** - */ - private void removeTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region) { - int offset = region.getTextEnd(); - int count = region.getEnd() - offset; - if (count <= 0) - return; - replaceSource(flatNode, offset, count, null); - } - - /** - */ - private void replaceTailingSpaces(IStructuredDocumentRegion flatNode, ITextRegion region, String spaces) { - int offset = region.getTextEnd(); - int count = region.getEnd() - offset; - if (count == spaces.length()) { - String source = flatNode.getFullText(region); - if (source != null && source.endsWith(spaces)) { - // nothing to do - return; - } - } - replaceSource(flatNode, offset, count, spaces); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java deleted file mode 100644 index bf81533ea5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - -import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.format.StructuredFormatContraints; - -/** - * @deprecated - * Please un-deprecate this if Page Designer thinks they are needed. - */ -public class HTMLFormatContraintsImpl extends StructuredFormatContraints implements HTMLFormatContraints { - protected int fAvailableLineWidth; - - /** - * @deprecated - * It's very hard to keep the available line width accurate. - * Sometimes a node wants to start on a new line, sometimes it doesn't. - * It's best for the node to figure out the available line width on the fly. - */ - public int getAvailableLineWidth() { - return fAvailableLineWidth; - } - - /** - * @deprecated - * It's very hard to keep the available line width accurate. - * Sometimes a node wants to start on a new line, sometimes it doesn't. - * It's best for the node to figure out the available line width on the fly. - */ - public void setAvailableLineWidth(int availableLineWidth) { - fAvailableLineWidth = availableLineWidth; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java deleted file mode 100644 index 0552bc2d5e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML; -import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; -import org.w3c.dom.Node; - -public class HTMLFormatProcessorImpl extends FormatProcessorXML { - protected String getFileExtension() { - return "html"; //$NON-NLS-1$ - } - - protected IStructuredFormatter getFormatter(Node node) { - IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(node, getFormatPreferences()); - - return formatter; - } - - public IStructuredFormatPreferences getFormatPreferences() { - if (fFormatPreferences == null) { - fFormatPreferences = new StructuredFormatPreferencesXML(); - - Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); - if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); - ((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); - ((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); - - char indentChar = ' '; - String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); - if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); - - StringBuffer indent = new StringBuffer(); - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - fFormatPreferences.setIndent(indent.toString()); - } - } - - return fFormatPreferences; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java deleted file mode 100644 index 3642881354..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java +++ /dev/null @@ -1,749 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.Text; - -public class HTMLFormatter implements IStructuredFormatter { - - private static final String HTML_NAME = "html";//$NON-NLS-1$ - private static final String BODY_NAME = "BODY";//$NON-NLS-1$ - // hidden jsp logic that should be removed when jsp formatter is created - private static final String JSP = "jsp";//$NON-NLS-1$ - - /** - */ - protected void addWidth(HTMLFormatContraints contraints, int width) { - if (contraints == null) - return; - if (!splitLines() || getLineWidth() < 0) - return; - - int availableWidth = contraints.getAvailableLineWidth() - width; - if (availableWidth < 0) - availableWidth = 0; - contraints.setAvailableLineWidth(availableWidth); - } - - /** - */ - protected boolean canFormatChild(Node node) { - while (node != null) { - if (node.getNodeType() != Node.ELEMENT_NODE) - return true; - CMElementDeclaration decl = getElementDeclaration((Element) node); - if (decl != null) { - if (decl.getContentType() == CMElementDeclaration.CDATA) - return false; - if (decl.supports(HTMLCMProperties.SHOULD_KEEP_SPACE)) { - boolean shouldKeepSpace = ((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_KEEP_SPACE)).booleanValue(); - if (shouldKeepSpace) - return false; - } - } - node = node.getParentNode(); - } - return false; - } - - /** - */ - protected boolean canInsertBreakAfter(CMElementDeclaration decl) { - if (decl == null) - return false; - if (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT)) - return false; - String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT); - if (hint == null) - return false; - return (hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END) || hint.equals(HTMLCMProperties.Values.BREAK_AFTER_START)); - } - - /** - */ - protected boolean canInsertBreakAfter(Node node) { - if (node == null) - return false; - Node parent = node.getParentNode(); - if (parent == null) - return false; - Node next = node.getNextSibling(); - - // special exception if this node is a non-HTML tag (like JSP - // elements) - // BUG188093 - only preserve whitespace for jsp (not custom) tags - String prefix = node.getPrefix(); - if (prefix != null && JSP.equals(prefix)) { - boolean canInsertBreakAfter = false; - // if a whitespace does not exist after it, do not add one - if (next != null && next.getNodeType() == Node.TEXT_NODE) { - String theText = ((Text) next).getData(); - if (theText != null && theText.length() > 0) { - char theChar = theText.charAt(0); - canInsertBreakAfter = Character.isWhitespace(theChar); - } - } - // if cannot insert break, go ahead and return false (otherwise, - // continue processing) - if (!canInsertBreakAfter) - return false; - } - - // special exception if next node is a non-HTML tag (like JSP - // elements) - // BUG188093 - only preserve whitespace for jsp (not custom) tags - if (next != null) { - prefix = next.getPrefix(); - if (prefix != null && JSP.equals(prefix)) { - boolean canInsertBreakAfterPrevious = false; - // if a whitespace does not exist before it, do not add one - if (node.getNodeType() == Node.TEXT_NODE) { - String theText = ((Text) node).getData(); - if (theText != null && theText.length() > 0) { - char theChar = theText.charAt(theText.length() - 1); - canInsertBreakAfterPrevious = Character.isWhitespace(theChar); - } - } - // if cannot insert break, go ahead and return false - // (otherwise, - // continue processing) - if (!canInsertBreakAfterPrevious) - return false; - } - } - if (parent.getNodeType() == Node.DOCUMENT_NODE) { - if (node.getNodeType() == Node.ELEMENT_NODE) { - // do not insert break after unclosed tag - if (!((IDOMElement) node).isClosed()) - return false; - } - return true; - } - else if (parent.getNodeType() == Node.ELEMENT_NODE) { - IDOMElement element = (IDOMElement) parent; - // do not insert break before missing end tag - if (next == null && element.getEndStructuredDocumentRegion() == null) - return false; - - // insert line break under non-HTML elements including JSP - // elements - if (element.getPrefix() != null) - return true; - - CMElementDeclaration decl = getElementDeclaration(element); - if (decl != null) { - if (decl.getContentType() == CMElementDeclaration.ELEMENT) - return true; - String tagName = element.getTagName(); - // special for direct children under BODY - if (tagName != null && tagName.equalsIgnoreCase(BODY_NAME)) - return true; - } - } - - if (node.getNodeType() == Node.ELEMENT_NODE) { - IDOMElement element = (IDOMElement) node; - CMElementDeclaration decl = getElementDeclaration(element); - if (canInsertBreakAfter(decl)) { - // spcial for BR - return canFormatChild(parent); - } - } - if (next != null && next.getNodeType() == Node.ELEMENT_NODE) { - CMElementDeclaration decl = getElementDeclaration((Element) next); - if (canInsertBreakBefore(decl)) - return true; - } - return false; - } - - /** - */ - protected boolean canInsertBreakBefore(CMElementDeclaration decl) { - if (decl == null) - return false; - if (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT)) - return false; - String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT); - if (hint == null) - return false; - return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END); - } - - /** - */ - protected boolean canInsertBreakBefore(Node node) { - if (node == null) - return false; - Node parent = node.getParentNode(); - if (parent == null) - return false; - Node prev = node.getPreviousSibling(); - - // special exception if this node is a non-HTML tag (like JSP - // elements) - // BUG188093 - only preserve whitespace for jsp (not custom) tags - String prefix = node.getPrefix(); - if (prefix != null && JSP.equals(prefix)) { - boolean canInsertBreakBefore = false; - // if a whitespace does not exist before it, do not add one - if (prev != null && prev.getNodeType() == Node.TEXT_NODE) { - String theText = ((Text) prev).getData(); - if (theText != null && theText.length() > 0) { - char theChar = theText.charAt(theText.length() - 1); - canInsertBreakBefore = Character.isWhitespace(theChar); - } - } - // if cannot insert break, go ahead and return false (otherwise, - // continue processing) - if (!canInsertBreakBefore) - return false; - } - - // special exception if previous node is a non-HTML tag (like JSP - // elements) - // BUG188093 - only preserve whitespace for jsp (not custom) tags - if (prev != null) { - prefix = prev.getPrefix(); - if (prefix != null && JSP.equals(prefix)) { - boolean canInsertBreakBeforeNext = false; - // if a whitespace does not exist after it, do not add one - if (node.getNodeType() == Node.TEXT_NODE) { - String theText = ((Text) node).getData(); - if (theText != null && theText.length() > 0) { - char theChar = theText.charAt(0); - canInsertBreakBeforeNext = Character.isWhitespace(theChar); - } - } - // if cannot insert break, go ahead and return false - // (otherwise, - // continue processing) - if (!canInsertBreakBeforeNext) - return false; - } - } - - if (parent.getNodeType() == Node.DOCUMENT_NODE) { - if (prev == null) - return false; - return true; - } - else if (parent.getNodeType() == Node.ELEMENT_NODE) { - IDOMElement element = (IDOMElement) parent; - // do not insert break after missing start tag - if (prev == null && element.getStartStructuredDocumentRegion() == null) - return false; - - // insert line break under non-HTML elements including JSP - // elements - if (element.getPrefix() != null) - return true; - - CMElementDeclaration decl = getElementDeclaration(element); - if (decl != null) { - if (decl.getContentType() == CMElementDeclaration.ELEMENT) - return true; - String tagName = element.getTagName(); - // special for direct children under BODY - if (tagName != null && tagName.equalsIgnoreCase(BODY_NAME)) - return true; - } - } - - if (node.getNodeType() == Node.ELEMENT_NODE) { - CMElementDeclaration decl = getElementDeclaration((Element) node); - if (canInsertBreakBefore(decl)) - return true; - } - if (prev != null && prev.getNodeType() == Node.ELEMENT_NODE) { - CMElementDeclaration decl = getElementDeclaration((Element) prev); - if (canInsertBreakAfter(decl)) { - // spcial for BR - return canFormatChild(parent); - } - } - return false; - } - - /** - */ - public void format(Node node) { - format(node, getFormatContraints()); - } - - /** - */ - public void format(Node node, IStructuredFormatContraints contraints) { - if (node instanceof IDOMNode && contraints instanceof HTMLFormatContraints) - format((IDOMNode) node, (HTMLFormatContraints) contraints); - } - - public void format(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - if (node.getParentNode() == null) - return; // do not format removed node - - setWidth(contraints, node); - - if (canInsertBreakBefore(node)) - insertBreakBefore(node, contraints); - - formatNode(node, contraints); - - if (canInsertBreakAfter(node)) - insertBreakAfter(node, contraints); - } - - /** - */ - protected void formatChildNodes(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - if (!node.hasChildNodes()) - return; - - // concat adjacent texts - node.normalize(); - - // disable sibling indent during formatting all the children - boolean indent = false; - if (contraints != null) { - indent = contraints.getFormatWithSiblingIndent(); - contraints.setFormatWithSiblingIndent(false); - } - - boolean insertBreak = true; - IDOMNode child = (IDOMNode) node.getFirstChild(); - while (child != null) { - if (child.getParentNode() != node) - break; - IDOMNode next = (IDOMNode) child.getNextSibling(); - - if (insertBreak && canInsertBreakBefore(child)) { - insertBreakBefore(child, contraints); - } - - IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(child, getFormatPreferences()); - if (formatter != null) { - if (formatter instanceof HTMLFormatter) { - HTMLFormatter htmlFormatter = (HTMLFormatter) formatter; - htmlFormatter.formatNode(child, contraints); - } - else { - formatter.format(child); - } - } - - if (canInsertBreakAfter(child)) { - insertBreakAfter(child, contraints); - insertBreak = false; // not to insert twice - } - else { - insertBreak = true; - } - - child = next; - } - - if (contraints != null) - contraints.setFormatWithSiblingIndent(indent); - } - - /** - */ - protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - - if (node.hasChildNodes()) { // container - formatChildNodes(node, contraints); - } - else { // leaf - IStructuredDocumentRegion flatNode = node.getStartStructuredDocumentRegion(); - if (flatNode != null) { - String source = flatNode.getText(); - if (source != null && source.length() > 0) { - setWidth(contraints, source); - } - } - } - } - - /** - */ - protected String getBreakSpaces(Node node) { - if (node == null) - return null; - StringBuffer buffer = new StringBuffer(); - - String delim = ((IDOMNode) node).getModel().getStructuredDocument().getLineDelimiter(); - if (delim != null && delim.length() > 0) - buffer.append(delim); - - String indent = getIndent(); - if (indent != null && indent.length() > 0) { - for (Node parent = node.getParentNode(); parent != null; parent = parent.getParentNode()) { - if (parent.getNodeType() != Node.ELEMENT_NODE) - break; - // ignore omitted tag - if (((IDOMNode) parent).getStartStructuredDocumentRegion() == null) - continue; - - IDOMElement element = (IDOMElement) parent; - if (element.getPrefix() != null) { - String localName = element.getLocalName(); - // special for html:html - if (localName != null && !localName.equals(HTML_NAME)) { - buffer.append(indent); - } - continue; - } - - CMElementDeclaration decl = getElementDeclaration(element); - if (decl != null && decl.supports(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)) { - boolean shouldIndent = ((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_INDENT_CHILD_SOURCE)).booleanValue(); - if (shouldIndent) - buffer.append(indent); - } - - } - } - - return buffer.toString(); - } - - /** - */ - protected String getIndent() { - return getFormatPreferences().getIndent(); - } - - /** - */ - protected int getLineWidth() { - return getFormatPreferences().getLineWidth(); - } - - /** - */ - protected CMElementDeclaration getElementDeclaration(Element element) { - if (element == null) - return null; - Document document = element.getOwnerDocument(); - if (document == null) - return null; - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery == null) - return null; - return modelQuery.getCMElementDeclaration(element); - } - - /** - */ - protected void insertBreakAfter(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - if (node.getNodeType() == Node.TEXT_NODE) - return; - // don't insert break if node is on the last line - int documentLength = node.getStructuredDocument().getLength(); - if (documentLength < 1 || (node.getEndOffset() >= (documentLength - 1))) - return; - Node parent = node.getParentNode(); - if (parent == null) - return; - Node next = node.getNextSibling(); - - String spaces = null; - if (next == null) { // last spaces - // use parent indent for the end tag - spaces = getBreakSpaces(parent); - } - else if (next.getNodeType() == Node.TEXT_NODE) { - if (contraints != null && contraints.getFormatWithSiblingIndent()) { - IDOMNode text = (IDOMNode) next; - IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(text, getFormatPreferences()); - if (formatter instanceof HTMLTextFormatter) { - HTMLTextFormatter textFormatter = (HTMLTextFormatter) formatter; - textFormatter.formatText(text, contraints, HTMLTextFormatter.FORMAT_HEAD); - } - } - return; - } - else { - spaces = getBreakSpaces(node); - } - if (spaces == null || spaces.length() == 0) - return; - - replaceSource(node.getModel(), node.getEndOffset(), 0, spaces); - setWidth(contraints, spaces); - } - - /** - */ - protected void insertBreakBefore(IDOMNode node, HTMLFormatContraints contraints) { - if (node == null) - return; - if (node.getNodeType() == Node.TEXT_NODE) - return; - Node parent = node.getParentNode(); - if (parent == null) - return; - Node prev = node.getPreviousSibling(); - - String spaces = null; - if (prev != null && prev.getNodeType() == Node.TEXT_NODE) { - if (contraints != null && contraints.getFormatWithSiblingIndent()) { - IDOMNode text = (IDOMNode) prev; - IStructuredFormatter formatter = HTMLFormatterFactory.getInstance().createFormatter(text, getFormatPreferences()); - if (formatter instanceof HTMLTextFormatter) { - HTMLTextFormatter textFormatter = (HTMLTextFormatter) formatter; - textFormatter.formatText(text, contraints, HTMLTextFormatter.FORMAT_TAIL); - } - } - return; - } - else { - spaces = getBreakSpaces(node); - } - if (spaces == null || spaces.length() == 0) - return; - - replaceSource(node.getModel(), node.getStartOffset(), 0, spaces); - setWidth(contraints, spaces); - } - - /** - */ - protected boolean isWidthAvailable(HTMLFormatContraints contraints, int width) { - if (contraints == null) - return true; - if (!splitLines() || getLineWidth() < 0) - return true; - return (contraints.getAvailableLineWidth() >= width); - } - - /** - */ - protected boolean keepBlankLines(HTMLFormatContraints contraints) { - if (contraints == null) - return true; - return (!contraints.getClearAllBlankLines()); - } - - /** - */ - protected void replaceSource(IStructuredDocumentRegion flatNode, int offset, int length, String source) { - if (flatNode == null) - return; - IStructuredDocument structuredDocument = flatNode.getParentDocument(); - if (structuredDocument == null) - return; - if (source == null) - source = new String(); - int startOffset = flatNode.getStartOffset(); - if (structuredDocument.containsReadOnly(startOffset + offset, length)) - return; - // We use 'structuredDocument' as the requester object just so this - // and the other - // format-related 'repalceText' (in replaceSource) can use the same - // requester. - // Otherwise, if requester is not identical, - // the undo group gets "broken" into multiple pieces based - // on the requesters being different. Technically, any unique, common - // requester object would work. - structuredDocument.replaceText(structuredDocument, startOffset + offset, length, source); - } - - /** - */ - protected void replaceSource(IDOMModel model, int offset, int length, String source) { - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - if (source == null) - source = new String(); - if (structuredDocument.containsReadOnly(offset, length)) - return; - // We use 'structuredDocument' as the requester object just so this - // and the other - // format-related 'repalceText' (in replaceSource) can use the same - // requester. - // Otherwise, if requester is not identical, - // the undo group gets "broken" into multiple pieces based - // on the requesters being different. Technically, any unique, common - // requester object would work. - structuredDocument.replaceText(structuredDocument, offset, length, source); - } - - /** - */ - protected void setWidth(HTMLFormatContraints contraints, String source) { - if (contraints == null) - return; - if (source == null) - return; - int length = source.length(); - if (length == 0) - return; - - if (!splitLines()) - return; - int lineWidth = getLineWidth(); - if (lineWidth < 0) - return; - - int offset = source.lastIndexOf('\n'); - int offset2 = source.lastIndexOf('\r'); - if (offset2 > offset) - offset = offset2; - if (offset >= 0) - offset++; - - int availableWidth = 0; - if (offset >= 0) { - availableWidth = lineWidth - (length - offset); - } - else { - availableWidth = contraints.getAvailableLineWidth() - length; - } - if (availableWidth < 0) - availableWidth = 0; - contraints.setAvailableLineWidth(availableWidth); - } - - /** - */ - protected void setWidth(HTMLFormatContraints contraints, Node node) { - if (contraints == null) - return; - if (node == null) - return; - IStructuredDocument structuredDocument = ((IDOMNode) node).getStructuredDocument(); - if (structuredDocument == null) - return; // error - - if (!splitLines()) - return; - int lineWidth = getLineWidth(); - if (lineWidth < 0) - return; - - int offset = ((IDOMNode) node).getStartOffset(); - int line = structuredDocument.getLineOfOffset(offset); - int lineOffset = 0; - try { - lineOffset = structuredDocument.getLineOffset(line); - } - catch (BadLocationException ex) { - return; // error - } - if (lineOffset > offset) - return; // error - - int availableWidth = lineWidth - (offset - lineOffset); - if (availableWidth < 0) - availableWidth = 0; - - contraints.setAvailableLineWidth(availableWidth); - } - - /** - */ - protected boolean splitLines() { - return true;// getFormatPreferences().getSplitLines(); - } - - protected IStructuredFormatPreferences fFormatPreferences = null; - protected HTMLFormatContraints fFormatContraints = null; - protected IProgressMonitor fProgressMonitor = null; - - // public void format(XMLNode node, FormatContraints formatContraints) { - // if (formatContraints.getFormatWithSiblingIndent()) - // formatContraints.setCurrentIndent(getSiblingIndent(node)); - // - // formatNode(node, formatContraints); - // } - - public void setFormatPreferences(IStructuredFormatPreferences formatPreferences) { - fFormatPreferences = formatPreferences; - } - - public IStructuredFormatPreferences getFormatPreferences() { - if (fFormatPreferences == null) { - fFormatPreferences = new StructuredFormatPreferencesXML(); - - Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); - if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); - ((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); - ((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); - - char indentChar = ' '; - String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); - if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); - - StringBuffer indent = new StringBuffer(); - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - fFormatPreferences.setIndent(indent.toString()); - } - } - - return fFormatPreferences; - } - - public IStructuredFormatContraints getFormatContraints() { - if (fFormatContraints == null) { - fFormatContraints = new HTMLFormatContraintsImpl(); - - fFormatContraints.setAvailableLineWidth(getFormatPreferences().getLineWidth()); - fFormatContraints.setClearAllBlankLines(getFormatPreferences().getClearAllBlankLines()); - } - - return fFormatContraints; - } - - public void setProgressMonitor(IProgressMonitor progressMonitor) { - fProgressMonitor = progressMonitor; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java deleted file mode 100644 index d34701a590..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; -import org.w3c.dom.Node; - -// nakamori_TODO: check and remove CSS formatting - -class HTMLFormatterFactory { - private static HTMLFormatterFactory fInstance = null; - protected StructuredFormatPreferencesXML fFormatPreferences = null; - - static synchronized HTMLFormatterFactory getInstance() { - if (fInstance == null) { - fInstance = new HTMLFormatterFactory(); - } - return fInstance; - } - - protected IStructuredFormatter createFormatter(Node node, IStructuredFormatPreferences formatPreferences) { - IStructuredFormatter formatter = null; - - switch (node.getNodeType()) { - case Node.ELEMENT_NODE : - formatter = new HTMLElementFormatter(); - break; - case Node.TEXT_NODE : - if (isEmbeddedCSS(node)) { - formatter = new EmbeddedCSSFormatter(); - } - else { - formatter = new HTMLTextFormatter(); - } - break; - default : - formatter = new HTMLFormatter(); - break; - } - - // init FormatPreferences - formatter.setFormatPreferences(formatPreferences); - - return formatter; - } - - /** - */ - private boolean isEmbeddedCSS(Node node) { - if (node == null) - return false; - Node parent = node.getParentNode(); - if (parent == null) - return false; - if (parent.getNodeType() != Node.ELEMENT_NODE) - return false; - String name = parent.getNodeName(); - if (name == null) - return false; - return name.equalsIgnoreCase("STYLE");//$NON-NLS-1$ - } - - - private HTMLFormatterFactory() { - super(); - } - - protected StructuredFormatPreferencesXML getFormatPreferences() { - if (fFormatPreferences == null) { - fFormatPreferences = new StructuredFormatPreferencesXML(); - - Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); - if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); - fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); - - char indentChar = ' '; - String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); - if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); - - StringBuffer indent = new StringBuffer(); - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - fFormatPreferences.setIndent(indent.toString()); - } - } - - return fFormatPreferences; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java deleted file mode 100644 index 91aefd3c17..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java +++ /dev/null @@ -1,299 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - - - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class HTMLTextFormatter extends HTMLFormatter { - - public static int FORMAT_ALL = 0; - public static int FORMAT_HEAD = 1; - public static int FORMAT_TAIL = 2; - - /** - */ - protected HTMLTextFormatter() { - super(); - } - - /** - */ - private boolean canFormatText(IDOMText text) { - if (text == null) - return false; - - IStructuredDocumentRegion flatNode = text.getFirstStructuredDocumentRegion(); - if (flatNode != null) { - String type = flatNode.getType(); - if (isUnparsedRegion(type)) - return false; - } - - Node parent = text.getParentNode(); - if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) { - IDOMElement element = (IDOMElement) parent; - if (!element.isGlobalTag() && !text.isElementContentWhitespace()) - return false; - } - - return canFormatChild(parent); - } - - private boolean isUnparsedRegion(String type) { - boolean result = isNestedScannedRegion(type) || isBlockScannedRegion(type); - return result; - } - - private boolean isBlockScannedRegion(String type) { - return type == DOMRegionContext.BLOCK_TEXT; - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on - * "nestedContext". - */ - private boolean isNestedScannedRegion(String type) { - final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$ - return type.equals(JSP_CONTENT); - } - - /** - */ - private boolean canRemoveHeadingSpaces(IDOMNode node) { - if (node == null) - return false; - if (node.getPreviousSibling() != null) - return false; - Node parent = node.getParentNode(); - if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE) - return false; - - CMElementDeclaration decl = getElementDeclaration((Element) parent); - if (decl == null || (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT))) - return false; - String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT); - return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END); - } - - /** - */ - private boolean canRemoveTailingSpaces(IDOMNode node) { - if (node == null) - return false; - if (node.getNextSibling() != null) - return false; - Node parent = node.getParentNode(); - if (parent == null || parent.getNodeType() != Node.ELEMENT_NODE) - return false; - - CMElementDeclaration decl = getElementDeclaration((Element) parent); - if (decl == null || (!decl.supports(HTMLCMProperties.LINE_BREAK_HINT))) - return false; - String hint = (String) decl.getProperty(HTMLCMProperties.LINE_BREAK_HINT); - return hint.equals(HTMLCMProperties.Values.BREAK_BEFORE_START_AND_AFTER_END); - } - - /** - */ - protected void formatNode(IDOMNode node, HTMLFormatContraints contraints) { - formatText(node, contraints, FORMAT_ALL); // full format - } - - /** - */ - protected void formatText(IDOMNode node, HTMLFormatContraints contraints, int mode) { - if (node == null) - return; - Node parent = node.getParentNode(); - if (parent == null) - return; - - IDOMText text = (IDOMText) node; - String source = text.getSource(); - - if (!canFormatText(text)) { - setWidth(contraints, source); - return; - } - - int offset = text.getStartOffset(); - int length = text.getEndOffset() - offset; - - // format adjacent text at once - if (mode == FORMAT_HEAD) { - Node next = node.getNextSibling(); - while (next != null && next.getNodeType() == Node.TEXT_NODE) { - IDOMText nextText = (IDOMText) next; - length += (nextText.getEndOffset() - nextText.getStartOffset()); - String nextSource = nextText.getSource(); - if (nextSource != null && nextSource.length() > 0) { - if (source == null) - source = nextSource; - else - source += nextSource; - } - next = next.getNextSibling(); - } - } - else if (mode == FORMAT_TAIL) { - Node prev = node.getPreviousSibling(); - while (prev != null && prev.getNodeType() == Node.TEXT_NODE) { - IDOMText prevText = (IDOMText) prev; - offset = prevText.getStartOffset(); - length += (prevText.getEndOffset() - offset); - String prevSource = prevText.getSource(); - if (prevSource != null && prevSource.length() > 0) { - if (source == null) - source = prevSource; - else - source = prevSource + source; - } - prev = prev.getPreviousSibling(); - } - } - - SpaceConverter converter = new SpaceConverter(source, keepBlankLines(contraints)); - - int wordLength = converter.nextWord(); - if (wordLength == 0) { // only spaces - if (!converter.hasSpaces()) - return; // empty - boolean removeSpaces = false; - if (parent.getNodeType() == Node.ELEMENT_NODE) { - // check if tags are omitted - IDOMNode element = (IDOMNode) parent; - if (node.getPreviousSibling() == null && element.getStartStructuredDocumentRegion() == null) { - removeSpaces = true; - } - else if (node.getNextSibling() == null && element.getEndStructuredDocumentRegion() == null) { - removeSpaces = true; - } - } - if (removeSpaces) { - converter.replaceSpaces(null); - } - else if (!isWidthAvailable(contraints, 2) || canInsertBreakAfter(node) || canInsertBreakBefore(node)) { - String spaces = null; - if (node.getNextSibling() == null) { // last spaces - // use parent indent for the end tag - spaces = getBreakSpaces(parent); - } - else { - spaces = getBreakSpaces(node); - } - converter.replaceSpaces(spaces); - setWidth(contraints, spaces); - } - else if (canRemoveHeadingSpaces(node) || canRemoveTailingSpaces(node)) { - converter.replaceSpaces(null); - } - else { - converter.compressSpaces(); - addWidth(contraints, 1); - } - } - else { - String breakSpaces = null; - - // format heading spaces - boolean hasSpaces = converter.hasSpaces(); - if (mode == FORMAT_TAIL) { - // keep spaces as is - addWidth(contraints, converter.getSpaceCount()); - } - else if ((hasSpaces && !isWidthAvailable(contraints, wordLength + 1)) || canInsertBreakBefore(node)) { - breakSpaces = getBreakSpaces(node); - converter.replaceSpaces(breakSpaces); - setWidth(contraints, breakSpaces); - } - else { - if (hasSpaces) { - if (canRemoveHeadingSpaces(node)) { - converter.replaceSpaces(null); - } - else { - converter.compressSpaces(); - addWidth(contraints, 1); - } - } - } - addWidth(contraints, wordLength); - - // format middle - wordLength = converter.nextWord(); - while (wordLength > 0) { - if (mode != FORMAT_ALL) { - // keep spaces as is - addWidth(contraints, converter.getSpaceCount()); - } - else if (!isWidthAvailable(contraints, wordLength + 1)) { - if (breakSpaces == null) - breakSpaces = getBreakSpaces(node); - converter.replaceSpaces(breakSpaces); - setWidth(contraints, breakSpaces); - } - else { - converter.compressSpaces(); - addWidth(contraints, 1); - } - addWidth(contraints, wordLength); - wordLength = converter.nextWord(); - } - - // format tailing spaces - hasSpaces = converter.hasSpaces(); - if (mode == FORMAT_HEAD) { - // keep spaces as is - addWidth(contraints, converter.getSpaceCount()); - } - else if ((hasSpaces && !isWidthAvailable(contraints, 2)) || canInsertBreakAfter(node)) { - if (node.getNextSibling() == null) { // last test - // use parent indent for the end tag - breakSpaces = getBreakSpaces(parent); - } - else { - if (breakSpaces == null) - breakSpaces = getBreakSpaces(node); - } - converter.replaceSpaces(breakSpaces); - setWidth(contraints, breakSpaces); - } - else { - if (hasSpaces) { - if (canRemoveTailingSpaces(node)) { - converter.replaceSpaces(null); - } - else { - converter.compressSpaces(); - addWidth(contraints, 1); - } - } - } - } - - if (converter.isModified()) { - source = converter.getSource(); - replaceSource(text.getModel(), offset, length, source); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java deleted file mode 100644 index 38f9203a85..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java +++ /dev/null @@ -1,235 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.format; - - - -final class SpaceConverter { - - private String source = null; - private int length = 0; - private int startOffset = 0; - private int endOffset = 0; - private int spaceCount = 0; - private int wordCount = 0; - private StringBuffer buffer = null; - private int lastOffset = 0; - private boolean keepBlankLines = false; - - /** - */ - public SpaceConverter(String source) { - super(); - - if (source == null) { - this.source = new String(); - } - else { - this.source = source; - this.length = source.length(); - } - } - - /** - */ - public SpaceConverter(String source, boolean keepBlankLines) { - super(); - - if (source == null) { - this.source = new String(); - } - else { - this.source = source; - this.length = source.length(); - } - this.keepBlankLines = keepBlankLines; - } - - /** - */ - public void compressSpaces() { - if (this.spaceCount == 0) - return; - if (this.spaceCount == 1 && this.source.charAt(this.startOffset) == ' ') - return; - - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.startOffset > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.startOffset)); - } - - this.buffer.append(' '); - - this.lastOffset = this.startOffset + this.spaceCount; - } - - /** - */ - public String getSource() { - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.length > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.length)); - } - return this.buffer.toString(); - } - - /** - */ - public int getSpaceCount() { - return this.spaceCount; - } - - /** - */ - public boolean hasSpaces() { - return (this.spaceCount > 0); - } - - /** - */ - public boolean isModified() { - return (this.buffer != null); - } - - /** - * Add number of the old blank lines to new space string - */ - private static String mergeBlankLines(String newSpaces, String oldSpaces) { - if (newSpaces == null || newSpaces.length() == 0) - return newSpaces; - if (oldSpaces == null) - return newSpaces; - - // count old new lines - int newLineCount = 0; - int oldLength = oldSpaces.length(); - for (int i = 0; i < oldLength; i++) { - char c = oldSpaces.charAt(i); - if (c == '\r') { - newLineCount++; - if (i + 1 < oldLength) { - c = oldSpaces.charAt(i + 1); - if (c == '\n') - i++; - } - } - else { - if (c == '\n') - newLineCount++; - } - } - if (newLineCount < 2) - return newSpaces; // no blank line - - // here assuming newSpaces starts with a new line if any - String delim = null; - char d = newSpaces.charAt(0); - if (d == '\r') { - if (newSpaces.length() > 1 && newSpaces.charAt(1) == '\n') - delim = "\r\n";//$NON-NLS-1$ - else - delim = "\r";//$NON-NLS-1$ - } - else { - if (d == '\n') - delim = "\n";//$NON-NLS-1$ - else - return newSpaces; // no new line - } - - newLineCount--; - StringBuffer buffer = new StringBuffer(newSpaces.length() + newLineCount * 2); - while (newLineCount > 0) { - buffer.append(delim); - newLineCount--; - } - buffer.append(newSpaces); - return buffer.toString(); - } - - /** - */ - public int nextWord() { - if (this.endOffset == this.length) { - this.startOffset = this.endOffset; - this.spaceCount = 0; - this.wordCount = 0; - return 0; - } - - this.startOffset = this.endOffset; - int i = this.startOffset; - for (; i < this.length; i++) { - if (!Character.isWhitespace(this.source.charAt(i))) - break; - } - this.spaceCount = i - this.startOffset; - - int wordOffset = i; - for (; i < this.length; i++) { - if (Character.isWhitespace(this.source.charAt(i))) - break; - } - this.wordCount = i - wordOffset; - this.endOffset = i; - - return this.wordCount; - } - - /** - */ - public void replaceSpaces(String spaces) { - int spaceLength = (spaces != null ? spaces.length() : 0); - String oldSpaces = null; - if (spaceLength == this.spaceCount) { - if (spaceLength == 0) - return; - if (this.startOffset == 0) { - if (this.source.startsWith(spaces)) - return; - } - else if (this.endOffset == this.length) { - if (this.source.endsWith(spaces)) - return; - } - else { - int textOffset = this.startOffset + this.spaceCount; - oldSpaces = this.source.substring(this.startOffset, textOffset); - if (oldSpaces.equals(spaces)) - return; - } - } - if (this.keepBlankLines && this.spaceCount > 0) { - if (oldSpaces == null) { - int textOffset = this.startOffset + this.spaceCount; - oldSpaces = this.source.substring(this.startOffset, textOffset); - } - if (oldSpaces != null) { - spaces = mergeBlankLines(spaces, oldSpaces); - if (oldSpaces.equals(spaces)) - return; - } - } - - if (this.buffer == null) - this.buffer = new StringBuffer(); - if (this.startOffset > this.lastOffset) { - this.buffer.append(this.source.substring(this.lastOffset, this.startOffset)); - } - - if (spaceLength > 0) - this.buffer.append(spaces); - - this.lastOffset = this.startOffset + this.spaceCount; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java deleted file mode 100644 index 891868cb2f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.document.CSSModelImpl; -import org.eclipse.wst.css.core.internal.provisional.adapters.ICSSModelAdapter; -import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Element; - -/** - */ -public abstract class AbstractCSSModelAdapter implements ICSSModelAdapter { - private final static String CSS_ID = ContentTypeIdForCSS.ContentTypeID_CSS; - - private Element element = null; - private ICSSModel model = null; - - /** - */ - AbstractCSSModelAdapter() { - super(); - } - - /** - */ - protected ICSSModel createModel() { - // create embedded CSS model (not for external CSS) - if (getElement() == null) - return null; - IStructuredModel baseModel = ((IDOMNode) getElement()).getModel(); - ICSSModel newModel = (ICSSModel) baseModel.getModelManager().createUnManagedStructuredModelFor(CSS_ID); - ((CSSModelImpl) newModel).setOwnerDOMNode(getElement()); - return newModel; - } - - /** - */ - public Element getElement() { - return this.element; - } - - /** - */ - protected ICSSModel getExistingModel() { - return this.model; - } - - /** - */ - protected void notifyStyleChanged(Element target) { - INodeNotifier notifier = (INodeNotifier) target; - if (notifier == null) - return; - Collection adapters = notifier.getAdapters(); - if (adapters == null) - return; - Iterator it = adapters.iterator(); - if (it == null) - return; - while (it.hasNext()) { - INodeAdapter adapter = (INodeAdapter) it.next(); - if (adapter instanceof StyleListener) { - StyleListener listener = (StyleListener) adapter; - listener.styleChanged(); - } - } - } - - /** - */ - void setElement(Element element) { - this.element = element; - } - - /** - * check - * 1. If attributes of element is valid (type,rel ...) - * 2. If content model supports this element / attribute (future ?) - */ - protected boolean isValidAttribute() { - return (getElement() != null); - } - - /** - */ - protected void setModel(ICSSModel model) { - this.model = model; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java deleted file mode 100644 index 90514836eb..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractStyleSheetAdapter.java +++ /dev/null @@ -1,249 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004-2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * - * Masaki Saitoh (MSAITOH@jp.ibm.com) - * See Bug 153000 Style Adapters should be lazier - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153000 - * - ********************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.event.ICSSStyleListener; -import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.util.ImportedCollector; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.document.XMLModelNotifier; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.stylesheets.DocumentStyle; -import org.w3c.dom.stylesheets.StyleSheet; -import org.w3c.dom.stylesheets.StyleSheetList; -import org.w3c.dom.traversal.DocumentTraversal; -import org.w3c.dom.traversal.NodeFilter; -import org.w3c.dom.traversal.NodeIterator; - -/** - */ -public abstract class AbstractStyleSheetAdapter extends AbstractCSSModelAdapter implements ICSSStyleListener, IStyleSheetAdapter { - - // this variable to hold the class is just a VAJava trick. - // it improves performance in VAJava by minimizing class loading. - private final Class StyleSheetAdapterClass = IStyleSheetAdapter.class; - private Collection styleChangedNodes; - - /** - */ - protected AbstractStyleSheetAdapter() { - super(); - } - - /** - */ - protected ICSSModel createModel() { - return createModel(true); - } - - /** - */ - protected ICSSModel createModel(boolean notify) { - ICSSModel newModel = super.createModel(); - if (notify && newModel != null) { - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - // notify adapter - if (adapter != null) - adapter.modelProvided(newModel); - } - return newModel; - } - - /** - */ - public StyleSheet getSheet() { - ICSSModel model = getModel(); - if (model == null) - return null; - return (StyleSheet) model.getDocument(); - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return (type == StyleSheetAdapterClass); - } - - /** - */ - public void released() { - ICSSModel currentModel = getModel(); - - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - - setElement(null); - setModel(null); - - if (adapter != null) - adapter.modelReleased(currentModel); - - if (currentModel != null) - currentModel.releaseFromRead(); - } - - /** - */ - public void removed() { - ICSSModel currentModel = getModel(); - - setModel(null); - - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - if (adapter != null) - adapter.modelRemoved(currentModel); - - if (currentModel != null) - currentModel.releaseFromRead(); - } - - /** - * @param srcModel com.ibm.sed.css.model.interfaces.ICSSModel - * @param removed com.ibm.sed.css.model.interfaces.ICSSSelector[] - * @param added com.ibm.sed.css.model.interfaces.ICSSSelector[] - * @param media java.lang.String - */ - public void styleChanged(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) { - Element element = getElement(); - if (element == null) - return; // might released - Document doc = element.getOwnerDocument(); - if (doc == null) - return; // error - - // to notify GEF tree - if (doc instanceof INodeNotifier) { - Collection adapters = ((INodeNotifier) doc).getAdapters(); - if (adapters == null) - return; - Iterator it = adapters.iterator(); - if (it == null) - return; - while (it.hasNext()) { - INodeAdapter adapter = (INodeAdapter) it.next(); - if (adapter instanceof ICSSStyleListener) { - ((ICSSStyleListener) adapter).styleChanged(srcModel, removed, added, media); - } - } - } - // - - if (styleChangedNodes == null) { - styleChangedNodes = new HashSet(); - } - - try { - int removedSelNum = removed != null ? removed.length : 0; - int addedSelNum = added != null ? added.length : 0; - - NodeIterator iter = ((DocumentTraversal) doc).createNodeIterator(doc, NodeFilter.SHOW_ELEMENT, null, true); - Node node; - while ((node = iter.nextNode()) != null) { - if (node.getNodeType() == Node.ELEMENT_NODE) { - Element elm = (Element) node; - boolean match = false; - int i; - for (i = 0; i < removedSelNum && !match; i++) { - match = removed[i].match(elm, null); - } - for (i = 0; i < addedSelNum && !match; i++) { - match = added[i].match(elm, null); - } - if (match) { - if (!styleChangedNodes.contains(elm)) - styleChangedNodes.add(elm); - // notifyStyleChanged(elm); - } - } - } - } - catch (ClassCastException ex) { - // Document doesn't implement DocumentTraversal... - } - - } - - /** - * @param srcModel com.ibm.sed.css.model.interfaces.ICSSModel - */ - public void styleUpdate(ICSSModel srcModel) { - IDOMNode node = (IDOMNode) getElement(); - if (node == null) - return; - IDOMModel model = node.getModel(); - if (model == null) - return; - XMLModelNotifier notifier = model.getModelNotifier(); - if (notifier == null) - return; - - // before updating, all sub-models should be loaded! - DocumentStyle document = (DocumentStyle) model.getDocument(); - StyleSheetList styles = document.getStyleSheets(); - if (styles != null) { - int n = styles.getLength(); - ImportedCollector trav = new ImportedCollector(); - for (int i = 0; i < n; i++) { - org.w3c.dom.stylesheets.StyleSheet sheet = styles.item(i); - if (sheet instanceof ICSSNode) - trav.apply((ICSSNode) sheet); - } - } - - // flash style changed events - if (styleChangedNodes != null) { - Object[] elements = styleChangedNodes.toArray(); - for (int i = 0; elements != null && i < elements.length; i++) - notifyStyleChanged((Element) elements[i]); - styleChangedNodes.clear(); - } - - // to notify GEF tree - if (document instanceof INodeNotifier) { - Collection adapters = ((INodeNotifier) document).getAdapters(); - if (adapters == null) - return; - Iterator it = adapters.iterator(); - if (it == null) - return; - while (it.hasNext()) { - INodeAdapter adapter = (INodeAdapter) it.next(); - if (adapter instanceof ICSSStyleListener) { - ((ICSSStyleListener) adapter).styleUpdate(srcModel); - } - } - } - - notifier.propertyChanged(node); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java deleted file mode 100644 index 1e98f23621..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import java.util.Enumeration; - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.eclipse.wst.css.core.internal.util.CSSLinkConverter; -import org.eclipse.wst.css.core.internal.util.declaration.CSSPropertyContext; - -/** - */ -class CSSQueryContext extends CSSPropertyContext { - - /** - */ - public CSSQueryContext() { - super(); - } - - /** - */ - public CSSQueryContext(ICSSStyleDeclaration decl) { - super(decl); - } - - /** - * - */ - public void applyFull(ICSSStyleDeclaration decl) { - if (decl == null) - return; - Enumeration keys = fProperties.keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - Object val = fProperties.get(key); - - if (val instanceof CSSQueryDeclarationData) { - ICSSStyleDeclItem declItem = ((CSSQueryDeclarationData) val).getDeclItem(); - if (declItem.getLength() <= 0) { - ICSSStyleDeclItem itemToRemove = decl.getDeclItemNode(key.toString()); - if (itemToRemove != null) { - decl.removeDeclItemNode(itemToRemove); - } - } - else { - decl.setDeclItemNode(declItem); - } - } - else { - String value = (val instanceof ICSSValue) ? ((ICSSValue) val).getCSSValueText() : val.toString(); - - if (value == null || value.length() <= 0) { - ICSSStyleDeclItem itemToRemove = decl.getDeclItemNode(key.toString()); - if (itemToRemove != null) { - decl.removeDeclItemNode(itemToRemove); - } - } - else { - decl.setProperty(key.toString(), value, null); - } - } - } - } - - /** - */ - private boolean check(String propName, boolean important, int specificity) { - Object current = fProperties.get(propName); - if (current != null && current instanceof CSSQueryValueData) { - CSSQueryValueData currentValue = (CSSQueryValueData) current; - if ((!important && currentValue.important) || (currentValue.getSpecificity() > specificity)) { - return false; - } - } - return true; - } - - /** - */ - public void overrideWithExpand(ICSSStyleDeclaration decl, int specificity) { - if (decl == null) - return; - - CSSLinkConverter conv = new CSSLinkConverter(decl.getOwnerDocument().getModel()); - - int nProperties = decl.getLength(); - for (int i = 0; i < nProperties; i++) { - String propName = decl.item(i); - if (propName != null) { - String propN = propName.trim().toLowerCase(); - if (propN.length() != 0) { - PropCMProperty prop = PropCMProperty.getInstanceOf(propN); - String priority = decl.getPropertyPriority(propName); - boolean important = priority != null && priority.length() > 0; - if (prop != null && prop.isShorthand()) { - // expand shorthand property - CSSQueryContext context = new CSSQueryContext(); - expandToLeaf(prop, decl.getPropertyValue(propName), context); - - Enumeration properties = context.properties(); - while (properties.hasMoreElements()) { - propN = properties.nextElement().toString(); - if (check(propN, important, specificity)) { - fProperties.put(propN, new CSSQueryValueData(conv.toAbsolute(context.get(propN)), important, specificity)); - } - } - } - else { - if (check(propN, important, specificity)) { - ICSSStyleDeclItem declItem = (ICSSStyleDeclItem) decl.getDeclItemNode(propName).cloneNode(true); - int nValues = declItem.getLength(); - for (int j = 0; j < nValues; j++) { - conv.toAbsolute(declItem.item(j)); - } - declItem.setPriority(null); - fProperties.put(propN, new CSSQueryDeclarationData(declItem, important, specificity)); - } - } - } - } - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java deleted file mode 100644 index 4f6125d0e7..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; - - - -/** - */ -public class CSSQueryDeclarationData extends CSSQueryValueData { - - - ICSSStyleDeclItem declItem; - - public CSSQueryDeclarationData(ICSSStyleDeclItem declItem, boolean imp, int specificity) { - super(null, imp, specificity); - this.declItem = declItem; - } - - /** - */ - ICSSStyleDeclItem getDeclItem() { - return declItem; - } - - /** - */ - public String toString() { - if (value == null && declItem != null) { - value = declItem.getCSSValueText(); - } - return value; - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java deleted file mode 100644 index 860610a6e4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.util.AbstractCssTraverser; -import org.eclipse.wst.css.core.internal.util.CSSStyleDeclarationFactory; -import org.w3c.dom.Element; -import org.w3c.dom.css.ElementCSSInlineStyle; - -/** - */ -public class CSSQueryTraverser extends AbstractCssTraverser { - - private Element element; - private String pseudoName; - private CSSQueryContext context = null; - ICSSStyleDeclaration decl = null; - - /** - */ - public ICSSStyleDeclaration getDeclaration() { - try { - ICSSStyleDeclaration inlineStyle = (ICSSStyleDeclaration) ((ElementCSSInlineStyle) element).getStyle(); - if (inlineStyle != null) { - if (context == null) { - context = new CSSQueryContext(); - } - context.overrideWithExpand(inlineStyle, 10000); - // style attribute's specificity is 100 (in CSS2 spec.) and - // our implement use 100 as base number (see CSSSelector.java) - } - } - catch (ClassCastException ex) { - // element is not ElementCSSInlineStyle ??? - } - if (context == null) - return null; - - if (decl == null) - decl = CSSStyleDeclarationFactory.getInstance().createStyleDeclaration(); - context.applyFull(decl); - return decl; - } - - /** - */ - private void overwriteDeclaration(ICSSStyleDeclaration d, int specificity) { - if (d == null) - return; - if (context == null) - context = new CSSQueryContext(); - context.overrideWithExpand(d, specificity); - } - - /** - */ - protected short postNode(ICSSNode node) { - return TRAV_CONT; - } - - /** - */ - protected short preNode(ICSSNode node) { - if (node instanceof ICSSStyleRule) { - // style rule - ICSSStyleRule style = (ICSSStyleRule) node; - ICSSSelectorList list = style.getSelectors(); - int nSelectors = list.getLength(); - int maxSpecificity = -1; - for (int iSelector = 0; iSelector < nSelectors; iSelector++) { - // Check each Selector Lists - ICSSSelector selector = list.getSelector(iSelector); - int specificity = selector.getSpecificity(); - if (maxSpecificity < specificity && selector.match(element, pseudoName)) { - maxSpecificity = specificity; - } - } - if (maxSpecificity >= 0) { - // apply this style to the element - overwriteDeclaration((ICSSStyleDeclaration) style.getStyle(), maxSpecificity); - } - return TRAV_PRUNE; - } - return TRAV_CONT; - } - - /** - */ - private void resetContext() { - context = null; - } - - /** - */ - public void setElement(Element element, String pseudoName) { - this.element = element; - this.pseudoName = pseudoName; - resetContext(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java deleted file mode 100644 index 6198156a74..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - -import org.eclipse.wst.css.core.internal.util.declaration.ValueData; - - - -/** - */ -class CSSQueryValueData extends ValueData { - - private int specificity; - - /** - */ - public CSSQueryValueData() { - super(); - } - - /** - */ - public CSSQueryValueData(String val, boolean imp) { - super(val, imp); - } - - /** - */ - public CSSQueryValueData(String val, boolean imp, int specificity) { - super(val, imp); - this.specificity = specificity; - } - - /** - */ - int getSpecificity() { - return specificity; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java deleted file mode 100644 index c3883053ce..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java +++ /dev/null @@ -1,398 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.util.CSSClassTraverser; -import org.eclipse.wst.css.core.internal.util.ImportRuleCollector; -import org.eclipse.wst.html.core.internal.contentmodel.JSP11Namespace; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.css.CSSStyleDeclaration; -import org.w3c.dom.stylesheets.StyleSheet; -import org.w3c.dom.stylesheets.StyleSheetList; - - - -/** - */ -public class HTMLDocumentAdapter implements IStyleSheetListAdapter, StyleSheetList { - - private Document document = null; - private Vector styleAdapters = null; - private Vector oldStyleAdapters = null; - - /** - */ - HTMLDocumentAdapter() { - super(); - } - - /** - */ - private void addStyleSheet(Element node) { - IDOMElement element = (IDOMElement) node; - String tagName = element.getTagName(); - if (tagName == null) - return; - boolean isContainer = false; - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.NOSCRIPT) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE) || tagName.equalsIgnoreCase(JSP11Namespace.ElementName.ROOT) || (!element.isGlobalTag() && element.isContainer())) { - isContainer = true; - } - else if (element.isCommentTag()) { - Node parent = element.getParentNode(); - if (parent == element.getOwnerDocument()) { - // This condition is too severe, actually do not work for JSF template. - // But above (! globalTag() && isContainer()) cover JSF template + tpl template - isContainer = true; - } - else if (parent.getNodeType() == Node.ELEMENT_NODE) { - tagName = ((Element) parent).getTagName(); - if (tagName != null && tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD)) { - isContainer = true; - } - } - } - - else { - String localName = element.getLocalName(); - if (localName != null && localName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML)) { - // taglib html tag - isContainer = true; - } - else { - INodeNotifier notifier = element; - INodeAdapter adapter = notifier.getAdapterFor(IStyleSheetAdapter.class); - if (adapter != null && adapter instanceof IStyleSheetAdapter) { - this.styleAdapters.addElement(adapter); - } - } - } - if (isContainer) { - INodeNotifier notifier = element; - if (notifier.getExistingAdapter(IStyleSheetListAdapter.class) == null) { - notifier.addAdapter(this); - } - for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child.getNodeType() != Node.ELEMENT_NODE) - continue; - addStyleSheet((Element) child); - } - } - } - - /** - */ - void childReplaced() { - if (this.styleAdapters == null) - return; - - // backup old adapters to be released on updating in getStyleSheets() - this.oldStyleAdapters = this.styleAdapters; - // invalidate the list - this.styleAdapters = null; - - notifyStyleSheetsChanged(this.document); - } - - /** - */ - public Enumeration getClasses() { - StyleSheetList sheetList = getStyleSheets(); - int nSheets = sheetList.getLength(); - - final ArrayList classes = new ArrayList(); - - CSSClassTraverser traverser = new CSSClassTraverser(); - traverser.setTraverseImported(true); - - for (int i = 0; i < nSheets; i++) { - org.w3c.dom.stylesheets.StyleSheet sheet = sheetList.item(i); - if (sheet instanceof ICSSNode) { - traverser.apply((ICSSNode) sheet); - } - } - classes.addAll(traverser.getClassNames()); - - return new Enumeration() { - int i = 0; - - public boolean hasMoreElements() { - return i < classes.size(); - } - - public Object nextElement() { - return classes.get(i++); - } - }; - } - - /** - */ - private List getValidAdapters() { - Vector validAdapters = new Vector(); - if (this.styleAdapters != null) { - Iterator i = this.styleAdapters.iterator(); - while (i.hasNext()) { - Object obj = i.next(); - if (obj instanceof AbstractStyleSheetAdapter && ((AbstractStyleSheetAdapter) obj).isValidAttribute()) { - validAdapters.add(obj); - } - } - } - return validAdapters; - } - - /** - */ - public int getLength() { - return getValidAdapters().size(); - } - - /** - */ - public CSSStyleDeclaration getOverrideStyle(Element element, String pseudoName) { - StyleSheetList ssl = getStyleSheets(); - int numStyles = ssl.getLength(); - - CSSQueryTraverser query = new CSSQueryTraverser(); - query.setTraverseImported(true); - query.setTraverseImportFirst(true); - query.setElement(element, pseudoName); - - for (int i = 0; i < numStyles; i++) { - // loop for styles (<style> and <link>) - org.w3c.dom.stylesheets.StyleSheet ss = ssl.item(i); - - try { - query.apply((ICSSNode) ss); - } - catch (ClassCastException ex) { - // I can handle only CSS style - } - } - - return query.getDeclaration(); - } - - /** - */ - public StyleSheetList getStyleSheets() { - if (this.styleAdapters == null) { - if (this.document == null) - return null; - - this.styleAdapters = new Vector(); - for (Node child = this.document.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child.getNodeType() != Node.ELEMENT_NODE) - continue; - addStyleSheet((Element) child); - } - - removeOldStyleSheets(); - } - return this; - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return (type == IStyleSheetListAdapter.class); - } - - /** - */ - public StyleSheet item(int index) { - if (this.styleAdapters == null) - return null; - - List validAdapters = getValidAdapters(); - - if (index < 0 || index >= validAdapters.size()) - return null; - StyleSheet sheet = ((IStyleSheetAdapter) validAdapters.get(index)).getSheet(); - if (sheet == null) {// for LINK element whose link is broken - ICSSModel model = ((AbstractStyleSheetAdapter) validAdapters.get(index)).createModel(); - sheet = ((model != null) ? (StyleSheet) model.getDocument() : null); - } - return sheet; - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - Node node = null; - switch (eventType) { - case INodeNotifier.ADD : - node = (Node) newValue; - break; - case INodeNotifier.REMOVE : - node = (Node) oldValue; - break; - case INodeNotifier.CHANGE : - node = (Node) notifier; - break; - default : - break; - } - if (node == null || node.getNodeType() != Node.ELEMENT_NODE) - return; - IDOMElement element = (IDOMElement) node; - String tagName = element.getTagName(); - if (tagName == null) - return; - - if (eventType == INodeNotifier.CHANGE) { - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE)) { - refreshAdapters(); - } - } - else { - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.HEAD) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK) || tagName.equalsIgnoreCase(HTML40Namespace.ElementName.NOSCRIPT) || tagName.equalsIgnoreCase(JSP11Namespace.ElementName.ROOT) || element.isCommentTag() || (!element.isGlobalTag() && element.isContainer())) { - childReplaced(); - } - else if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.BASE)) { - refreshAdapters(); - } - else { - String localName = element.getLocalName(); - if (localName != null && localName.equalsIgnoreCase(HTML40Namespace.ElementName.HTML)) { - // taglib html tag - childReplaced(); - } - } - } - } - - /** - * reload LINK / @import if BASE changed - */ - private void refreshAdapters() { - Iterator iAdapter = this.styleAdapters.iterator(); - while (iAdapter.hasNext()) { - Object adapter = iAdapter.next(); - if (adapter instanceof LinkElementAdapter) { - ((LinkElementAdapter) adapter).refreshSheet(); - } - else if (adapter instanceof StyleElementAdapter) { - ICSSModel model = ((StyleElementAdapter) adapter).getModel(); - ImportRuleCollector trav = new ImportRuleCollector(); - trav.apply(model); - Iterator iRule = trav.getRules().iterator(); - while (iRule.hasNext()) { - ICSSImportRule rule = (ICSSImportRule) iRule.next(); - rule.refreshStyleSheet(); - } - } - } - } - - /** - */ - private void notifyStyleSheetsChanged(Document target) { - INodeNotifier notifier = (INodeNotifier) target; - if (notifier == null) - return; - Collection adapters = notifier.getAdapters(); - if (adapters == null) - return; - Iterator it = adapters.iterator(); - if (it == null) - return; - while (it.hasNext()) { - INodeAdapter adapter = (INodeAdapter) it.next(); - if (adapter instanceof StyleListener) { - StyleListener listener = (StyleListener) adapter; - listener.styleChanged(); - } - } - } - - /** - */ - private void releaseOldStyleSheets() { - if (this.oldStyleAdapters == null) - return; - Iterator it = this.oldStyleAdapters.iterator(); - while (it.hasNext()) { - IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next(); - if (adapter == null) - continue; - // if the same adapter is in the current list, - // do not release - if (this.styleAdapters != null && this.styleAdapters.contains(adapter)) - continue; - adapter.released(); - } - this.oldStyleAdapters = null; - } - - /** - */ - public void releaseStyleSheets() { - releaseOldStyleSheets(); - - if (this.styleAdapters == null) - return; - Iterator it = this.styleAdapters.iterator(); - while (it.hasNext()) { - IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next(); - if (adapter != null) - adapter.released(); - } - this.styleAdapters = null; - } - - /** - */ - private void removeOldStyleSheets() { - if (this.oldStyleAdapters == null) - return; - Iterator it = this.oldStyleAdapters.iterator(); - while (it.hasNext()) { - IStyleSheetAdapter adapter = (IStyleSheetAdapter) it.next(); - if (adapter == null) - continue; - // if the same adapter is in the current list, - // do not release - if (this.styleAdapters != null && this.styleAdapters.contains(adapter)) - continue; - adapter.removed(); - } - this.oldStyleAdapters = null; - } - - /** - */ - void setDocument(Document document) { - this.document = document; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java deleted file mode 100644 index cf58aa4247..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.w3c.dom.Element; - -/** - * Insert the type's description here. - */ -public class HTMLStyleSelectorAdapter implements IStyleSelectorAdapter { - - static private HTMLStyleSelectorAdapter instance; - private Object toMatch = IStyleSelectorAdapter.class; - - public synchronized static HTMLStyleSelectorAdapter getInstance() { - if (instance == null) { - instance = new HTMLStyleSelectorAdapter(); - } - return instance; - } - - public boolean isAdapterForType(Object type) { - return type == toMatch; - } - - public boolean match(ICSSSimpleSelector selector, Element element, String pseudoName) { - if (element == null) - return false; - int i; - String key; - - // PseudoName - i = selector.getNumOfPseudoNames(); - if (i > 0) { - if (pseudoName == null || pseudoName.length() == 0) - return false; - for (i = i - 1; i >= 0; i--) { - if (pseudoName.equalsIgnoreCase(selector.getPseudoName(i))) { - break; - } - } - if (i < 0) - return false; - } - - // check tag name - if (!selector.isUniversal() && !element.getNodeName().equalsIgnoreCase(selector.getName())) - return false; - - // check id - i = selector.getNumOfIDs(); - if (i > 0) { - if (i > 1) - return false; - key = element.getAttribute("id");//$NON-NLS-1$ - if (key == null) - return false; - if (!selector.getID(0).equals(key)) - return false; - } - - // check class - i = selector.getNumOfClasses(); - if (i > 0) { - key = element.getAttribute("class");//$NON-NLS-1$ - if (key == null) - return false; - StringTokenizer tokenizer = new StringTokenizer(key); - for (i = i - 1; i >= 0; i--) { - boolean ok = false; - while (tokenizer.hasMoreTokens()) { - if (selector.getClass(i).equals(tokenizer.nextToken())) { - ok = true; - break; - } - } - if (!ok) - return false; - } - } - - // check attributes - for (i = selector.getNumOfAttributes() - 1; i >= 0; i--) { - StringTokenizer tokenizer = new StringTokenizer(selector.getAttribute(i), "=~| \t\r\n\f");//$NON-NLS-1$ - int countTokens = tokenizer.countTokens(); - if (countTokens > 0) { - String attrValue = element.getAttribute(tokenizer.nextToken()); - if (attrValue == null) - return false; - if (countTokens > 1) { - String token = tokenizer.nextToken("= \t\r\n\f");//$NON-NLS-1$ - StringTokenizer attrValueTokenizer = null; - if (token.equals("~")) {//$NON-NLS-1$ - attrValueTokenizer = new StringTokenizer(attrValue); - } - else if (token.equals("|")) {//$NON-NLS-1$ - attrValueTokenizer = new StringTokenizer(attrValue, "-");//$NON-NLS-1$ - } - if (attrValueTokenizer != null) { - if (tokenizer.hasMoreTokens()) { - token = tokenizer.nextToken(); - boolean ok = false; - while (attrValueTokenizer.hasMoreTokens()) { - if (token.equals(attrValueTokenizer.nextToken())) { - ok = true; - break; - } - } - if (!ok) - return false; - } - } - else { - if (!attrValue.equals(token)) - return false; - } - } - } - } - - return true; - } - - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java deleted file mode 100644 index 57cd685645..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; - -/** - * Insert the type's description here. - */ -public class HTMLStyleSelectorAdapterFactory implements INodeAdapterFactory { - - private static HTMLStyleSelectorAdapterFactory instance; - private Object toMatch = IStyleSelectorAdapter.class; - - /** - * CSSModelProvideAdapterFactory constructor comment. - */ - public HTMLStyleSelectorAdapterFactory() { - super(); - } - - /** - * Method that returns the adapter associated with the given object. - * It may be a singleton or not ... depending on the needs of the INodeAdapter ... - * but in general it is recommended for an adapter to be stateless, - * so the efficiencies of a singleton can be gained. - * - * The implementation of this method should call addAdapter on the adapted - * object with the correct instance of the adapter. - */ - public INodeAdapter adapt(INodeNotifier notifier) { - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSelectorAdapter.class); - if (adapter != null) - return adapter; - adapter = HTMLStyleSelectorAdapter.getInstance(); - notifier.addAdapter(adapter); - return adapter; - } - - public synchronized static HTMLStyleSelectorAdapterFactory getInstance() { - if (instance == null) - instance = new HTMLStyleSelectorAdapterFactory(); - return instance; - } - - /** - * isFactoryForType method comment. - */ - public boolean isFactoryForType(Object type) { - return type == toMatch; - } - - public void release() { - // default is to do nothing - } - - /** - * Overriding copy method - */ - public INodeAdapterFactory copy() { - return getInstance(); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java deleted file mode 100644 index 0c73ac29d2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java +++ /dev/null @@ -1,275 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; -import java.io.IOException; -import java.io.UnsupportedEncodingException; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.util.URIResolver; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - */ -public class LinkElementAdapter extends AbstractStyleSheetAdapter { - - private final static String CSS_ID = ContentTypeIdForCSS.ContentTypeID_CSS; - private boolean replaceModel = true; - // this variable to hold the class is just a VAJava trick. - // it improves performance in VAJava by minimizing class loading. - private final Class ModelProvideAdapterClass = IModelProvideAdapter.class; - - /** - */ - protected LinkElementAdapter() { - super(); - } - - /** - */ - private void attrReplaced() { - this.replaceModel = true; - - Element element = getElement(); - if (element == null) - return; // error - Document document = element.getOwnerDocument(); - if (document == null) - return; // error - INodeNotifier notifier = (INodeNotifier) document; - HTMLDocumentAdapter adapter = (HTMLDocumentAdapter) notifier.getAdapterFor(IStyleSheetListAdapter.class); - if (adapter == null) - return; - adapter.childReplaced(); - } - - protected ICSSModel createModel() { - // create phantom(broken link) external CSS model - if (getElement() == null) - return null; - IStructuredModel baseModel = ((IDOMNode) getElement()).getModel(); - ICSSModel newModel = (ICSSModel) baseModel.getModelManager().createUnManagedStructuredModelFor(CSS_ID); - - // calculate base location and set - // get resolver in Model - URIResolver resolver = baseModel.getResolver(); - - // resolve to absolute url : this need not exact location of css file. It is important that absurl is not null. - String ref = getElement().getAttribute(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_HREF); - String absurl = (resolver != null && ref != null) ? resolver.getLocationByURI(ref, true) : null; - if ((absurl == null) || (absurl.length() == 0)) { - IPath basePath = new Path(baseModel.getBaseLocation()); - URLHelper helper = new URLHelper(basePath.removeLastSegments(1).toString()); - absurl = helper.toAbsolute(ref == null ? "" : ref);//$NON-NLS-1$ - } - if ((absurl == null) || (absurl.length() == 0)) { - absurl = ref; - } - if (absurl == null) { - absurl = "";//$NON-NLS-1$ - } - newModel.setBaseLocation(absurl); - - // set style listener - newModel.addStyleListener(this); - - return newModel; - } - - /** - */ - public ICSSModel getModel() { - ICSSModel model = getExistingModel(); - if (this.replaceModel) { - ICSSModel oldModel = model; - try { - model = retrieveModel(); - setModel(model); - - // release old model - if (oldModel != null) { - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - if (adapter != null) - adapter.modelRemoved(oldModel); - } - } - finally { - if (oldModel != null) - oldModel.releaseFromRead(); - } - this.replaceModel = false; - } - return model; - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - if (eventType != INodeNotifier.CHANGE) - return; - Attr attr = (Attr) changedFeature; - if (attr == null) - return; - String name = attr.getName(); - if (name.equalsIgnoreCase("rel") || //$NON-NLS-1$ - name.equalsIgnoreCase("type") || //$NON-NLS-1$ - name.equalsIgnoreCase("href")) {//$NON-NLS-1$ - attrReplaced(); - } - } - - /** - */ - public void refreshSheet() { - if (!replaceModel) { - removed(); - replaceModel = true; - - IDOMNode node = (IDOMNode) getElement(); - if (node != null) { - node.notify(INodeNotifier.CHANGE, getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_HREF), null, null, node.getStartOffset()); - } - } - } - - /** - */ - public void released() { - ICSSModel model = getExistingModel(); - if (model != null) { - try { - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - - // set element to null first, so that no document wide updates - setElement(null); - setModel(null); - - if (adapter != null) - adapter.modelReleased(model); - } - finally { - model.releaseFromRead(); - } - } - this.replaceModel = false; - } - - /** - */ - public void removed() { - ICSSModel model = getExistingModel(); - if (model != null) { - try { - setModel(null); - - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - if (adapter != null) - adapter.modelRemoved(model); - } - finally { - model.releaseFromRead(); - } - } - this.replaceModel = false; - } - - /** - */ - protected boolean isValidAttribute() { - Element element = getElement(); - if (element == null) - return false; - String rel = element.getAttribute("rel");//$NON-NLS-1$ - if (rel == null || !rel.equalsIgnoreCase("stylesheet"))//$NON-NLS-1$ - return false; - String type = element.getAttribute("type");//$NON-NLS-1$ - if (type != null && !type.equalsIgnoreCase("text/css"))//$NON-NLS-1$ - return false; - String href = element.getAttribute("href");//$NON-NLS-1$ - if (href == null || href.length() == 0) - return false; - return true; - } - - /** - */ - private ICSSModel retrieveModel() { - if (!isValidAttribute()) { - return null; - } - - // null,attr check is done in isValidAttribute() - Element element = getElement(); - String href = element.getAttribute("href");//$NON-NLS-1$ - - IDOMModel baseModel = ((IDOMNode) element).getModel(); - if (baseModel == null) - return null; - Object id = baseModel.getId(); - if (!(id instanceof String)) - return null; - //String base = (String)id; - - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(ModelProvideAdapterClass); - - URLModelProvider provider = new URLModelProvider(); - try { - IStructuredModel newModel = provider.getModelForRead(baseModel, href); - if (newModel == null) - return null; - if (!(newModel instanceof ICSSModel)) { - newModel.releaseFromRead(); - return null; - } - - // notify adapter - if (adapter != null) - adapter.modelProvided(newModel); - - return (ICSSModel) newModel; - } - catch (UnsupportedEncodingException e) { - } - catch (IOException e) { - } - - return null; - } - - /** - */ - protected void setModel(ICSSModel model) { - ICSSModel oldModel = getExistingModel(); - if (model == oldModel) - return; - super.setModel(model); - if (this.replaceModel) - this.replaceModel = false; - if (oldModel != null) - oldModel.removeStyleListener(this); - if (model != null) - model.addStyleListener(this); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java deleted file mode 100644 index 922ee62e31..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - */ -public class StyleAdapterFactory implements INodeAdapterFactory { - - private static StyleAdapterFactory instance = null; - - // private static String CSS_CONTENT_TYPE = "text/css";//$NON-NLS-1$ - /** - */ - private StyleAdapterFactory() { - super(); - } - - /** - */ - public INodeAdapter adapt(INodeNotifier notifier) { - if (notifier == null) - return null; - - Node node = (Node) notifier; - short nodeType = node.getNodeType(); - if (nodeType == Node.DOCUMENT_NODE) { - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetListAdapter.class); - if (adapter != null) - return adapter; - HTMLDocumentAdapter newAdapter = new HTMLDocumentAdapter(); - newAdapter.setDocument((Document) node); - notifier.addAdapter(newAdapter); - return newAdapter; - } - if (nodeType != Node.ELEMENT_NODE) - return null; - - Element element = (Element) node; - String tagName = element.getTagName(); - if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE)) { - if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.STYLE)) { - return null; - } - // String type = element.getAttribute(HTML40Namespace.ATTR_NAME_TYPE); - // if (type != null && ! type.equalsIgnoreCase(CSS_CONTENT_TYPE)) { - // return null; - // } - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class); - if (adapter != null) - return adapter; - StyleElementAdapter newAdapter = new StyleElementAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - else if (tagName.equalsIgnoreCase(HTML40Namespace.ElementName.LINK)) { - if (!isTagAvailable(element.getOwnerDocument(), HTML40Namespace.ElementName.LINK)) { - return null; - } - INodeAdapter adapter = notifier.getExistingAdapter(IStyleSheetAdapter.class); - if (adapter != null) - return adapter; - LinkElementAdapter newAdapter = new LinkElementAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - - INodeAdapter adapter = notifier.getExistingAdapter(IStyleDeclarationAdapter.class); - if (adapter != null) - return adapter; - - if (!isAttributeAvailable(element, HTML40Namespace.ATTR_NAME_STYLE)) { - return null; - } - StyleAttrAdapter newAdapter = new StyleAttrAdapter(); - newAdapter.setElement(element); - notifier.addAdapter(newAdapter); - return newAdapter; - } - - /** - */ - public synchronized static StyleAdapterFactory getInstance() { - if (instance == null) - instance = new StyleAdapterFactory(); - return instance; - } - - /** - */ - public boolean isFactoryForType(Object type) { - return (type == IStyleSheetAdapter.class || type == IStyleDeclarationAdapter.class || type == IStyleSheetListAdapter.class); - } - - public void release() { - // default is to do nothing - } - - private static boolean isTagAvailable(Document document, String elementName) { - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document); - if (modelQuery != null) { - CMDocument cmdoc = modelQuery.getCorrespondingCMDocument(document); - CMNamedNodeMap map = cmdoc.getElements(); - if ((CMElementDeclaration) map.getNamedItem(elementName) != null) { - return true; - } - } - - return false; - } - - private static boolean isAttributeAvailable(Element element, String attrName) { - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument()); - if (modelQuery != null) { - CMElementDeclaration decl = modelQuery.getCMElementDeclaration(element); - if (decl != null) { - CMNamedNodeMap map = decl.getAttributes(); - if ((CMAttributeDeclaration) map.getNamedItem(attrName) != null) { - return true; - } - } - } - - return false; - } - - /** - * Overriding Object's clone() method - */ - public INodeAdapterFactory copy() { - return getInstance(); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java deleted file mode 100644 index a4d8c7327a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java +++ /dev/null @@ -1,248 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.parser.CSSSourceParser; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener; -import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.css.CSSStyleDeclaration; - -/** - */ -public class StyleAttrAdapter extends AbstractCSSModelAdapter implements IStructuredDocumentListener, IStyleDeclarationAdapter { - - private boolean ignoreNotification = false; - private final static String STYLE = "style";//$NON-NLS-1$ - - /** - */ - StyleAttrAdapter() { - super(); - } - - /** - */ - public ICSSModel getModel() { - ICSSModel model = getExistingModel(); - if (model == null && isModelNecessary()) { - model = createModel(); - if (model == null) - return null; - - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return null; - - RegionParser parser = structuredDocument.getParser(); - if (parser instanceof CSSSourceParser) { - ((CSSSourceParser)parser).setParserMode(CSSSourceParser.MODE_DECLARATION); - } else { - return null; - } - - structuredDocument.addDocumentChangedListener(this); - - setModel(model); // need to set before valueChanged() - valueChanged(); - } - if (model != null && !isModelNecessary()) { - model = null; - valueChanged(); - } - return model; - } - - /** - */ - public CSSStyleDeclaration getStyle() { - ICSSModel model = getModel(); - if (model == null) - return null; - return (CSSStyleDeclaration) model.getDocument(); - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return (type == IStyleDeclarationAdapter.class); - } - - /** - */ - public void newModel(NewDocumentEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == this) - return; - - setValue(); - } - - /** - */ - public void noChange(NoChangeEvent structuredDocumentEvent) { - } - - /** - */ - public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == this) - return; - - setValue(); - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - if (this.ignoreNotification) - return; - - if (eventType != INodeNotifier.CHANGE) - return; - Attr attr = (Attr) changedFeature; - if (attr == null) - return; - String name = attr.getName(); - if (name.equalsIgnoreCase(STYLE)) { - valueChanged(); - } - } - - /** - */ - public void regionChanged(RegionChangedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == this) - return; - - setValue(); - } - - /** - */ - public void regionsReplaced(RegionsReplacedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == this) - return; - - setValue(); - } - - /** - */ - private void setValue() { - Element element = getElement(); - if (element == null) - return; - ICSSModel model = getExistingModel(); - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - - String value = null; - IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList(); - if (flatNodes != null) { - int count = flatNodes.getLength(); - if (count > 0) { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < count; i++) { - IStructuredDocumentRegion flatNode = flatNodes.item(i); - if (flatNode == null) - continue; - buffer.append(flatNode.getText()); - } - value = buffer.toString(); - } - } - - this.ignoreNotification = true; - if (value == null || value.length() == 0) { - element.removeAttribute(STYLE); - } - else { - Attr attr = element.getAttributeNode(STYLE); - if (attr != null) { - ((IDOMNode) attr).setValueSource(value); - } - else { - Document document = element.getOwnerDocument(); - attr = document.createAttribute(STYLE); - ((IDOMNode) attr).setValueSource(value); - element.setAttributeNode(attr); - } - } - this.ignoreNotification = false; - - notifyStyleChanged(element); - } - - /** - */ - private void valueChanged() { - Element element = getElement(); - if (element == null) - return; - if (!isModelNecessary()) { // removed - setModel(null); - - notifyStyleChanged(element); - return; - } - - ICSSModel model = getExistingModel(); - if (model == null) - return; // defer - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; // error - - String value = null; - Attr attr = element.getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_STYLE); - if (attr != null) - value = ((IDOMNode) attr).getValueSource(); - structuredDocument.setText(this, value); - - notifyStyleChanged(element); - } - - /** - * @return boolean - */ - private boolean isModelNecessary() { - return getElement() != null && getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_STYLE) != null; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java deleted file mode 100644 index 3ef97b9cc9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleElementAdapter.java +++ /dev/null @@ -1,452 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004-2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * - * Masaki Saitoh (MSAITOH@jp.ibm.com) - * See Bug 153000 Style Adapters should be lazier - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=153000 - * - ********************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetListAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener; -import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - */ -public class StyleElementAdapter extends AbstractStyleSheetAdapter implements IStructuredDocumentListener { - - private boolean replaceModel = true; - private boolean ignoreNotification = false; - - /** - */ - protected StyleElementAdapter() { - super(); - } - - /** - * Preparation of applying changes from CSS sub-model to HTML model - */ - private void changeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) { - if (flatNode == null) - return; - Element element = getElement(); - if (element == null) - return; - ICSSModel model = getExistingModel(); - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - - // get old content length - Node child = element.getFirstChild(); - if (child == null || child.getNodeType() != Node.TEXT_NODE) - return; - IDOMNode content = (IDOMNode) child; - int oldLength = content.getEndOffset() - content.getStartOffset(); - - // get new content length - int newLength = 0; - IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList(); - if (flatNodes != null) { - int count = flatNodes.getLength(); - if (count > 0) { - IStructuredDocumentRegion last = flatNodes.item(count - 1); - if (last != null) - newLength = last.getEnd(); - } - } - - int offset = flatNode.getStart(); - int end = flatNode.getEnd(); - int diff = oldLength - newLength; - int length = end - offset + diff; - String data = flatNode.getText(); - - replaceData(offset, length, data); - } - - /** - * Apply changes from HTML model to CSS sub-model - */ - private void contentChanged() { - Element element = getElement(); - if (element == null) - return; - ICSSModel model = getExistingModel(); - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - - String data = null; - Node child = element.getFirstChild(); - if (child != null && child.getNodeType() == Node.TEXT_NODE && child.getNextSibling() == null) { - data = child.getNodeValue(); - } - if (data == null) - data = "";//$NON-NLS-1$ - - // minimize replace range - int start = 0, end = 0; - String oldData = structuredDocument.get(); - if (oldData == null) - oldData = "";//$NON-NLS-1$ - - // search differenct character position from first - for (; start < oldData.length() && start < data.length(); start++) - if (oldData.charAt(start) != data.charAt(start)) - break; - - if (start == oldData.length() && start == data.length()) - return; // no change - else if (start == oldData.length()) { - structuredDocument.replaceText(getRequesterH2C(), start, 0, data.substring(start)); // append text to last - } - else if (start == data.length()) { - structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - start, ""); // remove text of last //$NON-NLS-1$ - } - else { - // search differenct character position from last - for (; start < oldData.length() - end && start < data.length() - end; end++) { - if (oldData.charAt(oldData.length() - end - 1) != data.charAt(data.length() - end - 1)) - break; - } - structuredDocument.replaceText(getRequesterH2C(), start, oldData.length() - end - start, data.substring(start, data.length() - end)); - } - - } - - /** - */ - public ICSSModel getModel() { - ICSSModel model = getExistingModel(); - if (this.replaceModel) { - ICSSModel oldModel = model; - model = createModel(false); - - setModel(model, false); // need to set before contentChanged() - contentChanged(); - - // from super.createModel() - // get ModelProvideAdapter - IModelProvideAdapter modelProvideAdapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - // notify adapter - if (modelProvideAdapter != null) - modelProvideAdapter.modelProvided(model); - - // from createModel() - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return null; - structuredDocument.addDocumentChangedListener(this); - - // from setModel() - if (oldModel != null) - oldModel.removeStyleListener(this); - if (model != null) - model.addStyleListener(this); - - if (oldModel != null) { - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class); - if (adapter != null) { - adapter.modelRemoved(oldModel); - } - } - - this.replaceModel = false; - } - return model; - } - - /** - */ - protected boolean isValidAttribute() { - Element element = getElement(); - if (element == null) { - return false; - } - String type = element.getAttribute(HTML40Namespace.ATTR_NAME_TYPE); - if (type != null && type.length() > 0 && !type.equalsIgnoreCase("text/css")) { //$NON-NLS-1$ - return false; - } - return true; - } - - /** - */ - protected ICSSModel createModel() { - return createModel(true); - } - - /** - */ - protected ICSSModel createModel(boolean addListener) { - if (!isValidAttribute()) { - return null; - } - - if (!addListener) - return super.createModel(false); - - ICSSModel model = super.createModel(); - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return null; - structuredDocument.addDocumentChangedListener(this); - - return model; - } - - /** - */ - // public ICSSModel getModel() { - // ICSSModel model = getExistingModel(); - // if (model == null) { - // model = createModel(); - // if (model == null) return null; - // IStructuredDocument structuredDocument = model.getStructuredDocument(); - // if (structuredDocument == null) return null; - // structuredDocument.addModelChangedListener(this); - // setModel(model); // need to set before contentChanged() - // contentChanged(); - // } - // return model; - // } - /** - */ - private Object getRequesterH2C() { - return (getElement() != null && ((IDOMNode) getElement()).getModel() != null) ? (Object) ((IDOMNode) getElement()).getModel() : this; - } - - /** - */ - private Object getRequesterC2H() { - return (getModel() != null) ? (Object) getModel() : this; - } - - /** - * Implementing IStructuredDocumentListener's method - * Event from CSS Flat Model - */ - public void newModel(NewDocumentEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == getRequesterH2C()) - return; - IStructuredDocument structuredDocument = event.getStructuredDocument(); - if (structuredDocument == null) - return; - IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList(); - if (flatNodes == null) - return; - - replaceStructuredDocumentRegions(flatNodes, null); - } - - /** - * Implementing IStructuredDocumentListener's method - * Event from CSS Flat Model - */ - public void noChange(NoChangeEvent structuredDocumentEvent) { - } - - /** - * Implementing IStructuredDocumentListener's method - * Event from CSS Flat Model - */ - public void nodesReplaced(StructuredDocumentRegionsReplacedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == getRequesterH2C()) - return; - IStructuredDocumentRegionList oldStructuredDocumentRegions = event.getOldStructuredDocumentRegions(); - IStructuredDocumentRegionList newStructuredDocumentRegions = event.getNewStructuredDocumentRegions(); - if (oldStructuredDocumentRegions == null && newStructuredDocumentRegions == null) - return; - - replaceStructuredDocumentRegions(newStructuredDocumentRegions, oldStructuredDocumentRegions); - } - - /** - * Overriding INodeAdapter's method - * Event from <STYLE> element - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - if (this.ignoreNotification) - return; - - if (eventType == INodeNotifier.ADD || eventType == INodeNotifier.REMOVE || eventType == INodeNotifier.CONTENT_CHANGED) { - contentChanged(); - } - else if (eventType == INodeNotifier.CHANGE) { - Attr attr = (Attr) changedFeature; - if (attr == null) - return; - String name = attr.getName(); - if (name.equalsIgnoreCase("type")) { //$NON-NLS-1$ - this.replaceModel = true; - - Element element = getElement(); - if (element == null) { - return; - } - Document document = element.getOwnerDocument(); - if (document == null) { - return; - } - HTMLDocumentAdapter adapter = (HTMLDocumentAdapter) ((INodeNotifier) document).getAdapterFor(IStyleSheetListAdapter.class); - if (adapter != null) { - adapter.childReplaced(); - } - } - } - } - - /** - * Implementing IStructuredDocumentListener's method - * Event from CSS Flat Model - */ - public void regionChanged(RegionChangedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == getRequesterH2C()) - return; - IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion(); - if (flatNode == null) - return; - - changeStructuredDocumentRegion(flatNode); - } - - /** - * Implementing IStructuredDocumentListener's method - * Event from CSS Flat Model - */ - public void regionsReplaced(RegionsReplacedEvent event) { - if (event == null) - return; - if (event.getOriginalRequester() == getRequesterH2C()) - return; - IStructuredDocumentRegion flatNode = event.getStructuredDocumentRegion(); - if (flatNode == null) - return; - - changeStructuredDocumentRegion(flatNode); - } - - /** - * Apply changes from CSS sub-model to HTML model - */ - private void replaceData(int offset, int length, String data) { - IDOMNode element = (IDOMNode) getElement(); - if (element == null) - return; - IDOMModel ownerModel = element.getModel(); - if (ownerModel == null) - return; - IStructuredDocument structuredDocument = ownerModel.getStructuredDocument(); - if (structuredDocument == null) - return; - IStructuredDocumentRegion flatNode = element.getStartStructuredDocumentRegion(); - if (flatNode == null) - return; - - int contentOffset = flatNode.getEndOffset(); - if (data == null) - data = "";//$NON-NLS-1$ - - this.ignoreNotification = true; - structuredDocument.replaceText(getRequesterC2H(), contentOffset + offset, length, data); - this.ignoreNotification = false; - } - - /** - * Preparation of applying changes from CSS sub-model to HTML model - */ - private void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) { - int offset = 0; - int length = 0; - if (oldStructuredDocumentRegions != null) { - int count = oldStructuredDocumentRegions.getLength(); - if (count > 0) { - IStructuredDocumentRegion first = oldStructuredDocumentRegions.item(0); - if (first != null) - offset = first.getStart(); - IStructuredDocumentRegion last = oldStructuredDocumentRegions.item(count - 1); - if (last != null) - length = last.getEnd() - offset; - } - } - String data = null; - if (newStructuredDocumentRegions != null) { - int count = newStructuredDocumentRegions.getLength(); - if (count > 0) { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < count; i++) { - IStructuredDocumentRegion flatNode = newStructuredDocumentRegions.item(i); - if (flatNode == null) - continue; - buffer.append(flatNode.getText()); - if (i == 0) - offset = flatNode.getStart(); - } - data = buffer.toString(); - } - } - - replaceData(offset, length, data); - } - - /** - */ - protected void setModel(ICSSModel model) { - setModel(model, true); - } - - /** - */ - protected void setModel(ICSSModel model, boolean setupListener) { - ICSSModel oldModel = getExistingModel(); - if (model == oldModel) - return; - super.setModel(model); - if (!setupListener) - return; - if (oldModel != null) - oldModel.removeStyleListener(this); - if (model != null) - model.addStyleListener(this); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java deleted file mode 100644 index 5dc6d51a58..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -/** - */ -public interface StyleListener { - - /** - */ - void styleChanged(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java deleted file mode 100644 index 68559e3854..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - -/** - * @deprecated - */ -public class URLHelper extends org.eclipse.wst.css.core.internal.util.URLHelper { - - /** - * @param baseUrl - */ - public URLHelper(String baseUrl) { - super(baseUrl); - } - - /** - * @param baseUrl - * @param docRoot - */ - public URLHelper(String baseUrl, String docRoot) { - super(baseUrl, docRoot); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java deleted file mode 100644 index 821b118efd..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java +++ /dev/null @@ -1,451 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.htmlcss; - - - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.nio.charset.UnsupportedCharsetException; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeConstants; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.encoding.EncodingRule; -import org.eclipse.wst.sse.core.internal.provisional.IModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceAlreadyExists; -import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse; -import org.eclipse.wst.sse.core.internal.util.PathHelper; -import org.eclipse.wst.sse.core.internal.util.ProjectResolver; -import org.eclipse.wst.sse.core.internal.util.URIResolver; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -// TODO when this class is removed from .core, PathHelper and URLHelper class -// also can be removed. - -/** - */ -public class URLModelProvider { - - private static final int GET_MODEL_FOR_READ = 1; - // private static final int GET_NEW_MODEL_FOR_READ = 2; - private static final int GET_MODEL_FOR_EDIT = 3; - // private static final int GET_NEW_MODEL_FOR_EDIT = 4; - // private static final int READ_BUFFER_SIZE = 4096; - // IModelManager - private IModelManager modelManager = null; - - /** - */ - public URLModelProvider() { - super(); - - // obtain model manager - modelManager = StructuredModelManager.getModelManager(); - } - - /** - * Calculate ID from a filename. This must be same as - * FileModelProvider.calculateId(IFile) - */ - private static String calculateId(IPath fullIPath) { - return fullIPath.toString(); - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - private IStructuredModel getCommonModelFor(final IStructuredModel baseModel, final String ref, final int which) throws IOException { - // first, create absolute url - String absURL = resolveURI(baseModel, ref, true); - if ((absURL == null) || (absURL.length() == 0)) { - return null; - } - - // need to remove file:// scheme if necessary - try { - final java.net.URL aURL = new java.net.URL(absURL); - // An actual URL was given, only file:/// is supported - // resolve it by finding the file it points to - if (!aURL.getProtocol().equals("platform")) { //$NON-NLS-1$ - if (aURL.getProtocol().equals("file") && (aURL.getHost().equals("localhost") || aURL.getHost().length() == 0)) {//$NON-NLS-2$//$NON-NLS-1$ - absURL = aURL.getFile(); - final IPath ipath = new Path(absURL); - // if path has a device, and if it begins with - // IPath.SEPARATOR, remove it - final String device = ipath.getDevice(); - if ((device != null) && (device.length() > 0)) { - if (device.charAt(0) == IPath.SEPARATOR) { - final String newDevice = device.substring(1); - absURL = ipath.setDevice(newDevice).toString(); - } - } - - } - } - } - catch (java.net.MalformedURLException mfuExc) { - } - - - // next, decide project - IProject project = null; - final IPath fullIPath = new Path(absURL); - IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot(); - IContainer container = workspace.getContainerForLocation(fullIPath); - if (container != null) { - // fullIPath doesn't exist in workspace - project = container.getProject(); - } - - // If HTML document has a link to an extern CSS which is not in - // IProject - // workspace.getContainerForLoation() may return null. We need to take - // care - // of this case - - // now, get absURL's IFile - if ((project != null) && (project.getLocation().isPrefixOf(fullIPath) == false)) { - // it's at outside of Project - return null; - } - - IStructuredModel model = null; - if (project != null) { - IPath filePath = fullIPath.removeFirstSegments(project.getLocation().segmentCount()); - IFile file = (filePath != null && !filePath.isEmpty()) ? project.getFile(filePath) : null; - if (file == null) { - return null; - } - - // obtain model - if (which == GET_MODEL_FOR_EDIT) { - model = getModelForEdit(file); - } - else if (which == GET_MODEL_FOR_READ) { - model = getModelForRead(file); - } - - // setting synchronization stamp is IModelManager's client's - // responsibility - if (model != null && model.getSynchronizationStamp() == IResource.NULL_STAMP) - model.resetSynchronizationStamp(file); - } - else { - String id = null; - InputStream inStream = null; - // obtain resolver - URIResolver resolver = (project != null) ? (URIResolver) project.getAdapter(URIResolver.class) : null; - if (resolver == null) { - // ProjectResolver can take care of the case if project is - // null. - resolver = new ProjectResolver(project); - } - if (resolver == null) { - return null; - } - - // there is no project. we can't expect IProject help to create - // id/inputStream - java.io.File file = fullIPath.toFile(); - - // obatin id - id = calculateId(fullIPath); - - // obtain InputStream - try { - inStream = new FileInputStream(file); - } - catch (FileNotFoundException fnfe) { - // the file does not exist, or we don't have read permission - return null; - } - - // obtain model - try { - if (which == GET_MODEL_FOR_EDIT) { - model = getModelManager().getModelForEdit(id, inStream, resolver); - } - else if (which == GET_MODEL_FOR_READ) { - model = getModelManager().getModelForRead(id, inStream, resolver); - } - } - catch (UnsupportedEncodingException ue) { - } - catch (IOException ioe) { - } - finally { - // close now ! - if (inStream != null) { - inStream.close(); - } - } - } - - - // set locationid - if (model != null && model.getBaseLocation() == null) { - model.setBaseLocation(fullIPath.toString()); - } - - return model; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - public IStructuredModel getModelForEdit(IStructuredModel baseModel, String ref) throws IOException { - return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_EDIT); - } - - /** - */ - private IStructuredModel getModelForEdit(IFile file) throws IOException { - if (file == null) - return null; - IModelManager manager = getModelManager(); - - // create a fake InputStream - IStructuredModel model = null; - try { - model = manager.getModelForEdit(file); - } - catch (UnsupportedCharsetException ex) { - try { - model = manager.getModelForEdit(file, EncodingRule.FORCE_DEFAULT); - } - catch (IOException ioe) { - } - catch (CoreException ce) { - } - } - catch (CoreException ce) { - } - return model; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - public IStructuredModel getModelForRead(IStructuredModel baseModel, String ref) throws UnsupportedEncodingException, IOException { - return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_READ); - } - - /** - */ - private IStructuredModel getModelForRead(IFile file) throws IOException { - if (file == null) - return null; - IModelManager manager = getModelManager(); - - // create a fake InputStream - IStructuredModel model = null; - try { - model = manager.getModelForRead(file); - } - catch (UnsupportedCharsetException ex) { - try { - model = manager.getModelForRead(file, EncodingRule.FORCE_DEFAULT); - } - catch (IOException ioe) { - } - catch (CoreException ce) { - } - } - catch (CoreException ce) { - } - return model; - } - - /** - */ - private IModelManager getModelManager() { - return modelManager; - } - - public IStructuredModel getNewModelForEdit(IFile iFile) { - if (iFile == null) - return null; - IModelManager manager = getModelManager(); - if (manager == null) - return null; - - IStructuredModel model = null; - try { - model = manager.getNewModelForEdit(iFile, false); - } - catch (IOException ex) { - } - catch (ResourceInUse riu) { - } - catch (ResourceAlreadyExists rae) { - } - catch (CoreException ce) { - } - return model; - } - - public IStructuredModel getNewModelForRead(IFile iFile) { - if (iFile == null) - return null; - IModelManager manager = getModelManager(); - if (manager == null) - return null; - - IStructuredModel model = null; - try { - model = manager.getNewModelForEdit(iFile, false); - } - catch (IOException ex) { - } - catch (ResourceInUse riu) { - } - catch (ResourceAlreadyExists rae) { - } - catch (CoreException ce) { - } - return model; - } - - /** - * Utility to check the model is HTML family or not - */ - static private boolean isHTMLFamily(IStructuredModel model) { - if (model instanceof IDOMModel) { - IDOMDocument document = ((IDOMModel) model).getDocument(); - DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class); - if (adapter != null) - return adapter.hasFeature(HTMLDocumentTypeConstants.HTML); - } - return false; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - * <code>resolveCrossProjectLinks</code>: If resolveCrossProjectLinks - * is set to true, then this method will properly resolve the URI if it is - * a valid URI pointing to another (appropriate) project. - */ - public static String resolveURI(IStructuredModel baseModel, String ref, boolean resolveCrossProjectLinks) { - if (baseModel == null) - return null; - // for HTML, 'href' attribute value of BASE element - // should be used, if exists any - String baseHref = null; - // dmw_TODO needs to be changed to handle a content model - // of HTML or XHTML - if (isHTMLFamily(baseModel)) { - final IDOMModel xmlmodel = (IDOMModel) baseModel; - final IDOMDocument doc = xmlmodel.getDocument(); - // look for <BASE> w/ href - final NodeList nl = doc.getElementsByTagName("BASE");//$NON-NLS-1$ - if ((nl != null) && (nl.getLength() > 0)) { - // per each <BASE> - for (int i = 0; i < nl.getLength(); i++) { - final Node baseNode = nl.item(i); - if (baseNode != null) { - // get all attrs - final NamedNodeMap attrNodes = baseNode.getAttributes(); - if (attrNodes != null) { - final Node attrNode = attrNodes.getNamedItem("HREF");//$NON-NLS-1$ - if (attrNode != null) { - // found href="" - final String attrValue = attrNode.getNodeValue(); - if (attrValue != null) { - baseHref = attrValue.trim(); - } - } - } - } - // what if there are multiple <BASE> tags ?? - if (baseHref != null) { - break; - } - } - } - } - - // get resolver in Model - final URIResolver resolver = baseModel.getResolver(); - - // resolve to absolute url - final String absurl = (resolver != null) ? ((baseHref != null) ? resolver.getLocationByURI(ref, baseHref, resolveCrossProjectLinks) : resolver.getLocationByURI(ref, resolveCrossProjectLinks)) : null; - if ((resolver != null) && (absurl == null) && (ref != null) && (ref.trim().length() > 0) && (ref.trim().charAt(0) == '/')) { - // to reach here means : - // ref is a Docroot relative - // resolver can't resolve ref - // so that href is a broken and should not create model - return null; - } - if ((absurl != null) && (absurl.length() > 0)) { - return absurl; - } - - // maybe ref is at outside of the Project - // obtain docroot; - final IContainer container = (resolver != null) ? resolver.getRootLocation() : null; - String docroot = null; - if (container != null) { - IPath containerLocation = container.getLocation(); - if (containerLocation != null) { - docroot = containerLocation.toString(); - } - else if (container.getLocationURI() != null) { - docroot = container.getLocationURI().toString(); - } - } - if (docroot == null) { - docroot = baseModel.getBaseLocation(); - } - if (docroot == null) { - // should not be - return null; - } - - // obtain document url - String modelBaseLocation = baseModel.getBaseLocation(); - if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) { - // fallback... - modelBaseLocation = baseModel.getId(); - } - if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) { - // i can't resolve uri ! - return null; - } - - // resolve url - URLHelper helper = new URLHelper(PathHelper.getContainingFolderPath(modelBaseLocation), PathHelper.getContainingFolderPath(PathHelper.appendTrailingURLSlash(docroot))); - return helper.toAbsolute(ref); - } - -} - diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java deleted file mode 100644 index 50cdd0f05d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelhandler; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeAdapterFactory; -import org.eclipse.wst.html.core.internal.document.HTMLModelParserAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.HTMLStyleSelectorAdapterFactory; -import org.eclipse.wst.html.core.internal.htmlcss.StyleAdapterFactory; -import org.eclipse.wst.html.core.internal.modelquery.ModelQueryAdapterFactoryForEmbeddedHTML; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker; -import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTagParser; -import org.eclipse.wst.sse.core.internal.ltk.parser.JSPCapableParser; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.util.Assert; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter; -import org.eclipse.wst.xml.core.internal.document.ModelParserAdapter; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -public class EmbeddedHTML implements EmbeddedTypeHandler { - - public String ContentTypeID_EmbeddedHTML = "org.eclipse.wst.html.core.internal.contenttype.EmbeddedHTML"; //$NON-NLS-1$ - private List supportedMimeTypes; - - /** - * Constructor for EmbeddedHTML. - */ - public EmbeddedHTML() { - super(); - } - - /** - * Convenience method to add tag names using BlockMarker object - */ - private void addHTMLishTag(BlockTagParser parser, String tagname) { - BlockMarker bm = new BlockMarker(tagname, null, DOMRegionContext.BLOCK_TEXT, false); - parser.addBlockMarker(bm); - } - - /** - * @see EmbeddedContentType#getFamilyId() - */ - public String getFamilyId() { - return ModelHandlerForHTML.AssociatedContentTypeID; - } - - /* - * Only "model side" embedded factories can be added here. - */ - public List getAdapterFactories() { - List factories = new ArrayList(); - factories.add(new ModelQueryAdapterFactoryForEmbeddedHTML()); - // factories.addAll(PluginContributedFactoryReader.getInstance().getFactories(this)); - return factories; - } - - /* - * @see EmbeddedContentType#initializeParser(RegionParser) - */ - public void initializeParser(JSPCapableParser parser) { - addHTMLishTag(parser, "script"); //$NON-NLS-1$ - addHTMLishTag(parser, "style"); //$NON-NLS-1$ - } - - public List getSupportedMimeTypes() { - if (supportedMimeTypes == null) { - supportedMimeTypes = new ArrayList(); - supportedMimeTypes.add("text/html"); //$NON-NLS-1$ - supportedMimeTypes.add("text/xhtml"); //$NON-NLS-1$ - supportedMimeTypes.add("application/xhtml+xml"); //$NON-NLS-1$ - supportedMimeTypes.add("text/vnd.wap.wml"); //$NON-NLS-1$ - } - return supportedMimeTypes; - } - - public void initializeFactoryRegistry(FactoryRegistry registry) { - Assert.isNotNull(registry); - - INodeAdapterFactory factory = null; - if (!registry.contains(DocumentTypeAdapter.class)) { - factory = new HTMLDocumentTypeAdapterFactory(); - registry.addFactory(factory); - } - if (!registry.contains(ModelParserAdapter.class)) { - factory = HTMLModelParserAdapterFactory.getInstance(); - registry.addFactory(factory); - } - if (!registry.contains(IStyleSelectorAdapter.class)) { - - factory = HTMLStyleSelectorAdapterFactory.getInstance(); - registry.addFactory(factory); - } - if (!registry.contains(IStyleSheetAdapter.class)) { - - factory = StyleAdapterFactory.getInstance(); - registry.addFactory(factory); - } - - } - - public void uninitializeFactoryRegistry(FactoryRegistry registry) { - Assert.isNotNull(registry); - - // ISSUE: should these factories be released? Or just - // removed from this registry, because we are getting ready to - // re-add them? - INodeAdapterFactory factory = null; - if (!registry.contains(DocumentTypeAdapter.class)) { - factory = registry.getFactoryFor(DocumentTypeAdapter.class); - factory.release(); - registry.removeFactory(factory); - } - if (!registry.contains(ModelParserAdapter.class)) { - factory = registry.getFactoryFor(ModelParserAdapter.class); - factory.release(); - registry.removeFactory(factory); - } - if (!registry.contains(IStyleSelectorAdapter.class)) { - factory = registry.getFactoryFor(IStyleSelectorAdapter.class); - factory.release(); - registry.removeFactory(factory); - } - if (!registry.contains(IStyleSheetAdapter.class)) { - factory = registry.getFactoryFor(IStyleSheetAdapter.class); - factory.release(); - registry.removeFactory(factory); - } - - } - - public void uninitializeParser(JSPCapableParser parser) { - // I'm assuming block markers are unique based on name only - // we add these as full BlockMarkers, but remove based on name alone. - parser.removeBlockMarker("script"); //$NON-NLS-1$ - parser.removeBlockMarker("script"); //$NON-NLS-1$ - } - - public EmbeddedTypeHandler newInstance() { - return new EmbeddedHTML(); - } - - /** - * will someday be controlled via extension point - */ - public boolean isDefault() { - return true; - } - - public boolean canHandleMimeType(String mimeType) { - return getSupportedMimeTypes().contains(mimeType); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java deleted file mode 100644 index 9f9badb03a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelhandler; - -import org.eclipse.wst.html.core.internal.encoding.HTMLDocumentCharsetDetector; -import org.eclipse.wst.html.core.internal.encoding.HTMLDocumentLoader; -import org.eclipse.wst.html.core.internal.encoding.HTMLModelLoader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.AbstractModelHandler; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler; -import org.eclipse.wst.sse.core.internal.provisional.IModelLoader; - -public class ModelHandlerForHTML extends AbstractModelHandler implements IModelHandler { - /** - * Needs to match what's in plugin registry. - * In fact, can be overwritten at run time with - * what's in registry! (so should never be 'final') - */ - static String AssociatedContentTypeID = "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$ - /** - * Needs to match what's in plugin registry. - * In fact, can be overwritten at run time with - * what's in registry! (so should never be 'final') - */ - private static String ModelHandlerID_HTML = "org.eclipse.wst.html.core.modelhandler"; //$NON-NLS-1$ - - - public ModelHandlerForHTML() { - super(); - setId(ModelHandlerID_HTML); - setAssociatedContentTypeId(AssociatedContentTypeID); - } - - public IModelLoader getModelLoader() { - return new HTMLModelLoader(); - } - - public IDocumentCharsetDetector getEncodingDetector() { - return new HTMLDocumentCharsetDetector(); - } - - public IDocumentLoader getDocumentLoader() { - return new HTMLDocumentLoader(); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java deleted file mode 100644 index 34b600cd9f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - -import java.util.Enumeration; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; - -/** - */ -class CMAttributeDeclarationBuddySystem extends CMNodeBuddySystem implements CMAttributeDeclaration { - - - public CMAttributeDeclarationBuddySystem(CMAttributeDeclaration self, CMAttributeDeclaration buddy, boolean isXHTML) { - super(self, buddy, isXHTML); - } - - /* - * @see CMAttributeDeclaration#getAttrName() - */ - public String getAttrName() { - return getSelf().getAttrName(); - } - - /* - * @see CMAttributeDeclaration#getAttrType() - */ - public CMDataType getAttrType() { - return getSelf().getAttrType(); - } - - /* - * @see CMAttributeDeclaration#getDefaultValue() - * @deprecated in superclass - */ - public String getDefaultValue() { - return getSelf().getDefaultValue(); - } - - /* - * @see CMAttributeDeclaration#getEnumAttr() - * @deprecated in superclass - */ - public Enumeration getEnumAttr() { - return getSelf().getEnumAttr(); - } - - /* - * @see CMAttributeDeclaration#getUsage() - */ - public int getUsage() { - return getSelf().getUsage(); - } - - private CMAttributeDeclaration getSelf() { - return (CMAttributeDeclaration) self; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java deleted file mode 100644 index a710eab4a5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory; -import org.eclipse.wst.html.core.internal.contentmodel.ssi.SSICMDocumentFactory; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; - -/** - */ -class CMDocumentForBuddySystem extends CMNodeBuddySystem implements CMDocument { - - - private static CMDocument getHTMLCMDocument() { - return HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE); - } - - class Elements extends CMNamedNodeMapForBuddySystem { - public Elements(CMNamedNodeMap elements, boolean isXHTML) { - super(isXHTML); - makeBuddySystem(elements); - addSSIDecls(); - } - - protected String getKeyName(CMNode original) { - CMElementDeclaration edecl = getDecl(original); - if (edecl == null) - return null; - return edecl.getElementName(); - } - - protected CMNode createBuddySystem(CMNode original) { - CMElementDeclaration edecl = getDecl(original); - return new CMElementDeclarationBuddySystem(edecl, isXHTML()); - } - - private CMElementDeclaration getDecl(CMNode cmnode) { - if (cmnode == null) - return null; - if (cmnode.getNodeType() != CMNode.ELEMENT_DECLARATION) - return null; - return (CMElementDeclaration) cmnode; - } - - private void addSSIDecls() { - CMDocument ssi = SSICMDocumentFactory.getCMDocument(); - if (ssi == null) - return; - CMNamedNodeMap elements = ssi.getElements(); - Iterator i = elements.iterator(); - while (i.hasNext()) { - CMElementDeclaration decl = (CMElementDeclaration) i.next(); - if (decl == null) - continue; - put(decl.getElementName(), decl); - } - } - } - - private Elements elements = null; - - public CMDocumentForBuddySystem(CMDocument self, boolean isXHTML) { - super(self, getHTMLCMDocument(), isXHTML); - } - - /* - * @see CMDocument#getElements() - */ - public CMNamedNodeMap getElements() { - if (elements != null) - return elements; - CMDocument cmdoc = getSelf(); - if (cmdoc == null) - return null; - elements = new Elements(cmdoc.getElements(), isXHTML); - return elements; - } - - /* - * @see CMDocument#getEntities() - */ - public CMNamedNodeMap getEntities() { - CMDocument cmdoc = getSelf(); - if (cmdoc == null) - return null; - return cmdoc.getEntities(); - } - - /* - * @see CMDocument#getNamespace() - */ - public CMNamespace getNamespace() { - CMDocument cmdoc = getSelf(); - if (cmdoc == null) - return null; - return cmdoc.getNamespace(); - } - - private CMDocument getSelf() { - if (self.getNodeType() != CMNode.DOCUMENT) - return null; - return (CMDocument) self; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java deleted file mode 100644 index c934dbb9dd..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; - -/** - */ -class CMElementDeclarationBuddySystem extends CMNodeBuddySystem implements CMElementDeclaration { - - - private static CMDocument htmlcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE); - - private static CMElementDeclaration getHTMLCMElemDecl(CMElementDeclaration original) { - CMElementDeclaration buddy = null; - if (htmlcm != null) { - CMNamedNodeMap elems = htmlcm.getElements(); - if (elems != null) { - buddy = (CMElementDeclaration) elems.getNamedItem(original.getElementName()); - } - } - return buddy; - } - - private class Attrs extends CMNamedNodeMapForBuddySystem { - private CMNamedNodeMap buddyAttrs = null; - - public Attrs(CMNamedNodeMap attrs, CMNamedNodeMap buddyAttrs, boolean isXHTML) { - super(isXHTML); - this.buddyAttrs = buddyAttrs; - makeBuddySystem(attrs); - } - - protected String getKeyName(CMNode original) { - CMAttributeDeclaration adecl = getDecl(original); - if (adecl == null) - return null; - return adecl.getAttrName(); - } - - protected CMNode createBuddySystem(CMNode original) { - CMAttributeDeclaration adecl = getDecl(original); - if (adecl == null) - return null; - CMAttributeDeclaration buddy = null; - if (buddyAttrs != null) { - buddy = (CMAttributeDeclaration) buddyAttrs.getNamedItem(adecl.getAttrName()); - } - return new CMAttributeDeclarationBuddySystem(adecl, buddy, isXHTML()); - } - - private CMAttributeDeclaration getDecl(CMNode cmnode) { - if (cmnode == null) - return null; - if (cmnode.getNodeType() != CMNode.ATTRIBUTE_DECLARATION) - return null; - return (CMAttributeDeclaration) cmnode; - } - } - - private Attrs attributes = null; - - public CMElementDeclarationBuddySystem(CMElementDeclaration self, boolean isXHTML) { - super(self, getHTMLCMElemDecl(self), isXHTML); - } - - /* - * @see CMElementDeclaration#getAttributes() - */ - public CMNamedNodeMap getAttributes() { - if (attributes != null) - return attributes; - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return null; - CMElementDeclaration htmlDecl = getBuddy(); - CMNamedNodeMap htmlAttrs = (htmlDecl == null) ? null : htmlDecl.getAttributes(); - attributes = new Attrs(edecl.getAttributes(), htmlAttrs, isXHTML); - return attributes; - } - - /* - * @see CMElementDeclaration#getContent() - */ - public CMContent getContent() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return null; - return edecl.getContent(); - } - - /* - * @see CMElementDeclaration#getContentType() - */ - public int getContentType() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return CMElementDeclaration.ANY; - return edecl.getContentType(); - } - - /* - * @see CMElementDeclaration#getElementName() - */ - public String getElementName() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return null; - return edecl.getElementName(); - } - - /* - * @see CMElementDeclaration#getDataType() - */ - public CMDataType getDataType() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return null; - return edecl.getDataType(); - } - - /* - * @see CMElementDeclaration#getLocalElements() - */ - public CMNamedNodeMap getLocalElements() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return null; - return edecl.getLocalElements(); - } - - /* - * @see CMContent#getMaxOccur() - */ - public int getMaxOccur() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return -1; - return edecl.getMaxOccur(); - } - - /* - * @see CMContent#getMinOccur() - */ - public int getMinOccur() { - CMElementDeclaration edecl = getSelf(); - if (edecl == null) - return -1; - return edecl.getMinOccur(); - } - - /* - * @see CMNode#supports(String) - */ - public boolean supports(String propertyName) { - if (isXHTML && propertyName.equals(HTMLCMProperties.OMIT_TYPE)) - return true; - return super.supports(propertyName); - } - - /* - * @see CMNode#getProperty(String) - */ - public Object getProperty(String propertyName) { - if (isXHTML && propertyName.equals(HTMLCMProperties.OMIT_TYPE)) - return HTMLCMProperties.Values.OMIT_NONE; - return super.getProperty(propertyName); - } - - private CMElementDeclaration getSelf() { - if (self.getNodeType() != CMNode.ELEMENT_DECLARATION) - return null; - return (CMElementDeclaration) self; - } - - private CMElementDeclaration getBuddy() { - if (buddy == null) - return null; - if (buddy.getNodeType() != CMNode.ELEMENT_DECLARATION) - return null; - return (CMElementDeclaration) buddy; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java deleted file mode 100644 index 9b584bfea8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Locale; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - */ -abstract class CMNamedNodeMapForBuddySystem implements CMNamedNodeMap { - - - private boolean isXHTML = false; - private Hashtable map = new Hashtable(); - - /** - * Constructor of CMNamedNodeMapForBuddySystem. - * CAUTION: Each derived class must call 'makeBuddySystem' method in its - * constructor to build up its contents. - */ - public CMNamedNodeMapForBuddySystem(boolean isXHTML) { - super(); - this.isXHTML = isXHTML; - } - - /* - * @see CMNamedNodeMap#getLength() - */ - public int getLength() { - return map.size(); - } - - /* - * @see CMNamedNodeMap#getNamedItem(String) - */ - public CMNode getNamedItem(String name) { - String key = canonicalName(name); - if (!map.containsKey(key)) - return null; - return (CMNode) map.get(key); - } - - /* - * @see CMNamedNodeMap#item(int) - */ - public CMNode item(int index) { - Iterator iter = iterator(); - while (iter.hasNext()) { - Object node = iter.next(); - if (--index < 0) - return (CMNode) node; - } - return null; - } - - /* - * @see CMNamedNodeMap#iterator() - */ - public Iterator iterator() { - return map.values().iterator(); - } - - /* package scope. */ - void put(String name, CMNode cmnode) { - if (name == null || cmnode == null) - return; - map.put(canonicalName(name), cmnode); - } - - abstract protected String getKeyName(CMNode original); - - abstract protected CMNode createBuddySystem(CMNode original); - - protected boolean isXHTML() { - return isXHTML; - } - - /** - * Each derived class must call this method in its constructor - * to build up its contents. - */ - protected void makeBuddySystem(CMNamedNodeMap original) { - Iterator i = original.iterator(); - if (i == null) - return; - while (i.hasNext()) { - CMNode org = (CMNode) i.next(); - String key = getKeyName(org); - CMNode newNode = createBuddySystem(org); - put(key, newNode); - } - } - - private String canonicalName(String name) { - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=171918 - // we are able to "cheat" here a little and use US Locale - // to get a good canonical form, since we are using this only - // for HTML and JSP standard tags. - // Long term, for similar needs with XML 1.1 (for example) - // we should use a class such as com.ibm.icu.text.Normalizer - return name.toUpperCase(Locale.US); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java deleted file mode 100644 index e282f9af63..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; - -/** - */ -class CMNodeBuddySystem implements CMNode { - - - protected boolean isXHTML = false; - protected CMNode self = null; - protected CMNode buddy = null; - - public CMNodeBuddySystem(CMNode self, CMNode buddy, boolean isXHTML) { - super(); - this.self = self; - this.buddy = buddy; - this.isXHTML = isXHTML; - } - - /* - * @see CMNode#getNodeName() - */ - public String getNodeName() { - return self.getNodeName(); - } - - /* - * @see CMNode#getNodeType() - */ - public int getNodeType() { - return self.getNodeType(); - } - - /* - * @see CMNode#supports(String) - */ - public boolean supports(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) - return true; - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) - return true; - if (buddy == null) - return false; - return buddy.supports(propertyName); - } - - /* - * @see CMNode#getProperty(String) - */ - public Object getProperty(String propertyName) { - if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) { - return new Boolean(!isXHTML); - } - if (propertyName.equals(HTMLCMProperties.IS_XHTML)) { - return new Boolean(isXHTML); - } - - if (buddy == null || (!buddy.supports(propertyName))) - return null; - return buddy.getProperty(propertyName); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java deleted file mode 100644 index 2d802d8c31..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.ranges.Range; - -/** - */ -public interface DocumentQuery { - - /** - * isRenderRoot() returns true if - node is BODY element (both explicit - * and implicit) - node is portalhtml:body element - node is Document node - * and the document is treated as fragment (with BODY context) Note that - * in editing a fragment file, Document node should be treated as a - * substitute of BODY element. - */ - boolean isRenderRoot(Node node); - - /** - * isHeadCorrespondent() returns true if - node is HEAD element (both - * explicit and implicit) - node is portalhtml:head element - node is - * Document node and the document is treated as fragment (with HEAD - * context) Note that in editing a fragment file (with HEAD context), - * Document node should be treated as a substitute of HEAD element. - */ - boolean isHeadCorrespondent(Node node); - - /** - * Implicit BODY element will be gone in V6 SED model. So page designer - * provides an API to get a range whose content nodes are rendered in - * design view. getRenderRootRange() returns - a range from BODY's first - * to its last (if the document has BODY element) - a range form - * Document's first to its last (if the document is fragment with BODY - * context) - null (if the document is fragment with HEAD context) [The - * following cases will be supported since V6] - a range from a custom - * tag's first to its last (if the document has a custom tag which - * generates BODY element at runtime) - a range from Document's - * appropirate offset to its last (if the document does not have explicit - * BODY/HTML) - a range from HTML element's appropriate offset to its last - * (if the document does not have explicit BODY but have explicit HTML) - * - * @param doc - * @return - */ - Range getRenderRootRange(Document doc); - - /** - * Implicit HEAD element will be gone in V6 SED model. So page designer - * provides an API to get a range whose content nodes are treated as HEAD - * element's child. getHeadCorrespondentRange() returns - a range from - * HEAD's first to its last (if the document has HEAD element) - a range - * form Document's first to its last (if the document is fragment with - * HEAD context) - null (if the document is fragment with BODY context) - * [The following cases will be supported since V6] - a range from a - * custom tag's first to its last (if the document has a custom tag which - * generates HEAD element at runtime) - a range from Document's first to - * appropirate offset (if the document does not have explicit HEAD/HTML) - - * a range from HTML element's first to appropriate offset (if the - * document does not have explicit HEAD but have explicit HTML) - * - * @param doc - * @return - */ - Range getHeadCorrespondentRange(Document doc); - - /** - * getRenderRootNode() with [create=false] returns - BODY element if this - * document is not fragment and has BODY element - null if this document - * is not fragment and does not have BODY element - Document node if this - * document is fragment with BODY context - null if this document is - * fragment with HEAD context [The following cases will be supported since - * V6] - a custom tag which generates BODY tag at runtime - Document node - * or HTML element if this document is not fragment but does not have - * explicit BODY element getRenderRootNode() with [create=true] returns - - * BODY element if this document is not fragment and has BODY element (no - * modifictation) - newly created BODY element if this document is not - * fragment but does not have BODY element - Document node if this - * document is fragment with BODY context (no modifictation) [The - * following cases will be supported since V6] - a custom tag which - * generates BODY tag at runtime (no modifictation) - newly created BODY - * element if this document is not fragment but does not have explicit - * BODY element getRenderRootNode() throws HTMLCommandException (since V6) - * if - this document is fragment with HEAD context and - "create" - * parameter is true Note that in editing a fragment file, Document node - * should be treated as a substitute of BODY element. - * - * @param childOrDocument - * @param create - * @return - */ - Node getRenderRootNode(Node childOrDocument, boolean create); - - /** - * getHeadCorrespondentNode() with [create=false] returns - HEAD element - * if this document is not fragment and has HEAD element - null if this - * document is not fragment and does not have HEAD element - Document node - * if this document is fragment with HEAD context - null if this document - * is fragment with BODY context [The following cases will be supported - * since V6] - a custom tag which generates HEAD tag at runtime - Document - * node or HTML element if this document is not fragment but does not have - * explicit HEAD element getHeadCorrespondentNode() with [create=true] - * returns - HEAD element if this document is not fragment and has HEAD - * element (no modifictation) - newly created HEAD element if this - * document is not fragment but does not have HEAD element - Document node - * if this document is fragment with HEAD context (no modifictation) [The - * following cases will be supported since V6] - a custom tag which - * generates HEAD tag at runtime (no modifictation) - newly created HEAD - * element if this document is not fragment but does not have explicit - * HEAD element getHeadCorrespondentNode() throws HTMLCommandException - * (since V6) if - this document is fragment with BODY context and - - * "create" parameter is true Note that in editing a fragment file, - * Document node should be treated as a substitute of HEAD element. - * - * @param childOrDocument - * @param create - * @return - */ - Node getHeadCorrespondentNode(Node childOrDocument, boolean create); - - /** - * getHtmlCorrespondentNode() throws HTMLCommandException (since V6) if - - * this document is fragment and "create" parameter is true - * - * @param childOrDocument - * @param create - * @return - */ - Node getHtmlCorrespondentNode(Node childOrDocument, boolean create); - - /** - * This inner class is intended for insertion target. please use this like - * the following : DocumentQuery.InsertionTarget ins; - * ins.getParent().insertBefore(youInsertionNode, ins.getRef()); - */ - public class InsertionTarget { - private final Node parent; - private final Node ref; - - public InsertionTarget(Node parent, Node ref) { - this.parent = parent; - this.ref = ref; - } - - public Node getParent() { - return parent; - } - - public Node getRef() { - return ref; - } - } - - /** - * getHeadInsertionTarget() returns appropriate insetion target location - * for HEAD child tags such as <script>, <style>, <meta>etc. Basically - * this function returns <HEAD>tag's the last position. Note that this - * would not create actual <HEAD>tag when the document does not have it. - * <HEAD>is omittable tag so this function returns appropriate position - * to which implicit <HEAD>can be inserted, if the document has no - * <HEAD>. - * - * @param doc - * @return - */ - InsertionTarget getHeadInsertionTarget(Document doc); - - /** - * getPageInsertionTarget() returns appropriate insetion target location - * for page-level markups, such as JSP directives, usebean tags or <html> - * tag. Basically this function returns just before <HTML>tag. Note that - * this would not create actual <HTML>tag when the document does not have - * it. In such case, this function returns a position just before the - * meaningful tags such as HTML/JSP elements. - * - * @param doc - * @return - */ - InsertionTarget getPageInsertionTarget(Document doc); - - /** - * isFragment() returns whether the document is fragment or complete - * document - * - * @param doc - * @return - */ - boolean isFragment(Document doc); - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java deleted file mode 100644 index e5ee29645b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - */ -public interface ElementDeclarationAdapter extends INodeAdapter { - - /** - */ - CMElementDeclaration getDeclaration(); - - /** - */ - void setDeclaration(CMElementDeclaration declaration); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java deleted file mode 100644 index b558fb5e00..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; - -/** - */ -public class ElementDeclarationAdapterFactory implements INodeAdapterFactory { - - private static ElementDeclarationAdapterFactory instance = null; - - /** - */ - private ElementDeclarationAdapterFactory() { - super(); - } - - /** - */ - public INodeAdapter adapt(INodeNotifier notifier) { - if (notifier == null) - return null; - INodeAdapter adapter = notifier.getExistingAdapter(ElementDeclarationAdapter.class); - if (adapter != null) - return adapter; - adapter = new HTMLElementDeclarationAdapter(); - notifier.addAdapter(adapter); - return adapter; - } - - /** - */ - public synchronized static ElementDeclarationAdapterFactory getInstance() { - if (instance == null) - instance = new ElementDeclarationAdapterFactory(); - return instance; - } - - /** - */ - public boolean isFactoryForType(Object type) { - return (type == ElementDeclarationAdapter.class); - } - - public void release() { - // default is to do nothing - } - - /** - * Overriding copy method - */ - public INodeAdapterFactory copy() { - return getInstance(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java deleted file mode 100644 index 377ad0972d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - -import java.util.Collection; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public final class HMQUtil { - - private final static Vector nullVector = new Vector(); - - /* HMQUtil class must not instantiate. */ - private HMQUtil() { - super(); - } - - /* gather all element declarations in inclusion of each parent of the target. - * the inclusion of the target is also gathered. */ - public static Collection getInclusions(Element target) { - if (target == null) - return nullVector; - Collection inclusions = gatherInclusions(getAncestorDeclarations(target)); - - Hashtable availables = new Hashtable(); - Iterator iter = inclusions.iterator(); - while (iter.hasNext()) { - CMContent inclusion = (CMContent) iter.next(); - switch (inclusion.getNodeType()) { - case CMNode.GROUP : - extractDeclarations(availables, (CMGroup) inclusion); - break; - case CMNode.ELEMENT_DECLARATION : - addInclusion(availables, (CMElementDeclaration) inclusion); - break; - } - } - - return availables.values(); - } - - private static Collection getAncestorDeclarations(Element target) { - Vector ancestors = new Vector(); - - Document doc = target.getOwnerDocument(); - ModelQuery query = ModelQueryUtil.getModelQuery(doc); - CMElementDeclaration decl = query.getCMElementDeclaration(target); - ancestors.add(decl); - - Element parent = getParent(target); - while (parent != null) { - decl = query.getCMElementDeclaration(parent); - if (decl != null) - ancestors.add(decl); - parent = getParent(parent); - } - return ancestors; - } - - private static void addInclusion(Hashtable availables, CMElementDeclaration decl) { - String name = decl.getElementName(); - if (availables.containsKey(name)) - return; - availables.put(name, decl); - } - - private static Collection gatherInclusions(Collection ancestors) { - Vector inclusions = new Vector(); - Iterator iter = ancestors.iterator(); - while (iter.hasNext()) { - CMElementDeclaration decl = (CMElementDeclaration) iter.next(); - if (decl.supports(HTMLCMProperties.INCLUSION)) { - CMContent inclusion = (CMContent) decl.getProperty(HTMLCMProperties.INCLUSION); - if (inclusion != null) - inclusions.add(inclusion); - } - } - return inclusions; - } - - private static Element getParent(Node target) { - Node parent = target.getParentNode(); - while (parent != null) { - if (parent.getNodeType() == Node.ELEMENT_NODE) - return (Element) parent; - parent = parent.getParentNode(); - } - return null; - } - - private static void extractDeclarations(Hashtable availables, CMGroup group) { - CMNodeList content = group.getChildNodes(); - for (int i = 0; i < content.getLength(); i++) { - CMNode cmn = content.item(i); - if (cmn == null || cmn.getNodeType() != CMNode.ELEMENT_DECLARATION) - continue; - addInclusion(availables, (CMElementDeclaration) cmn); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java deleted file mode 100644 index 76f0281967..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - */ -public class HTMLElementDeclarationAdapter implements ElementDeclarationAdapter { - - private CMElementDeclaration declaration = null; - - /** - */ - public HTMLElementDeclarationAdapter() { - super(); - } - - /** - */ - public CMElementDeclaration getDeclaration() { - return this.declaration; - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return (type == ElementDeclarationAdapter.class); - } - - /** - */ - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) { - } - - /** - */ - public void setDeclaration(CMElementDeclaration declaration) { - this.declaration = declaration; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java deleted file mode 100644 index 6d7fbbe3ae..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.SimpleAssociationProvider; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; - -/** - */ -public class HTMLModelQueryAssociationProvider extends SimpleAssociationProvider { - - /** - * @param modelQueryCMProvider org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider - */ - public HTMLModelQueryAssociationProvider(CMDocumentCache cache, URIResolver idResolver) { - super(new HTMLModelQueryCMProvider(cache, idResolver)); - } - - // MIWA: We cannot cache a CMElementDeclaration any more. Because, when the DOCTYPE - // was changed, CMDocument would be changed. Then, a cached CMElementDeclaration - // would be invalid. If some performance problems occurs, we consider a smarter - // cache mechanism. - // - // public CMElementDeclaration getCMElementDeclaration(Element element) { - // // check if element declaration is cached - // INodeNotifier notifier = (INodeNotifier) element; - // ElementDeclarationAdapter adapter = (ElementDeclarationAdapter) notifier.getExistingAdapter(ElementDeclarationAdapter.class); - // if (adapter != null) - // return adapter.getDeclaration(); - // - // CMElementDeclaration decl = super.getCMElementDeclaration(element); - // - // // cache HTML element declaration only - // if (decl != null && decl instanceof HTMLElementDeclaration) { - // IAdapterFactory factory = ElementDeclarationAdapterFactory.getInstance(); - // adapter = (ElementDeclarationAdapter) factory.adapt(notifier); - // if (adapter != null) - // adapter.setDeclaration(decl); - // } - // - // return decl; - // } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java deleted file mode 100644 index 40e6d3d743..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryCMProvider.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import java.util.Hashtable; - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Node; - -/** - * CMDocument provider for HTML and XHTML documents. - * - * This added and/or made public specifically for experimentation. It will - * change as this functionality becomes API. See - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084 - */ - - -public class HTMLModelQueryCMProvider implements ModelQueryCMProvider { - - - private static CMDocument staticHTML = HTMLCMDocumentFactory.getCMDocument(CMDocType.HTML_DOC_TYPE); - private static CMDocument staticCHTML = HTMLCMDocumentFactory.getCMDocument(CMDocType.CHTML_DOC_TYPE); - private static HTMLDocumentTypeRegistry doctypeRegistry = HTMLDocumentTypeRegistry.getInstance(); - private static Hashtable buddyCache = new Hashtable(); - - private XHTMLAssociationProvider xhtmlassoc = null; - - public HTMLModelQueryCMProvider(CMDocumentCache cache, URIResolver idResolver) { - super(); - xhtmlassoc = new XHTMLAssociationProvider(cache, idResolver); - } - - /** - * Returns the CMDocument that corresponds to the DOM Node. or null if no - * CMDocument is appropriate for the DOM Node. - */ - public CMDocument getCorrespondingCMDocument(Node node) { - IDOMDocument owner = getOwnerXMLDocument(node); - if (owner == null) - return null; - - String pid = getPublicId(owner); - if (pid == null) - return staticHTML; - - HTMLDocumentTypeEntry entry = doctypeRegistry.getEntry(pid); - if (entry == null) - return staticHTML; - - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=151000 - use internal content model - if (entry.useInternalModel()) { - if (pid != null && pid.equals(HTMLDocumentTypeRegistry.CHTML_PUBLIC_ID)) { - return staticCHTML; - } - return staticHTML; - } - - pid = entry.getPublicId(); - String sid = entry.getSystemId(); - - CMDocument dtdcm = xhtmlassoc.getXHTMLCMDocument(pid, sid); - if (dtdcm == null) { - if (pid != null && pid.equals(HTMLDocumentTypeRegistry.CHTML_PUBLIC_ID)) { - return staticCHTML; - } - return staticHTML; - } - - String grammarURI = xhtmlassoc.getCachedGrammerURI(); - CMDocument buddycm = (CMDocument) buddyCache.get(grammarURI); - if (buddycm != null) - return buddycm; - - buddycm = new CMDocumentForBuddySystem(dtdcm, entry.isXMLType()); - buddyCache.put(grammarURI, buddycm); - return buddycm; - } - - // private methods - private IDOMDocument getOwnerXMLDocument(Node node) { - if (node == null) - return null; - Document owner = (node.getNodeType() == Node.DOCUMENT_NODE) ? (Document) node : node.getOwnerDocument(); - if (owner == null) - return null; - if (!(owner instanceof IDOMDocument)) - return null; - return (IDOMDocument) owner; - } - - private String getPublicId(IDOMDocument doc) { - if (doc == null) - return null; - DocumentType doctype = doc.getDoctype(); - return (doctype != null) ? doctype.getPublicId() : doc.getDocumentTypeId(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java deleted file mode 100644 index bee1432c3e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; -import org.eclipse.wst.xml.core.internal.modelquery.XMLModelQueryAssociationProvider; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.ssemodelquery.MovableModelQuery; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * This added and/or made public specifically for experimentation. It - * will change as this functionality becomes API. See - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084 - */ - -public class HTMLModelQueryImpl extends ModelQueryImpl implements MovableModelQuery { - - protected CMDocumentCache fCache = null; - protected XMLModelQueryAssociationProvider xmlAssocProv = null; - - public HTMLModelQueryImpl(CMDocumentCache cache, URIResolver idResolver) { - super(new HTMLModelQueryAssociationProvider(cache, idResolver)); - fCache = cache; - xmlAssocProv = new XMLModelQueryAssociationProvider(cache, idResolver); - } - - public List getAvailableContent(Element element, CMElementDeclaration ed, int includeOptions) { - List originalCandidates = super.getAvailableContent(element, ed, includeOptions); - if ((includeOptions & INCLUDE_CHILD_NODES) == 0) - return originalCandidates; - // When the target document is XHTML, it is waste to find inclusions, - // since inclusion is available in HTML only. - if (!ed.supports(HTMLCMProperties.IS_XHTML)) - return originalCandidates; - - Boolean isXhtml = Boolean.FALSE; - isXhtml = (Boolean) ed.getProperty(HTMLCMProperties.IS_XHTML); - if (isXhtml != null && isXhtml.booleanValue()) - return originalCandidates; - - // OK, the target is surely a HTML element, so it may have inclusion. - // Try to find it. - Vector candidates = new Vector(originalCandidates); - - switch (ed.getContentType()) { - case CMElementDeclaration.ANY : - case CMElementDeclaration.ELEMENT : - case CMElementDeclaration.MIXED : - // do enumerate inclusions. - candidates.addAll(HMQUtil.getInclusions(element)); - break; - case CMElementDeclaration.EMPTY : - case CMElementDeclaration.PCDATA : - case CMElementDeclaration.CDATA : - default : - // should not add any inclusions. - // so, nothing to do here. - break; - } - // If the current element does not available, it is impossible - // to filter out exclusion. - if (element == null) - return candidates; - - // Now, the time to check exclusion. - Vector content = new Vector(candidates.size()); - for (int i = 0; i < candidates.size(); i++) { - CMElementDeclaration candidate = (CMElementDeclaration) candidates.elementAt(i); - if (candidate == null) - continue; - if (isExcluded(candidate, element)) - continue; - content.add(candidate); - } - - return content; - } - - /** - * @see MovableModelQuery#setIdResolver(IdResolver) - */ - public void setIdResolver(URIResolver newIdResolver) { - modelQueryAssociationProvider = new HTMLModelQueryAssociationProvider(fCache, newIdResolver); - } - - // utilities - private static boolean isExcluded(CMElementDeclaration candidate, Element target) { - CMNamedNodeMap prohibited = getProhibitedAncestors(candidate); - if (prohibited == null) - return false; - Element parent = target; - while (parent != null) { - CMNode pdec = prohibited.getNamedItem(parent.getNodeName()); - if (pdec != null) - return true; - parent = getExplicitParentElement(parent); - } - return false; - } - - private static CMNamedNodeMap getProhibitedAncestors(CMElementDeclaration dec) { - if (!dec.supports(HTMLCMProperties.PROHIBITED_ANCESTORS)) - return null; - return (CMNamedNodeMap) dec.getProperty(HTMLCMProperties.PROHIBITED_ANCESTORS); - } - - /* get an ancestor element ignoring implicit ones. */ - private static Element getExplicitParentElement(Node child) { - if (child == null) - return null; - - Node p = child.getParentNode(); - while (p != null) { - if (p.getNodeType() == Node.ELEMENT_NODE) { - if (p instanceof IDOMElement) { - if (((IDOMElement) p).isImplicitTag()) { - p = p.getParentNode(); - continue; - } - } - return (Element) p; - } - p = p.getParentNode(); - } - return null; - } - - public CMElementDeclaration getCMElementDeclaration(Element element) { - CMElementDeclaration result = super.getCMElementDeclaration(element); - if (null != result) - return result; - - return xmlAssocProv.getCMElementDeclaration(element); - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java deleted file mode 100644 index ef7c2638c4..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedHTML.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter; - -public class ModelQueryAdapterFactoryForEmbeddedHTML extends ModelQueryAdapterFactoryForHTML { - - - /** - * Constructor for ModelQueryAdapterFactoryForEmbeddedHTML. - */ - public ModelQueryAdapterFactoryForEmbeddedHTML() { - super(ModelQueryAdapter.class, false); - } - - - public INodeAdapterFactory copy() { - - return new ModelQueryAdapterFactoryForEmbeddedHTML(); - } - - /** - * ISSUE: this "forces" a new one to always be created/returned, not - * "cached" on the node. That seems incorrect. Simply using - * shouldRegisterFalse should work, except, there might have been one - * there that someone else already explicitly put there, so this is only - * way I know to override that. Especially complicated here since a number - * of adapters are for ModelQueryAdapter.class. - */ - public INodeAdapter adapt(INodeNotifier object) { - return adaptNew(object); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java deleted file mode 100644 index 9cc2f2e7b2..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java +++ /dev/null @@ -1,247 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - - -import java.io.File; -import java.net.URI; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.html.core.internal.Logger; -import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.util.Debug; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; -import org.eclipse.wst.xml.core.internal.modelquery.XMLCatalogIdResolver; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter; -import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapterImpl; - -/** - * Creates a ModelQueryAdapter for HTML models - */ -public class ModelQueryAdapterFactoryForHTML extends AbstractAdapterFactory { - - ModelQueryAdapterImpl modelQueryAdapter; - IStructuredModel modelStateNotifier; - private InternalModelStateListener internalModelStateListener; - - class InternalModelStateListener implements IModelStateListener { - - /** - * @see IModelStateListener#modelAboutToBeChanged(IStructuredModel) - */ - public void modelAboutToBeChanged(IStructuredModel model) { - // ISSUE: should we "freeze" state, or anything? - } - - public void modelAboutToBeReinitialized(IStructuredModel structuredModel) { - // ISSUE: should we "freeze" state, or anything? - - } - - /** - * @see IModelStateListener#modelChanged(IStructuredModel) - */ - public void modelChanged(IStructuredModel model) { - // nothing to do? - } - - /** - * @see IModelStateListener#modelDirtyStateChanged(IStructuredModel, - * boolean) - */ - public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) { - // nothing to do - } - - public void modelReinitialized(IStructuredModel structuredModel) { - updateResolver(structuredModel); - } - - /** - * @see IModelStateListener#modelResourceDeleted(IStructuredModel) - */ - public void modelResourceDeleted(IStructuredModel model) { - // nothing to do? - } - - /** - * @see IModelStateListener#modelResourceMoved(IStructuredModel, - * IStructuredModel) - */ - public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) { - modelStateNotifier.removeModelStateListener(this); - modelStateNotifier = newModel; - updateResolver(modelStateNotifier); - modelStateNotifier.addModelStateListener(this); - } - - private void updateResolver(IStructuredModel model) { - String baseLocation = model.getBaseLocation(); - IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation())); - if (baseFile != null) { - if (baseFile.getLocation() != null) { - baseLocation = baseFile.getLocation().toString(); - } - if (baseLocation == null && baseFile.getLocationURI() != null) { - baseLocation = baseFile.getLocationURI().toString(); - } - if (baseLocation == null) { - baseLocation = baseFile.getFullPath().toString(); - } - } - else { - baseLocation = model.getBaseLocation(); - } - modelQueryAdapter.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver())); - } - - } - - - /** - * ModelQueryAdapterFactoryForHTML constructor comment. Note: this is a - * case there the key is not exactly same as the class we are after. - */ - public ModelQueryAdapterFactoryForHTML() { - super(ModelQueryAdapter.class, true); - } - - /** - * We need this protected version to allow subclasses to pass up standard - * behaviour. - * - * @param adapterKey - * @param registerAdapters - */ - - protected ModelQueryAdapterFactoryForHTML(Object adapterKey, boolean registerAdapters) { - super(adapterKey, registerAdapters); - } - - - - public INodeAdapterFactory copy() { - - return new ModelQueryAdapterFactoryForHTML(); - } - - public void release() { - super.release(); - if (modelStateNotifier != null) { - modelStateNotifier.removeModelStateListener(internalModelStateListener); - } - - modelStateNotifier = null; - - if (modelQueryAdapter != null) { - modelQueryAdapter.release(); - } - } - - /** - * createAdapter method comment. - * - * XXX: we must make this method more independent of 'location' (at least - * provide some fall-back method). - */ - protected INodeAdapter createAdapter(INodeNotifier target) { - - if (Debug.displayInfo) { - Logger.log(Logger.INFO_DEBUG, "-----------------------ModelQueryAdapterFactoryForHTML.createAdapter" + target); //$NON-NLS-1$ - } - if (modelQueryAdapter == null) { - if (target instanceof IDOMNode) { - IDOMNode xmlNode = (IDOMNode) target; - modelStateNotifier = xmlNode.getModel(); - modelStateNotifier.addModelStateListener(getInternalModelStateListener()); - - IStructuredModel model = xmlNode.getModel(); - org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver(); - if (Debug.displayInfo) - System.out.println("----------------ModelQueryAdapterFactoryForHTML... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$ - - /** - * XMLCatalogIdResolver currently requires a filesystem - * location string. Customarily this will be what is in the - * deprecated SSE URIResolver and required by the Common URI - * Resolver. - */ - URIResolver idResolver = null; - if (resolver != null) { - idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver); - } - else { - /* - * 203649 - this block may be necessary due to ordering of - * setting the resolver into the model - */ - String baseLocation = null; - String modelsBaseLocation = model.getBaseLocation(); - if (modelsBaseLocation != null) { - File file = new Path(modelsBaseLocation).toFile(); - if (file.exists()) { - baseLocation = file.getAbsolutePath(); - } - else { - IPath basePath = new Path(model.getBaseLocation()); - IResource derivedResource = null; - if (basePath.segmentCount() > 1) - derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath); - else - derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0)); - IPath derivedPath = derivedResource.getLocation(); - if (derivedPath != null) { - baseLocation = derivedPath.toString(); - } - else { - URI uri = derivedResource.getLocationURI(); - if (uri != null) { - baseLocation = uri.toString(); - } - } - } - if(baseLocation == null) { - baseLocation = modelsBaseLocation; - } - } - idResolver = new XMLCatalogIdResolver(baseLocation, null); - } - CMDocumentCache documentCache = new CMDocumentCache(); - ModelQuery modelQuery = new HTMLModelQueryImpl(documentCache, idResolver); - modelQuery.setEditMode(ModelQuery.EDIT_MODE_UNCONSTRAINED); - modelQueryAdapter = new ModelQueryAdapterImpl(documentCache, modelQuery, idResolver); - } - } - return modelQueryAdapter; - } - - - - private final InternalModelStateListener getInternalModelStateListener() { - if (internalModelStateListener == null) { - internalModelStateListener = new InternalModelStateListener(); - } - return internalModelStateListener; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java deleted file mode 100644 index 82de2cb03a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager; -import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.XMLAssociationProvider; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; -import org.w3c.dom.Document; - -/** - * A Class to provide an association between XHTML documents and DTDs for - * XHTML. This class is intended to be used only in HTMLModelQueryCMProvider. - */ -/* - * This class closely resemble XMLModelQueryAssociationProvider. - */ -class XHTMLAssociationProvider extends XMLAssociationProvider { - - /** - * set USE_QUICK_CACHE to false to test effects of not caching at all. - */ - private static final boolean USE_QUICK_CACHE = true; - protected URIResolver idResolver; - private String fCachedGrammerURI; - private String fCachedPublicID; - private String fCachedSystemID; - private boolean cached; - - public XHTMLAssociationProvider(CMDocumentCache cache, URIResolver idResolver) { - super(cache); - this.idResolver = idResolver; - - // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399. If the CM document URI - // is resolved and cached at this level instruct the CM model manager to avoid - // re-resolving the URI. - - if (USE_QUICK_CACHE) { - documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_PERFORM_URI_RESOLUTION, false); - } - } - - /** - * - * @param publicId - * @param systemId - * @return - */ - public CMDocument getXHTMLCMDocument(String publicId, String systemId) { - if (idResolver == null) - return null; - String grammerURI = null; - if (USE_QUICK_CACHE) { - /* - * In parsing a document, we get many identical requests to this - * method, so instead of looking up (resolving) grammerURI each - * time, we'll just return previously cached one. Probably not - * worth have a more complex cache than that. - */ - if (cached && sameAs(fCachedPublicID, publicId) && sameAs(fCachedSystemID, systemId)) { - grammerURI = fCachedGrammerURI; - } - else { - grammerURI = idResolver.resolve(null, publicId, systemId); - fCachedGrammerURI = grammerURI; - fCachedPublicID = publicId; - fCachedSystemID = systemId; - cached = true; - } - } - else { - grammerURI = idResolver.resolve(null, publicId, systemId); - } - - if (grammerURI == null) - return null; - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=88896 - * - * We once called the deprecated 2 argument form of getCMDocument. - * - * CMDocument cmDocument = documentManager.getCMDocument(publicId, - * grammerURI); - * - * which eventually resulted in empty string for type, which I don't - * think the infrastructure handles any longer. So, I deleted - * deprecated methods, and switched to null for type argument. - * - * 'null' means to "create based on uri". - * - * FYI, 'dtd' would mean load only those registered as dtd's - * - * CMDocument cmDocument = documentManager.getCMDocument(publicId, - * grammerURI); CMDocument cmDocument = - * documentManager.getCMDocument(publicId, grammerURI, "dtd"); - */ - CMDocument cmDocument = documentManager.getCMDocument(publicId, grammerURI, null); - return cmDocument; - } - - /** - */ - protected String resolveGrammarURI(Document document, String publicId, String systemId) { - return idResolver.resolve(null, publicId, systemId); - } - - private boolean sameAs(String a, String b) { - boolean result = false; - if (a == null) { - result = b == null; - } - else { - result = a.equals(b); - } - return result; - } - - /** - * This added and/or made public specifically for experimentation. It - * will change as this functionality becomes API. See - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084 - */ - public String getCachedGrammerURI() { - return fCachedGrammerURI; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java deleted file mode 100644 index ea59b8a2d1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.preferences; - -import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; -import org.eclipse.core.runtime.preferences.DefaultScope; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; - -/** - * Sets default values for HTML Core preferences - */ -public class HTMLCorePreferenceInitializer extends AbstractPreferenceInitializer { - - public void initializeDefaultPreferences() { - IEclipsePreferences node = new DefaultScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName()); - - // formatting preferences - node.putInt(HTMLCorePreferenceNames.LINE_WIDTH, 72); - node.putBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false); - node.put(HTMLCorePreferenceNames.INDENTATION_CHAR, HTMLCorePreferenceNames.TAB); - node.putInt(HTMLCorePreferenceNames.INDENTATION_SIZE, 1); - node.putBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false); - node.putBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET, false); - - // cleanup preferences - node.putInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS); - node.putInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS); - // node.putBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, - // true); - node.putBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true); - node.putBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, true); - node.putBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, true); - node.putBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE, true); - node.putBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES, false); - - // code generation preferences - node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - String defaultEnc = "UTF-8";//$NON-NLS-1$ - String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ - if (systemEnc != null) { - defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$ - } - node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); - node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - - node.putInt(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER); - node.putInt(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER); - - // this could be made smarter by actually looking up the content - // type's valid extensions - node.put(HTMLCorePreferenceNames.DEFAULT_EXTENSION, "html"); //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java deleted file mode 100644 index 0e2e6711b3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java +++ /dev/null @@ -1,232 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.preferences; - -/** - * Common preference keys used by HTML core - * - * @plannedfor 1.0 - */ -public class HTMLCorePreferenceNames { - private HTMLCorePreferenceNames() { - // empty private constructor so users cannot instantiate class - } - - /** - * The default extension to use when none is specified in the New HTML - * File Wizard. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$ - - /** - * The maximum width of a line before a line split is needed. - * <p> - * Value is of type <code>Integer</code>. - * </p> - */ - public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$ - - /** - * Indicates if all blanks lines should be cleared during formatting. - * Blank lines will be kept when false. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$ - - /** - * The number of #INDENTATION_CHAR for 1 indentation. - * <p> - * Value is of type <code>Integer</code>. - * </p> - */ - public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$ - - /** - * The character used for indentation. - * <p> - * Value is of type <code>String</code>.<br /> - * Possible values: {TAB, SPACE} - * </p> - */ - public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$ - - /** - * Possible value for the preference #INDENTATION_CHAR. Indicates to use - * tab character when formatting. - * - * @see #SPACE - * @see #INDENTATION_CHAR - */ - public static final String TAB = "tab"; //$NON-NLS-1$ - - /** - * Possible value for the preference #INDENTATION_CHAR. Indicates to use - * space character when formatting. - * - * @see #TAB - * @see #INDENTATION_CHAR - */ - public static final String SPACE = "space"; //$NON-NLS-1$ - - /** - * Indicates if tags with multiple attributes should be formatted - * (splitting each attr on a new line). - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$ - - /** - * Indicates if end brackets of start tags should be placed on a new line - * if the start tag spans more than one line. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String ALIGN_END_BRACKET = "alignEndBracket";//$NON-NLS-1$ - - /** - * Indicates whether or not cleanup processor should format source. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$ - - /** - * Indicates whether or not empty elements should be compressed during - * cleanup. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$ - - /** - * Indicates whether or not to insert required attributes during cleanup. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$ - - /** - * Indicates whether or not to insert missing tags during cleanup. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$ - - /** - * Indicates whether or not to quote all attribute values during cleanup. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$ - - /** - * Indicates whether or not to convert all line delimiters during cleanup. - * <p> - * Value is of type <code>Boolean</code>. - * </p> - */ - public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$ - - /** - * Indicates the line delimiter to use during cleanup if converting line - * delimiters. - * <p> - * Value is of type <code>String</code>.<br /> - * Possible values: {CR, CRLF, LF, NO_TRANSLATION} - * </p> - * - */ - public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$ - - /** - * Indicates case to use on all tag names during cleanup. - * <p> - * Value is of type <code>Integer</code>.<br /> - * Possible values: {LOWER, UPPER, ASIS} - * </p> - */ - public static final String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$ - - /** - * Indicates case to use on all attribute names during cleanup. - * <p> - * Value is of type <code>Integer</code>.<br /> - * Possible values: {LOWER, UPPER, ASIS} - * </p> - */ - public static final String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$ - - /** - * Preferred markup case for tag names in code generation - * <p> - * Value is of type <code>Integer</code>.<br /> - * Possible values: {LOWER, UPPER} - * </p> - */ - public static final String TAG_NAME_CASE = "tagNameCase";//$NON-NLS-1$ - - /** - * Preferred markup case for attribute names in code generation - * <p> - * Value is of type <code>Integer</code>.<br /> - * Possible values: {LOWER, UPPER} - * </p> - */ - public static final String ATTR_NAME_CASE = "attrNameCase";//$NON-NLS-1$ - - /** - * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. - * Indicates to leave case as is. - * - * @see #LOWER - * @see #UPPER - * @see #TAG_NAME_CASE - * @see #ATTR_NAME_CASE - */ - public static final int ASIS = 0; - - /** - * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. - * Indicates to make name lowercase. - * - * @see #ASIS - * @see #UPPER - * @see #TAG_NAME_CASE - * @see #ATTR_NAME_CASE - */ - public static final int LOWER = 1; - - /** - * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. - * Indicates to make name uppercase. - * - * @see #LOWER - * @see #ASIS - * @see #TAG_NAME_CASE - * @see #ATTR_NAME_CASE - */ - public static final int UPPER = 2; -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java deleted file mode 100644 index 5d1a53a703..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java +++ /dev/null @@ -1,675 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional; - -/** - * Provide all names defined in the HTML 4.0? specification. - */ -public interface HTML40Namespace { - - // Element names - public static interface ElementName { - public static final String A = "A"; //$NON-NLS-1$ - public static final String ABBR = "ABBR"; //$NON-NLS-1$ - public static final String ACRONYM = "ACRONYM"; //$NON-NLS-1$ - public static final String ADDRESS = "ADDRESS"; //$NON-NLS-1$ - public static final String APPLET = "APPLET"; //$NON-NLS-1$ - public static final String AREA = "AREA"; //$NON-NLS-1$ - public static final String B = "B"; //$NON-NLS-1$ - public static final String BASE = "BASE"; //$NON-NLS-1$ - public static final String BASEFONT = "BASEFONT"; //$NON-NLS-1$ - public static final String BDO = "BDO"; //$NON-NLS-1$ - public static final String BGSOUND = "BGSOUND"; // D205513 //$NON-NLS-1$ - public static final String BIG = "BIG"; //$NON-NLS-1$ - public static final String BLINK = "BLINK"; //$NON-NLS-1$ - public static final String BLOCKQUOTE = "BLOCKQUOTE"; //$NON-NLS-1$ - public static final String BODY = "BODY"; //$NON-NLS-1$ - public static final String BR = "BR"; //$NON-NLS-1$ - public static final String BUTTON = "BUTTON"; //$NON-NLS-1$ - public static final String CAPTION = "CAPTION"; //$NON-NLS-1$ - public static final String CENTER = "CENTER"; //$NON-NLS-1$ - public static final String CITE = "CITE"; //$NON-NLS-1$ - public static final String CODE = "CODE"; //$NON-NLS-1$ - public static final String COL = "COL"; //$NON-NLS-1$ - public static final String COLGROUP = "COLGROUP"; //$NON-NLS-1$ - public static final String DD = "DD"; //$NON-NLS-1$ - public static final String DEL = "DEL"; //$NON-NLS-1$ - public static final String DFN = "DFN"; //$NON-NLS-1$ - public static final String DIR = "DIR"; //$NON-NLS-1$ - public static final String DIV = "DIV"; //$NON-NLS-1$ - public static final String DL = "DL"; //$NON-NLS-1$ - public static final String DT = "DT"; //$NON-NLS-1$ - public static final String EM = "EM"; //$NON-NLS-1$ - public static final String EMBED = "EMBED"; //$NON-NLS-1$ - public static final String FIELDSET = "FIELDSET"; //$NON-NLS-1$ - public static final String FONT = "FONT"; //$NON-NLS-1$ - public static final String FORM = "FORM"; //$NON-NLS-1$ - public static final String FRAME = "FRAME"; //$NON-NLS-1$ - public static final String FRAMESET = "FRAMESET"; //$NON-NLS-1$ - public static final String H1 = "H1"; //$NON-NLS-1$ - public static final String H2 = "H2"; //$NON-NLS-1$ - public static final String H3 = "H3"; //$NON-NLS-1$ - public static final String H4 = "H4"; //$NON-NLS-1$ - public static final String H5 = "H5"; //$NON-NLS-1$ - public static final String H6 = "H6"; //$NON-NLS-1$ - public static final String HEAD = "HEAD"; //$NON-NLS-1$ - public static final String HR = "HR"; //$NON-NLS-1$ - public static final String HTML = "HTML"; //$NON-NLS-1$ - public static final String I = "I"; //$NON-NLS-1$ - public static final String IFRAME = "IFRAME"; //$NON-NLS-1$ - public static final String IMG = "IMG"; //$NON-NLS-1$ - public static final String INPUT = "INPUT"; //$NON-NLS-1$ - public static final String INS = "INS"; //$NON-NLS-1$ - public static final String ISINDEX = "ISINDEX"; //$NON-NLS-1$ - public static final String KBD = "KBD"; //$NON-NLS-1$ - public static final String LABEL = "LABEL"; //$NON-NLS-1$ - public static final String LEGEND = "LEGEND"; //$NON-NLS-1$ - public static final String LI = "LI"; //$NON-NLS-1$ - public static final String LINK = "LINK"; //$NON-NLS-1$ - public static final String MAP = "MAP"; //$NON-NLS-1$ - public static final String MENU = "MENU"; //$NON-NLS-1$ - public static final String META = "META"; //$NON-NLS-1$ - public static final String NOBR = "NOBR"; // D205513 //$NON-NLS-1$ - public static final String NOEMBED = "NOEMBED"; //$NON-NLS-1$ - public static final String NOFRAMES = "NOFRAMES"; //$NON-NLS-1$ - public static final String NOSCRIPT = "NOSCRIPT"; //$NON-NLS-1$ - public static final String OBJECT = "OBJECT"; //$NON-NLS-1$ - public static final String OL = "OL"; //$NON-NLS-1$ - public static final String OPTGROUP = "OPTGROUP"; //$NON-NLS-1$ - public static final String OPTION = "OPTION"; //$NON-NLS-1$ - public static final String P = "P"; //$NON-NLS-1$ - public static final String PARAM = "PARAM"; //$NON-NLS-1$ - public static final String PRE = "PRE"; //$NON-NLS-1$ - public static final String Q = "Q"; //$NON-NLS-1$ - public static final String S = "S"; //$NON-NLS-1$ - public static final String SAMP = "SAMP"; //$NON-NLS-1$ - public static final String SCRIPT = "SCRIPT"; //$NON-NLS-1$ - public static final String SELECT = "SELECT"; //$NON-NLS-1$ - public static final String SMALL = "SMALL"; //$NON-NLS-1$ - public static final String SPAN = "SPAN"; //$NON-NLS-1$ - public static final String STRIKE = "STRIKE"; //$NON-NLS-1$ - public static final String STRONG = "STRONG"; //$NON-NLS-1$ - public static final String STYLE = "STYLE"; //$NON-NLS-1$ - public static final String SUB = "SUB"; //$NON-NLS-1$ - public static final String SUP = "SUP"; //$NON-NLS-1$ - public static final String TABLE = "TABLE"; //$NON-NLS-1$ - public static final String TBODY = "TBODY"; //$NON-NLS-1$ - public static final String TD = "TD"; //$NON-NLS-1$ - public static final String TEXTAREA = "TEXTAREA"; //$NON-NLS-1$ - public static final String TFOOT = "TFOOT"; //$NON-NLS-1$ - public static final String TH = "TH"; //$NON-NLS-1$ - public static final String THEAD = "THEAD"; //$NON-NLS-1$ - public static final String TITLE = "TITLE"; //$NON-NLS-1$ - public static final String TR = "TR"; //$NON-NLS-1$ - public static final String TT = "TT"; //$NON-NLS-1$ - public static final String U = "U"; //$NON-NLS-1$ - public static final String UL = "UL"; //$NON-NLS-1$ - public static final String VAR = "VAR"; //$NON-NLS-1$ - public static final String WBR = "WBR"; // D205513 //$NON-NLS-1$ - public static final String MARQUEE = "MARQUEE"; //$NON-NLS-1$ - public static final String SSI_CONFIG = "SSI:CONFIG"; // D210393 //$NON-NLS-1$ - public static final String SSI_ECHO = "SSI:ECHO"; //$NON-NLS-1$ - public static final String SSI_EXEC = "SSI:EXEC"; //$NON-NLS-1$ - public static final String SSI_FSIZE = "SSI:FSIZE"; //$NON-NLS-1$ - public static final String SSI_FLASTMOD = "SSI:FLASTMOD"; //$NON-NLS-1$ - public static final String SSI_INCLUDE = "SSI:INCLUDE"; //$NON-NLS-1$ - public static final String SSI_PRINTENV = "SSI:PRINTENV"; //$NON-NLS-1$ - public static final String SSI_SET = "SSI:SET"; //$NON-NLS-1$ - public static final String WML_WML = "wml"; //$NON-NLS-1$ - public static final String WML_CARD = "card"; //$NON-NLS-1$ - public static final String WML_TEMPLATE = "template"; //$NON-NLS-1$ - public static final String WML_ACCESS = "access"; //$NON-NLS-1$ - public static final String WML_DO = "do"; //$NON-NLS-1$ - public static final String WML_ONEVENT = "onevent"; //$NON-NLS-1$ - public static final String WML_TIMER = "timer"; //$NON-NLS-1$ - public static final String WML_ANCHOR = "anchor"; //$NON-NLS-1$ - public static final String WML_PREV = "prev"; //$NON-NLS-1$ - public static final String WML_REFRESH = "refresh"; //$NON-NLS-1$ - public static final String WML_GO = "go"; //$NON-NLS-1$ - public static final String WML_NOOP = "noop"; //$NON-NLS-1$ - public static final String WML_SETVAR = "setvar"; //$NON-NLS-1$ - public static final String WML_POSTFIELD = "postfield"; //$NON-NLS-1$ - } - - // Character Entities - public static interface EntityName { - public static final String AACUTE_U = "Aacute"; //$NON-NLS-1$ - public static final String AACUTE_L = "aacute"; //$NON-NLS-1$ - public static final String ACIRC_U = "Acirc"; //$NON-NLS-1$ - public static final String ACIRC_L = "acirc"; //$NON-NLS-1$ - public static final String ACUTE = "acute"; //$NON-NLS-1$ - public static final String AELIG_U = "AElig"; //$NON-NLS-1$ - public static final String AELIG_L = "aelig"; //$NON-NLS-1$ - public static final String AGRAVE_U = "Agrave"; //$NON-NLS-1$ - public static final String AGRAVE_L = "agrave"; //$NON-NLS-1$ - public static final String ALEFSYM = "alefsym"; //$NON-NLS-1$ - public static final String ALPHA_U = "Alpha"; //$NON-NLS-1$ - public static final String ALPHA_L = "alpha"; //$NON-NLS-1$ - public static final String AMP = "amp"; //$NON-NLS-1$ - public static final String AND = "and"; //$NON-NLS-1$ - public static final String ANG = "ang"; //$NON-NLS-1$ - public static final String ARING_U = "Aring"; //$NON-NLS-1$ - public static final String ARING_L = "aring"; //$NON-NLS-1$ - public static final String ASYMP = "asymp"; //$NON-NLS-1$ - public static final String ATILDE_U = "Atilde"; //$NON-NLS-1$ - public static final String ATILDE_L = "atilde"; //$NON-NLS-1$ - public static final String AUML_U = "Auml"; //$NON-NLS-1$ - public static final String AUML_L = "auml"; //$NON-NLS-1$ - public static final String BDQUO = "bdquo"; //$NON-NLS-1$ - public static final String BETA_U = "Beta"; //$NON-NLS-1$ - public static final String BETA_L = "beta"; //$NON-NLS-1$ - public static final String BRVBAR = "brvbar"; //$NON-NLS-1$ - public static final String BULL = "bull"; //$NON-NLS-1$ - public static final String CAP = "cap"; //$NON-NLS-1$ - public static final String CCEDIL_U = "Ccedil"; //$NON-NLS-1$ - public static final String CCEDIL_L = "ccedil"; //$NON-NLS-1$ - public static final String CEDIL = "cedil"; //$NON-NLS-1$ - public static final String CENT = "cent"; //$NON-NLS-1$ - public static final String CHI_U = "Chi"; //$NON-NLS-1$ - public static final String CHI_L = "chi"; //$NON-NLS-1$ - public static final String CIRC = "circ"; //$NON-NLS-1$ - public static final String CLUBS = "clubs"; //$NON-NLS-1$ - public static final String CONG = "cong"; //$NON-NLS-1$ - public static final String COPY = "copy"; //$NON-NLS-1$ - public static final String CRARR = "crarr"; //$NON-NLS-1$ - public static final String CUP = "cup"; //$NON-NLS-1$ - public static final String CURREN = "curren"; //$NON-NLS-1$ - public static final String DAGGER_U = "Dagger"; //$NON-NLS-1$ - public static final String DAGGER_L = "dagger"; //$NON-NLS-1$ - public static final String DARR_U = "dArr"; //$NON-NLS-1$ - public static final String DARR_L = "darr"; //$NON-NLS-1$ - public static final String DEG = "deg"; //$NON-NLS-1$ - public static final String DELTA_U = "Delta"; //$NON-NLS-1$ - public static final String DELTA_L = "delta"; //$NON-NLS-1$ - public static final String DIAMS = "diams"; //$NON-NLS-1$ - public static final String DIVIDE = "divide"; //$NON-NLS-1$ - public static final String EACUTE_U = "Eacute"; //$NON-NLS-1$ - public static final String EACUTE_L = "eacute"; //$NON-NLS-1$ - public static final String ECIRC_U = "Ecirc"; //$NON-NLS-1$ - public static final String ECIRC_L = "ecirc"; //$NON-NLS-1$ - public static final String EGRAVE_U = "Egrave"; //$NON-NLS-1$ - public static final String EGRAVE_L = "egrave"; //$NON-NLS-1$ - public static final String EMPTY = "empty"; //$NON-NLS-1$ - public static final String EMSP = "emsp"; //$NON-NLS-1$ - public static final String ENSP = "ensp"; //$NON-NLS-1$ - public static final String EPSILON_U = "Epsilon"; //$NON-NLS-1$ - public static final String EPSILON_L = "epsilon"; //$NON-NLS-1$ - public static final String EQUIV = "equiv"; //$NON-NLS-1$ - public static final String ETA_U = "Eta"; //$NON-NLS-1$ - public static final String ETA_L = "eta"; //$NON-NLS-1$ - public static final String ETH_U = "ETH"; //$NON-NLS-1$ - public static final String ETH_L = "eth"; //$NON-NLS-1$ - public static final String EUML_U = "Euml"; //$NON-NLS-1$ - public static final String EUML_L = "euml"; //$NON-NLS-1$ - public static final String EURO = "euro"; //$NON-NLS-1$ - public static final String EXIST = "exist"; //$NON-NLS-1$ - public static final String FNOF = "fnof"; //$NON-NLS-1$ - public static final String FORALL = "forall"; //$NON-NLS-1$ - public static final String FRAC12 = "frac12"; //$NON-NLS-1$ - public static final String FRAC14 = "frac14"; //$NON-NLS-1$ - public static final String FRAC34 = "frac34"; //$NON-NLS-1$ - public static final String FRASL = "frasl"; //$NON-NLS-1$ - public static final String GAMMA_U = "Gamma"; //$NON-NLS-1$ - public static final String GAMMA_L = "gamma"; //$NON-NLS-1$ - public static final String GE = "ge"; //$NON-NLS-1$ - public static final String GT = "gt"; //$NON-NLS-1$ - public static final String HARR_U = "hArr"; //$NON-NLS-1$ - public static final String HARR_L = "harr"; //$NON-NLS-1$ - public static final String HEARTS = "hearts"; //$NON-NLS-1$ - public static final String HELLIP = "hellip"; //$NON-NLS-1$ - public static final String IACUTE_U = "Iacute"; //$NON-NLS-1$ - public static final String IACUTE_L = "iacute"; //$NON-NLS-1$ - public static final String ICIRC_U = "Icirc"; //$NON-NLS-1$ - public static final String ICIRC_L = "icirc"; //$NON-NLS-1$ - public static final String IEXCL = "iexcl"; //$NON-NLS-1$ - public static final String IGRAVE_U = "Igrave"; //$NON-NLS-1$ - public static final String IGRAVE_L = "igrave"; //$NON-NLS-1$ - public static final String IMAGE = "image"; //$NON-NLS-1$ - public static final String INFIN = "infin"; //$NON-NLS-1$ - public static final String INT = "int"; //$NON-NLS-1$ - public static final String IOTA_U = "Iota"; //$NON-NLS-1$ - public static final String IOTA_L = "iota"; //$NON-NLS-1$ - public static final String IQUEST = "iquest"; //$NON-NLS-1$ - public static final String ISIN = "isin"; //$NON-NLS-1$ - public static final String IUML_U = "Iuml"; //$NON-NLS-1$ - public static final String IUML_L = "iuml"; //$NON-NLS-1$ - public static final String KAPPA_U = "Kappa"; //$NON-NLS-1$ - public static final String KAPPA_L = "kappa"; //$NON-NLS-1$ - public static final String LAMBDA_U = "Lambda"; //$NON-NLS-1$ - public static final String LAMBDA_L = "lambda"; //$NON-NLS-1$ - public static final String LANG = "lang"; //$NON-NLS-1$ - public static final String LAQUO = "laquo"; //$NON-NLS-1$ - public static final String LARR_U = "lArr"; //$NON-NLS-1$ - public static final String LARR_L = "larr"; //$NON-NLS-1$ - public static final String LCEIL = "lceil"; //$NON-NLS-1$ - public static final String LDQUO = "ldquo"; //$NON-NLS-1$ - public static final String LE = "le"; //$NON-NLS-1$ - public static final String LFLOOR = "lfloor"; //$NON-NLS-1$ - public static final String LOWAST = "lowast"; //$NON-NLS-1$ - public static final String LOZ = "loz"; //$NON-NLS-1$ - public static final String LRM = "lrm"; //$NON-NLS-1$ - public static final String LSAQUO = "lsaquo"; //$NON-NLS-1$ - public static final String LSQUO = "lsquo"; //$NON-NLS-1$ - public static final String LT = "lt"; //$NON-NLS-1$ - public static final String MACR = "macr"; //$NON-NLS-1$ - public static final String MDASH = "mdash"; //$NON-NLS-1$ - public static final String MICRO = "micro"; //$NON-NLS-1$ - public static final String MIDDOT = "middot"; //$NON-NLS-1$ - public static final String MINUS = "minus"; //$NON-NLS-1$ - public static final String MU_U = "Mu"; //$NON-NLS-1$ - public static final String MU_L = "mu"; //$NON-NLS-1$ - public static final String NABLA = "nabla"; //$NON-NLS-1$ - public static final String NBSP = "nbsp"; //$NON-NLS-1$ - public static final String NDASH = "ndash"; //$NON-NLS-1$ - public static final String NE = "ne"; //$NON-NLS-1$ - public static final String NI = "ni"; //$NON-NLS-1$ - public static final String NOT = "not"; //$NON-NLS-1$ - public static final String NOTIN = "notin"; //$NON-NLS-1$ - public static final String NSUB = "nsub"; //$NON-NLS-1$ - public static final String NTILDE_U = "Ntilde"; //$NON-NLS-1$ - public static final String NTILDE_L = "ntilde"; //$NON-NLS-1$ - public static final String NU_U = "Nu"; //$NON-NLS-1$ - public static final String NU_L = "nu"; //$NON-NLS-1$ - public static final String OACUTE_U = "Oacute"; //$NON-NLS-1$ - public static final String OACUTE_L = "oacute"; //$NON-NLS-1$ - public static final String OCIRC_U = "Ocirc"; //$NON-NLS-1$ - public static final String OCIRC_L = "ocirc"; //$NON-NLS-1$ - public static final String OELIG_U = "OElig"; //$NON-NLS-1$ - public static final String OELIG_L = "oelig"; //$NON-NLS-1$ - public static final String OGRAVE_U = "Ograve"; //$NON-NLS-1$ - public static final String OGRAVE_L = "ograve"; //$NON-NLS-1$ - public static final String OLINE = "oline"; //$NON-NLS-1$ - public static final String OMEGA_U = "Omega"; //$NON-NLS-1$ - public static final String OMEGA_L = "omega"; //$NON-NLS-1$ - public static final String OMICRON_U = "Omicron"; //$NON-NLS-1$ - public static final String OMICRON_L = "omicron"; //$NON-NLS-1$ - public static final String OPLUS = "oplus"; //$NON-NLS-1$ - public static final String OR = "or"; //$NON-NLS-1$ - public static final String ORDF = "ordf"; //$NON-NLS-1$ - public static final String ORDM = "ordm"; //$NON-NLS-1$ - public static final String OSLASH_U = "Oslash"; //$NON-NLS-1$ - public static final String OSLASH_L = "oslash"; //$NON-NLS-1$ - public static final String OTILDE_U = "Otilde"; //$NON-NLS-1$ - public static final String OTILDE_L = "otilde"; //$NON-NLS-1$ - public static final String OTIMES = "otimes"; //$NON-NLS-1$ - public static final String OUML_U = "Ouml"; //$NON-NLS-1$ - public static final String OUML_L = "ouml"; //$NON-NLS-1$ - public static final String PARA = "para"; //$NON-NLS-1$ - public static final String PART = "part"; //$NON-NLS-1$ - public static final String PERMIL = "permil"; //$NON-NLS-1$ - public static final String PERP = "perp"; //$NON-NLS-1$ - public static final String PHI_U = "Phi"; //$NON-NLS-1$ - public static final String PHI_L = "phi"; //$NON-NLS-1$ - public static final String PI_U = "Pi"; //$NON-NLS-1$ - public static final String PI_L = "pi"; //$NON-NLS-1$ - public static final String PIV = "piv"; //$NON-NLS-1$ - public static final String PLUSMN = "plusmn"; //$NON-NLS-1$ - public static final String POUND = "pound"; //$NON-NLS-1$ - public static final String PRIME_U = "Prime"; //$NON-NLS-1$ - public static final String PRIME_L = "prime"; //$NON-NLS-1$ - public static final String PROD = "prod"; //$NON-NLS-1$ - public static final String PROP = "prop"; //$NON-NLS-1$ - public static final String PSI_U = "Psi"; //$NON-NLS-1$ - public static final String PSI_L = "psi"; //$NON-NLS-1$ - public static final String QUOT = "quot"; //$NON-NLS-1$ - public static final String RADIC = "radic"; //$NON-NLS-1$ - public static final String RANG = "rang"; //$NON-NLS-1$ - public static final String RAQUO = "raquo"; //$NON-NLS-1$ - public static final String RARR_U = "rArr"; //$NON-NLS-1$ - public static final String RARR_L = "rarr"; //$NON-NLS-1$ - public static final String RCEIL = "rceil"; //$NON-NLS-1$ - public static final String RDQUO = "rdquo"; //$NON-NLS-1$ - public static final String REAL = "real"; //$NON-NLS-1$ - public static final String REG = "reg"; //$NON-NLS-1$ - public static final String RFLOOR = "rfloor"; //$NON-NLS-1$ - public static final String RHO_U = "Rho"; //$NON-NLS-1$ - public static final String RHO_L = "rho"; //$NON-NLS-1$ - public static final String RLM = "rlm"; //$NON-NLS-1$ - public static final String RSAQUO = "rsaquo"; //$NON-NLS-1$ - public static final String RSQUO = "rsquo"; //$NON-NLS-1$ - public static final String SBQUO = "sbquo"; //$NON-NLS-1$ - public static final String SCARON_U = "Scaron"; //$NON-NLS-1$ - public static final String SCARON_L = "scaron"; //$NON-NLS-1$ - public static final String SDOT = "sdot"; //$NON-NLS-1$ - public static final String SECT = "sect"; //$NON-NLS-1$ - public static final String SHY = "shy"; //$NON-NLS-1$ - public static final String SIGMA_U = "Sigma"; //$NON-NLS-1$ - public static final String SIGMA_L = "sigma"; //$NON-NLS-1$ - public static final String SIGMAF = "sigmaf"; //$NON-NLS-1$ - public static final String SIM = "sim"; //$NON-NLS-1$ - public static final String SPADES = "spades"; //$NON-NLS-1$ - public static final String SUB = "sub"; //$NON-NLS-1$ - public static final String SUBE = "sube"; //$NON-NLS-1$ - public static final String SUM = "sum"; //$NON-NLS-1$ - public static final String SUP = "sup"; //$NON-NLS-1$ - public static final String SUP1 = "sup1"; //$NON-NLS-1$ - public static final String SUP2 = "sup2"; //$NON-NLS-1$ - public static final String SUP3 = "sup3"; //$NON-NLS-1$ - public static final String SUPE = "supe"; //$NON-NLS-1$ - public static final String SZLIG = "szlig"; //$NON-NLS-1$ - public static final String TAU_U = "Tau"; //$NON-NLS-1$ - public static final String TAU_L = "tau"; //$NON-NLS-1$ - public static final String THERE4 = "there4"; //$NON-NLS-1$ - public static final String THETA_U = "Theta"; //$NON-NLS-1$ - public static final String THETA_L = "theta"; //$NON-NLS-1$ - public static final String THETASYM = "thetasym"; //$NON-NLS-1$ - public static final String THINSP = "thinsp"; //$NON-NLS-1$ - public static final String THORN_U = "THORN"; //$NON-NLS-1$ - public static final String THORN_L = "thorn"; //$NON-NLS-1$ - public static final String TILDE = "tilde"; //$NON-NLS-1$ - public static final String TIMES = "times"; //$NON-NLS-1$ - public static final String TRADE = "trade"; //$NON-NLS-1$ - public static final String UACUTE_U = "Uacute"; //$NON-NLS-1$ - public static final String UACUTE_L = "uacute"; //$NON-NLS-1$ - public static final String UARR_U = "uArr"; //$NON-NLS-1$ - public static final String UARR_L = "uarr"; //$NON-NLS-1$ - public static final String UCIRC_U = "Ucirc"; //$NON-NLS-1$ - public static final String UCIRC_L = "ucirc"; //$NON-NLS-1$ - public static final String UGRAVE_U = "Ugrave"; //$NON-NLS-1$ - public static final String UGRAVE_L = "ugrave"; //$NON-NLS-1$ - public static final String UML = "uml"; //$NON-NLS-1$ - public static final String UPSIH = "upsih"; //$NON-NLS-1$ - public static final String UPSILON_U = "Upsilon"; //$NON-NLS-1$ - public static final String UPSILON_L = "upsilon"; //$NON-NLS-1$ - public static final String UUML_U = "Uuml"; //$NON-NLS-1$ - public static final String UUML_L = "uuml"; //$NON-NLS-1$ - public static final String WEIERP = "weierp"; //$NON-NLS-1$ - public static final String XI_U = "Xi"; //$NON-NLS-1$ - public static final String XI_L = "xi"; //$NON-NLS-1$ - public static final String YACUTE_U = "Yacute"; //$NON-NLS-1$ - public static final String YACUTE_L = "yacute"; //$NON-NLS-1$ - public static final String YEN = "yen"; //$NON-NLS-1$ - public static final String YUML_U = "Yuml"; //$NON-NLS-1$ - public static final String YUML_L = "yuml"; //$NON-NLS-1$ - public static final String ZETA_U = "Zeta"; //$NON-NLS-1$ - public static final String ZETA_L = "zeta"; //$NON-NLS-1$ - public static final String ZWJ = "zwj"; //$NON-NLS-1$ - public static final String ZWNJ = "zwnj"; //$NON-NLS-1$ - } - - public static final String HTML40_URI = "http://www.w3.org/TR/REC-html40/frameset.dtd"; //$NON-NLS-1$ - public static final String HTML40_TAG_PREFIX = ""; //$NON-NLS-1$ - // global attribute names - public static final String ATTR_NAME_ID = "id"; // %coreattrs; //$NON-NLS-1$ - public static final String ATTR_NAME_CLASS = "class"; // %coreattrs; //$NON-NLS-1$ - public static final String ATTR_NAME_STYLE = "style"; // %coreattrs; //$NON-NLS-1$ - public static final String ATTR_NAME_TITLE = "title"; // %coreattrs; //$NON-NLS-1$ - public static final String ATTR_NAME_LANG = "lang"; // %i18n; //$NON-NLS-1$ - public static final String ATTR_NAME_DIR = "dir"; // %i18n; //$NON-NLS-1$ - public static final String ATTR_NAME_ONCLICK = "onclick"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONDBLCLICK = "ondblclick"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONMOUSEDOWN = "onmousedown"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONMOUSEUP = "onmouseup"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONMOUSEOVER = "onmouseover"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONMOUSEMOVE = "onmousemove"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONMOUSEOUT = "onmouseout"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONKEYPRESS = "onkeypress"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONKEYDOWN = "onkeydown"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONKEYUP = "onkeyup"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_ONHELP = "onhelp"; // %events; //$NON-NLS-1$ - public static final String ATTR_NAME_BGCOLOR = "bgcolor"; // %bodycolor;, TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_TEXT = "text"; // %bodycolor; //$NON-NLS-1$ - public static final String ATTR_NAME_LINK = "link"; // %bodycolor; //$NON-NLS-1$ - public static final String ATTR_NAME_VLINK = "vlink"; // %bodycolor; //$NON-NLS-1$ - public static final String ATTR_NAME_ALINK = "alink"; // %bodycolor; //$NON-NLS-1$ - public static final String ATTR_NAME_VERSION = "version"; // HTML //$NON-NLS-1$ - public static final String ATTR_NAME_PROFILE = "profile"; // HEAD //$NON-NLS-1$ - public static final String ATTR_NAME_ONLOAD = "onload"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_ONUNLOAD = "onunload"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_BACKGROUND = "background"; // BODY, TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_SRC = "src"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_ALT = "alt"; // IMG,AREA //$NON-NLS-1$ - public static final String ATTR_NAME_LONGDESC = "longdesc"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_NAME = "name"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_HEIGHT = "height"; // IMG, TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_WIDTH = "width"; // IMG, TABLE,HR //$NON-NLS-1$ - public static final String ATTR_NAME_USEMAP = "usemap"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_ISMAP = "ismap"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_ALIGN = "align"; // IMG, TABLE,HR //$NON-NLS-1$ - public static final String ATTR_NAME_BORDER = "border"; // IMG, TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_HSPACE = "hspace"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_VSPACE = "vspace"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_MAPFILE = "mapfile"; // IMG //$NON-NLS-1$ - public static final String ATTR_NAME_SUMMARY = "summary"; // TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_FRAME = "frame"; // TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_RULES = "rules"; // TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_CELLSPACING = "cellspacing"; // TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_CELLPADDING = "cellpadding"; // TABLE //$NON-NLS-1$ - public static final String ATTR_NAME_DATAPAGESIZE = "datapagesize"; // TABLE,HR //$NON-NLS-1$ - public static final String ATTR_NAME_COLOR = "color"; // BASEFONT,FONT //$NON-NLS-1$ - public static final String ATTR_NAME_FACE = "face"; // BASEFONT,FONT //$NON-NLS-1$ - public static final String ATTR_NAME_SIZE = "size"; // BASEFONT,FONT //$NON-NLS-1$ - public static final String ATTR_NAME_CLEAR = "clear"; // BR //$NON-NLS-1$ - public static final String ATTR_NAME_SHAPE = "shape"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_COORDS = "coords"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_HREF = "href"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_TARGET = "target"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_NOHREF = "nohref"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_TABINDEX = "tabindex"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_ACCESSKEY = "accesskey"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_ONFOCUS = "onfocus"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_ONBLUR = "onblur"; // AREA //$NON-NLS-1$ - public static final String ATTR_NAME_CHARSET = "charset"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_HREFLANG = "hreflang"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_TYPE = "type"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_REL = "rel"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_REV = "rev"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_MEDIA = "media"; // LINK //$NON-NLS-1$ - public static final String ATTR_NAME_VALUE = "value"; // PARAM //$NON-NLS-1$ - public static final String ATTR_NAME_VALUETYPE = "valuetype"; // PARAM //$NON-NLS-1$ - public static final String ATTR_NAME_NOSHADE = "noshade"; // HR //$NON-NLS-1$ - public static final String ATTR_NAME_CHECKED = "checked"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_DISABLED = "disabled"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_READONLY = "readonly"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_MAXLENGTH = "maxlength"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_ONSELECT = "onselect"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_ONCHANGE = "onchange"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_ACCEPT = "accept"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_ISTYLE = "istyle"; // INPUT //$NON-NLS-1$ - public static final String ATTR_NAME_CHAR = "char"; // COL //$NON-NLS-1$ - public static final String ATTR_NAME_CHAROFF = "charoff"; // COL //$NON-NLS-1$ - public static final String ATTR_NAME_VALIGN = "valign"; // COL //$NON-NLS-1$ - public static final String ATTR_NAME_SPAN = "span"; // COL //$NON-NLS-1$ - public static final String ATTR_NAME_FRAMEBORDER = "frameborder"; // FRAME //$NON-NLS-1$ - public static final String ATTR_NAME_MARGINWIDTH = "marginwidth"; // FRAME //$NON-NLS-1$ - public static final String ATTR_NAME_MARGINHEIGHT = "marginheight"; // FRAME //$NON-NLS-1$ - public static final String ATTR_NAME_NORESIZE = "noresize"; // FRAME //$NON-NLS-1$ - public static final String ATTR_NAME_SCROLLING = "scrolling"; // FRAME //$NON-NLS-1$ - public static final String ATTR_NAME_PROMPT = "prompt"; // ISINDEX //$NON-NLS-1$ - public static final String ATTR_NAME_HTTP_EQUIV = "http-equiv"; // META //$NON-NLS-1$ - public static final String ATTR_NAME_CONTENT = "content"; // META //$NON-NLS-1$ - public static final String ATTR_NAME_SCHEME = "scheme"; // META //$NON-NLS-1$ - public static final String ATTR_NAME_ERRMSG = "errmsg"; // ssi:config //$NON-NLS-1$ - public static final String ATTR_NAME_SIZEFMT = "sizefmt"; // ssi:config //$NON-NLS-1$ - public static final String ATTR_NAME_TIMEFMT = "timefmt"; // ssi:config //$NON-NLS-1$ - public static final String ATTR_NAME_VAR = "var"; // ssi:echo //$NON-NLS-1$ - public static final String ATTR_NAME_CGI = "cgi"; // ssi:exec //$NON-NLS-1$ - public static final String ATTR_NAME_CMD = "cmd"; // ssi:exec //$NON-NLS-1$ - public static final String ATTR_NAME_FILE = "file"; // ssi:fsize //$NON-NLS-1$ - public static final String ATTR_NAME_VIRTUAL = "virtual"; // ssi:fsize //$NON-NLS-1$ - public static final String ATTR_NAME_SELECTED = "selected"; // OPTION //$NON-NLS-1$ - public static final String ATTR_NAME_LABEL = "label"; // OPTION //$NON-NLS-1$ - public static final String ATTR_NAME_ROWS = "rows"; // TEXTAREA //$NON-NLS-1$ - public static final String ATTR_NAME_COLS = "cols"; // TEXTAREA //$NON-NLS-1$ - public static final String ATTR_NAME_LANGUAGE = "language"; // SCRIPT //$NON-NLS-1$ - public static final String ATTR_NAME_DEFER = "defer"; // SCRIPT //$NON-NLS-1$ - public static final String ATTR_NAME_EVENT = "event"; // SCRIPT //$NON-NLS-1$ - public static final String ATTR_NAME_FOR = "for"; // SCRIPT //$NON-NLS-1$ - public static final String ATTR_NAME_COMPACT = "compact"; // OL/UL //$NON-NLS-1$ - public static final String ATTR_NAME_START = "start"; // OL/UL //$NON-NLS-1$ - public static final String ATTR_NAME_DIRECTKEY = "directkey"; // A //$NON-NLS-1$ - public static final String ATTR_NAME_CODEBASE = "codebase"; // APPLET //$NON-NLS-1$ - public static final String ATTR_NAME_ARCHIVE = "archive"; // APPLET //$NON-NLS-1$ - public static final String ATTR_NAME_CODE = "code"; // APPLET //$NON-NLS-1$ - public static final String ATTR_NAME_OBJECT = "object"; // APPLET //$NON-NLS-1$ - public static final String ATTR_NAME_MAYSCRIPT = "mayscript"; // APPLET //$NON-NLS-1$ - public static final String ATTR_NAME_CITE = "cite"; // BLOCKQUOTE //$NON-NLS-1$ - public static final String ATTR_NAME_MACRO = "macro"; // D2W //$NON-NLS-1$ - public static final String ATTR_NAME_DATETIME = "datetime"; // INS/DEL //$NON-NLS-1$ - public static final String ATTR_NAME_LOOP = "loop"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_HIDDEN = "hidden"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_VOLUME = "volume"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_AUTOSTART = "autostart"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_AUTOPLAY = "autoplay"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_AUTOSIZE = "autosize"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_CONTROLLER = "controller";// EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_SCALE = "scale"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_SHOWCONTROLS = "showcontrols";// EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_PLAYCOUNT = "playcount"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_REPEAT = "repeat"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_PANEL = "panel"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_PALETTE = "palette"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_TEXTFOCUS = "textfocus"; // EMBED //$NON-NLS-1$ - public static final String ATTR_NAME_ACTION = "action"; // FORM //$NON-NLS-1$ - public static final String ATTR_NAME_METHOD = "method"; // FORM //$NON-NLS-1$ - public static final String ATTR_NAME_ENCTYPE = "enctype"; // FORM //$NON-NLS-1$ - public static final String ATTR_NAME_ONSUBMIT = "onsubmit"; // FORM //$NON-NLS-1$ - public static final String ATTR_NAME_ONRESET = "onreset"; // FORM //$NON-NLS-1$ - public static final String ATTR_NAME_ACCEPT_CHARSET = "accept-charset";// FORM //$NON-NLS-1$ - public static final String ATTR_NAME_BEHAVIOR = "behavior"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_NAME_DIRECTION = "direction"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_NAME_SCROLLAMOUNT = "scrollamount";// MARQUEE //$NON-NLS-1$ - public static final String ATTR_NAME_SCROLLDELAY = "scrolldelay";// MARQUEE //$NON-NLS-1$ - public static final String ATTR_NAME_TRUESPEED = "truespeed"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_NAME_DECLARE = "declare"; // OBJECT //$NON-NLS-1$ - public static final String ATTR_NAME_CLASSID = "classid"; // OBJECT //$NON-NLS-1$ - public static final String ATTR_NAME_DATA = "data"; // OBJECT //$NON-NLS-1$ - public static final String ATTR_NAME_CODETYPE = "codetype"; // OBJECT //$NON-NLS-1$ - public static final String ATTR_NAME_STANDBY = "standby"; // OBJECT //$NON-NLS-1$ - public static final String ATTR_NAME_MULTIPLE = "multiple"; // SELECT //$NON-NLS-1$ - public static final String ATTR_NAME_ABBR = "abbr"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_AXIS = "axis"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_HEADERS = "headers"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_SCOPE = "scope"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_ROWSPAN = "rowspan"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_COLSPAN = "colspan"; // TH/TD //$NON-NLS-1$ - public static final String ATTR_NAME_NOWRAP = "nowrap"; // TH/TD //$NON-NLS-1$ - // <<D205514 - public static final String ATTR_NAME_TOPMARGIN = "topmargin"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_BOTTOMMARGIN = "bottommargin"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_LEFTMARGIN = "leftmargin"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_RIGHTMARGIN = "rightmargin"; // BODY //$NON-NLS-1$ - public static final String ATTR_NAME_BORDERCOLOR = "bordercolor"; // TABLE/TR/TH/TD/FRAMESET/FRAME //$NON-NLS-1$ - // for WML - public static final String WML_ATTR_NAME_TITLE = "title"; // card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_DOMAIN = "domain"; // access //$NON-NLS-1$ - public static final String WML_ATTR_NAME_PATH = "path"; // access //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ONENTERFORWARD = "onenterforward"; // template,card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ONENTERBACKWARD = "onenterbackward"; // template,card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ONPICK = "onpick"; // option //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ONTIMER = "ontimer"; // template,card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_NEWCONTEXT = "newcontext"; // card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ORDERED = "ordered"; // card //$NON-NLS-1$ - public static final String WML_ATTR_NAME_OPTIONAL = "optional"; // do //$NON-NLS-1$ - public static final String WML_ATTR_NAME_CACHE_CONTROL = "cache-control"; // go //$NON-NLS-1$ - public static final String WML_ATTR_NAME_SENDREFERER = "sendreferer"; // go //$NON-NLS-1$ - public static final String WML_ATTR_NAME_METHOD = "method"; // go //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ENCTYPE = "enctype"; // go //$NON-NLS-1$ - public static final String WML_ATTR_NAME_ACCEPT_CHARSET = "accept-charset"; // go //$NON-NLS-1$ - public static final String WML_ATTR_NAME_COLUMNS = "columns"; // table //$NON-NLS-1$ - // D205514 - //<<D215684 - public static final String ATTR_NAME_FRAMESPACING = "framespacing"; // FRAMESET //$NON-NLS-1$ - //D215684 - // global attribute values; mainly used in enumeration. - public static final String ATTR_VALUE_VERSION_TRANSITIONAL = "-//W3C//DTD HTML 4.01 Transitional//EN"; //$NON-NLS-1$ - public static final String ATTR_VALUE_VERSION_FRAMESET = "-//W3C//DTD HTML 4.01 Frameset//EN"; //$NON-NLS-1$ - public static final String ATTR_VALUE_LTR = "ltr"; // dir //$NON-NLS-1$ - public static final String ATTR_VALUE_RTL = "rtl"; // dir //$NON-NLS-1$ - // for align (top|middle|bottom|left|right) - public static final String ATTR_VALUE_TOP = "top"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_MIDDLE = "middle"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_BOTTOM = "bottom"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_LEFT = "left"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_CENTER = "center"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_RIGHT = "right"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_JUSTIFY = "justify"; // align //$NON-NLS-1$ - public static final String ATTR_VALUE_CHAR = "char"; // align //$NON-NLS-1$ - // for valign (baseline) - public static final String ATTR_VALUE_BASELINE = "baseline"; // valign //$NON-NLS-1$ - // for clear (left|all|right|none): left and right are already defined above. - public static final String ATTR_VALUE_ALL = "all"; // clear //$NON-NLS-1$ - public static final String ATTR_VALUE_NONE = "none"; // clear //$NON-NLS-1$ - // for shape (rect|circle|poly|default) - public static final String ATTR_VALUE_RECT = "rect"; // shape //$NON-NLS-1$ - public static final String ATTR_VALUE_CIRCLE = "circle"; // shape //$NON-NLS-1$ - public static final String ATTR_VALUE_POLY = "poly"; // shape //$NON-NLS-1$ - public static final String ATTR_VALUE_DEFAULT = "default"; // shape //$NON-NLS-1$ - // for valuetype (data|ref|object) - public static final String ATTR_VALUE_DATA = "data"; // valuetype //$NON-NLS-1$ - public static final String ATTR_VALUE_REF = "ref"; // valuetype //$NON-NLS-1$ - public static final String ATTR_VALUE_OBJECT = "object"; // valuetype //$NON-NLS-1$ - // for type of INPUT - // (text | password | checkbox | radio | submit | reset | - // file | hidden | image | button) - public static final String ATTR_VALUE_TEXT = "text"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_PASSWORD = "password"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_CHECKBOX = "checkbox"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_RADIO = "radio"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_SUBMIT = "submit"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_RESET = "reset"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_FILE = "file"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_HIDDEN = "hidden"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_IMAGE = "image"; // INPUT:type //$NON-NLS-1$ - public static final String ATTR_VALUE_BUTTON = "button"; // INPUT:type //$NON-NLS-1$ - // for span, colspan, rowspan - public static final String ATTR_VALUE_1 = "1"; // span //$NON-NLS-1$ - // for frameborder - public static final String ATTR_VALUE_0 = "0"; // FRAME //$NON-NLS-1$ - // for scrolling - public static final String ATTR_VALUE_YES = "yes"; // FRAME //$NON-NLS-1$ - public static final String ATTR_VALUE_NO = "no"; // FRAME //$NON-NLS-1$ - public static final String ATTR_VALUE_AUTO = "auto"; // FRAME //$NON-NLS-1$ - // for UL - public static final String ATTR_VALUE_DISC = "disc"; // UL:type //$NON-NLS-1$ - public static final String ATTR_VALUE_SQUARE = "square"; // UL:type //$NON-NLS-1$ - // for frame of TABLE - public static final String ATTR_VALUE_VOID = "void"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_ABOVE = "above"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_BELOW = "below"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_HSIDES = "hsides"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_LHS = "lhs"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_RHS = "rhs"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_VSIDES = "vsides"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_BOX = "box"; // TABLE:frame //$NON-NLS-1$ - public static final String ATTR_VALUE_BORDER = "border"; // TABLE:frame //$NON-NLS-1$ - // for rules of TABLE - public static final String ATTR_VALUE_GROUPS = "groups"; // TABLE:rules //$NON-NLS-1$ - public static final String ATTR_VALUE_ROWS = "rows"; // TEXTAREA //$NON-NLS-1$ - public static final String ATTR_VALUE_COLS = "cols"; // TEXTAREA //$NON-NLS-1$ - // for method of FORM - public static final String ATTR_VALUE_GET = "get"; // FORM //$NON-NLS-1$ - public static final String ATTR_VALUE_POST = "post"; // FORM //$NON-NLS-1$ - public static final String ATTR_VALUE_WWW_FORM_URLENCODED = "application/x-www-form-urlencoded"; //$NON-NLS-1$ - // for scope of (TH | TD) - public static final String ATTR_VALUE_ROW = "row"; // (TH|TD):scope //$NON-NLS-1$ - public static final String ATTR_VALUE_COL = "col"; // (TH|TD):scope //$NON-NLS-1$ - public static final String ATTR_VALUE_ROWGROUP = "rowgroup";// (TH|TD):scope //$NON-NLS-1$ - public static final String ATTR_VALUE_COLGROUP = "colgroup";// (TH|TD):scope //$NON-NLS-1$ - // for auto?? of EMBED - public static final String ATTR_VALUE_TRUE = "true"; // EMBED //$NON-NLS-1$ - public static final String ATTR_VALUE_FALSE = "false"; // EMBED //$NON-NLS-1$ - // for behaviro of MARQUEE - public static final String ATTR_VALUE_SCROLL = "scroll"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_VALUE_SLIDE = "slide"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_VALUE_ALTERNATE = "alternate"; // MARQUEE //$NON-NLS-1$ - // for direction of MARQUEE - public static final String ATTR_VALUE_UP = "up"; // MARQUEE //$NON-NLS-1$ - public static final String ATTR_VALUE_DOWN = "down"; // MARQUEE //$NON-NLS-1$ - // for type of LI (D19924) - public static final String ATTR_VALUE_NUMBER = "1"; // LI //$NON-NLS-1$ - public static final String ATTR_VALUE_LOWER_ALPHA = "a"; // LI //$NON-NLS-1$ - public static final String ATTR_VALUE_UPPER_ALPHA = "A"; // LI //$NON-NLS-1$ - public static final String ATTR_VALUE_LOWER_ROMAN = "i"; // LI //$NON-NLS-1$ - public static final String ATTR_VALUE_UPPER_ROMAN = "I"; // LI //$NON-NLS-1$ - // for loop of BGSOUND (D205513) - public static final String ATTR_VALUE_INFINITE = "infinite"; // BGSOUND //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java deleted file mode 100644 index 1d7a753952..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional; - - -/** - * HTMLCMProperties defines all property names and pre-defined values in HTML CM. - * All of those properties can be retreived from element declarations of HTML CM - * via CMNode#getProperty(String propName). - */ -public interface HTMLCMProperties { - - /** - * "shouldIgnoreCase" returns java.lang.Boolean object. - */ - public static final String SHOULD_IGNORE_CASE = "shouldIgnoreCase";//$NON-NLS-1$ - /** - * "shouldKeepSpace" returns java.lang.Boolean object. - */ - public static final String SHOULD_KEEP_SPACE = "shouldKeepSpace";//$NON-NLS-1$ - /** - * "indentChildSource" returns java.lang.Boolean object. - */ - public static final String SHOULD_INDENT_CHILD_SOURCE = "shouldIndentChildSource";//$NON-NLS-1$ - /** - * "terminators" returns java.util.Iterator (an array of String objects). - */ - public static final String TERMINATORS = "terminators";//$NON-NLS-1$ - /** - * "contentHint" returns CMElementDeclaration instnace. - */ - public static final String CONTENT_HINT = "contentHint";//$NON-NLS-1$ - /** - * "prohibitedAncestors" returns org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap. - */ - public static final String PROHIBITED_ANCESTORS = "prohibitedAncestors";//$NON-NLS-1$ - /** - * "isJSP" returns java.lang.Boolean object. - */ - public static final String IS_JSP = "isJSP";//$NON-NLS-1$ - /** - * "isXHTML" returns java.lang.Boolean object. - */ - public static final String IS_XHTML = "isXHTML";//$NON-NLS-1$ - /** - * "isSSI" returns java.lang.Boolean object. - */ - public static final String IS_SSI = "isSSI";//$NON-NLS-1$ - /** - * "lineBreakHint" returns String (one of pre-defined values in Values). - */ - public static final String LINE_BREAK_HINT = "lineBreakHint";//$NON-NLS-1$ - /** - * "layoutType" returns String (one of pre-defined values in Values). - */ - public static final String LAYOUT_TYPE = "layoutType";//$NON-NLS-1$ - /** - * "tagInfo" returns String (documentation for this element). - */ - public static final String TAGINFO = "tagInfo";//$NON-NLS-1$ - /** - * "omitType" returns String (one of pre-defined values in Values). - */ - public static final String OMIT_TYPE = "omitType";//$NON-NLS-1$ - /** - * "inclusion" returns org.eclipse.wst.xml.core.internal.contentmodel.CMContent. - */ - public static final String INCLUSION = "inclusion";//$NON-NLS-1$ - /** - * "isScriptable" returns java.lang.Boolean object. - */ - public static final String IS_SCRIPTABLE = "isScriptable"; //$NON-NLS-1$ - - public static interface Values { - /* - * for LINE_BREAK_HINT = "lineBreakHint". - */ - public static final String BREAK_NONE = "breakNone";//$NON-NLS-1$ - public static final String BREAK_AFTER_START = "breakAfterStart";//$NON-NLS-1$ - public static final String BREAK_BEFORE_START_AND_AFTER_END = "breakBeforeStartAndAfterEnd";//$NON-NLS-1$ - /* - * for LAYOUT_TYPE = "layoutType" - */ - public static final String LAYOUT_BLOCK = "layoutBlock";//$NON-NLS-1$ - /** BR */ - public static final String LAYOUT_BREAK = "layoutBreak";//$NON-NLS-1$ - /** Hidden object; like HTML or HEAD */ - public static final String LAYOUT_HIDDEN = "layoutHidden";//$NON-NLS-1$ - public static final String LAYOUT_NONE = "layoutNone";//$NON-NLS-1$ - /** No wrap object; like IMG, APPLET,... */ - public static final String LAYOUT_OBJECT = "layoutObject";//$NON-NLS-1$ - public static final String LAYOUT_WRAP = "layoutWrap";//$NON-NLS-1$ - /* - * for OMIT_TYPE = "omitType" - */ - /** Not ommisible. */ - public static final String OMIT_NONE = "omitNone";//$NON-NLS-1$ - /** Both tags are ommisible. */ - public static final String OMIT_BOTH = "omitBoth";//$NON-NLS-1$ - /** The end tag is ommisible. */ - public static final String OMIT_END = "omitEnd";//$NON-NLS-1$ - /** The end tag is ommitted when created. */ - public static final String OMIT_END_DEFAULT = "omitEndDefault";//$NON-NLS-1$ - /** The end tag must be omitted. */ - public static final String OMIT_END_MUST = "omitEndMust";//$NON-NLS-1$ - - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java deleted file mode 100644 index 88bb2eab16..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional; - -import org.eclipse.core.runtime.IProduct; -import org.eclipse.core.runtime.Platform; - -/** - * @deprecated not used in WTP - */ -public interface HTMLFilesPreferenceNames { - - static final String DEFAULT_SUFFIX = "defaultSuffix";//$NON-NLS-1$ - static final String HTML_SUFFIX = "html";//$NON-NLS-1$ - static final String GENERATE_DOCUMENT_TYPE = "generateDocumentType";//$NON-NLS-1$ - static final String GENERATE_GENERATOR = "generateGenerator";//$NON-NLS-1$ - // added this as a potential way to handle changing - // product names "up" the stack. Note, not declared final - // to avoid getting 'inlined' by compiler. - static IProduct product = Platform.getProduct(); - // Platform.getProduct() is spec'd so it might return null. - // Its expected for any final product it would not be, so we'll return - // "WTP" for development/interim builds. No need to translate. - static String GENERATOR = (product == null) ? "WTP": product.getName(); //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java deleted file mode 100644 index db3217e206..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional; - -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints; - -/** - * @deprecated - * Please un-deprecate this if Page Designer thinks they are needed. - */ -public interface HTMLFormatContraints extends IStructuredFormatContraints { - /** - * @deprecated - * It's very hard to keep the available line width accurate. - * Sometimes a node wants to start on a new line, sometimes it doesn't. - * It's best for the node to figure out the available line width on the fly. - */ - int getAvailableLineWidth(); - - /** - * @deprecated - * It's very hard to keep the available line width accurate. - * Sometimes a node wants to start on a new line, sometimes it doesn't. - * It's best for the node to figure out the available line width on the fly. - */ - void setAvailableLineWidth(int availableLineWidth); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java deleted file mode 100644 index 5d1018a9f3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional; - - -public interface PreferenceNames { - - String TRUE = "true"; //$NON-NLS-1$ - String FALSE = "false"; //$NON-NLS-1$ - String YES = "yes"; //$NON-NLS-1$ - String NO = "no"; //$NON-NLS-1$ - - - String SETTINGS = "settings"; //$NON-NLS-1$ - - String TREEVIEW = "treeview"; //$NON-NLS-1$ - String DEFAULT_DEPTH = "defaultdepth"; //$NON-NLS-1$ - - String ASIS = "as-is"; //$NON-NLS-1$ - String LOWER = "lower"; //$NON-NLS-1$ - String UPPER = "upper"; //$NON-NLS-1$ - - String PREFERRED_CASE = "preferred-case"; //$NON-NLS-1$ - String TAGNAME = "tagname"; //$NON-NLS-1$ - String ATTRIBUTENAME = "attributename"; //$NON-NLS-1$ - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java deleted file mode 100644 index 35f17ff6a6..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeFamilyForHTML.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * - *******************************************************************************/ - -package org.eclipse.wst.html.core.internal.provisional.contenttype; - -/** - * The value of the contenttype id field must match what is specified in - * plugin.xml file. Note: this value is intentially set with default protected - * method so it will not be inlined. - */ - -public class ContentTypeFamilyForHTML { - /** - * The value of the contenttype id field must match what is specified in - * plugin.xml file. Note: this value is intentially not declared as final, - * so it will not be inlined. - */ - public final static String HTML_FAMILY = getConstantString(); - - /** - * Don't allow instantiation. - */ - private ContentTypeFamilyForHTML() { - super(); - } - - static String getConstantString() { - return "org.eclipse.wst.html.core.contentfamily.html"; //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java deleted file mode 100644 index 66491193e8..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * - *******************************************************************************/ - -package org.eclipse.wst.html.core.internal.provisional.contenttype; - -/** - * The value of the contenttype id field must match what is specified in - * plugin.xml file. Note: this value is intentially set with default protected - * method so it will not be inlined. - */ - -public class ContentTypeIdForHTML { - /** - * The value of the contenttype id field must match what is specified in - * plugin.xml file. Note: this value is intentially not declared as final, - * so it will not be inlined. - */ - public final static String ContentTypeID_HTML = getConstantString(); - - /** - * Don't allow instantiation. - */ - private ContentTypeIdForHTML() { - super(); - } - - static String getConstantString() { - return "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$ - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java deleted file mode 100644 index 50f61db6b1..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.provisional.text; - - -/** - * This interface is not intended to be implemented. It defines the partition - * types for HTML. Clients should reference the partition type Strings defined - * here directly. - * - * @deprecated use org.eclipse.wst.html.core.text.IHTMLPartitions - */ -public interface IHTMLPartitionTypes { - - String HTML_DEFAULT = "org.eclipse.wst.html.HTML_DEFAULT"; //$NON-NLS-1$ - String HTML_DECLARATION = "org.eclipse.wst.html.HTML_DECLARATION"; //$NON-NLS-1$ - String HTML_COMMENT = "org.eclipse.wst.html.HTML_COMMENT"; //$NON-NLS-1$ - - String SCRIPT = "org.eclipse.wst.html.SCRIPT"; //$NON-NLS-1$ - String STYLE = "org.eclipse.wst.html.STYLE"; //$NON-NLS-1$ - - // ISSUE: I think meta tag areas are here too? -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java deleted file mode 100644 index fdde5c755a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.text; - -import java.util.Locale; - -import org.eclipse.jface.text.IDocumentPartitioner; -import org.eclipse.wst.css.core.text.ICSSPartitions; -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.html.core.text.IHTMLPartitions; -import org.eclipse.wst.sse.core.internal.parser.ForeignRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextPartitioner; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.text.IRegionComparible; -import org.eclipse.wst.sse.core.internal.text.rules.IStructuredTypedRegion; -import org.eclipse.wst.sse.core.internal.util.ScriptLanguageKeys; -import org.eclipse.wst.sse.core.utils.StringUtils; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML; - -/** - * Document partitioner for HTML. Client-side scripts of type JavaScript are - * reported as ST_SCRIPT, all others for <script language="foo" type="foo2"> - * as SCRIPT.language:FOO and SCRIPT.type:FOO2. - */ -public class StructuredTextPartitionerForHTML extends StructuredTextPartitionerForXML implements IStructuredTextPartitioner { - - private final static String[] configuredContentTypes = new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.HTML_DECLARATION, IHTMLPartitions.HTML_COMMENT, IHTMLPartitions.SCRIPT, ICSSPartitions.STYLE,IHTMLPartitions.SCRIPT_EVENTHANDLER}; - - public static final String JAVASCRIPT = "javascript"; //$NON-NLS-1$ - public static final String JAVASCRIPT_APPLICATION = "application/x-javascript"; //$NON-NLS-1$ - - private static final String[] EVENT_ATTRIBUTE_NAMES = - {HTML40Namespace.ATTR_NAME_ONCLICK, - HTML40Namespace.ATTR_NAME_ONDBLCLICK, - HTML40Namespace.ATTR_NAME_ONMOUSEDOWN, - HTML40Namespace.ATTR_NAME_ONMOUSEUP, - HTML40Namespace.ATTR_NAME_ONMOUSEOVER, - HTML40Namespace.ATTR_NAME_ONMOUSEMOVE, - HTML40Namespace.ATTR_NAME_ONMOUSEOUT, - HTML40Namespace.ATTR_NAME_ONKEYPRESS, - HTML40Namespace.ATTR_NAME_ONKEYDOWN, - HTML40Namespace.ATTR_NAME_ONKEYUP, - HTML40Namespace.ATTR_NAME_ONHELP}; - - public StructuredTextPartitionerForHTML() { - super(); - } - - public IStructuredTypedRegion createPartition(int offset, int length, String type) { - if (type == IHTMLPartitions.SCRIPT) { - IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset); - if (node != null) { - String stype = getScriptingPartitionType(node); - return super.createPartition(offset, length, stype); - } - } - return super.createPartition(offset, length, type); - } - - protected void setInternalPartition(int offset, int length, String type) { - String localType = type; - if (type == IHTMLPartitions.SCRIPT) { - IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset); - if (node != null) { - localType = getScriptingPartitionType(node); - } - } - super.setInternalPartition(offset, length, localType); - } - - private String getScriptingPartitionType(IStructuredDocumentRegion coreNode) { - String language = null; - String type = null; - String result = IHTMLPartitions.SCRIPT; - IStructuredDocumentRegion node = coreNode; - ITextRegion attrNameRegion = null; - while (node != null && isValidScriptingRegionType(node.getType())) { - node = node.getPrevious(); - } - - ITextRegionList regions = node.getRegions(); - if (regions.size() > 4 && regions.get(1).getType() == DOMRegionContext.XML_TAG_NAME) { - ITextRegion potentialLanguageRegion = regions.get(1); - String potentialLanguageString = node.getText(potentialLanguageRegion); - if (potentialLanguageString.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT)) { - for (int i = 0; i < regions.size(); i++) { - ITextRegion region = regions.get(i); - String regionType = region.getType(); - if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) - attrNameRegion = region; - else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) { - String attrName = node.getText(attrNameRegion); - if (attrName.equalsIgnoreCase(HTML40Namespace.ATTR_NAME_LANGUAGE)) - language = StringUtils.strip(node.getText(region)); - else if (attrName.equalsIgnoreCase(HTML40Namespace.ATTR_NAME_TYPE)) { - type = StringUtils.strip(node.getText(region)); - break; - } - attrNameRegion = null; - } - } - } - } - if (type != null) - result = lookupScriptType(type); - else if (language != null) - result = lookupScriptLanguage(language); - return result; - } - - private boolean isValidScriptingRegionType(String type) { - return type == DOMRegionContext.BLOCK_TEXT || type == DOMRegionContext.XML_CDATA_OPEN || type == DOMRegionContext.XML_CDATA_TEXT || type == DOMRegionContext.XML_CDATA_CLOSE; - } - - protected void initLegalContentTypes() { - fSupportedTypes = getConfiguredContentTypes(); - } - - private String lookupScriptType(String type) { - for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS.length; i++) - if (ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS[i].equalsIgnoreCase(type)) - return IHTMLPartitions.SCRIPT; - return IHTMLPartitions.SCRIPT + ".type." + type.toUpperCase(Locale.ENGLISH); //$NON-NLS-1$ - } - - private String lookupScriptLanguage(String language) { - for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS.length; i++) - if (ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS[i].equalsIgnoreCase(language)) - return IHTMLPartitions.SCRIPT; - return IHTMLPartitions.SCRIPT + ".language." + language.toUpperCase(Locale.ENGLISH); //$NON-NLS-1$ - } - - public String getPartitionType(ITextRegion region, int offset) { - String result = null; - if (region.getType() == DOMRegionContext.XML_COMMENT_TEXT || region.getType() == DOMRegionContext.XML_COMMENT_OPEN) - result = IHTMLPartitions.HTML_COMMENT; - else if (region.getType() == DOMRegionContext.XML_DOCTYPE_DECLARATION || region.getType() == DOMRegionContext.XML_DECLARATION_OPEN) - result = IHTMLPartitions.HTML_DECLARATION; - else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset)) - result = IHTMLPartitions.SCRIPT_EVENTHANDLER; - else - result = super.getPartitionType(region, offset); - return result; - } - - public String getPartitionTypeBetween(IStructuredDocumentRegion previousNode, IStructuredDocumentRegion nextNode) { - - ITextRegion previousStartTagNameRegion = null; - ITextRegion nextEndTagNameRegion = null; - - ITextRegion[] regions = previousNode.getRegions().toArray(); - for (int i = 0; i < regions.length; i++) { - if(regions[i].getType() == DOMRegionContext.XML_TAG_NAME) { - previousStartTagNameRegion = regions[i]; - break; - } - } - regions = nextNode.getRegions().toArray(); - for (int i = 0; i < regions.length; i++) { - if(regions[i].getType() == DOMRegionContext.XML_TAG_NAME) { - nextEndTagNameRegion = regions[i]; - break; - } - } - - if(previousStartTagNameRegion == null || nextEndTagNameRegion == null) - return IHTMLPartitions.HTML_DEFAULT; - - String name1 = previousNode.getText(previousStartTagNameRegion); - String name2 = nextNode.getText(nextEndTagNameRegion); - if (name1.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT) && name2.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT)) - // return ST_SCRIPT; - return getScriptingPartitionType(fStructuredDocument.getRegionAtCharacterOffset(previousNode.getStartOffset(previousStartTagNameRegion))); - else if (name1.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE) && name2.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE)) - return ICSSPartitions.STYLE; - return super.getPartitionTypeBetween(previousNode, nextNode); - } - - - protected String getPartitionType(ForeignRegion region, int offset) { - String tagname = region.getSurroundingTag(); - String result = null; - // tagname should not be null, - // but see https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4911 - if (tagname == null) { - result = getUnknown(); - } - else if (tagname.equalsIgnoreCase(HTML40Namespace.ElementName.SCRIPT)) - result = IHTMLPartitions.SCRIPT; - else if (tagname.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE)) - result = ICSSPartitions.STYLE; - else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset)) - result = IHTMLPartitions.SCRIPT_EVENTHANDLER; - else - result = super.getPartitionType(region, offset); - - return result; - } - - public String getDefaultPartitionType() { - return IHTMLPartitions.HTML_DEFAULT; - } - - public IDocumentPartitioner newInstance() { - return new StructuredTextPartitionerForHTML(); - } - - /** - * @return - */ - public static String[] getConfiguredContentTypes() { - return configuredContentTypes; - } - - private boolean isScriptAttributeValue(ITextRegion region, int offset) { - if (region.getType() != DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) - return false; - - return isAttributeNameForValueAnEventScript(region, offset); - } - - private boolean isAttributeNameForValueAnEventScript(ITextRegion attrValueRegion, int offset) { - IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset); - ITextRegionList regionList = node.getRegions(); - int currentIndex = regionList.indexOf(attrValueRegion); - - /* - * 4 is the minimum index allowing for the tag's open, name, attribute - * name and equals character to appear first - */ - if (currentIndex < 4) - return false; - ITextRegion tagAttrNameRegion = regionList.get(currentIndex - 2); - - boolean isEvent = false; - if (fStructuredDocument instanceof IRegionComparible) { - int start = node.getStartOffset(tagAttrNameRegion); - for (int i = 0; !isEvent && i < EVENT_ATTRIBUTE_NAMES.length; i++) { - isEvent = ((IRegionComparible) fStructuredDocument).regionMatchesIgnoreCase(start, tagAttrNameRegion.getTextLength(), EVENT_ATTRIBUTE_NAMES[i]); - } - } - else { - String tagAttrName = node.getText(tagAttrNameRegion); - isEvent = StringUtils.contains(EVENT_ATTRIBUTE_NAMES, tagAttrName, false); - } - return isEvent; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java deleted file mode 100644 index bcabe895a5..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -abstract class AbstractErrorInfo implements ErrorInfo, ErrorState { - - - private int state = NONE_ERROR; - private Segment seg = null; - - public AbstractErrorInfo(int state, Segment seg) { - super(); - this.state = state; - this.seg = seg; - } - - abstract public String getHint(); - - abstract public short getTargetType(); - - public int getLength() { - return (seg == null) ? 0 : seg.getLength(); - } - - public int getOffset() { - return (seg == null) ? 0 : seg.getOffset(); - } - - public int getState() { - return this.state; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java deleted file mode 100644 index 1809abdaf3..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.modelquery.HMQUtil; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -final class CMUtil { - - /** - * Never instantiate! - */ - private CMUtil() { - super(); - } - - /** - * You cannot always retrieve HTMLElementDeclaration via an Element instance. - * Because, it occasionally a JSP custom tag. -- 9/7/2001 - */ - public static CMElementDeclaration getDeclaration(Element target) { - Document doc = target.getOwnerDocument(); - ModelQuery query = ModelQueryUtil.getModelQuery(doc); - return query.getCMElementDeclaration(target); - } - - /** - */ - public static boolean isCaseSensitive(CMElementDeclaration decl) { - if (decl == null || (!decl.supports(HTMLCMProperties.SHOULD_IGNORE_CASE))) - return false; - return !((Boolean) decl.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue(); - } - - /** - */ - private static boolean isChild(CMContent content, CMElementDeclaration target) { - switch (content.getNodeType()) { - case CMNode.ELEMENT_DECLARATION : - if (isWholeTagOmissible((CMElementDeclaration) content)) - if (isChild(((CMElementDeclaration) content).getContent(), target)) - return true; - return isSameDeclaration((CMElementDeclaration) content, target); - case CMNode.GROUP : - CMNodeList children = ((CMGroup) content).getChildNodes(); - for (int i = 0; i < children.getLength(); i++) { - CMNode child = children.item(i); - switch (child.getNodeType()) { - case CMNode.ELEMENT_DECLARATION : - if (isWholeTagOmissible((CMElementDeclaration) child)) - if (isChild(((CMElementDeclaration) child).getContent(), target)) - return true; - if (isSameDeclaration((CMElementDeclaration) child, target)) - return true; - continue; // Go next child. - case CMNode.GROUP : - if (isChild((CMContent) child, target)) - return true; - continue; // Go next child. - default : - continue; // Go next child. - } - } - } - return false; - } - - /** - */ - public static boolean isEndTagOmissible(CMElementDeclaration decl) { - if (!(decl.supports(HTMLCMProperties.OMIT_TYPE))) - return false; - String omitType = (String) decl.getProperty(HTMLCMProperties.OMIT_TYPE); - return !omitType.equals(HTMLCMProperties.Values.OMIT_NONE); - } - - /** - */ - public static boolean isWholeTagOmissible(CMElementDeclaration decl) { - if (!(decl.supports(HTMLCMProperties.OMIT_TYPE))) - return false; - String omitType = (String) decl.getProperty(HTMLCMProperties.OMIT_TYPE); - return omitType.equals(HTMLCMProperties.Values.OMIT_BOTH); - } - - /** - */ - public static boolean isJSP(CMElementDeclaration decl) { - if (!decl.supports(HTMLCMProperties.IS_JSP)) - return false; - return ((Boolean) decl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue(); - } - - /** - */ - public static boolean isXHTML(CMElementDeclaration decl) { - if (!decl.supports(HTMLCMProperties.IS_XHTML)) - return false; - return ((Boolean) decl.getProperty(HTMLCMProperties.IS_XHTML)).booleanValue(); - } - - /** - * The method to distinguish HTML and XHTML from other mark up. - * This method returns true if the target is, - * (1) not JSP, - * (2) not SSI. - */ - public static boolean isHTML(CMElementDeclaration decl) { - return (!isJSP(decl)) && (!isSSI(decl)); - } - - /** - */ - private static boolean isSameDeclaration(CMElementDeclaration aDec, CMElementDeclaration otherDec) { - return aDec.getElementName() == otherDec.getElementName(); - } - - /** - */ - public static boolean isSSI(CMElementDeclaration edec) { - if (edec == null) - return false; - if (!edec.supports(HTMLCMProperties.IS_SSI)) - return false; - return ((Boolean) edec.getProperty(HTMLCMProperties.IS_SSI)).booleanValue(); - } - - /** - * Call this method only when the parent content type is one of - * the following: ANY, ELEMENT, or MIXED. - */ - public static boolean isValidChild(CMElementDeclaration parent, CMElementDeclaration child) { - if (parent == null || child == null) - return false; - if (isHTML(parent) && (!isHTML(child))) - return true; - CMContent content = parent.getContent(); - if (content == null) - return false; - return isChild(content, child); - } - - public static boolean isForeign(Element target) { - if (!(target instanceof IDOMElement)) - return true; - IDOMElement element = (IDOMElement) target; - return !element.isGlobalTag(); - } - - /** - * This method returns true if all of the following conditions are met: - * (1) value type is ENUM, - * (2) only one value is defined in the enumeration, - * (3) the value has same name to the attribute name. - */ - public static boolean isBooleanAttr(CMAttributeDeclaration adec) { - CMDataType attrtype = adec.getAttrType(); - if (attrtype == null) - return false; - if (attrtype.getDataTypeName() != CMDataType.ENUM) - return false; - String[] values = attrtype.getEnumeratedValues(); - if (values.length != 1) - return false; - return values[0].equals(adec.getAttrName()); - } - - public static boolean isValidInclusion(CMElementDeclaration decl, Element parent) { - Iterator iter = HMQUtil.getInclusions(parent).iterator(); - while (iter.hasNext()) { - CMElementDeclaration inclusion = (CMElementDeclaration) iter.next(); - if (isSameDeclaration(decl, inclusion)) - return true; - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java deleted file mode 100644 index b0e752305f..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter; -import org.eclipse.wst.sse.core.internal.validate.ValidationReporter; -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -abstract class CompositeValidator extends ValidationComponent { - - protected Vector components = new Vector(); - - /** - * CompositeValidator constructor comment. - */ - public CompositeValidator() { - super(); - } - - /** - */ - public void setReporter(ValidationReporter reporter) { - super.setReporter(reporter); - - Iterator i = components.iterator(); - while (i.hasNext()) { - ValidationAdapter component = (ValidationAdapter) i.next(); - if (component == null) - continue; - component.setReporter(reporter); - } - } - - /** - */ - public void validate(IndexedRegion node) { - Iterator i = components.iterator(); - while (i.hasNext()) { - ValidationComponent component = (ValidationComponent) i.next(); - if (component == null) - continue; - component.validate(node); - } - } - - /** - */ - void add(ValidationComponent validator) { - components.add(validator); - } - - /** - * This method registers all components in 'validators'. - * Each derivative must call this methid in its constructor. - */ - protected void register(ValidationComponent[] validators) { - for (int i = 0; i < validators.length; i++) { - if (validators[i] != null) - add(validators[i]); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java deleted file mode 100644 index 562915b136..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter; -import org.eclipse.wst.sse.core.internal.validate.ValidationReporter; -import org.eclipse.wst.xml.core.internal.validate.AbstractPropagatingValidator; -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -class DocumentPropagatingValidator extends AbstractPropagatingValidator { - - - private ValidationComponent validator = new HTMLSimpleDocumentValidator(); - private ElementPropagatingValidator propagatee = new ElementPropagatingValidator(); - - public DocumentPropagatingValidator() { - super(); - } - - public void validate(IndexedRegion node) { - getPropagatee().setReporter(this.reporter); - super.validate(node); - } - - public boolean isAdapterForType(Object type) { - return (type == DocumentPropagatingValidator.class || super.isAdapterForType(type)); - } - - public void setReporter(ValidationReporter reporter) { - super.setReporter(reporter); - validator.setReporter(reporter); - propagatee.setReporter(reporter); - } - - protected final ValidationComponent getPropagatee() { - return propagatee; - } - - protected final ValidationAdapter getValidator() { - return validator; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java deleted file mode 100644 index c290b6230d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter; -import org.eclipse.wst.sse.core.internal.validate.ValidationReporter; -import org.eclipse.wst.xml.core.internal.validate.AbstractPropagatingValidator; -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -class ElementPropagatingValidator extends AbstractPropagatingValidator { - - - private ValidationComponent validator = new HTMLSimpleValidator(); - - public ElementPropagatingValidator() { - super(); - } - - public boolean isAdapterForType(Object type) { - return (type == ElementPropagatingValidator.class || super.isAdapterForType(type)); - } - - public void setReporter(ValidationReporter reporter) { - super.setReporter(reporter); - validator.setReporter(reporter); - } - - protected ValidationComponent getPropagatee() { - return this; - } - - protected ValidationAdapter getValidator() { - return validator; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java deleted file mode 100644 index 3553844b08..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -interface ErrorInfo { - - public String getHint(); - - public int getLength(); - - public int getOffset(); - - public int getState(); - - public short getTargetType(); -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java deleted file mode 100644 index 8097da40ac..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.w3c.dom.Attr; -import org.w3c.dom.Node; -import org.w3c.dom.Text; - -final class ErrorInfoImpl extends AbstractErrorInfo { - - private Node target = null; - - // private Segment seg = null; - /** - */ - public ErrorInfoImpl(int state, Segment errorSeg, Node target) { - super(state, errorSeg); - this.target = target; - } - - /** - */ - public String getHint() { - switch (target.getNodeType()) { - case Node.ATTRIBUTE_NODE : - switch (getState()) { - case UNDEFINED_VALUE_ERROR : - case MISMATCHED_VALUE_ERROR : - case UNCLOSED_ATTR_VALUE : - //D210422 - return ((Attr) target).getValue(); - default : - return target.getNodeName(); - } - case Node.TEXT_NODE : - return ((Text) target).getData(); - case Node.ELEMENT_NODE : - default : - return target.getNodeName(); - } - } - - public short getTargetType() { - return target.getNodeType(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java deleted file mode 100644 index 17af433cc9..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -interface ErrorState { - static final int NONE_ERROR = 0; - // generic error - static final int UNDEFINED_NAME_ERROR = 11; - static final int UNDEFINED_VALUE_ERROR = 12; - static final int MISMATCHED_VALUE_ERROR = 13; - // format error - static final int FORMAT_ERROR_LEVEL = 100; - static final int INVALID_NAME_ERROR = 101; - static final int INVALID_CHAR_ERROR = 102; - static final int MISMATCHED_ERROR = 103; - static final int MISMATCHED_END_TAG_ERROR = 104; - static final int MISSING_START_TAG_ERROR = 105; - static final int MISSING_END_TAG_ERROR = 106; - static final int UNNECESSARY_END_TAG_ERROR = 107; - static final int INVALID_ATTR_ERROR = 108; - static final int INVALID_DIRECTIVE_ERROR = 109; - static final int UNCLOSED_TAG_ERROR = 110; - static final int UNCLOSED_END_TAG_ERROR = 111; - static final int INVALID_EMPTY_ELEMENT_TAG = 112; - static final int UNCLOSED_ATTR_VALUE = 113; //D210422 - // layout error - static final int LAYOUT_ERROR_LEVEL = 1000; - static final int INVALID_CONTENT_ERROR = 1001; - static final int DUPLICATE_ERROR = 1002; - static final int COEXISTENCE_ERROR = 1003; -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java deleted file mode 100644 index a548dea720..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; - -final class FMUtil { - - public final static int SEG_NONE = 0; - public final static int SEG_WHOLE_TAG = 1; - public final static int SEG_START_TAG = 2; - public final static int SEG_END_TAG = 3; - - /** - */ - private FMUtil() { - super(); - } - - /** - */ - public final static Segment getSegment(IDOMNode target, int segType) { - if (target == null) - return new Segment(0, 0); - Segment seg = null; - IStructuredDocumentRegion startTag = null; - IStructuredDocumentRegion endTag = null; - switch (segType) { - case SEG_WHOLE_TAG : - startTag = target.getFirstStructuredDocumentRegion(); - if (startTag != null) { - endTag = target.getLastStructuredDocumentRegion(); - seg = new Segment(startTag, endTag); - } - else { - int startOffset = target.getStartOffset(); - int endOffset = target.getEndOffset(); - seg = new Segment(startOffset, endOffset - startOffset); - } - break; - case SEG_START_TAG : - startTag = target.getStartStructuredDocumentRegion(); - if (startTag != null) { - seg = new Segment(startTag); - } - else { - seg = new Segment(target.getStartOffset(), 0); - } - break; - case SEG_END_TAG : - endTag = target.getEndStructuredDocumentRegion(); - if (endTag != null) { - seg = new Segment(endTag); - } - else { - seg = new Segment(target.getEndOffset(), 0); - } - break; - case SEG_NONE : - default : - return new Segment(0, 0); - } - return seg; - } - - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java deleted file mode 100644 index 088bde0eec..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java +++ /dev/null @@ -1,255 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import java.util.Iterator; - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - -public class HTMLAttributeValidator extends PrimeValidator { - - private static final int REGION_NAME = 1; - private static final int REGION_VALUE = 2; - // <<D210422 - private static final char SINGLE_QUOTE = '\''; - private static final char DOUBLE_QUOTE = '\"'; - - // D210422 - /** - * HTMLAttributeValidator constructor comment. - */ - public HTMLAttributeValidator() { - super(); - } - - /** - */ - private Segment getErrorSegment(IDOMNode errorNode, int regionType) { - ITextRegion rgn = null; - switch (regionType) { - case REGION_NAME : - rgn = errorNode.getNameRegion(); - break; - case REGION_VALUE : - rgn = errorNode.getValueRegion(); - break; - default : - // nothing to do. - break; - } - if (rgn != null) { - if (errorNode instanceof IDOMAttr) { - IDOMElement ownerElement = (IDOMElement) ((IDOMAttr) errorNode).getOwnerElement(); - if (ownerElement != null) { - int regionStartOffset = ownerElement.getFirstStructuredDocumentRegion().getStartOffset(rgn); - int regionLength = rgn.getLength(); - return new Segment(regionStartOffset, regionLength); - } - } - } - return new Segment(errorNode.getStartOffset(), 0); - } - - /** - * Allowing the INodeAdapter to compare itself against the type allows it - * to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLAttributeValidator.class) || super.isAdapterForType(type)); - } - - /** - */ - public void validate(IndexedRegion node) { - Element target = (Element) node; - if (CMUtil.isForeign(target)) - return; - CMElementDeclaration edec = CMUtil.getDeclaration(target); - if (edec == null) - return; - CMNamedNodeMap declarations = edec.getAttributes(); - - NamedNodeMap attrs = target.getAttributes(); - for (int i = 0; i < attrs.getLength(); i++) { - int rgnType = REGION_NAME; - int state = ErrorState.NONE_ERROR; - Attr a = (Attr) attrs.item(i); - // D203637; If the target attr has prefix, the validator should - // not - // warn about it. That is, just ignore. It is able to check - // whether - // an attr has prefix or not by calling XMLAttr#isGlobalAttr(). - // When a attr has prefix (not global), it returns false. - boolean isXMLAttr = a instanceof IDOMAttr; - if (isXMLAttr) { - IDOMAttr xmlattr = (IDOMAttr) a; - if (!xmlattr.isGlobalAttr()) - continue; // skip futher validation and begin next loop. - } - - CMAttributeDeclaration adec = (CMAttributeDeclaration) declarations.getNamedItem(a.getName()); - if (adec == null) { - // No attr declaration was found. That is, the attr name is - // undefined. - // but not regard it as undefined name if it includes JSP - if (!hasJSPRegion(((IDOMNode) a).getNameRegion())) { - rgnType = REGION_NAME; - state = ErrorState.UNDEFINED_NAME_ERROR; - } - } - else { - // The attr declaration was found. - // At 1st, the name should be checked. - if (CMUtil.isHTML(edec) && (!CMUtil.isXHTML(edec))) { - // If the target element is pure HTML (not XHTML), some - // attributes - // might be written in boolean format. It should be check - // specifically. - if (CMUtil.isBooleanAttr(adec) && ((IDOMAttr) a).hasNameOnly()) - continue; // OK, keep going. No more check is needed - // against this attr. - } - else { - // If the target is other than pure HTML (JSP or XHTML), - // the name - // must be checked exactly (ie in case sensitive way). - String actual = a.getName(); - String desired = adec.getAttrName(); - if (!actual.equals(desired)) { // case mismatch - rgnType = REGION_NAME; - state = ErrorState.MISMATCHED_ERROR; - } - } - // Then, the value must be checked. - if (state == ErrorState.NONE_ERROR) { // Need more check. - // Now, the value should be checked, if the type is ENUM. - CMDataType attrType = adec.getAttrType(); - String actualValue = a.getValue(); - if (attrType.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED) { - // Check FIXED value. - String validValue = attrType.getImpliedValue(); - if (!actualValue.equals(validValue)) { - rgnType = REGION_VALUE; - state = ErrorState.UNDEFINED_VALUE_ERROR; - } - } - else { - String[] candidates = attrType.getEnumeratedValues(); - if (candidates != null && candidates.length > 0) { - // several candidates are found. - boolean found = false; - for (int index = 0; index < candidates.length; index++) { - String candidate = candidates[index]; - // At 1st, compare ignoring case. - if (actualValue.equalsIgnoreCase(candidate)) { - found = true; - if (CMUtil.isCaseSensitive(edec) && (!actualValue.equals(candidate))) { - rgnType = REGION_VALUE; - state = ErrorState.MISMATCHED_VALUE_ERROR; - } - break; // exit the loop. - } - } - if (!found) { - // No candidate was found. That is, - // actualValue is invalid. - // but not regard it as undefined value if it - // includes JSP. - if (!hasJSPRegion(((IDOMNode) a).getValueRegion())) { - rgnType = REGION_VALUE; - state = ErrorState.UNDEFINED_VALUE_ERROR; - } - } - } - } - } - // <<D210422 - if (state == ErrorState.NONE_ERROR) { // Need more check. - if (isXMLAttr) { - String source = ((IDOMAttr) a).getValueRegionText(); - if (source != null) { - char firstChar = source.charAt(0); - char lastChar = source.charAt(source.length() - 1); - if (isQuote(firstChar) || isQuote(lastChar)) { - if (lastChar != firstChar) { - rgnType = REGION_VALUE; - state = ErrorState.UNCLOSED_ATTR_VALUE; - } - } - } - } - } - // D210422 - } - if (state != ErrorState.NONE_ERROR) { - Segment seg = getErrorSegment((IDOMNode) a, rgnType); - if (seg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(state, seg, a))); - } - } - } - - /** - */ - private boolean hasJSPRegion(ITextRegion container) { - if (!(container instanceof ITextRegionContainer)) - return false; - ITextRegionList regions = ((ITextRegionContainer) container).getRegions(); - if (regions == null) - return false; - Iterator e = regions.iterator(); - while (e.hasNext()) { - ITextRegion region = (ITextRegion) e.next(); - if (region == null) - continue; - String regionType = region.getType(); - if (regionType == DOMRegionContext.XML_TAG_OPEN || (isNestedTagName(regionType))) - return true; - } - return false; - } - - /** - * ISSUE: this is a bit of hidden JSP knowledge that was implemented this - * way for expedency. Should be evolved in future to depend on "nestedContext". - */ - private boolean isNestedTagName(String regionType) { - final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$ - final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$ - final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$ - final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$ - - boolean result = regionType.equals(JSP_SCRIPTLET_OPEN) || regionType.equals(JSP_EXPRESSION_OPEN) || regionType.equals(JSP_DECLARATION_OPEN) || regionType.equals(JSP_DIRECTIVE_OPEN); - return result; - } - - // <<D214022 - private boolean isQuote(char c) { - return (c == SINGLE_QUOTE) || (c == DOUBLE_QUOTE); - } - // D210422 -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java deleted file mode 100644 index 39328d3e3c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class HTMLDocumentContentValidator extends PrimeValidator { - - - private final static class Division { - private Vector explicitHtmls = new Vector(); - private Vector rest = new Vector(); - - public Division(Document document, NodeList children) { - String rootTagName = getRootTagName(document); - for (int i = 0; i < children.getLength(); i++) { - Node child = children.item(i); - if (isHtmlTag(child, rootTagName)) { - explicitHtmls.add(child); - } - else { - rest.add(child); - } - } - } - - public boolean hasExplicitHtmls() { - return explicitHtmls.size() > 0; - } - - public List getExplicitHtmls() { - return explicitHtmls; - } - - public Iterator getRestNodes() { - return rest.iterator(); - } - - /* utilities */ - private static boolean isHtmlTag(Node node, String tagName) { - if (node.getNodeType() != Node.ELEMENT_NODE) - return false; - return ((Element) node).getTagName().equalsIgnoreCase(tagName); - } - - private static String getRootTagName(Document document) { - DocumentTypeAdapter adapter = (DocumentTypeAdapter) ((IDOMDocument) document).getAdapterFor(DocumentTypeAdapter.class); - if (adapter != null) { - DocumentType docType = adapter.getDocumentType(); - if (docType != null) { - return docType.getName(); - } - } - - return HTML40Namespace.ElementName.HTML; - } - } - - /** - * HTMLDocumentContentValidator constructor comment. - */ - public HTMLDocumentContentValidator() { - super(); - } - - /** - * Allowing the INodeAdapter to compare itself against the type allows it - * to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLDocumentContentValidator.class) || super.isAdapterForType(type)); - } - - /** - */ - public void validate(IndexedRegion node) { - // isFragment check should be more intelligent. - boolean isFragment = true; - - Document target = (Document) node; - NodeList children = target.getChildNodes(); - if (children == null) - return; - - Division division = new Division(target, children); - if (division.hasExplicitHtmls()) { - isFragment = false; - - List explicits = division.getExplicitHtmls(); - if (explicits.size() > 1) { - for (int i = 1; i < explicits.size(); i++) { - Element html = (Element) explicits.get(i); - // report error (duplicate) - Segment errorSeg = FMUtil.getSegment((IDOMNode) html, FMUtil.SEG_START_TAG); - if (errorSeg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.DUPLICATE_ERROR, errorSeg, html))); - } - } - } - validateContent(division.getRestNodes(), isFragment); - } - - /* - * This methods validate nodes other than HTML elements. - */ - private void validateContent(Iterator children, boolean isFragment) { - boolean foundDoctype = false; - while (children.hasNext()) { - IDOMNode child = (IDOMNode) children.next(); - - int error = ErrorState.NONE_ERROR; - int segType = FMUtil.SEG_WHOLE_TAG; - - switch (child.getNodeType()) { - case Node.ELEMENT_NODE : - if (!isFragment) { - Element childElem = (Element) child; - CMElementDeclaration ced = CMUtil.getDeclaration(childElem); - // Undefined element is valid. - if (ced == null) - continue; - // JSP (includes custom tags) and SSI are valid. - if (CMUtil.isForeign(childElem) || CMUtil.isSSI(ced)) - continue; // Defect 186774 - - // report error (invalid content) - error = ErrorState.INVALID_CONTENT_ERROR; - // mark the whole start tag as error. - segType = FMUtil.SEG_START_TAG; - } - break; - case Node.TEXT_NODE : - if (!isFragment) { - // TEXT node is valid when it contains white space - // characters only. - // Otherwise, it is invalid content. - if (((IDOMText) child).isElementContentWhitespace()) - continue; - error = ErrorState.INVALID_CONTENT_ERROR; - segType = FMUtil.SEG_WHOLE_TAG; - } - break; - case Node.DOCUMENT_TYPE_NODE : - // DOCTYPE is also valid when it appears once and only - // once. - if (!foundDoctype) { - foundDoctype = true; - continue; - } - error = ErrorState.DUPLICATE_ERROR; - segType = FMUtil.SEG_WHOLE_TAG; - break; - case Node.COMMENT_NODE : - // always valid. - case Node.PROCESSING_INSTRUCTION_NODE : - continue; - default : - if (!isFragment) { - error = ErrorState.INVALID_CONTENT_ERROR; - segType = FMUtil.SEG_WHOLE_TAG; - } - break; - } - if (error != ErrorState.NONE_ERROR) { - Segment errorSeg = FMUtil.getSegment(child, segType); - if (errorSeg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child))); - } - } - } - -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java deleted file mode 100644 index 58a2b0b150..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Element; - -public class HTMLElementAncestorValidator extends PrimeValidator { - - /** - * HTMLElementAncestorValidator constructor comment. - */ - public HTMLElementAncestorValidator() { - super(); - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLElementAncestorValidator.class) || super.isAdapterForType(type)); - } - - /** - * Check exclusion which is defined in only HTML DTD (SGML). - */ - public void validate(IndexedRegion node) { - Element target = (Element) node; - if (CMUtil.isForeign(target)) - return; - CMElementDeclaration dec = CMUtil.getDeclaration(target); - if (dec == null) - return; // cannot validate. - if (!CMUtil.isHTML(dec)) - return; // no need to validate - if (!dec.supports(HTMLCMProperties.PROHIBITED_ANCESTORS)) - return; // cannot validate. - CMNamedNodeMap prohibited = (CMNamedNodeMap) dec.getProperty(HTMLCMProperties.PROHIBITED_ANCESTORS); - if (prohibited.getLength() <= 0) - return; // no prohibited ancestors. - - Element parent = SMUtil.getParentElement(target); - while (parent != null) { - CMNode pdec = prohibited.getNamedItem(parent.getNodeName()); - if (pdec != null) { // prohibited element is found in ancestors. - Segment errorSeg = FMUtil.getSegment((IDOMNode) node, FMUtil.SEG_START_TAG); - if (errorSeg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.INVALID_CONTENT_ERROR, errorSeg, target))); - break; // If one prohibited ancestor is found, it's enough. - } - parent = SMUtil.getParentElement(parent); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java deleted file mode 100644 index 7e1ce0c118..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java +++ /dev/null @@ -1,180 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class HTMLElementContentValidator extends PrimeValidator { - - /** - * HTMLElementContentValidator constructor comment. - */ - public HTMLElementContentValidator() { - super(); - } - - /** - * Allowing the INodeAdapter to compare itself against the type allows it - * to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLElementContentValidator.class) || super.isAdapterForType(type)); - } - - /** - */ - public void validate(IndexedRegion node) { - Element target = (Element) node; - if (CMUtil.isForeign(target)) - return; - - validateContent(target, target.getChildNodes()); - } - - private void validateContent(Element parent, NodeList children) { - for (int i = 0; i < children.getLength(); i++) { - Node child = children.item(i); - if (child == null) - continue; - - // perform actual validation - validateNode(parent, child); - } - } - - // private int countExplicitSiblings(Element parent, String tagName) { - // NodeList children = parent.getChildNodes(); - // int count = 0; - // for (int i = 0; i < children.getLength(); i++) { - // Node child = children.item(i); - // if (child.getNodeType() != Node.ELEMENT_NODE) - // continue; - // if (tagName.equalsIgnoreCase(((Element) child).getTagName())) { - // count++; - // } - // } - // return count; - // } - - /* - * The implementation of the following method is practical but accurate. - * The accurate maximum occurence should be retreive from the content - * model. However, it is useful enough, since almost implicit elements are - * HTML, HEAD, or BODY. - */ - // private int getMaxOccur(Element parent, String childTag) { - // return 1; - // } - private void validateNode(Element target, Node child) { - // NOTE: If the target element is 'UNKNOWN', that is, it has no - // element declaration, the content type of the element should be - // regarded as 'ANY'. -- 9/10/2001 - int contentType = CMElementDeclaration.ANY; - CMElementDeclaration edec = CMUtil.getDeclaration(target); - if (edec != null) - contentType = edec.getContentType(); - - int error = ErrorState.NONE_ERROR; - int segType = FMUtil.SEG_WHOLE_TAG; - - switch (child.getNodeType()) { - case Node.ELEMENT_NODE : - Element childElem = (Element) child; - // Defect 200321: - // This validator cares only HTML/XHTML elements. If a child - // is - // an element of foreign markup languages, just ignore it. - if (CMUtil.isForeign(childElem)) - return; - - CMElementDeclaration ced = CMUtil.getDeclaration((Element) child); - // Defect 186774: If a child is not one of HTML elements, - // it should be regarded as a valid child regardless the - // type of the parent content model. -- 10/12/2001 - if (ced == null || CMUtil.isSSI(ced) || (!CMUtil.isHTML(ced))) - return; - - switch (contentType) { - case CMElementDeclaration.ANY : - // Keep going. - return; - case CMElementDeclaration.ELEMENT : - case CMElementDeclaration.MIXED : - if (ced == null) - return; - if (CMUtil.isValidChild(edec, ced)) - return; - // Now, it is the time to check inclusion, unless the - // target - // document is not a XHTML. - if (!CMUtil.isXHTML(edec)) { - // pure HTML - if (CMUtil.isValidInclusion(ced, target)) - return; - } - error = ErrorState.INVALID_CONTENT_ERROR; - break; - default : - error = ErrorState.INVALID_CONTENT_ERROR; - break; - } - // Mark the whole START tag as an error segment. - segType = FMUtil.SEG_START_TAG; - break; - case Node.TEXT_NODE : - switch (contentType) { - case CMElementDeclaration.ANY : - case CMElementDeclaration.MIXED : - case CMElementDeclaration.PCDATA : - case CMElementDeclaration.CDATA : - // D184339 - // Keep going. - return; - case CMElementDeclaration.ELEMENT : - case CMElementDeclaration.EMPTY : - if (((IDOMText) child).isElementContentWhitespace()) - return; - error = ErrorState.INVALID_CONTENT_ERROR; - break; - default : - error = ErrorState.INVALID_CONTENT_ERROR; - break; - } - // Mark the whole node as an error segment. - segType = FMUtil.SEG_WHOLE_TAG; - break; - case Node.COMMENT_NODE : - case Node.PROCESSING_INSTRUCTION_NODE : - if (contentType != CMElementDeclaration.EMPTY) - return; - error = ErrorState.INVALID_CONTENT_ERROR; - // Mark the whole node as an error segment. - segType = FMUtil.SEG_WHOLE_TAG; - break; - default : - error = ErrorState.INVALID_CONTENT_ERROR; - // Mark the whole node as an error segment. - segType = FMUtil.SEG_WHOLE_TAG; - break; - } - if (error != ErrorState.NONE_ERROR) { - Segment errorSeg = FMUtil.getSegment((IDOMNode) child, segType); - if (errorSeg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child))); - } - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java deleted file mode 100644 index 65795b3d69..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -class HTMLSimpleDocumentValidator extends CompositeValidator { - - /** - * HTMLSimpleDocumentValidator constructor comment. - */ - public HTMLSimpleDocumentValidator() { - super(); - - ValidationComponent[] validators = new ValidationComponent[2]; - - validators[0] = new HTMLDocumentContentValidator(); - validators[1] = new SyntaxValidator(); - - register(validators); - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLSimpleDocumentValidator.class) || super.isAdapterForType(type)); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java deleted file mode 100644 index 7276fd81fb..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -class HTMLSimpleValidator extends CompositeValidator { - - /** - * HTMLSimpleValidator constructor comment. - */ - public HTMLSimpleValidator() { - super(); - - ValidationComponent[] validators = new ValidationComponent[5]; - - validators[0] = new HTMLAttributeValidator(); - validators[1] = new HTMLElementContentValidator(); - validators[2] = new SyntaxValidator(); - validators[3] = new HTMLElementAncestorValidator(); - validators[4] = new NamespaceValidator(); - - register(validators); - } - - /** - * Allowing the INodeAdapter to compare itself against the type - * allows it to return true in more than one case. - */ - public boolean isAdapterForType(Object type) { - return ((type == HTMLSimpleValidator.class) || super.isAdapterForType(type)); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java deleted file mode 100644 index 1010e0473c..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter; -import org.w3c.dom.Node; - -public class HTMLValidationAdapterFactory extends AbstractAdapterFactory { - - private static HTMLValidationAdapterFactory instance = null; - - /** - * HTMLValidationAdapterFactory constructor comment. - */ - public HTMLValidationAdapterFactory() { - super(ValidationAdapter.class, true); - } - - /** - * HTMLValidationAdapterFactory constructor comment. - * @param adapterKey java.lang.Object - * @param registerAdapters boolean - */ - public HTMLValidationAdapterFactory(Object adapterKey, boolean registerAdapters) { - super(adapterKey, registerAdapters); - } - - /** - */ - protected INodeAdapter createAdapter(INodeNotifier target) { - Node node = (Node) target; - switch (node.getNodeType()) { - case Node.DOCUMENT_NODE : - return new DocumentPropagatingValidator(); - case Node.ELEMENT_NODE : - return new ElementPropagatingValidator(); - default : - return new NullValidator(); - } - } - - /** - */ - public synchronized static HTMLValidationAdapterFactory getInstance() { - if (instance != null) - return instance; - instance = new HTMLValidationAdapterFactory(); - return instance; - } - - /** - * Overriding Object's clone() method - * This is used in IModelManager's IStructuredModel copying. - */ - public INodeAdapterFactory copy() { - return getInstance(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java deleted file mode 100644 index e8ec08de1a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import java.util.Hashtable; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.wst.html.core.internal.HTMLCoreMessages; -import org.eclipse.wst.html.core.internal.Logger; -import org.eclipse.wst.sse.core.internal.validate.ValidationMessage; -import org.w3c.dom.Node; - -class MessageFactory implements ErrorState { - - - private static class ErrorTable { - private class Packet { - public Packet(String msg, int severity) { - this.msg = msg; - this.severity = severity; - } - - public String getMessage() { - return msg; - } - - public int getSeverity() { - return severity; - } - - private String msg = null; - private int severity = -1; - } - - public ErrorTable() { - } - - public void put(int state, String msg, int severity) { - Packet packet = new Packet(msg, severity); - map.put(new Integer(state), packet); - } - - public String getMessage(int state) { - return getPacket(state).getMessage(); - } - - public int getSeverity(int state) { - return getPacket(state).getSeverity(); - } - - private Packet getPacket(int state) { - return (Packet) map.get(new Integer(state)); - } - - private Hashtable map = new Hashtable(); - } - - private static interface NodeType { - static final int ATTRIBUTE = 0; - static final int ELEMENT = 1; - static final int DOCUMENT_TYPE = 2; - static final int TEXT = 3; - static final int COMMENT = 4; - static final int CDATA_SECTION = 5; - static final int PROCESSING_INSTRUCTION = 6; - static final int ENTITY_REFERENCE = 7; - - static final int MAX_TYPE = 8; - } - - // error messages - private static final String MSG_NO_ERROR = HTMLCoreMessages.No_error__UI_; - private static final String MSG_UNDEFINED_ATTR_ERROR = HTMLCoreMessages.Undefined_attribute_name___ERROR_; - private static final String MSG_UNDEFINED_VALUE_ERROR = HTMLCoreMessages.Undefined_attribute_value__ERROR_; - private static final String MSG_DUPLICATE_ATTR_ERROR = HTMLCoreMessages.Multiple_values_specified__ERROR_; - private static final String MSG_MISMATCHED_ATTR_ERROR = HTMLCoreMessages.Attribute_name___0___uses__ERROR_; - private static final String MSG_INVALID_ATTR_ERROR = HTMLCoreMessages.Invalid_attribute_name___0_ERROR_; - private static final String MSG_ATTR_NO_VALUE_ERROR = HTMLCoreMessages.Invalid_attribute___0____ERROR_; - private static final String MSG_INVALID_CONTENT_ERROR = HTMLCoreMessages.Invalid_location_of_tag____ERROR_; - private static final String MSG_DUPLICATE_TAG_ERROR = HTMLCoreMessages.Duplicate_tag___0____ERROR_; - private static final String MSG_MISSING_START_TAG_ERROR = HTMLCoreMessages.No_start_tag____0_____ERROR_; - private static final String MSG_MISSING_END_TAG_ERROR = HTMLCoreMessages.No_end_tag_____0_____ERROR_; - private static final String MSG_UNNECESSARY_END_TAG_ERROR = HTMLCoreMessages.End_tag_____0____not_neede_ERROR_; - private static final String MSG_UNDEFINED_TAG_ERROR = HTMLCoreMessages.Unknown_tag___0____ERROR_; - private static final String MSG_MISMATCHED_TAG_ERROR = HTMLCoreMessages.Tag_name___0___uses_wrong__ERROR_; - private static final String MSG_INVALID_TAG_ERROR = HTMLCoreMessages.Invalid_tag_name___0____ERROR_; - private static final String MSG_INVALID_DIRECTIVE_ERROR = HTMLCoreMessages.Invalid_JSP_directive___0__ERROR_; - private static final String MSG_INVALID_TEXT_ERROR = HTMLCoreMessages.Invalid_text_string___0____ERROR_; - private static final String MSG_INVALID_CHAR_ERROR = HTMLCoreMessages.Invalid_character_used_in__ERROR_; - private static final String MSG_UNKNOWN_ERROR = HTMLCoreMessages.Unknown_error__ERROR_; - private static final String MSG_UNCLOSED_START_TAG_ERROR = HTMLCoreMessages.Start_tag____0____not_clos_ERROR_; - private static final String MSG_UNCLOSED_END_TAG_ERROR = HTMLCoreMessages.End_tag_____0____not_close_ERROR_; - private static final String MSG_MISMATCHED_ATTR_VALUE_ERROR = HTMLCoreMessages.Attribute_value___0___uses_ERROR_; - private static final String MSG_UNCLOSED_COMMENT_ERROR = HTMLCoreMessages.Comment_not_closed__ERROR_; - private static final String MSG_UNCLOSED_DOCTYPE_ERROR = HTMLCoreMessages.DOCTYPE_declaration_not_cl_ERROR_; - private static final String MSG_UNCLOSED_PI_ERROR = HTMLCoreMessages.Processing_instruction_not_ERROR_; - private static final String MSG_UNCLOSED_CDATA_SECTION_ERROR = HTMLCoreMessages.CDATA_section_not_closed__ERROR_; - private static final String MSG_INVALID_EMPTY_ELEMENT_TAG = HTMLCoreMessages._ERROR_Tag___0___should_be_an_empty_element_tag_1; - private static final String MSG_UNCLOSED_ATTR_VALUE_ERROR = HTMLCoreMessages._ERROR_Attribute_value___0___not_closed__1; - private static ErrorTable[] errTables = new ErrorTable[NodeType.MAX_TYPE]; - - static { - for (int i = 0; i < NodeType.MAX_TYPE; i++) { - errTables[i] = new ErrorTable(); - } - // NOTE: The severities are just stub. They must be reviewed. - // -- 8/30/2001 - - // attribute error map - ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand - attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - attrTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR, ValidationMessage.WARNING); - attrTable.put(UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR, ValidationMessage.WARNING); - attrTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR, ValidationMessage.WARNING); - attrTable.put(INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR, ValidationMessage.WARNING); - attrTable.put(INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR, ValidationMessage.WARNING); - attrTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR, ValidationMessage.WARNING); - attrTable.put(MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR, ValidationMessage.ERROR); - //<<D210422 - attrTable.put(UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR, ValidationMessage.WARNING); - //D210422 - // element error map - ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand - elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - elemTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING); - elemTable.put(INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR, ValidationMessage.ERROR); - elemTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.WARNING); - elemTable.put(MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.ERROR); - elemTable.put(MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR, ValidationMessage.ERROR); - elemTable.put(MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR, ValidationMessage.WARNING); - elemTable.put(UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR, ValidationMessage.WARNING); - elemTable.put(INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR, ValidationMessage.ERROR); - elemTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - elemTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.WARNING); - elemTable.put(COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - elemTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR, ValidationMessage.ERROR); - elemTable.put(UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR, ValidationMessage.ERROR); - elemTable.put(INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG, ValidationMessage.WARNING); - - // document type error map - ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand - docTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - docTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.ERROR); - docTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - docTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR, ValidationMessage.ERROR); - - // text error map - ErrorTable textTable = errTables[NodeType.TEXT]; - textTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - textTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR, ValidationMessage.WARNING); - textTable.put(INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR, ValidationMessage.WARNING); - - // comment error map - ErrorTable commTable = errTables[NodeType.COMMENT]; - commTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - commTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - commTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR, ValidationMessage.ERROR); - - // cdata section error map - ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION]; - cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - cdatTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - cdatTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR, ValidationMessage.ERROR); - - // processing instruction error map - ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION]; - piTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - piTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - piTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR, ValidationMessage.ERROR); - - // entity reference error map - ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE]; - erTable.put(NONE_ERROR, MSG_NO_ERROR, 0); - erTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING); - erTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING); - } - - /** - */ - public static ValidationMessage createMessage(ErrorInfo info) { - String errorMsg = getErrorMessage(info); - int errorSeverity = getErrorSeverity(info); - return new ValidationMessage(errorMsg, info.getOffset(), info.getLength(), errorSeverity); - } - - private static String getErrorMessage(ErrorInfo info) { - ErrorTable tab = getErrorTable(info.getTargetType()); - if (tab == null) - return MSG_UNKNOWN_ERROR; - - String template = tab.getMessage(info.getState()); - Object[] arguments = {info.getHint()}; - String s = null; - try { - s = NLS.bind(template, arguments); - } - catch (IllegalArgumentException e) { - Logger.logException(e); - s = template + ":" + arguments.toString(); //$NON-NLS-1$ - } - return s; - } - - /** - */ - private static int getErrorSeverity(ErrorInfo info) { - ErrorTable tab = getErrorTable(info.getTargetType()); - if (tab == null) - return 0; - return tab.getSeverity(info.getState()); - } - - private static ErrorTable getErrorTable(short nodetype) { - ErrorTable tab = null; - switch (nodetype) { - case Node.ATTRIBUTE_NODE : - tab = errTables[NodeType.ATTRIBUTE]; - break; - case Node.ELEMENT_NODE : - tab = errTables[NodeType.ELEMENT]; - break; - case Node.DOCUMENT_TYPE_NODE : - tab = errTables[NodeType.DOCUMENT_TYPE]; - break; - case Node.TEXT_NODE : - tab = errTables[NodeType.TEXT]; - break; - case Node.COMMENT_NODE : - tab = errTables[NodeType.COMMENT]; - break; - case Node.CDATA_SECTION_NODE : - tab = errTables[NodeType.CDATA_SECTION]; - break; - case Node.PROCESSING_INSTRUCTION_NODE : - tab = errTables[NodeType.PROCESSING_INSTRUCTION]; - break; - case Node.ENTITY_REFERENCE_NODE : - tab = errTables[NodeType.ENTITY_REFERENCE]; - break; - default : - return null; - } - return tab; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java deleted file mode 100644 index 8501e8e527..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -public class NamespaceValidator extends PrimeValidator implements ErrorState { - - private final static String XMLNS_PREFIX = "xmlns";//$NON-NLS-1$ - private final static String NS_SEPARATOR = ":";//$NON-NLS-1$ - - public NamespaceValidator() { - super(); - } - - public boolean isAdapterForType(Object type) { - return ((type == NamespaceValidator.class) || super.isAdapterForType(type)); - } - - public void validate(IndexedRegion node) { - Element target = (Element) node; - if (isXMLElement(target) && hasUnknownPrefix(target)) { - IDOMElement e = (IDOMElement) target; - if (!isValidPrefix(e.getPrefix(), target) && !e.isCommentTag()) { - // report unknown tag error. - Segment errorSeg = FMUtil.getSegment(e, FMUtil.SEG_START_TAG); - if (errorSeg != null) - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, errorSeg, e))); - } - } - // (2) check prefix of each attr - NamedNodeMap attrs = target.getAttributes(); - for (int i = 0; i < attrs.getLength(); i++) { - Node n = attrs.item(i); - if (!(n instanceof IDOMAttr)) - continue; - IDOMAttr a = (IDOMAttr) n; - String prefix = a.getPrefix(); - if ((prefix != null) && isUnknownAttr(a, target)) { - // The attr has unknown prefix. So, check it. - if (!isValidPrefix(prefix, target)) { - // report unknown attr error. - ITextRegion r = a.getNameRegion(); - if (r == null) - continue; - int a_offset = a.getNameRegionStartOffset(); - int a_length = a.getNameRegion().getLength(); - reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, new Segment(a_offset, a_length), a))); - } - } - } - } - - // private methods - private boolean isXMLElement(Element target) { - return target instanceof IDOMElement; - } - - private boolean hasUnknownPrefix(Element target) { - return isUnknownElement(target) && CMUtil.isForeign(target); - } - - private boolean isUnknownElement(Element target) { - CMElementDeclaration dec = CMUtil.getDeclaration(target); - return dec == null; - } - - private boolean isUnknownAttr(IDOMAttr attr, Element target) { - CMElementDeclaration dec = CMUtil.getDeclaration(target); - if (dec == null) - return true; // unknown. - CMNamedNodeMap adecls = dec.getAttributes(); - CMAttributeDeclaration adec = (CMAttributeDeclaration) adecls.getNamedItem(attr.getName()); - return adec == null; - } - - private boolean isValidPrefix(String prefix, Element e) { - if (prefix.equals(XMLNS_PREFIX)) - return true; // "xmlns:foo" attr is always valid. - - // (1) check the element has the namespace definition or not. - if (isValidPrefixWithinElement(prefix, e)) - return true; - - // (2) check ancestors of the element have the namespace definition or not. - Element parent = SMUtil.getParentElement(e); - while (parent != null) { - if (isValidPrefixWithinElement(prefix, parent)) - return true; - parent = SMUtil.getParentElement(parent); - } - return false; - } - - private boolean isValidPrefixWithinElement(String prefix, Element e) { - String ns = XMLNS_PREFIX + NS_SEPARATOR + prefix; - NamedNodeMap attrs = e.getAttributes(); - for (int i = 0; i < attrs.getLength(); i++) { - Node n = attrs.item(i); - if (n == null) - continue; - if (n.getNodeType() != Node.ATTRIBUTE_NODE) - continue; - if (ns.equals(((Attr) n).getName())) - return true; - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java deleted file mode 100644 index 165c4a656e..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.validate.ValidationReporter; -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -/** - * NullValidator class is intended to be a replacement of null - * for ValidationComponent type. - */ -final class NullValidator extends ValidationComponent { - - public NullValidator() { - super(); - } - - public void validate(IndexedRegion node) { - return; - } - - public void setReporter(ValidationReporter reporter) { - return; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java deleted file mode 100644 index f9aa0e52db..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.eclipse.wst.xml.core.internal.validate.ValidationComponent; - -abstract class PrimeValidator extends ValidationComponent { - - /** - * PrimeValidator constructor comment. - */ - public PrimeValidator() { - super(); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java deleted file mode 100644 index 8d3b9c066b..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -final class SMUtil { - - private SMUtil() { - super(); - } - - /* get an ancestor element ignoring implicit ones. */ - public static Element getParentElement(Node child) { - if (child == null) - return null; - - Node p = child.getParentNode(); - while (p != null) { - if (p.getNodeType() == Node.ELEMENT_NODE) { - return (Element) p; - } - p = p.getParentNode(); - } - return null; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java deleted file mode 100644 index 48baf4e227..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; - -public class Segment { - - private int offset = 0; - private int length = 0; - - /** - */ - public Segment(int offset, int length) { - super(); - this.offset = offset; - this.length = length; - } - - public Segment(IStructuredDocumentRegion region) { - super(); - this.offset = region.getStartOffset(); - this.length = region.getLength(); - } - - /** - * NOTE: 'start' and 'end' must be the start and end of the contiguous regions. - * Otherwise, this class cannot work correctly. - */ - public Segment(IStructuredDocumentRegion start, IStructuredDocumentRegion end) { - super(); - this.offset = start.getStartOffset(); - int endOffset = (end == null) ? start.getEndOffset() : end.getEndOffset(); - this.length = endOffset - this.offset; - } - - //public Segment(ITextRegion start, ITextRegion end) { - // super(); - // this.offset = start.getStartOffset(); - // int endOffset = (end == null) ? start.getEndOffset() : end.getEndOffset(); - // this.length = endOffset - this.offset; - //} - /** - */ - public int getLength() { - return this.length; - } - - /** - */ - public int getOffset() { - return this.offset; - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java deleted file mode 100644 index 66bff8c22d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java +++ /dev/null @@ -1,345 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.validate; - -import java.util.Iterator; - -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry; -import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException; -import org.eclipse.wst.xml.core.internal.document.SourceValidator; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -class SyntaxValidator extends PrimeValidator implements ErrorState { - - - static private boolean isValidRegion(ITextRegion rgn) { - String type = rgn.getType(); - if (type == null) - return false; // no type is invalid. - if (type == DOMRegionContext.XML_END_TAG_OPEN || type == DOMRegionContext.XML_TAG_NAME || type == DOMRegionContext.XML_TAG_CLOSE) { - return true; - } - return false; - } - - static private String getTagName(IStructuredDocumentRegion tag) { - ITextRegionList regions = tag.getRegions(); - Iterator iter = regions.iterator(); - while (iter.hasNext()) { - ITextRegion rgn = (ITextRegion) iter.next(); - if (rgn.getType() == DOMRegionContext.XML_TAG_NAME) - return tag.getText(rgn); - } - return "";//$NON-NLS-1$ - } - - static private boolean isEmptyContent(CMElementDeclaration decl) { - return (decl != null) && (decl.getContentType() == CMElementDeclaration.EMPTY); - } - - public SyntaxValidator() { - super(); - } - - public boolean isAdapterForType(Object type) { - return ((type == SyntaxValidator.class) || super.isAdapterForType(type)); - } - - class ElementInfo { - public ElementInfo() { - super(); - } - - public IDOMElement target = null; - public CMElementDeclaration decl = null; - public IStructuredDocumentRegion startTag = null; - public IStructuredDocumentRegion endTag = null; - public boolean hasStartTag = false; - public boolean hasEndTag = false; - public boolean isXHTML = false; - } - - public void validate(IndexedRegion indexedNode) { - Node node = (Node) indexedNode; - validateChildren(node); - - if (node.getNodeType() != Node.ELEMENT_NODE) - return; - if (!(node instanceof IDOMElement)) - return; - - ElementInfo info = new ElementInfo(); - info.target = (IDOMElement) node; - - // gather information to validate from target at once. - getInfo(info); - - if (info.target.isGlobalTag()) { - validateTags(info); - validateNames(info); - if (info.decl != null && info.isXHTML) { - validateTagCase(info); - } - } - } - - private void getInfo(ElementInfo info) { - info.decl = CMUtil.getDeclaration(info.target); - info.startTag = info.target.getStartStructuredDocumentRegion(); - info.endTag = info.target.getEndStructuredDocumentRegion(); - - info.hasStartTag = (info.startTag != null); - info.hasEndTag = (info.endTag != null); - - Document doc = info.target.getOwnerDocument(); - if (!(doc instanceof IDOMDocument)) - return; - String typeid = ((IDOMDocument) doc).getDocumentTypeId(); - if (typeid != null) { - HTMLDocumentTypeEntry entry = HTMLDocumentTypeRegistry.getInstance().getEntry(typeid); - info.isXHTML = (entry != null && entry.isXMLType()); - } - } - - class TagErrorInfoImpl extends AbstractErrorInfo { - private String hint = null; - - public TagErrorInfoImpl(int state, IStructuredDocumentRegion tag, String hint) { - super(state, new Segment(tag)); - this.hint = hint; - } - - public String getHint() { - return hint; - } - - public short getTargetType() { - return Node.ELEMENT_NODE; - } - } - - private boolean isEndTagCorrupted(ElementInfo info) { - ITextRegionList regions = info.endTag.getRegions(); - if (regions == null || regions.isEmpty()) - return false; - Iterator iter = regions.iterator(); - while (iter.hasNext()) { - ITextRegion rgn = (ITextRegion) iter.next(); - if (!isValidRegion(rgn)) - return true; // found invalid region type. - } - return false; // all regions are valid. - } - - private String getEndTagFullText(ElementInfo info) { - String hint = "";//$NON-NLS-1$ - ITextRegionList regions = info.endTag.getRegions(); - Iterator iter = regions.iterator(); - while (iter.hasNext()) { - ITextRegion rgn = (ITextRegion) iter.next(); - String type = rgn.getType(); - if (type == null) - continue; - if (type == DOMRegionContext.XML_END_TAG_OPEN || type == DOMRegionContext.XML_TAG_CLOSE) - continue; - hint += info.endTag.getFullText(rgn); - } - return hint; - } - - private void reportCorruptedEndTagError(ElementInfo info) { - String hint = getEndTagFullText(info); - TagErrorInfoImpl error = new TagErrorInfoImpl(UNDEFINED_NAME_ERROR, info.endTag, hint); - this.reporter.report(MessageFactory.createMessage(error)); - } - - private void validateTags(ElementInfo info) { - if (info.hasStartTag) { - if (!info.target.isStartTagClosed()) { - // Mark the whole START tag as an error segment. - Segment errorSeg = new Segment(info.startTag); - report(UNCLOSED_TAG_ERROR, errorSeg, info.target); - } - } - else { - if (info.hasEndTag) { - if (info.decl != null) { - if (CMUtil.isHTML(info.decl) && !info.target.hasChildNodes()) { - if (info.target.isContainer()) { - // Set the error mark to the start of the element. - Segment errorSeg = new Segment(info.target.getStartOffset(), 0); - report(MISSING_START_TAG_ERROR, errorSeg, info.target); - } - else { - // Mark the whole END tag as an error segment. - Segment errorSeg = new Segment(info.endTag); - report(UNNECESSARY_END_TAG_ERROR, errorSeg, info.target); - } - } - else if (info.isXHTML) { - Segment errorSeg = new Segment(info.target.getStartOffset(), 0); - report(MISSING_START_TAG_ERROR, errorSeg, info.target); - } - } - } - } - - if (info.hasEndTag) { - if (!info.target.isClosed()) { - // Set the whole END tag as error segment. - Segment errorSeg = new Segment(info.endTag); - report(UNCLOSED_END_TAG_ERROR, errorSeg, info.target); - } - } - else { - if (info.isXHTML) { // XHTML - if (!info.target.isEmptyTag()) { - if (isEmptyContent(info.decl)) { - // EMPTY element should be written in <.../> form. - Segment errorSeg = FMUtil.getSegment(info.target, FMUtil.SEG_START_TAG); - report(INVALID_EMPTY_ELEMENT_TAG, errorSeg, info.target); - } - else { - // end tag is required. - Segment errorSeg = new Segment(info.target.getEndOffset(), 0); - report(MISSING_END_TAG_ERROR, errorSeg, info.target); - } - } - } - else { // HTML - if (info.hasStartTag) { - if (info.decl != null && CMUtil.isHTML(info.decl) && !info.target.isEmptyTag() && !CMUtil.isEndTagOmissible(info.decl)) { - // Set the error mark to the end of the element. - Segment errorSeg = new Segment(info.target.getEndOffset(), 0); - report(MISSING_END_TAG_ERROR, errorSeg, info.target); - } - } - } - } - } - - /* perform validation about tag name definition. */ - private void validateNames(ElementInfo info) { - boolean corrupted = info.hasEndTag && isEndTagCorrupted(info); - if (info.decl == null) { - // If no declaration is retrieved, the target is really - // unknown element. - if (!info.hasStartTag && corrupted) { - reportCorruptedEndTagError(info); - } - else { - Segment errorSeg = FMUtil.getSegment(info.target, FMUtil.SEG_START_TAG); - report(UNDEFINED_NAME_ERROR, errorSeg, info.target); - } - } - else { - // Even if a declaration could be retrieved, if the end - // tag is corrupted, it should be reported as undefined - // name. (D202493) - if (corrupted) { - reportCorruptedEndTagError(info); - } - } - } - - /* perform validation tag case only for XHTML document */ - private void validateTagCase(ElementInfo info) { - String declared = info.decl.getElementName(); - String startTagName = "";//$NON-NLS-1$ - String endTagName = "";//$NON-NLS-1$ - if (declared == null) - return; - - // start tag - if (info.hasStartTag) { - startTagName = getTagName(info.startTag); - if (!declared.equals(startTagName)) { - TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.startTag, startTagName); - this.reporter.report(MessageFactory.createMessage(error)); - } - } - // end tag - if (info.hasEndTag) { - endTagName = getTagName(info.endTag); - if (!info.hasStartTag || (!endTagName.equals(startTagName))) { - if (!declared.equals(endTagName)) { - TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.endTag, endTagName); - this.reporter.report(MessageFactory.createMessage(error)); - } - } - } - } - - private void validateChildren(Node target) { - if ((target.getNodeType() == Node.ELEMENT_NODE) && CMUtil.isForeign((Element) target)) - return; - - for (Node child = target.getFirstChild(); child != null; child = child.getNextSibling()) { - switch (child.getNodeType()) { - case Node.TEXT_NODE : - { - IDOMNode text = (IDOMNode) child; - int charOffset = validateTextSource(text); - if (charOffset >= 0) { - charOffset += text.getStartOffset(); - Segment errorSeg = new Segment(charOffset, 1); - if (errorSeg != null) - report(INVALID_CHAR_ERROR, errorSeg, text); - } - break; - } - case Node.COMMENT_NODE : - case Node.DOCUMENT_TYPE_NODE : - case Node.PROCESSING_INSTRUCTION_NODE : - case Node.CDATA_SECTION_NODE : - { - IDOMNode tag = (IDOMNode) child; - if (!tag.isClosed()) { - Segment errorSeg = FMUtil.getSegment(tag, FMUtil.SEG_WHOLE_TAG); - if (errorSeg != null) - report(UNCLOSED_TAG_ERROR, errorSeg, tag); - } - break; - } - default : - break; - } - } - } - - private int validateTextSource(IDOMNode text) { - try { - SourceValidator validator = new SourceValidator(text); - validator.validateSource(text.getSource()); - } - catch (InvalidCharacterException ex) { - return ex.getOffset(); - } - return -1; - } - - private void report(int state, Segment errorSeg, Node node) { - ErrorInfo info = new ErrorInfoImpl(state, errorSeg, node); - reporter.report(MessageFactory.createMessage(info)); - } -} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java deleted file mode 100644 index e7dd5ae5ad..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.text; - - -/** - * This interface is not intended to be implemented. It defines the partition - * types for HTML. Clients should reference the partition type Strings defined - * here directly. - * - * @since 1.1 - */ -public interface IHTMLPartitions { - - String HTML_DEFAULT = "org.eclipse.wst.html.HTML_DEFAULT"; //$NON-NLS-1$ - String HTML_DECLARATION = "org.eclipse.wst.html.HTML_DECLARATION"; //$NON-NLS-1$ - String HTML_COMMENT = "org.eclipse.wst.html.HTML_COMMENT"; //$NON-NLS-1$ - - String SCRIPT = "org.eclipse.wst.html.SCRIPT"; //$NON-NLS-1$ - String SCRIPT_EVENTHANDLER = SCRIPT + ".EVENTHANDLER"; //$NON-NLS-1$ - String STYLE = "org.eclipse.wst.html.STYLE"; //$NON-NLS-1$ - - // ISSUE: I think meta tag areas are here too? -} |