[multiple changes]

2005-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/xml/dom/html2/DomHTMLParser.java:
	Changed 'enum' references to become 'enumeration'.

2005-04-19  Audrius Meskauskas  <audriusa@bluewin.ch>

	* gnu/xml/dom/html2/DomHTMLParser.java: New file.

2005-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/javax/swing/text/html/parser/htmlAttributeSet.java:
	(getAttributeNames()): Replaced 'enum' with 'enumeration'.
	* gnu/javax/swing/text/html/parser/htmlValidator.java:
	(validateParameters(TagElement,htmlAttributeSet)):
	Replaced 'enum' with 'enumeration'.
	(validateAttribute(TagElement,htmlAttributeSet,Enumeration,Enumeration)):
	Likewise.

2005-04-19  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/html/parser/Entity.java (getType): New method.
	* javax/swing/text/html/parser/DocumentParser.java:
	Inherit from javax.swing.text.html.parser.Parser.

2005-04-19  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLDocument.java: Fixed element creation and
	check for HTML/XHTML namespace.

2005-04-19  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/html/parser/Parser.java,
	javax/swing/text/html/parser/Entity.java:
	Inheriting from DTDConstants.
	* javax/swing/text/html/parser/AttributeList.java
	(getValues): Changed return type.
	* javax/swing/text/html/parser/DocumentParser
	(parse): Adding the callback parameter that receives
	the parsing events.

2005-04-19  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomImpl.java,
	gnu/xml/dom/html2/DomHTMLAnchorElement.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java,
	gnu/xml/dom/html2/DomHTMLFormElement.java,
	gnu/xml/dom/html2/DomHTMLFrameElement.java,
	gnu/xml/dom/html2/DomHTMLIFrameElement.java,
	gnu/xml/dom/html2/DomHTMLImpl.java,
	gnu/xml/dom/html2/DomHTMLInputElement.java,
	gnu/xml/dom/html2/DomHTMLObjectElement.java,
	gnu/xml/dom/html2/DomHTMLOptionElement.java,
	gnu/xml/dom/html2/DomHTMLSelectElement.java,
	gnu/xml/dom/html2/DomHTMLTableCellElement.java,
	gnu/xml/dom/html2/DomHTMLTableElement.java,
	gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	gnu/xml/dom/html2/DomHTMLTextAreaElement.java: JAXP integration,
	UI events, and tree utility functions.

2005-04-19  Michael Koch  <konqueror@gmx.de>

	* gnu/javax/swing/text/html/parser/HTML_401F.java,
	gnu/javax/swing/text/html/parser/gnuDTD.java,
	gnu/javax/swing/text/html/parser/models/node.java:
	Reworked import statements.

2005-04-19  Audrius Meskauskas, Lithuania  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java: New file.

2005-04-19  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/html/HTMLFrameHyperlinkEvent.java:
	Reformatted.
	* javax/swing/text/html/parser/AttributeList.java:
	Fixed order of modifiers.
	(AttributeList): Made final.
	* javax/swing/text/html/parser/ContentModel.java:
	Fixed html characters in javadocs.
	* javax/swing/text/html/parser/DTD.java
	(DTD): Don't implement java.io.Serializable directly.
	(getElement): Simplified.
	* javax/swing/text/html/parser/DTDConstants.java:
	Reformatted file.
	* javax/swing/text/html/parser/Element.java:
	Fixed order of modifiers.
	* javax/swing/text/html/parser/Parser.java:
	Reformatted. Don't use fully-qualified class names.
	* javax/swing/text/html/parser/ParserDelegator.java:
	Fixed order of modifiers.
	* javax/swing/text/rtf/RTFParser.java:
	Re-ordered import statements.
	* javax/swing/text/rtf/RTFScanner.java:
	Removed unused import statement.

2005-04-19  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLButtonElement.java,
	gnu/xml/dom/html2/DomHTMLCollection.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java: Extensions for new element
	types.
	* gnu/xml/dom/html2/DomHTMLDListElement.java,
	gnu/xml/dom/html2/DomHTMLDirectoryElement.java,
	gnu/xml/dom/html2/DomHTMLDivElement.java,
	gnu/xml/dom/html2/DomHTMLFieldSetElement.java,
	gnu/xml/dom/html2/DomHTMLFontElement.java,
	gnu/xml/dom/html2/DomHTMLFormElement.java,
	gnu/xml/dom/html2/DomHTMLFrameElement.java,
	gnu/xml/dom/html2/DomHTMLFrameSetElement.java,
	gnu/xml/dom/html2/DomHTMLHRElement.java,
	gnu/xml/dom/html2/DomHTMLHeadElement.java,
	gnu/xml/dom/html2/DomHTMLHeadingElement.java,
	gnu/xml/dom/html2/DomHTMLHtmlElement.java,
	gnu/xml/dom/html2/DomHTMLIFrameElement.java,
	gnu/xml/dom/html2/DomHTMLImageElement.java,
	gnu/xml/dom/html2/DomHTMLInputElement.java,
	gnu/xml/dom/html2/DomHTMLIsIndexElement.java,
	gnu/xml/dom/html2/DomHTMLLIElement.java,
	gnu/xml/dom/html2/DomHTMLLabelElement.java,
	gnu/xml/dom/html2/DomHTMLLegendElement.java,
	gnu/xml/dom/html2/DomHTMLLinkElement.java,
	gnu/xml/dom/html2/DomHTMLMapElement.java,
	gnu/xml/dom/html2/DomHTMLMenuElement.java,
	gnu/xml/dom/html2/DomHTMLMetaElement.java,
	gnu/xml/dom/html2/DomHTMLModElement.java,
	gnu/xml/dom/html2/DomHTMLOListElement.java,
	gnu/xml/dom/html2/DomHTMLObjectElement.java,
	gnu/xml/dom/html2/DomHTMLOptGroupElement.java,
	gnu/xml/dom/html2/DomHTMLOptionElement.java,
	gnu/xml/dom/html2/DomHTMLParagraphElement.java,
	gnu/xml/dom/html2/DomHTMLParamElement.java,
	gnu/xml/dom/html2/DomHTMLPreElement.java,
	gnu/xml/dom/html2/DomHTMLQuoteElement.java,
	gnu/xml/dom/html2/DomHTMLScriptElement.java,
	gnu/xml/dom/html2/DomHTMLSelectElement.java,
	gnu/xml/dom/html2/DomHTMLStyleElement.java,
	gnu/xml/dom/html2/DomHTMLTableCaptionElement.java,
	gnu/xml/dom/html2/DomHTMLTableCellElement.java,
	gnu/xml/dom/html2/DomHTMLTableColElement.java,
	gnu/xml/dom/html2/DomHTMLTableElement.java,
	gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	gnu/xml/dom/html2/DomHTMLTextAreaElement.java,
	gnu/xml/dom/html2/DomHTMLTitleElement.java,
	gnu/xml/dom/html2/DomHTMLUListElement.java: New files.

2005-04-19  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/ChangedCharSetException.java,
	javax/swing/text/html/HTMLEditorKit.java,
	javax/swing/text/html/HTMLFrameHyperlinkEvent.java,
	javax/swing/text/html/parser/AttributeList.java,
	javax/swing/text/html/parser/ContentModel.java,
	javax/swing/text/html/parser/DocumentParser.java,
	javax/swing/text/html/parser/DTD.java,
	javax/swing/text/html/parser/DTDConstants.java,
	javax/swing/text/html/parser/Element.java,
	javax/swing/text/html/parser/Entity.java,
	javax/swing/text/html/parser/Parser.java,
	javax/swing/text/html/parser/TagElement.java,
	gnu/javax/swing/text/html/package.html,
	gnu/javax/swing/text/html/parser/gnuDTD.java,
	gnu/javax/swing/text/html/parser/HTML_401F.java,
	gnu/javax/swing/text/html/parser/htmlAttributeSet.java,
	gnu/javax/swing/text/html/parser/htmlValidator.java,
	gnu/javax/swing/text/html/parser/package.html,
	gnu/javax/swing/text/html/parser/models/list.java,
	gnu/javax/swing/text/html/parser/models/node.java,
	gnu/javax/swing/text/html/parser/models/noTagModel.java,
	gnu/javax/swing/text/html/parser/models/package.html,
	gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java,
	gnu/javax/swing/text/html/parser/models/TableRowContentModel.java,
	gnu/javax/swing/text/html/parser/models/transformer.java,
	gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java,
	gnu/javax/swing/text/html/parser/support/package.html,
	gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
	gnu/javax/swing/text/html/parser/support/Parser.java,
	gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
	gnu/javax/swing/text/html/parser/support/low/Buffer.java,
	gnu/javax/swing/text/html/parser/support/low/Constants.java,
	gnu/javax/swing/text/html/parser/support/low/Location.java,
	gnu/javax/swing/text/html/parser/support/low/node.java,
	gnu/javax/swing/text/html/parser/support/low/package.html,
	gnu/javax/swing/text/html/parser/support/low/ParseException.java,
	gnu/javax/swing/text/html/parser/support/low/pattern.java,
	gnu/javax/swing/text/html/parser/support/low/Queue.java,
	gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java:
	New files.
	* javax/swing/text/html/HTML.java,
	javax/swing/text/html/parser/ParserDelegator.java:
	New files (replacing).
	* javax/swing/text/html/package.html,
	javax/swing/text/html/parser/package.html: Documenting the
	packages.

2005-04-19  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLAnchorElement.java,
	gnu/xml/dom/html2/DomHTMLAppletElement.java,
	gnu/xml/dom/html2/DomHTMLAreaElement.java,
	gnu/xml/dom/html2/DomHTMLBaseElement.java,
	gnu/xml/dom/html2/DomHTMLBaseFontElement.java,
	gnu/xml/dom/html2/DomHTMLBodyElement.java,
	gnu/xml/dom/html2/DomHTMLBRElement.java,
	gnu/xml/dom/html2/DomHTMLButtonElement.java,
	gnu/xml/dom/html2/DomHTMLCollection.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java: New files.

2005-04-19  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

From-SVN: r98406
This commit is contained in:
Michael Koch 2005-04-19 12:19:44 +00:00
parent c5f083efc5
commit 18e479e213
104 changed files with 22587 additions and 27 deletions

View file

@ -1,3 +1,221 @@
2005-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/xml/dom/html2/DomHTMLParser.java:
Changed 'enum' references to become 'enumeration'.
2005-04-19 Audrius Meskauskas <audriusa@bluewin.ch>
* gnu/xml/dom/html2/DomHTMLParser.java: New file.
2005-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/javax/swing/text/html/parser/htmlAttributeSet.java:
(getAttributeNames()): Replaced 'enum' with 'enumeration'.
* gnu/javax/swing/text/html/parser/htmlValidator.java:
(validateParameters(TagElement,htmlAttributeSet)):
Replaced 'enum' with 'enumeration'.
(validateAttribute(TagElement,htmlAttributeSet,Enumeration,Enumeration)):
Likewise.
2005-04-19 Audrius Meskauskas <audriusa@bluewin.ch>
* javax/swing/text/html/parser/Entity.java (getType): New method.
* javax/swing/text/html/parser/DocumentParser.java:
Inherit from javax.swing.text.html.parser.Parser.
2005-04-19 Chris Burdess <dog@gnu.org>
* gnu/xml/dom/html2/DomHTMLDocument.java: Fixed element creation and
check for HTML/XHTML namespace.
2005-04-19 Audrius Meskauskas <audriusa@bluewin.ch>
* javax/swing/text/html/parser/Parser.java,
javax/swing/text/html/parser/Entity.java:
Inheriting from DTDConstants.
* javax/swing/text/html/parser/AttributeList.java
(getValues): Changed return type.
* javax/swing/text/html/parser/DocumentParser
(parse): Adding the callback parameter that receives
the parsing events.
2005-04-19 Chris Burdess <dog@gnu.org>
* gnu/xml/dom/DomImpl.java,
gnu/xml/dom/html2/DomHTMLAnchorElement.java,
gnu/xml/dom/html2/DomHTMLDocument.java,
gnu/xml/dom/html2/DomHTMLElement.java,
gnu/xml/dom/html2/DomHTMLFormElement.java,
gnu/xml/dom/html2/DomHTMLFrameElement.java,
gnu/xml/dom/html2/DomHTMLIFrameElement.java,
gnu/xml/dom/html2/DomHTMLImpl.java,
gnu/xml/dom/html2/DomHTMLInputElement.java,
gnu/xml/dom/html2/DomHTMLObjectElement.java,
gnu/xml/dom/html2/DomHTMLOptionElement.java,
gnu/xml/dom/html2/DomHTMLSelectElement.java,
gnu/xml/dom/html2/DomHTMLTableCellElement.java,
gnu/xml/dom/html2/DomHTMLTableElement.java,
gnu/xml/dom/html2/DomHTMLTableRowElement.java,
gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
gnu/xml/dom/html2/DomHTMLTextAreaElement.java: JAXP integration,
UI events, and tree utility functions.
2005-04-19 Michael Koch <konqueror@gmx.de>
* gnu/javax/swing/text/html/parser/HTML_401F.java,
gnu/javax/swing/text/html/parser/gnuDTD.java,
gnu/javax/swing/text/html/parser/models/node.java:
Reworked import statements.
2005-04-19 Audrius Meskauskas, Lithuania <AudriusA@Bioinformatics.org>
* javax/swing/text/html/HTMLDocument.java: New file.
2005-04-19 Michael Koch <konqueror@gmx.de>
* javax/swing/text/html/HTMLFrameHyperlinkEvent.java:
Reformatted.
* javax/swing/text/html/parser/AttributeList.java:
Fixed order of modifiers.
(AttributeList): Made final.
* javax/swing/text/html/parser/ContentModel.java:
Fixed html characters in javadocs.
* javax/swing/text/html/parser/DTD.java
(DTD): Don't implement java.io.Serializable directly.
(getElement): Simplified.
* javax/swing/text/html/parser/DTDConstants.java:
Reformatted file.
* javax/swing/text/html/parser/Element.java:
Fixed order of modifiers.
* javax/swing/text/html/parser/Parser.java:
Reformatted. Don't use fully-qualified class names.
* javax/swing/text/html/parser/ParserDelegator.java:
Fixed order of modifiers.
* javax/swing/text/rtf/RTFParser.java:
Re-ordered import statements.
* javax/swing/text/rtf/RTFScanner.java:
Removed unused import statement.
2005-04-19 Chris Burdess <dog@gnu.org>
* gnu/xml/dom/html2/DomHTMLButtonElement.java,
gnu/xml/dom/html2/DomHTMLCollection.java,
gnu/xml/dom/html2/DomHTMLDocument.java,
gnu/xml/dom/html2/DomHTMLElement.java: Extensions for new element
types.
* gnu/xml/dom/html2/DomHTMLDListElement.java,
gnu/xml/dom/html2/DomHTMLDirectoryElement.java,
gnu/xml/dom/html2/DomHTMLDivElement.java,
gnu/xml/dom/html2/DomHTMLFieldSetElement.java,
gnu/xml/dom/html2/DomHTMLFontElement.java,
gnu/xml/dom/html2/DomHTMLFormElement.java,
gnu/xml/dom/html2/DomHTMLFrameElement.java,
gnu/xml/dom/html2/DomHTMLFrameSetElement.java,
gnu/xml/dom/html2/DomHTMLHRElement.java,
gnu/xml/dom/html2/DomHTMLHeadElement.java,
gnu/xml/dom/html2/DomHTMLHeadingElement.java,
gnu/xml/dom/html2/DomHTMLHtmlElement.java,
gnu/xml/dom/html2/DomHTMLIFrameElement.java,
gnu/xml/dom/html2/DomHTMLImageElement.java,
gnu/xml/dom/html2/DomHTMLInputElement.java,
gnu/xml/dom/html2/DomHTMLIsIndexElement.java,
gnu/xml/dom/html2/DomHTMLLIElement.java,
gnu/xml/dom/html2/DomHTMLLabelElement.java,
gnu/xml/dom/html2/DomHTMLLegendElement.java,
gnu/xml/dom/html2/DomHTMLLinkElement.java,
gnu/xml/dom/html2/DomHTMLMapElement.java,
gnu/xml/dom/html2/DomHTMLMenuElement.java,
gnu/xml/dom/html2/DomHTMLMetaElement.java,
gnu/xml/dom/html2/DomHTMLModElement.java,
gnu/xml/dom/html2/DomHTMLOListElement.java,
gnu/xml/dom/html2/DomHTMLObjectElement.java,
gnu/xml/dom/html2/DomHTMLOptGroupElement.java,
gnu/xml/dom/html2/DomHTMLOptionElement.java,
gnu/xml/dom/html2/DomHTMLParagraphElement.java,
gnu/xml/dom/html2/DomHTMLParamElement.java,
gnu/xml/dom/html2/DomHTMLPreElement.java,
gnu/xml/dom/html2/DomHTMLQuoteElement.java,
gnu/xml/dom/html2/DomHTMLScriptElement.java,
gnu/xml/dom/html2/DomHTMLSelectElement.java,
gnu/xml/dom/html2/DomHTMLStyleElement.java,
gnu/xml/dom/html2/DomHTMLTableCaptionElement.java,
gnu/xml/dom/html2/DomHTMLTableCellElement.java,
gnu/xml/dom/html2/DomHTMLTableColElement.java,
gnu/xml/dom/html2/DomHTMLTableElement.java,
gnu/xml/dom/html2/DomHTMLTableRowElement.java,
gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
gnu/xml/dom/html2/DomHTMLTextAreaElement.java,
gnu/xml/dom/html2/DomHTMLTitleElement.java,
gnu/xml/dom/html2/DomHTMLUListElement.java: New files.
2005-04-19 Audrius Meskauskas <audriusa@bluewin.ch>
* javax/swing/text/ChangedCharSetException.java,
javax/swing/text/html/HTMLEditorKit.java,
javax/swing/text/html/HTMLFrameHyperlinkEvent.java,
javax/swing/text/html/parser/AttributeList.java,
javax/swing/text/html/parser/ContentModel.java,
javax/swing/text/html/parser/DocumentParser.java,
javax/swing/text/html/parser/DTD.java,
javax/swing/text/html/parser/DTDConstants.java,
javax/swing/text/html/parser/Element.java,
javax/swing/text/html/parser/Entity.java,
javax/swing/text/html/parser/Parser.java,
javax/swing/text/html/parser/TagElement.java,
gnu/javax/swing/text/html/package.html,
gnu/javax/swing/text/html/parser/gnuDTD.java,
gnu/javax/swing/text/html/parser/HTML_401F.java,
gnu/javax/swing/text/html/parser/htmlAttributeSet.java,
gnu/javax/swing/text/html/parser/htmlValidator.java,
gnu/javax/swing/text/html/parser/package.html,
gnu/javax/swing/text/html/parser/models/list.java,
gnu/javax/swing/text/html/parser/models/node.java,
gnu/javax/swing/text/html/parser/models/noTagModel.java,
gnu/javax/swing/text/html/parser/models/package.html,
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java,
gnu/javax/swing/text/html/parser/models/TableRowContentModel.java,
gnu/javax/swing/text/html/parser/models/transformer.java,
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java,
gnu/javax/swing/text/html/parser/support/package.html,
gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
gnu/javax/swing/text/html/parser/support/Parser.java,
gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
gnu/javax/swing/text/html/parser/support/low/Buffer.java,
gnu/javax/swing/text/html/parser/support/low/Constants.java,
gnu/javax/swing/text/html/parser/support/low/Location.java,
gnu/javax/swing/text/html/parser/support/low/node.java,
gnu/javax/swing/text/html/parser/support/low/package.html,
gnu/javax/swing/text/html/parser/support/low/ParseException.java,
gnu/javax/swing/text/html/parser/support/low/pattern.java,
gnu/javax/swing/text/html/parser/support/low/Queue.java,
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java:
New files.
* javax/swing/text/html/HTML.java,
javax/swing/text/html/parser/ParserDelegator.java:
New files (replacing).
* javax/swing/text/html/package.html,
javax/swing/text/html/parser/package.html: Documenting the
packages.
2005-04-19 Chris Burdess <dog@gnu.org>
* gnu/xml/dom/html2/DomHTMLAnchorElement.java,
gnu/xml/dom/html2/DomHTMLAppletElement.java,
gnu/xml/dom/html2/DomHTMLAreaElement.java,
gnu/xml/dom/html2/DomHTMLBaseElement.java,
gnu/xml/dom/html2/DomHTMLBaseFontElement.java,
gnu/xml/dom/html2/DomHTMLBodyElement.java,
gnu/xml/dom/html2/DomHTMLBRElement.java,
gnu/xml/dom/html2/DomHTMLButtonElement.java,
gnu/xml/dom/html2/DomHTMLCollection.java,
gnu/xml/dom/html2/DomHTMLDocument.java,
gnu/xml/dom/html2/DomHTMLElement.java: New files.
2005-04-19 Michael Koch <konqueror@gmx.de>
* Makefile.am: Added new files.
* Makefile.in: Regenerated.
2005-04-19 Roman Kennke <roman@kennke.org>
* javax/swing/text/JTextComponent.java

View file

@ -1223,6 +1223,29 @@ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java \
gnu/javax/swing/text/html/parser/support/parameterDefaulter.java \
gnu/javax/swing/text/html/parser/support/Parser.java \
gnu/javax/swing/text/html/parser/support/textPreProcessor.java \
gnu/javax/swing/text/html/parser/support/low/Buffer.java \
gnu/javax/swing/text/html/parser/support/low/Constants.java \
gnu/javax/swing/text/html/parser/support/low/Location.java \
gnu/javax/swing/text/html/parser/support/low/node.java \
gnu/javax/swing/text/html/parser/support/low/ParseException.java \
gnu/javax/swing/text/html/parser/support/low/pattern.java \
gnu/javax/swing/text/html/parser/support/low/Queue.java \
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java \
gnu/javax/swing/text/html/parser/support/low/Token.java \
gnu/javax/swing/text/html/parser/gnuDTD.java \
gnu/javax/swing/text/html/parser/HTML_401F.java \
gnu/javax/swing/text/html/parser/htmlAttributeSet.java \
gnu/javax/swing/text/html/parser/htmlValidator.java \
gnu/javax/swing/text/html/parser/models/list.java \
gnu/javax/swing/text/html/parser/models/node.java \
gnu/javax/swing/text/html/parser/models/noTagModel.java \
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java \
gnu/javax/swing/text/html/parser/models/TableRowContentModel.java \
gnu/javax/swing/text/html/parser/models/transformer.java \
java/applet/Applet.java \
java/applet/AppletStub.java \
java/applet/AppletContext.java \
@ -1869,6 +1892,7 @@ javax/swing/text/AbstractDocument.java \
javax/swing/text/AttributeSet.java \
javax/swing/text/BadLocationException.java \
javax/swing/text/Caret.java \
javax/swing/text/ChangedCharSetException.java \
javax/swing/text/ComponentView.java \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
@ -1907,7 +1931,19 @@ javax/swing/text/Utilities.java \
javax/swing/text/View.java \
javax/swing/text/ViewFactory.java \
javax/swing/text/html/HTML.java \
javax/swing/text/html/HTMLDocument.java \
javax/swing/text/html/HTMLEditorKit.java \
javax/swing/text/html/HTMLFrameHyperlinkEvent.java \
javax/swing/text/html/parser/AttributeList.java \
javax/swing/text/html/parser/ContentModel.java \
javax/swing/text/html/parser/DTD.java \
javax/swing/text/html/parser/DTDConstants.java \
javax/swing/text/html/parser/DocumentParser.java \
javax/swing/text/html/parser/Element.java \
javax/swing/text/html/parser/Entity.java \
javax/swing/text/html/parser/Parser.java \
javax/swing/text/html/parser/ParserDelegator.java \
javax/swing/text/html/parser/TagElement.java \
javax/swing/text/rtf/ControlWordToken.java \
javax/swing/text/rtf/RTFEditorKit.java \
javax/swing/text/rtf/RTFParseException.java \
@ -2713,6 +2749,63 @@ gnu/xml/dom/DomEvent.java \
gnu/xml/dom/DomEntity.java \
gnu/xml/dom/DomCDATASection.java \
gnu/xml/dom/DomDOMException.java \
gnu/xml/dom/html2/DomHTMLAnchorElement.java \
gnu/xml/dom/html2/DomHTMLAppletElement.java \
gnu/xml/dom/html2/DomHTMLAreaElement.java \
gnu/xml/dom/html2/DomHTMLBaseElement.java \
gnu/xml/dom/html2/DomHTMLBaseFontElement.java \
gnu/xml/dom/html2/DomHTMLBodyElement.java \
gnu/xml/dom/html2/DomHTMLBRElement.java \
gnu/xml/dom/html2/DomHTMLButtonElement.java \
gnu/xml/dom/html2/DomHTMLCollection.java \
gnu/xml/dom/html2/DomHTMLDirectoryElement.java \
gnu/xml/dom/html2/DomHTMLDivElement.java \
gnu/xml/dom/html2/DomHTMLDListElement.java \
gnu/xml/dom/html2/DomHTMLDocument.java \
gnu/xml/dom/html2/DomHTMLElement.java \
gnu/xml/dom/html2/DomHTMLFieldSetElement.java \
gnu/xml/dom/html2/DomHTMLFontElement.java \
gnu/xml/dom/html2/DomHTMLFormElement.java \
gnu/xml/dom/html2/DomHTMLFrameElement.java \
gnu/xml/dom/html2/DomHTMLFrameSetElement.java \
gnu/xml/dom/html2/DomHTMLHeadElement.java \
gnu/xml/dom/html2/DomHTMLHeadingElement.java \
gnu/xml/dom/html2/DomHTMLHRElement.java \
gnu/xml/dom/html2/DomHTMLHtmlElement.java \
gnu/xml/dom/html2/DomHTMLIFrameElement.java \
gnu/xml/dom/html2/DomHTMLImageElement.java \
gnu/xml/dom/html2/DomHTMLImpl.java \
gnu/xml/dom/html2/DomHTMLInputElement.java \
gnu/xml/dom/html2/DomHTMLIsIndexElement.java \
gnu/xml/dom/html2/DomHTMLLabelElement.java \
gnu/xml/dom/html2/DomHTMLLegendElement.java \
gnu/xml/dom/html2/DomHTMLLIElement.java \
gnu/xml/dom/html2/DomHTMLLinkElement.java \
gnu/xml/dom/html2/DomHTMLMapElement.java \
gnu/xml/dom/html2/DomHTMLMenuElement.java \
gnu/xml/dom/html2/DomHTMLMetaElement.java \
gnu/xml/dom/html2/DomHTMLModElement.java \
gnu/xml/dom/html2/DomHTMLObjectElement.java \
gnu/xml/dom/html2/DomHTMLOListElement.java \
gnu/xml/dom/html2/DomHTMLOptGroupElement.java \
gnu/xml/dom/html2/DomHTMLOptionElement.java \
gnu/xml/dom/html2/DomHTMLParagraphElement.java \
gnu/xml/dom/html2/DomHTMLParamElement.java \
gnu/xml/dom/html2/DomHTMLParser.java \
gnu/xml/dom/html2/DomHTMLPreElement.java \
gnu/xml/dom/html2/DomHTMLQuoteElement.java \
gnu/xml/dom/html2/DomHTMLScriptElement.java \
gnu/xml/dom/html2/DomHTMLSelectElement.java \
gnu/xml/dom/html2/DomHTMLStyleElement.java \
gnu/xml/dom/html2/DomHTMLTableCaptionElement.java \
gnu/xml/dom/html2/DomHTMLTableCellElement.java \
gnu/xml/dom/html2/DomHTMLTableColElement.java \
gnu/xml/dom/html2/DomHTMLTableElement.java \
gnu/xml/dom/html2/DomHTMLTableRowElement.java \
gnu/xml/dom/html2/DomHTMLTableSectionElement.java \
gnu/xml/dom/html2/DomHTMLTextAreaElement.java \
gnu/xml/dom/html2/DomHTMLTitleElement.java \
gnu/xml/dom/html2/DomHTMLUListElement.java \
gnu/xml/transform/GenerateIdFunction.java \
gnu/xml/transform/FormatNumberFunction.java \
gnu/xml/transform/ValueOfNode.java \

View file

@ -1218,6 +1218,29 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java \
gnu/javax/swing/text/html/parser/support/parameterDefaulter.java \
gnu/javax/swing/text/html/parser/support/Parser.java \
gnu/javax/swing/text/html/parser/support/textPreProcessor.java \
gnu/javax/swing/text/html/parser/support/low/Buffer.java \
gnu/javax/swing/text/html/parser/support/low/Constants.java \
gnu/javax/swing/text/html/parser/support/low/Location.java \
gnu/javax/swing/text/html/parser/support/low/node.java \
gnu/javax/swing/text/html/parser/support/low/ParseException.java \
gnu/javax/swing/text/html/parser/support/low/pattern.java \
gnu/javax/swing/text/html/parser/support/low/Queue.java \
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java \
gnu/javax/swing/text/html/parser/support/low/Token.java \
gnu/javax/swing/text/html/parser/gnuDTD.java \
gnu/javax/swing/text/html/parser/HTML_401F.java \
gnu/javax/swing/text/html/parser/htmlAttributeSet.java \
gnu/javax/swing/text/html/parser/htmlValidator.java \
gnu/javax/swing/text/html/parser/models/list.java \
gnu/javax/swing/text/html/parser/models/node.java \
gnu/javax/swing/text/html/parser/models/noTagModel.java \
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java \
gnu/javax/swing/text/html/parser/models/TableRowContentModel.java \
gnu/javax/swing/text/html/parser/models/transformer.java \
java/applet/Applet.java java/applet/AppletStub.java \
java/applet/AppletContext.java java/applet/AudioClip.java \
java/awt/AWTError.java java/awt/AWTEvent.java \
@ -1753,6 +1776,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/text/AttributeSet.java \
javax/swing/text/BadLocationException.java \
javax/swing/text/Caret.java \
javax/swing/text/ChangedCharSetException.java \
javax/swing/text/ComponentView.java \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
@ -1786,7 +1810,19 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/text/Utilities.java javax/swing/text/View.java \
javax/swing/text/ViewFactory.java \
javax/swing/text/html/HTML.java \
javax/swing/text/html/HTMLDocument.java \
javax/swing/text/html/HTMLEditorKit.java \
javax/swing/text/html/HTMLFrameHyperlinkEvent.java \
javax/swing/text/html/parser/AttributeList.java \
javax/swing/text/html/parser/ContentModel.java \
javax/swing/text/html/parser/DTD.java \
javax/swing/text/html/parser/DTDConstants.java \
javax/swing/text/html/parser/DocumentParser.java \
javax/swing/text/html/parser/Element.java \
javax/swing/text/html/parser/Entity.java \
javax/swing/text/html/parser/Parser.java \
javax/swing/text/html/parser/ParserDelegator.java \
javax/swing/text/html/parser/TagElement.java \
javax/swing/text/rtf/ControlWordToken.java \
javax/swing/text/rtf/RTFEditorKit.java \
javax/swing/text/rtf/RTFParseException.java \
@ -2555,6 +2591,29 @@ am__objects_10 = gnu/awt/LightweightRedirector.lo \
gnu/java/awt/peer/GLightweightPeer.lo \
gnu/java/awt/peer/ClasspathFontPeer.lo \
gnu/java/awt/peer/ClasspathTextLayoutPeer.lo \
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.lo \
gnu/javax/swing/text/html/parser/support/parameterDefaulter.lo \
gnu/javax/swing/text/html/parser/support/Parser.lo \
gnu/javax/swing/text/html/parser/support/textPreProcessor.lo \
gnu/javax/swing/text/html/parser/support/low/Buffer.lo \
gnu/javax/swing/text/html/parser/support/low/Constants.lo \
gnu/javax/swing/text/html/parser/support/low/Location.lo \
gnu/javax/swing/text/html/parser/support/low/node.lo \
gnu/javax/swing/text/html/parser/support/low/ParseException.lo \
gnu/javax/swing/text/html/parser/support/low/pattern.lo \
gnu/javax/swing/text/html/parser/support/low/Queue.lo \
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.lo \
gnu/javax/swing/text/html/parser/support/low/Token.lo \
gnu/javax/swing/text/html/parser/gnuDTD.lo \
gnu/javax/swing/text/html/parser/HTML_401F.lo \
gnu/javax/swing/text/html/parser/htmlAttributeSet.lo \
gnu/javax/swing/text/html/parser/htmlValidator.lo \
gnu/javax/swing/text/html/parser/models/list.lo \
gnu/javax/swing/text/html/parser/models/node.lo \
gnu/javax/swing/text/html/parser/models/noTagModel.lo \
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.lo \
gnu/javax/swing/text/html/parser/models/TableRowContentModel.lo \
gnu/javax/swing/text/html/parser/models/transformer.lo \
java/applet/Applet.lo java/applet/AppletStub.lo \
java/applet/AppletContext.lo java/applet/AudioClip.lo \
java/awt/AWTError.lo java/awt/AWTEvent.lo \
@ -3050,7 +3109,9 @@ am__objects_10 = gnu/awt/LightweightRedirector.lo \
javax/swing/ActionMap.lo javax/swing/text/AbstractDocument.lo \
javax/swing/text/AttributeSet.lo \
javax/swing/text/BadLocationException.lo \
javax/swing/text/Caret.lo javax/swing/text/ComponentView.lo \
javax/swing/text/Caret.lo \
javax/swing/text/ChangedCharSetException.lo \
javax/swing/text/ComponentView.lo \
javax/swing/text/DefaultCaret.lo \
javax/swing/text/DefaultEditorKit.lo \
javax/swing/text/DefaultHighlighter.lo \
@ -3079,7 +3140,19 @@ am__objects_10 = gnu/awt/LightweightRedirector.lo \
javax/swing/text/TabStop.lo javax/swing/text/TextAction.lo \
javax/swing/text/Utilities.lo javax/swing/text/View.lo \
javax/swing/text/ViewFactory.lo javax/swing/text/html/HTML.lo \
javax/swing/text/html/HTMLDocument.lo \
javax/swing/text/html/HTMLEditorKit.lo \
javax/swing/text/html/HTMLFrameHyperlinkEvent.lo \
javax/swing/text/html/parser/AttributeList.lo \
javax/swing/text/html/parser/ContentModel.lo \
javax/swing/text/html/parser/DTD.lo \
javax/swing/text/html/parser/DTDConstants.lo \
javax/swing/text/html/parser/DocumentParser.lo \
javax/swing/text/html/parser/Element.lo \
javax/swing/text/html/parser/Entity.lo \
javax/swing/text/html/parser/Parser.lo \
javax/swing/text/html/parser/ParserDelegator.lo \
javax/swing/text/html/parser/TagElement.lo \
javax/swing/text/rtf/ControlWordToken.lo \
javax/swing/text/rtf/RTFEditorKit.lo \
javax/swing/text/rtf/RTFParseException.lo \
@ -4950,6 +5023,29 @@ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java \
gnu/javax/swing/text/html/parser/support/parameterDefaulter.java \
gnu/javax/swing/text/html/parser/support/Parser.java \
gnu/javax/swing/text/html/parser/support/textPreProcessor.java \
gnu/javax/swing/text/html/parser/support/low/Buffer.java \
gnu/javax/swing/text/html/parser/support/low/Constants.java \
gnu/javax/swing/text/html/parser/support/low/Location.java \
gnu/javax/swing/text/html/parser/support/low/node.java \
gnu/javax/swing/text/html/parser/support/low/ParseException.java \
gnu/javax/swing/text/html/parser/support/low/pattern.java \
gnu/javax/swing/text/html/parser/support/low/Queue.java \
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java \
gnu/javax/swing/text/html/parser/support/low/Token.java \
gnu/javax/swing/text/html/parser/gnuDTD.java \
gnu/javax/swing/text/html/parser/HTML_401F.java \
gnu/javax/swing/text/html/parser/htmlAttributeSet.java \
gnu/javax/swing/text/html/parser/htmlValidator.java \
gnu/javax/swing/text/html/parser/models/list.java \
gnu/javax/swing/text/html/parser/models/node.java \
gnu/javax/swing/text/html/parser/models/noTagModel.java \
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java \
gnu/javax/swing/text/html/parser/models/TableRowContentModel.java \
gnu/javax/swing/text/html/parser/models/transformer.java \
java/applet/Applet.java \
java/applet/AppletStub.java \
java/applet/AppletContext.java \
@ -5596,6 +5692,7 @@ javax/swing/text/AbstractDocument.java \
javax/swing/text/AttributeSet.java \
javax/swing/text/BadLocationException.java \
javax/swing/text/Caret.java \
javax/swing/text/ChangedCharSetException.java \
javax/swing/text/ComponentView.java \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
@ -5634,7 +5731,19 @@ javax/swing/text/Utilities.java \
javax/swing/text/View.java \
javax/swing/text/ViewFactory.java \
javax/swing/text/html/HTML.java \
javax/swing/text/html/HTMLDocument.java \
javax/swing/text/html/HTMLEditorKit.java \
javax/swing/text/html/HTMLFrameHyperlinkEvent.java \
javax/swing/text/html/parser/AttributeList.java \
javax/swing/text/html/parser/ContentModel.java \
javax/swing/text/html/parser/DTD.java \
javax/swing/text/html/parser/DTDConstants.java \
javax/swing/text/html/parser/DocumentParser.java \
javax/swing/text/html/parser/Element.java \
javax/swing/text/html/parser/Entity.java \
javax/swing/text/html/parser/Parser.java \
javax/swing/text/html/parser/ParserDelegator.java \
javax/swing/text/html/parser/TagElement.java \
javax/swing/text/rtf/ControlWordToken.java \
javax/swing/text/rtf/RTFEditorKit.java \
javax/swing/text/rtf/RTFParseException.java \
@ -6440,6 +6549,63 @@ gnu/xml/dom/DomEvent.java \
gnu/xml/dom/DomEntity.java \
gnu/xml/dom/DomCDATASection.java \
gnu/xml/dom/DomDOMException.java \
gnu/xml/dom/html2/DomHTMLAnchorElement.java \
gnu/xml/dom/html2/DomHTMLAppletElement.java \
gnu/xml/dom/html2/DomHTMLAreaElement.java \
gnu/xml/dom/html2/DomHTMLBaseElement.java \
gnu/xml/dom/html2/DomHTMLBaseFontElement.java \
gnu/xml/dom/html2/DomHTMLBodyElement.java \
gnu/xml/dom/html2/DomHTMLBRElement.java \
gnu/xml/dom/html2/DomHTMLButtonElement.java \
gnu/xml/dom/html2/DomHTMLCollection.java \
gnu/xml/dom/html2/DomHTMLDirectoryElement.java \
gnu/xml/dom/html2/DomHTMLDivElement.java \
gnu/xml/dom/html2/DomHTMLDListElement.java \
gnu/xml/dom/html2/DomHTMLDocument.java \
gnu/xml/dom/html2/DomHTMLElement.java \
gnu/xml/dom/html2/DomHTMLFieldSetElement.java \
gnu/xml/dom/html2/DomHTMLFontElement.java \
gnu/xml/dom/html2/DomHTMLFormElement.java \
gnu/xml/dom/html2/DomHTMLFrameElement.java \
gnu/xml/dom/html2/DomHTMLFrameSetElement.java \
gnu/xml/dom/html2/DomHTMLHeadElement.java \
gnu/xml/dom/html2/DomHTMLHeadingElement.java \
gnu/xml/dom/html2/DomHTMLHRElement.java \
gnu/xml/dom/html2/DomHTMLHtmlElement.java \
gnu/xml/dom/html2/DomHTMLIFrameElement.java \
gnu/xml/dom/html2/DomHTMLImageElement.java \
gnu/xml/dom/html2/DomHTMLImpl.java \
gnu/xml/dom/html2/DomHTMLInputElement.java \
gnu/xml/dom/html2/DomHTMLIsIndexElement.java \
gnu/xml/dom/html2/DomHTMLLabelElement.java \
gnu/xml/dom/html2/DomHTMLLegendElement.java \
gnu/xml/dom/html2/DomHTMLLIElement.java \
gnu/xml/dom/html2/DomHTMLLinkElement.java \
gnu/xml/dom/html2/DomHTMLMapElement.java \
gnu/xml/dom/html2/DomHTMLMenuElement.java \
gnu/xml/dom/html2/DomHTMLMetaElement.java \
gnu/xml/dom/html2/DomHTMLModElement.java \
gnu/xml/dom/html2/DomHTMLObjectElement.java \
gnu/xml/dom/html2/DomHTMLOListElement.java \
gnu/xml/dom/html2/DomHTMLOptGroupElement.java \
gnu/xml/dom/html2/DomHTMLOptionElement.java \
gnu/xml/dom/html2/DomHTMLParagraphElement.java \
gnu/xml/dom/html2/DomHTMLParamElement.java \
gnu/xml/dom/html2/DomHTMLParser.java \
gnu/xml/dom/html2/DomHTMLPreElement.java \
gnu/xml/dom/html2/DomHTMLQuoteElement.java \
gnu/xml/dom/html2/DomHTMLScriptElement.java \
gnu/xml/dom/html2/DomHTMLSelectElement.java \
gnu/xml/dom/html2/DomHTMLStyleElement.java \
gnu/xml/dom/html2/DomHTMLTableCaptionElement.java \
gnu/xml/dom/html2/DomHTMLTableCellElement.java \
gnu/xml/dom/html2/DomHTMLTableColElement.java \
gnu/xml/dom/html2/DomHTMLTableElement.java \
gnu/xml/dom/html2/DomHTMLTableRowElement.java \
gnu/xml/dom/html2/DomHTMLTableSectionElement.java \
gnu/xml/dom/html2/DomHTMLTextAreaElement.java \
gnu/xml/dom/html2/DomHTMLTitleElement.java \
gnu/xml/dom/html2/DomHTMLUListElement.java \
gnu/xml/transform/GenerateIdFunction.java \
gnu/xml/transform/FormatNumberFunction.java \
gnu/xml/transform/ValueOfNode.java \
@ -11368,6 +11534,99 @@ gnu/java/awt/peer/ClasspathFontPeer.lo: \
gnu/java/awt/peer/ClasspathTextLayoutPeer.lo: \
gnu/java/awt/peer/$(am__dirstamp) \
gnu/java/awt/peer/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/support
@: > gnu/javax/swing/text/html/parser/support/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/support/$(DEPDIR)
@: > gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.lo: \
gnu/javax/swing/text/html/parser/support/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/parameterDefaulter.lo: \
gnu/javax/swing/text/html/parser/support/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/Parser.lo: \
gnu/javax/swing/text/html/parser/support/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/textPreProcessor.lo: \
gnu/javax/swing/text/html/parser/support/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/support/low
@: > gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)
@: > gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/Buffer.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/Constants.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/Location.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/node.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/ParseException.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/pattern.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/Queue.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/support/low/Token.lo: \
gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser
@: > gnu/javax/swing/text/html/parser/$(am__dirstamp)
gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/$(DEPDIR)
@: > gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/gnuDTD.lo: \
gnu/javax/swing/text/html/parser/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/HTML_401F.lo: \
gnu/javax/swing/text/html/parser/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/htmlAttributeSet.lo: \
gnu/javax/swing/text/html/parser/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/htmlValidator.lo: \
gnu/javax/swing/text/html/parser/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/models
@: > gnu/javax/swing/text/html/parser/models/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) gnu/javax/swing/text/html/parser/models/$(DEPDIR)
@: > gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/list.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/node.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/noTagModel.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/PCDATAonly_model.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/TableRowContentModel.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
gnu/javax/swing/text/html/parser/models/transformer.lo: \
gnu/javax/swing/text/html/parser/models/$(am__dirstamp) \
gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
java/applet/$(am__dirstamp):
@$(mkdir_p) java/applet
@: > java/applet/$(am__dirstamp)
@ -13031,6 +13290,9 @@ javax/swing/text/BadLocationException.lo: \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/Caret.lo: javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/ChangedCharSetException.lo: \
javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/ComponentView.lo: javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/DefaultCaret.lo: javax/swing/text/$(am__dirstamp) \
@ -13120,15 +13382,51 @@ javax/swing/text/html/$(DEPDIR)/$(am__dirstamp):
@: > javax/swing/text/html/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/HTML.lo: javax/swing/text/html/$(am__dirstamp) \
javax/swing/text/html/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/HTMLDocument.lo: \
javax/swing/text/html/$(am__dirstamp) \
javax/swing/text/html/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/HTMLEditorKit.lo: \
javax/swing/text/html/$(am__dirstamp) \
javax/swing/text/html/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/HTMLFrameHyperlinkEvent.lo: \
javax/swing/text/html/$(am__dirstamp) \
javax/swing/text/html/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/$(am__dirstamp):
@$(mkdir_p) javax/swing/text/html/parser
@: > javax/swing/text/html/parser/$(am__dirstamp)
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) javax/swing/text/html/parser/$(DEPDIR)
@: > javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/AttributeList.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/ContentModel.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/DTD.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/DTDConstants.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/DocumentParser.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/Element.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/Entity.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/Parser.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/ParserDelegator.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/html/parser/TagElement.lo: \
javax/swing/text/html/parser/$(am__dirstamp) \
javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/rtf/$(am__dirstamp):
@$(mkdir_p) javax/swing/text/rtf
@: > javax/swing/text/rtf/$(am__dirstamp)
@ -15699,6 +15997,52 @@ mostlyclean-compile:
-rm -f gnu/java/util/prefs/NodeReader.lo
-rm -f gnu/java/util/prefs/NodeWriter.$(OBJEXT)
-rm -f gnu/java/util/prefs/NodeWriter.lo
-rm -f gnu/javax/swing/text/html/parser/HTML_401F.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/HTML_401F.lo
-rm -f gnu/javax/swing/text/html/parser/gnuDTD.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/gnuDTD.lo
-rm -f gnu/javax/swing/text/html/parser/htmlAttributeSet.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/htmlAttributeSet.lo
-rm -f gnu/javax/swing/text/html/parser/htmlValidator.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/htmlValidator.lo
-rm -f gnu/javax/swing/text/html/parser/models/PCDATAonly_model.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/PCDATAonly_model.lo
-rm -f gnu/javax/swing/text/html/parser/models/TableRowContentModel.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/TableRowContentModel.lo
-rm -f gnu/javax/swing/text/html/parser/models/list.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/list.lo
-rm -f gnu/javax/swing/text/html/parser/models/noTagModel.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/noTagModel.lo
-rm -f gnu/javax/swing/text/html/parser/models/node.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/node.lo
-rm -f gnu/javax/swing/text/html/parser/models/transformer.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/models/transformer.lo
-rm -f gnu/javax/swing/text/html/parser/support/Parser.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/Parser.lo
-rm -f gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/Buffer.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/Buffer.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/Constants.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/Constants.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/Location.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/Location.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/ParseException.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/ParseException.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/Queue.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/Queue.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/Token.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/Token.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/node.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/node.lo
-rm -f gnu/javax/swing/text/html/parser/support/low/pattern.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/low/pattern.lo
-rm -f gnu/javax/swing/text/html/parser/support/parameterDefaulter.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/parameterDefaulter.lo
-rm -f gnu/javax/swing/text/html/parser/support/textPreProcessor.$(OBJEXT)
-rm -f gnu/javax/swing/text/html/parser/support/textPreProcessor.lo
-rm -f gnu/regexp/CharIndexed.$(OBJEXT)
-rm -f gnu/regexp/CharIndexed.lo
-rm -f gnu/regexp/CharIndexedCharArray.$(OBJEXT)
@ -19383,6 +19727,8 @@ mostlyclean-compile:
-rm -f javax/swing/text/BadLocationException.lo
-rm -f javax/swing/text/Caret.$(OBJEXT)
-rm -f javax/swing/text/Caret.lo
-rm -f javax/swing/text/ChangedCharSetException.$(OBJEXT)
-rm -f javax/swing/text/ChangedCharSetException.lo
-rm -f javax/swing/text/ComponentView.$(OBJEXT)
-rm -f javax/swing/text/ComponentView.lo
-rm -f javax/swing/text/DefaultCaret.$(OBJEXT)
@ -19459,8 +19805,32 @@ mostlyclean-compile:
-rm -f javax/swing/text/ViewFactory.lo
-rm -f javax/swing/text/html/HTML.$(OBJEXT)
-rm -f javax/swing/text/html/HTML.lo
-rm -f javax/swing/text/html/HTMLDocument.$(OBJEXT)
-rm -f javax/swing/text/html/HTMLDocument.lo
-rm -f javax/swing/text/html/HTMLEditorKit.$(OBJEXT)
-rm -f javax/swing/text/html/HTMLEditorKit.lo
-rm -f javax/swing/text/html/HTMLFrameHyperlinkEvent.$(OBJEXT)
-rm -f javax/swing/text/html/HTMLFrameHyperlinkEvent.lo
-rm -f javax/swing/text/html/parser/AttributeList.$(OBJEXT)
-rm -f javax/swing/text/html/parser/AttributeList.lo
-rm -f javax/swing/text/html/parser/ContentModel.$(OBJEXT)
-rm -f javax/swing/text/html/parser/ContentModel.lo
-rm -f javax/swing/text/html/parser/DTD.$(OBJEXT)
-rm -f javax/swing/text/html/parser/DTD.lo
-rm -f javax/swing/text/html/parser/DTDConstants.$(OBJEXT)
-rm -f javax/swing/text/html/parser/DTDConstants.lo
-rm -f javax/swing/text/html/parser/DocumentParser.$(OBJEXT)
-rm -f javax/swing/text/html/parser/DocumentParser.lo
-rm -f javax/swing/text/html/parser/Element.$(OBJEXT)
-rm -f javax/swing/text/html/parser/Element.lo
-rm -f javax/swing/text/html/parser/Entity.$(OBJEXT)
-rm -f javax/swing/text/html/parser/Entity.lo
-rm -f javax/swing/text/html/parser/Parser.$(OBJEXT)
-rm -f javax/swing/text/html/parser/Parser.lo
-rm -f javax/swing/text/html/parser/ParserDelegator.$(OBJEXT)
-rm -f javax/swing/text/html/parser/ParserDelegator.lo
-rm -f javax/swing/text/html/parser/TagElement.$(OBJEXT)
-rm -f javax/swing/text/html/parser/TagElement.lo
-rm -f javax/swing/text/rtf/ControlWordToken.$(OBJEXT)
-rm -f javax/swing/text/rtf/ControlWordToken.lo
-rm -f javax/swing/text/rtf/RTFEditorKit.$(OBJEXT)
@ -20193,6 +20563,29 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/util/prefs/$(DEPDIR)/MemoryBasedPreferences.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/util/prefs/$(DEPDIR)/NodeReader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/util/prefs/$(DEPDIR)/NodeWriter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/$(DEPDIR)/HTML_401F.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/$(DEPDIR)/gnuDTD.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/$(DEPDIR)/htmlAttributeSet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/$(DEPDIR)/htmlValidator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/PCDATAonly_model.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/TableRowContentModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/list.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/noTagModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/node.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/models/$(DEPDIR)/transformer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/$(DEPDIR)/Parser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/$(DEPDIR)/gnuStringIntMapper.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/$(DEPDIR)/parameterDefaulter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/$(DEPDIR)/textPreProcessor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/Buffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/Constants.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/Location.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/ParseException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/Queue.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/ReaderTokenizer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/Token.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/node.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/pattern.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/CharIndexed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/CharIndexedCharArray.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/CharIndexedInputStream.Plo@am__quote@
@ -22035,6 +22428,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/AttributeSet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/BadLocationException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/Caret.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/ChangedCharSetException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/ComponentView.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultCaret.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultEditorKit.Plo@am__quote@
@ -22073,7 +22467,19 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/View.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/ViewFactory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/$(DEPDIR)/HTML.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/$(DEPDIR)/HTMLDocument.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/$(DEPDIR)/HTMLEditorKit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/$(DEPDIR)/HTMLFrameHyperlinkEvent.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/AttributeList.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/ContentModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/DTD.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/DTDConstants.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/DocumentParser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/Element.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/Entity.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/Parser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/ParserDelegator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/html/parser/$(DEPDIR)/TagElement.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/rtf/$(DEPDIR)/ControlWordToken.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/rtf/$(DEPDIR)/RTFEditorKit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/rtf/$(DEPDIR)/RTFParseException.Plo@am__quote@
@ -22725,6 +23131,10 @@ clean-libtool:
-rm -rf gnu/java/text/.libs gnu/java/text/_libs
-rm -rf gnu/java/util/.libs gnu/java/util/_libs
-rm -rf gnu/java/util/prefs/.libs gnu/java/util/prefs/_libs
-rm -rf gnu/javax/swing/text/html/parser/.libs gnu/javax/swing/text/html/parser/_libs
-rm -rf gnu/javax/swing/text/html/parser/models/.libs gnu/javax/swing/text/html/parser/models/_libs
-rm -rf gnu/javax/swing/text/html/parser/support/.libs gnu/javax/swing/text/html/parser/support/_libs
-rm -rf gnu/javax/swing/text/html/parser/support/low/.libs gnu/javax/swing/text/html/parser/support/low/_libs
-rm -rf gnu/regexp/.libs gnu/regexp/_libs
-rm -rf java/applet/.libs java/applet/_libs
-rm -rf java/awt/.libs java/awt/_libs
@ -23276,6 +23686,14 @@ distclean-generic:
-rm -f gnu/java/util/$(am__dirstamp)
-rm -f gnu/java/util/prefs/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/util/prefs/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/models/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/models/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/support/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/support/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/support/low/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/javax/swing/text/html/parser/support/low/$(am__dirstamp)
-rm -f gnu/regexp/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/regexp/$(am__dirstamp)
-rm -f java/applet/$(DEPDIR)/$(am__dirstamp)
@ -23470,7 +23888,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/text/rtf/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/javax/swing/text/html/parser/$(DEPDIR) gnu/javax/swing/text/html/parser/models/$(DEPDIR) gnu/javax/swing/text/html/parser/support/$(DEPDIR) gnu/javax/swing/text/html/parser/support/low/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/text/rtf/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-local distclean-tags
@ -23501,7 +23919,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/text/rtf/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/javax/swing/text/html/parser/$(DEPDIR) gnu/javax/swing/text/html/parser/models/$(DEPDIR) gnu/javax/swing/text/html/parser/support/$(DEPDIR) gnu/javax/swing/text/html/parser/support/low/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/text/rtf/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

View file

@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- package.html - describes classes in javax.swing.text.html package.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. -->
<html>
<head><title>GNU Classpath - javax.swing.text.html</title></head>
<body>
<p> Provides supporting classes for web browsers,
web robots, web page content analysers, web editors and
other applications applications working with Hypertext
Markup Language (HTML).
</p>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,422 @@
/* gnuDTD.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser;
import java.io.PrintStream;
import java.io.Serializable;
import java.util.BitSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
import javax.swing.text.html.parser.AttributeList;
import javax.swing.text.html.parser.ContentModel;
import javax.swing.text.html.parser.Element;
import javax.swing.text.html.parser.Entity;
/**
* <p>
* The class is derived from {@link gnu.javax.swing.text.html.parser.DTD }
* making structure creation methods public. This is required when
* creating the DTD by SGML parser that must have access to the structure.
*
* SGML DTD representation. Provides basis for describing a syntax of the
* HTML documents. The fields of this class are NOT initialized in
* constructor. You need to do this separately before passing this data
* structure to the parser constructor.</p>
*
* <p>This implementation also provides you the derived class
* <code>gnu.javax.swing.text.html.parser.DTD.HTML_4_0_1</code>, where
* all fields are initialized to the values, representing HTML 4.01
* ("-//W3C//DTD HTML 4.01 Frameset//EN") DTD. You can use it if you do not care
* about the portability between different implementations of the core
* class libraries. </p>
* <p>Use {@link javax.swing.HTML.HTMLEditorKit.Parser#parse }
* for parsing in accordance with "-//W3C//DTD HTML 4.01 Frameset//EN"
* without specifying DTD separately.</p>
*
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class gnuDTD
extends javax.swing.text.html.parser.DTD
implements javax.swing.text.html.parser.DTDConstants, Serializable
{
/* The undocumented element types, used to specify types, not defined
in DTDConstants. */
/**
* The URI element type (not defined in DTDConstants).
*/
public static final int URI = 512;
/**
* The Length element type
*/
public static final int Length = 513;
/**
* The Char element type
*/
public static final int Char = 514;
/**
* The Color element type
*/
public static final int Color = 515;
/**
* Creates a new instance of gnuDTD.
* @param name the name of the DTD.
*/
public gnuDTD(String name)
{
super(name);
}
/**
* Creates and returns new attribute (not an attribute list).
* @param name the name of this attribute
* @param type the type of this attribute (FIXED, IMPLIED or
* REQUIRED from <code>DTDConstants</code>).
* @param modifier the modifier of this attribute
* @param default_value the default value of this attribute or null if
* it is not specified.
* @param allowed_values the allowed values of this attribute. The multiple
* possible values in this parameter are supposed to be separated by
* '|', same as in SGML DTD <code>&lt;!ATTLIST </code>tag. This parameter
* can be null if no list of allowed values is specified.
* @param atts the previous attribute of this element. This is
* placed to the field
* {@link javax.swing.text.html.parser.AttributeList#next },
* creating a linked list.
* @return
*/
public AttributeList defAttributeList(String name, int type, int modifier,
String default_value,
String allowed_values,
AttributeList atts
)
{
return super.defAttributeList(name, type, modifier, default_value,
allowed_values, atts
);
}
/**
* Define the attributes for the element with the given name.
* If the element is not exist, it is created. This method is
* needed if the element attributes are defined befor the
* element itself.
* @param forElement
* @param attributes
*/
public void defAttrsFor(String forElement, AttributeList attributes)
{
super.defineAttributes(forElement, attributes);
}
/**
* Creates a new content model.
* @param type specifies the BNF operation for this content model.
* The valid operations are documented in the
* {@link javax.swing.text.html.parser.ContentModel#type }.
* @param content the content of this content model
* @param next if the content model is specified by BNF-like
* expression, contains the rest of this expression.
* @return The newly created content model.
*/
public ContentModel defContentModel(int type, Object content,
ContentModel next
)
{
return super.defContentModel(type, content, next);
}
/**
* Defines a new element and adds it to the element table.
* If the element alredy exists,
* overrides it settings with the specified values.
* @param name the name of the new element
* @param type the type of the element
* @param headless true if the element needs no starting tag
* @param tailless true if the element needs no closing tag
* @param content the element content.
* @param exclusions the elements that must be excluded from the
* content of this element, in all levels of the hierarchy.
* @param inclusions the elements that can be included as the
* content of this element.
* @param attributes the element attributes.
* @return the created or updated element.
*/
public Element defElement(String name, int type, boolean headless,
boolean tailless, ContentModel content,
String[] exclusions, String[] inclusions,
AttributeList attributes
)
{
return super.defElement(name, type, headless, tailless, content,
exclusions, inclusions, attributes
);
}
/**
* Defines a new element and adds it to the element table.
* If the element alredy exists,
* overrides it settings with the specified values.
* @param name the name of the new element
* @param type the type of the element
* @param headless true if the element needs no starting tag
* @param tailless true if the element needs no closing tag
* @param content the element content.
* @param exclusions the elements that must be excluded from the
* content of this element, in all levels of the hierarchy.
* @param inclusions the elements that can be included as the
* content of this element.
* @param attributes the element attributes.
* @return the created or updated element.
*/
public Element defElement(String name, int type, boolean headless,
boolean tailless, ContentModel content,
Collection exclusions, Collection inclusions,
AttributeList attributes
)
{
return super.defElement(name, type, headless, tailless, content,
toStringArray(exclusions),
toStringArray(inclusions), attributes
);
}
/**
* Defines a new element and adds it to the element table.
* If the element alredy exists,
* overrides it settings with the specified values.
* @param name the name of the new element
* @param type the type of the element
* @param headless true if the element needs no starting tag
* @param tailless true if the element needs no closing tag
* @param content the element content.
* @param exclusions the elements that must be excluded from the
* content of this element, in all levels of the hierarchy.
* @param inclusions the elements that can be included as the
* content of this element.
* @param attributes the element attributes (an array and not a
* linked list). The attributes are chained into the linked list
* inside this method.
* @return the created or updated element.
*/
public Element defElement(String name, int type, boolean headless,
boolean tailless, ContentModel content,
String[] exclusions, String[] inclusions,
AttributeList[] attributes
)
{
AttributeList list;
if (attributes == null || attributes.length == 0)
list = null;
else
{
if (attributes.length > 1)
for (int i = 1; i < attributes.length; i++)
{
attributes [ i - 1 ].next = attributes [ i ];
}
list = attributes [ 0 ];
}
Element e =
super.defElement(name, type, headless, tailless, content, exclusions,
inclusions, list
);
return e;
}
/**
* Creates, adds into the internal table and returns the
* character entity like <code>&amp;lt;</code>
* (means '<code>&lt;</code>' );
* This method inactivates the recursive refenrences to the same
* entity.
* @param name The entity name (without heading &amp; and closing ;)
* @param type The entity type
* @param character The entity value (single character)
* @return The created entity
*/
public Entity defEntity(String name, int type, String data)
{
int r;
String eref = "%" + name + ";";
do
{
r = data.indexOf(eref);
if (r > 0)
{
data = data.substring(0, r) + data.substring(r + 1);
}
}
while (r > 0);
return super.defEntity(name, type, data);
}
/**
* Summarises the document content into the given PrintStream.
*/
public void dump(PrintStream p)
{
Iterator iter = entityHash.entrySet().iterator();
while (iter.hasNext())
{
Map.Entry item = (Map.Entry) iter.next();
Entity e = (Entity) item.getValue();
if (e.isGeneral())
p.println("Entity " + e.getName() + ": " + e.getString());
}
iter = elementHash.entrySet().iterator();
while (iter.hasNext())
{
Map.Entry item = (Map.Entry) iter.next();
Element e = (Element) item.getValue();
p.println("Element " + e.getName());
System.out.println(" includes:");
dump(e.inclusions);
System.out.println(" excludes:");
dump(e.exclusions);
System.out.println(" attributes:");
AttributeList atts = e.atts;
while (atts != null)
{
p.print(" " + atts.name + " = " + atts.value);
if (atts.values == null || atts.values.size() == 0)
p.println();
else
{
Iterator viter = atts.values.iterator();
System.out.print(" ( ");
while (viter.hasNext())
{
System.out.print(viter.next());
if (viter.hasNext())
System.out.print(" | ");
}
System.out.println(" ) ");
}
atts = atts.next;
}
}
}
/**
* Prints the content of the given attribute set to the System.out.
* @param b
*/
public void dump(BitSet b)
{
if (b != null)
{
for (int i = 0; i < b.size(); i++)
{
if (b.get(i))
System.out.println(" " + elements.get(i));
}
}
else
System.out.println(" NULL set");
}
/**
* Creates the attribute.
* @param name The attribute name.
* @param type The attribute type.
* @param modifier The attribute modifier.
* @param defaultValue Default value (or null)
* @param allowed_values Allowed values (or null)
* @return The newly created AttributeList. The <code>next</code>
* field is initialized to null.
*/
protected AttributeList attr(String name, String default_value,
String[] allowed_values, int type, int modifier
)
{
Vector allowed = null;
if (allowed_values != null)
{
allowed = new Vector(allowed_values.length);
for (int i = 0; i < allowed_values.length; i++)
{
allowed.add(allowed_values [ i ]);
}
}
;
AttributeList attr =
new AttributeList(name, type, modifier, default_value, allowed, null);
return attr;
}
/**
* Define the general entity, holding a single character.
* @param name The entity name (for example, 'amp').
* The defined entity <b>is</b> stored into the entity table.
* @param character The entity character (for example, '&').
*/
protected void defineEntity(String name, int character)
{
super.defEntity(name, GENERAL, character);
}
private String[] toStringArray(Collection c)
{
String[] s = new String[ c.size() ];
Iterator iter = c.iterator();
for (int i = 0; i < s.length; i++)
{
s [ i ] = iter.next().toString();
}
return s;
}
}

View file

@ -0,0 +1,133 @@
/* htmlAttributeSet.java -- A set to store HTML attributes
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser;
import java.util.Enumeration;
import javax.swing.text.AttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.html.HTML;
/**
* A set, adapted to store HTML attributes.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class htmlAttributeSet
extends SimpleAttributeSet
{
public static final htmlAttributeSet EMPTY_HTML_ATTRIBUTE_SET =
new htmlAttributeSet();
AttributeSet parent;
/**
* Looks in this set and, if not found, later looks in the parent set.
* Calls toString(), allowing to pass as HTML.Attribute, as String
* to this method.
* @param key A key to search for a value.
* @return The value, if one is defined.
*/
public Object getAttribute(Object _key)
{
Object key = _key.toString().toLowerCase();
Object v = super.getAttribute(key);
if (v != null)
return v;
else if (parent != null)
return parent.getAttribute(key);
else
return null;
}
/**
* The name set must return HTML.Attribute and not a string,
* where applicable.
*/
public Enumeration getAttributeNames()
{
// Replace the string keys by HTML.attribute, where applicable
final Enumeration enumeration = super.getAttributeNames();
return new Enumeration()
{
public boolean hasMoreElements()
{
return enumeration.hasMoreElements();
}
public Object nextElement()
{
Object key = enumeration.nextElement();
HTML.Attribute hKey = HTML.getAttributeKey((String) key);
if (hKey != null)
return hKey;
else
return key;
}
};
}
/**
* Set the parent set, containing the default values.
* @param a_parent
*/
public void setResolveParent(AttributeSet a_parent)
{
parent = a_parent;
}
/**
* Get the parent set, containing the default values.
* @return
*/
public AttributeSet getResolveParent()
{
return parent;
}
/**
* Add the attribute to this attribute set.
* @param key Attribute key (will be case insensitive)
* @param value Attribute value
*/
public void addAttribute(Object key, Object value)
{
super.addAttribute(key.toString().toLowerCase(), value);
}
}

View file

@ -0,0 +1,610 @@
/* tagStack.java -- The HTML tag stack.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser;
import gnu.javax.swing.text.html.parser.models.node;
import gnu.javax.swing.text.html.parser.models.transformer;
import java.util.BitSet;
import java.util.Enumeration;
import java.util.LinkedList;
import java.util.ListIterator;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.parser.*;
/**
* <p>The HTML content validator, is responsible for opening and
* closing elements with optional start/end tags, detecting
* the wrongly placed html tags and reporting errors. The working instance
* is the inner class inside the {@link javax.swing.text.html.parser.Parser }
* </p>
* <p>This class could potentially
* provide basis for automated closing and insertion of the html tags,
* correcting the found html errors.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public abstract class htmlValidator
{
/**
* The tag reference, holding additional information that the tag
* has been forcibly closed.
*/
protected class hTag
{
protected final Element element;
protected final HTML.Tag tag;
protected final TagElement tgElement;
protected boolean forcibly_closed;
protected node validationTrace;
protected hTag(TagElement an_element)
{
element = an_element.getElement();
tag = an_element.getHTMLTag();
tgElement = an_element;
if (element.content != null)
validationTrace = transformer.transform(element.content, dtd);
}
/**
* This is called when the tag must be forcibly closed because
* it would make the newly appearing tag invalid.
* The parser is not notified about such event (just the error
* is reported). For such tags, the closing message does not
* appear when later reaching the end of stream. The exception is
* the &lt;head&gt; tag: the parser is notified about its silent closing
* when &lt;body&gt; or other html content appears.
*/
protected void forciblyCloseDueContext()
{
forcibly_closed = true;
}
/**
* This is called when the tag must be forcibly closed after
* reaching the end of stream. The parser is notified as if
* closing the tag explicitly.
*/
protected void forciblyCloseDueEndOfStream()
{
forcibly_closed = true;
handleSupposedEndTag(element);
}
}
/**
* The DTD, providing information about the valid document structure.
*/
protected final DTD dtd;
/**
* The stack, holding the current tag context.
*/
protected final LinkedList stack = new LinkedList();
/**
* Creates a new tag stack, using the given DTD.
* @param a_dtd A DTD, providing the information about the valid
* tag content.
*/
public htmlValidator(DTD a_dtd)
{
dtd = a_dtd;
}
/**
* Close all opened tags (called at the end of parsing).
*/
public void closeAll()
{
hTag h;
while (!stack.isEmpty())
{
h = (hTag) stack.getLast();
if (!h.forcibly_closed && !h.element.omitEnd())
s_error("Unclosed <" + h.tag + ">, closing at the end of stream");
handleSupposedEndTag(h.element);
closeTag(h.tgElement);
}
}
/**
* Remove the given tag from the stack or (if found) from the list
* of the forcibly closed tags.
*/
public void closeTag(TagElement tElement)
{
HTML.Tag tag = tElement.getHTMLTag();
hTag x;
hTag close;
if (!stack.isEmpty())
{
ListIterator iter = stack.listIterator(stack.size());
while (iter.hasPrevious())
{
x = (hTag) iter.previous();
if (tag.equals(x.tag))
{
if (x.forcibly_closed && !x.element.omitEnd())
s_error("The tag <" + x.tag +
"> has already been forcibly closed"
);
// If the tag has a content model defined, forcibly close all
// tags that were opened after the tag being currently closed.
closing:
if (x.element.content != null)
{
iter = stack.listIterator(stack.size());
while (iter.hasPrevious())
{
close = (hTag) iter.previous();
if (close == x)
break closing;
handleSupposedEndTag(close.element);
iter.remove();
}
}
stack.remove(x);
return;
}
}
}
s_error("Closing unopened <" + tag + ">");
}
/**
* Add the given HTML tag to the stack of the opened tags. Forcibly closes
* all tags in the stack that does not allow this tag in they content (error
* is reported).
* @param element
*/
public void openTag(TagElement tElement, htmlAttributeSet parameters)
{
// If this is a fictional call, the message from the parser
// has recursively returned - ignore.
if (tElement.fictional())
return;
validateParameters(tElement, parameters);
// If the stack is empty, start from HTML
if (stack.isEmpty() && tElement.getHTMLTag() != HTML.Tag.HTML)
{
Element html = dtd.getElement(HTML.Tag.HTML.toString());
openFictionalTag(html);
}
Object v = tagIsValidForContext(tElement);
if (v != Boolean.TRUE)
{
// The tag is not valid for context, the content
// model suggest to open another tag.
if (v instanceof Element)
{
int n = 0;
while (v instanceof Element && (n++ < 100))
{
Element fe = (Element) v;
// notify the content model that we add the proposed tag
getCurrentContentModel().show(fe);
openFictionalTag(fe);
Object vv = tagIsValidForContext(tElement);
if (vv instanceof Element) // One level of nesting is supported.
{
openFictionalTag((Element) vv);
Object vx = tagIsValidForContext(tElement);
if (vx instanceof Element)
openFictionalTag((Element) vx);
}
else if (vv == Boolean.FALSE)
{
// The tag is still not valid for the current
// content after opening a fictional element.
if (fe.omitEnd())
{
// close the previously opened fictional tag.
closeLast();
vv = tagIsValidForContext(tElement);
if (vv instanceof Element)
// another tag was suggested by the content model
openFictionalTag((Element) vv);
}
}
v = tagIsValidForContext(tElement);
}
}
else // If the current element has the optional end tag, close it.
{
if (!stack.isEmpty())
{
closing:
do
{
hTag last = (hTag) stack.getLast();
if (last.element.omitEnd())
{
closeLast();
v = tagIsValidForContext(tElement);
if (v instanceof Element) // another tag was suggested by the content model
{
openFictionalTag((Element) v);
break closing;
}
}
else
break closing;
}
while (v == Boolean.FALSE && !stack.isEmpty());
}
}
}
stack.add(new hTag(tElement));
}
/**
* Clear the stack.
*/
public void restart()
{
stack.clear();
}
/**
* Check if this tag is valid for the current context.
* Return Boolean.True if it is OK, Boolean.False
* if it is surely not OK or the Element that the
* content model recommends to insert making the situation
* ok. If Boolean.True is returned, the content model current
* position is moved forward. Otherwise this position remains
* the same.
* @param tElement
* @return
*/
public Object tagIsValidForContext(TagElement tElement)
{
// Check the current content model, if one is available.
node cv = getCurrentContentModel();
if (cv != null)
return cv.show(tElement.getElement());
// Check exclusions and inclusions.
ListIterator iter = stack.listIterator(stack.size());
hTag t;
final int idx = tElement.getElement().index;
// Check only known tags.
if (idx >= 0)
{
BitSet inclusions = new BitSet();
while (iter.hasPrevious())
{
t = (hTag) iter.previous();
if (!t.forcibly_closed)
{
if (t.element.exclusions != null &&
t.element.exclusions.get(idx)
)
return Boolean.FALSE;
if (t.element.inclusions != null)
inclusions.or(t.element.inclusions);
}
}
if (!inclusions.get(idx))
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
* Validate tag without storing in into the tag stack. This is called
* for the empty tags and results the subsequent calls to the openTag
* and closeTag.
*/
public void validateTag(TagElement tElement, htmlAttributeSet parameters)
{
openTag(tElement, parameters);
closeTag(tElement);
}
/**
* Check for mandatory elements, subsequent to the last tag:
* @param tElement The element that will be inserted next.
*/
protected void checkContentModel(TagElement tElement, boolean first)
{
if (stack.isEmpty())
return;
hTag last = (hTag) stack.getLast();
if (last.validationTrace == null)
return;
Object r = last.validationTrace.show(tElement.getElement());
if (r == Boolean.FALSE)
s_error("The <" + last.element + "> does not match the content model " +
last.validationTrace
);
else if (r instanceof Element) // The content model recommends insertion of this element
{
if (!first)
closeTag(last.tgElement);
handleSupposedStartTag((Element) r);
openTag(new TagElement((Element) r), null);
}
}
/**
* The method is called when the tag must be closed because
* it does not allow the subsequent elements inside its context
* or the end of stream has been reached. The parser is only
* informed if the element being closed does not require the
* end tag (the "omitEnd" flag is set).
* The closing message must be passed to the parser mechanism
* before passing message about the opening the next tag.
*
* @param element The tag being fictionally (forcibly) closed.
*/
protected abstract void handleSupposedEndTag(Element element);
/**
* The method is called when the validator decides to open the
* tag on its own initiative. This may happen if the content model
* includes the element with the optional (supposed) start tag.
*
* @param element The tag being opened.
*/
protected abstract void handleSupposedStartTag(Element element);
/**
* Handles the error message. This method must be overridden to pass
* the message where required.
* @param msg The message text.
*/
protected abstract void s_error(String msg);
/**
* Validate the parameters, report the error if the given parameter is
* not in the parameter set, valid for the given attribute. The information
* about the valid parameter set is taken from the Element, enclosed
* inside the tag. The method does not validate the default parameters.
* @param tag The tag
* @param parameters The parameters of this tag.
*/
protected void validateParameters(TagElement tag, htmlAttributeSet parameters)
{
if (parameters == null ||
parameters == htmlAttributeSet.EMPTY_HTML_ATTRIBUTE_SET ||
parameters == SimpleAttributeSet.EMPTY
)
return;
Enumeration enumeration = parameters.getAttributeNames();
while (enumeration.hasMoreElements())
{
validateAttribute(tag, parameters, enumeration);
}
// Check for missing required values.
AttributeList a = tag.getElement().getAttributes();
while (a != null)
{
if (a.getModifier() == DTDConstants.REQUIRED)
if (parameters.getAttribute(a.getName()) == null)
{
s_error("Missing required attribute '" + a.getName() + "' for <" +
tag.getHTMLTag() + ">"
);
}
a = a.next;
}
}
private node getCurrentContentModel()
{
if (!stack.isEmpty())
{
hTag last = (hTag) stack.getLast();
return last.validationTrace;
}
else
return null;
}
private void closeLast()
{
handleSupposedEndTag(((hTag) stack.getLast()).element);
stack.removeLast();
}
private void openFictionalTag(Element e)
{
handleSupposedStartTag(e);
stack.add(new hTag(new TagElement(e, true)));
if (!e.omitStart())
s_error("<" + e + "> is expected (supposing it)");
}
private void validateAttribute(TagElement tag, htmlAttributeSet parameters,
Enumeration enumeration
)
{
Object foundAttribute;
AttributeList dtdAttribute;
foundAttribute = enumeration.nextElement();
dtdAttribute = tag.getElement().getAttribute(foundAttribute.toString());
if (dtdAttribute == null)
{
StringBuffer valid =
new StringBuffer("The tag <" + tag.getHTMLTag() +
"> cannot contain the attribute '" + foundAttribute +
"'. The valid attributes for this tag are: "
);
AttributeList a = tag.getElement().getAttributes();
while (a != null)
{
valid.append(a.name.toUpperCase());
valid.append(' ');
a = a.next;
}
s_error(valid.toString());
}
else
{
String value = parameters.getAttribute(foundAttribute).toString();
if (dtdAttribute.type == DTDConstants.NUMBER)
validateNumberAttribute(tag, foundAttribute, value);
if (dtdAttribute.type == DTDConstants.NAME ||
dtdAttribute.type == DTDConstants.ID
)
validateNameOrIdAttribute(tag, foundAttribute, value);
if (dtdAttribute.values != null)
validateAttributeWithValueList(tag, foundAttribute, dtdAttribute,
value
);
}
}
private void validateAttributeWithValueList(TagElement tag,
Object foundAttribute,
AttributeList dtdAttribute,
String value
)
{
if (!dtdAttribute.values.contains(value.toLowerCase()) &&
!dtdAttribute.values.contains(value.toUpperCase())
)
{
StringBuffer valid;
if (dtdAttribute.values.size() == 1)
valid =
new StringBuffer("The attribute '" + foundAttribute +
"' of the tag <" + tag.getHTMLTag() +
"> cannot have the value '" + value +
"'. The only valid value is "
);
else
valid =
new StringBuffer("The attribute '" + foundAttribute +
"' of the tag <" + tag.getHTMLTag() +
"> cannot have the value '" + value + "'. The " +
dtdAttribute.values.size() +
" valid values are: "
);
Enumeration vv = dtdAttribute.values.elements();
while (vv.hasMoreElements())
{
valid.append('"');
valid.append(vv.nextElement());
valid.append("\" ");
}
s_error(valid.toString());
}
}
private void validateNameOrIdAttribute(TagElement tag, Object foundAttribute,
String value
)
{
boolean ok = true;
if (!Character.isLetter(value.charAt(0)))
ok = false;
char c;
for (int i = 0; i < value.length(); i++)
{
c = value.charAt(i);
if (!(
Character.isLetter(c) || Character.isDigit(c) ||
"".indexOf(c) >= 0
)
)
ok = false;
}
if (!ok)
s_error("The '" + foundAttribute + "' attribute of the tag <" +
tag.getHTMLTag() + "> must start from letter and consist of " +
"letters, digits, hypens, colons, underscores and periods. " +
"It cannot be '" + value + "'"
);
}
private void validateNumberAttribute(TagElement tag, Object foundAttribute,
String value
)
{
try
{
Integer.parseInt(value);
}
catch (NumberFormatException ex)
{
s_error("The '" + foundAttribute + "' attribute of the tag <" +
tag.getHTMLTag() + "> must be a valid number and not '" +
value + "'"
);
}
}
}

View file

@ -0,0 +1,62 @@
/* PCDATAonly_model.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
/**
* The model, allowing only PCDATA in it (like for element OPTION).
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class PCDATAonly_model
extends node
implements Serializable
{
private static final long serialVersionUID = 1;
public PCDATAonly_model()
{
super((char) 0, (char) 0, null);
}
public Object show(Object x)
{
return x.toString().equalsIgnoreCase("#pcdata") ? Boolean.TRUE : Boolean.FALSE;
}
}

View file

@ -0,0 +1,77 @@
/* TableRowContentModel.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
import javax.swing.text.html.parser.DTD;
import javax.swing.text.html.parser.Element;
/**
* Table row content model.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class TableRowContentModel
extends node
implements Serializable
{
private static final long serialVersionUID = 1;
final Element TD;
public TableRowContentModel(DTD dtd)
{
super((char) 0, (char) 0, null);
TD = dtd.getElement("TD");
}
public Object show(Object x)
{
// Always accept TD and TH
String s = x.toString();
if (s.equalsIgnoreCase("TD") || s.equalsIgnoreCase("TH"))
return Boolean.TRUE;
// Suggest closing in response to TR:
if (s.equalsIgnoreCase("TR"))
return Boolean.FALSE;
// Recommend TD for other cases:
return TD;
}
}

View file

@ -0,0 +1,382 @@
/* list.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
/**
* Part of the internal representation of the content model.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class list
extends node
implements Serializable
{
private static final long serialVersionUID = 1;
/**
* Setting to true means that the list nodes must always be connected
* by the same operation. This is far safer and clearer, but not
* required by default standard.
*/
public static boolean CLEAR;
/**
* A list of nodes.
*/
public final node[] nodes;
/**
* Creates a new model list that is a member of some enclosing list.
* @param binary_operator An operator with that this list is connected
* with other members of the enclosing list.
* @param unary_operator The unary operator for this list.
* @param a_nodes The nodes inside this list.
*/
public list(char binary_operator, char unary_operator, node[] a_nodes)
{
super(binary_operator, unary_operator, a_nodes);
nodes = a_nodes;
}
/**
* Creates a new model list. Assigns the previous field.
* @param a_nodes The nodes for this list.
* @throws an error if the node elements are connected by the
* different operations. This is not supported, use grouping.
*/
public list(node[] a_nodes)
throws Error
{
this(',', (char) 0, a_nodes);
int operation = nodes [ 0 ].binary;
for (int i = 0; i < nodes.length; i++)
{
if (CLEAR && nodes [ i ].binary != operation)
throw new Error("List members can only be connected by " +
"the same operation, use grouping"
);
if (i > 0)
nodes [ i ].previous = nodes [ i - 1 ];
}
}
/**
* Returns true if all members in the list are closed.
*/
public boolean isClosed()
{
if (super.isClosed())
return true;
for (int i = 0; i < nodes.length; i++)
{
if (!nodes [ i ].isClosed())
return false;
}
return true;
}
/**
* Find the token that could match as the next token in
* the token list.
*
* @return Such token object or null if none is found.
*/
public Object findFreeNode()
{
Object fn;
for (int j = 0; j < nodes.length; j++)
{
if (!nodes [ j ].isClosed())
{
fn = nodes [ j ].findFreeNode();
if (fn != null)
return fn;
}
}
return null;
}
/**
* Tries to match this list agains the given token sequence.
* @param tokens the sequence of the tokens to match.
* @return true if the valid match is found.
*/
public boolean matches(Object[] tokens)
{
reset();
Object x;
boolean m;
boolean matched = false;
for (int i = 0; i < tokens.length; i++)
{
matched = false;
x = tokens [ i ];
nodescan:
for (int j = 0; j < nodes.length; j++)
{
if (!nodes [ j ].isClosed())
{
m = nodes [ j ].performMatch(x);
if (m)
{
matched = true;
break nodescan;
}
}
}
if (!matched)
return false;
}
boolean valid = true;
for (int i = 0; i < nodes.length; i++)
{
if (!nodes [ i ].valid())
valid = false;
}
return valid;
}
/**
* The list never closes, despite it is trated as closed
* if all members in the list are closed.
* @return false.
*/
public boolean mustClose()
{
return false;
}
/**
* Perform a match operation for the single token
* against this list.
* @param token a token to match.
* @return true if the match is found.
*/
public boolean performMatch(Object token)
{
boolean ok = false;
Matching:
for (int i = 0; i < nodes.length; i++)
{
ok = nodes [ i ].performMatch(token);
if (ok)
break Matching;
}
if (ok)
matches();
return ok;
}
/**
* Prepeares the list for the next matching operation.
*/
public void reset()
{
super.reset();
for (int i = 0; i < nodes.length; i++)
nodes [ i ].reset();
}
/**
* Check if the provided token can match as a next token in the
* list. In the case of match, the list state changes, moving
* current position after the matched token. However if this method
* returns a suggested new token to insert before the provided one,
* the state of the list does not change.
* @return Boolean.TRUE if the match is found,
* Boolean.FALSE if the match is not possible and no token can be
* inserted to make the match valid. Otherwise, returns the
* token object that can be inserted before the last token in the
* list, probably (not for sure) making the match valid.
* If the object is an instance of Element or TagElement,
* it is first ensured that the object flag "omit start" is set.
*/
public Object show(Object x)
{
boolean m;
boolean matched = false;
nodescan:
for (int j = 0; j < nodes.length; j++)
{
if (!nodes [ j ].isClosed())
{
m = nodes [ j ].performMatch(x);
if (m)
{
matched = true;
break nodescan;
}
else
{
// For comma operation, only first not closed
// node must be tested for a match.
// unless it allows matching zero times.
if (binary == ',' &&
!(nodes [ j ].unary == '?' || nodes [ j ].unary == '*')
)
break nodescan;
}
}
}
if (!matched)
{
// Find and return that would be matched.
Object freeNode = findFreeNode();
if (freeNode == null)
return Boolean.FALSE;
else
return freeNode;
}
for (int i = 0; i < nodes.length; i++)
if (!nodes [ i ].validPreliminary())
{
return Boolean.FALSE;
}
return Boolean.TRUE;
}
/**
* Returns a string representation of the list.
* @return String representation, similar to BNF expression.
*/
public String toString()
{
StringBuffer b = new StringBuffer();
b.append(" ( ");
for (int i = 0; i < nodes.length; i++)
{
if (i > 0)
b.append(" " + (char) nodes [ i ].binary + " ");
b.append(nodes [ i ]);
}
b.append(" )");
if (unary != 0)
b.append((char) unary);
else
b.append(' ');
return b.toString();
}
/**
* Returns true if all memebers in the list are valid.
*/
public boolean valid()
{
for (int i = 0; i < nodes.length; i++)
{
if (!nodes [ i ].valid())
return false;
}
return true;
}
/**
* Returns true if all memebers in the list are either valid
* or unvisited. The unvisited members can become valid after
* more tokens will be shown.
*/
public boolean validPreliminary()
{
if (silenceAllowed())
{
boolean everVisited = false;
for (int i = 0; i < nodes.length; i++)
{
if (nodes [ i ].visits > 0)
{
everVisited = true;
break;
}
}
if (!everVisited)
return true;
}
for (int i = 0; i < nodes.length; i++)
{
if (!nodes [ i ].validPreliminary())
return false;
}
return true;
}
/**
* Closes all members in the list.
*/
protected void close()
{
super.close();
for (int i = 0; i < nodes.length; i++)
{
nodes [ i ].close();
}
}
/**
* Compare given token with the token of this node.
* If the token represents a <code>list</code>, the call may be
* delegeted to the child subnodes.
* @param a_token A token to compare.
* @return True if the token matches the token of this node.
*/
protected boolean compare(Object a_token)
{
return performMatch(a_token);
}
}

View file

@ -0,0 +1,75 @@
/* noTagModel.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
/**
* Disallows a single given tag at the current content level only.
* <p>@author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)</p>
*/
public class noTagModel
extends node
implements Serializable
{
private static final long serialVersionUID = 1;
final String[] no;
public noTagModel(String[] noTag)
{
super((char) 0, (char) 0, null);
no = noTag;
}
public noTagModel(String noTag)
{
super((char) 0, (char) 0, null);
no = new String[] { noTag };
}
public Object show(Object x)
{
for (int i = 0; i < no.length; i++)
{
if (x.toString().equalsIgnoreCase(no [ i ]))
return Boolean.FALSE;
}
return Boolean.TRUE;
}
}

View file

@ -0,0 +1,337 @@
/* node.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
/**
* Part of the internal representation of the content model.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class node
implements Serializable
{
private static final long serialVersionUID = 1;
/**
* The token to match (can be instance of list).
*/
public Object token;
/**
* True for the node that cannot be visited again.
*/
public boolean _closed;
/**
* The binary operation for this node.
*/
public char binary;
/**
* The unary opeation for this node.
*/
public char unary;
/**
* The number of times the node already was visited.
*/
public int visits;
/**
* The previous node in content model (used for closing nodes).
*/
public node previous;
/**
* Creates a new node.
* @param binary_operator The operator, connecting all nodes in the list.
* The nodes, connected by the different operators, must be arranged into
* the different lists.
* @param unary_operator The unary operator for this node or zero if
* no such was specified.
* @param token The token to match. This can be either a string or
* the new instance of the list.
* @param a_previous The previous node in the list, null for the first
* node. This is used for propagating the closing operation for the
* comma delimited list.
*/
public node(char binary_operator, char unary_operator, Object a_token)
{
if (a_token != null)
if (a_token.getClass().equals(node.class))
throw new Error("Creating node in node is redundant and ineffective.");
binary = binary_operator;
unary = unary_operator;
token = a_token;
}
/**
* Checks if this node is in the closed state.
* @return True if the node is closed.
*/
public boolean isClosed()
{
return _closed;
}
/**
* Check if closing this node means closing the previous node.
*/
public boolean closePrevious()
{
return binary == ',';
}
/**
* Return the token object if it could match as a next token in
* a token list of null if it could not.
* @return
*/
public Object findFreeNode()
{
boolean ok;
if (isClosed() || silenceAllowed())
return null;
// Try if the node would stay valid after a one more visit.
visits++;
ok = valid();
visits--;
if (ok)
{
if (token instanceof node)
return ((node) token).findFreeNode();
else
return token;
}
else
return null;
}
/**
* Check if the current situation is such that the node must be closed
* now.
*/
public boolean mustClose()
{
switch (unary)
{
case 0 :
return true;
case '*' :
return false;
case '+' :
return false;
case '?' :
return visits <= 1;
default :
throw new Error("Invalid unary operation " + unary + " ( '" +
(char) unary + "' )"
);
}
}
/**
* Do the match operation with the given token. This sets various
* flags.
* @param token The token to match.
* @return true if the the token matches node, false if it does not match
* or if the node is closed.
*/
public boolean performMatch(Object a_token)
{
if (isClosed())
return false;
boolean matches = compare(a_token);
if (matches)
matches();
return matches;
}
/**
* Prepares the node for matching against a new list of tokens.
*/
public void reset()
{
_closed = false;
visits = 0;
}
/**
* Check if the provided token can match this node.
* In the case of match, the node state changes, moving
* current position after the matched token. However if this method
* returns a suggested new token to insert before the provided one,
* the state of the list does not change.
* @return Boolean.TRUE if the match is found,
* Boolean.FALSE if the match is not possible and no token can be
* inserted to make the match valid. Otherwise, returns the
* token object that can be inserted before the last token in the
* list, probably (not for sure) making the match valid.
*/
public Object show(Object x)
{
if (compare(x))
return performMatch(x) ? Boolean.TRUE : Boolean.FALSE;
Object recommended = findFreeNode();
return recommended != null ? recommended : Boolean.FALSE;
}
/**
* Check if it would be a valid case if this node is visited zero times.
* Nodes with unary operator * or ? need not be matched to make a
* model valid.
*/
public boolean silenceAllowed()
{
return unary == '?' || unary == '*';
}
/**
* Returns a string representation of the list.
* @return String representation, similar to BNF expression.
*/
public String toString()
{
StringBuffer b = new StringBuffer();
b.append(token);
if (unary != 0)
b.append((char) unary);
else
b.append('\'');
return b.toString();
}
/**
* Check if the node state is valid.
*/
public boolean valid()
{
switch (unary)
{
case 0 :
if (binary == '|')
return true;
else
return visits == 1;
case '*' :
return true;
case '+' :
return visits > 0;
case '?' :
return visits <= 1;
default :
throw new Error("Invalid unary operation " + unary + " ( '" +
(char) unary + "' )"
);
}
}
public boolean validPreliminary()
{
return visits == 0 || valid();
}
/**
* Closes this node and, if closePrevious() returs true, calls close() for
* the previous node.
*/
protected void close()
{
_closed = true;
if (previous != null && closePrevious())
previous.close();
}
/**
* Compare the provided token object with the token object of this node.
*/
protected boolean compare(Object a_token)
{
if (token instanceof Object[])
throw new Error("Invalid token object, probably the 'list' " +
"should be used. "
);
if (token instanceof node[])
throw new Error("Do not use 'node' for the array of nodes, use 'list'. ");
if (token instanceof node)
{
return ((node) token).performMatch(a_token);
}
boolean rt = false;
if (token == a_token)
rt = true;
if (token.equals(a_token))
rt = true;
if (token.toString().equalsIgnoreCase(a_token.toString()))
rt = true;
return rt;
}
/**
* Fire the changes that must happen then the token matches this node.
*/
protected void matches()
{
visits++;
if (mustClose())
close();
}
}

View file

@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- package.html - describes classes in javax.swing.text.html.parser package.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. -->
<html>
<head><title>GNU Classpath - gnu.javax.swing.text.html.parser.models</title></head>
<body>
<p>This package contains classes for working with content models. In this implementation, the
standardized content model is pre-processed by <code>transformer</code> into an instance of
<code>node</code>. Node holds a single element of the content model with the optional unary operation.
The derived class <code>list</code> holds multiple nodes connected by the same binary operation.
As the members of this <code>list</code> can also be lists itself, these structures support
the most of required operations. Several cases when the model cannot be expressed using
BNF syntax are handled providing specialised classes that are also derived from <code>node</code>.
</p>
@author Audrius Meskauskas, Lithuania
</body>
</html>

View file

@ -0,0 +1,201 @@
/* transformer.java -- Content model transforms.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
import java.io.Serializable;
import javax.swing.text.html.parser.ContentModel;
import javax.swing.text.html.parser.DTD;
/**
* Transforms the standard ContentModel tree into the internal representation,
* used in this implementation.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class transformer
implements Serializable
{
private static final long serialVersionUID = 1;
/**
* All binary operators.
*/
protected static String binary = "&|,";
/**
* All unary operators.
*/
protected static String unary = "+*?";
/**
* Measure length of the linked list of the content models.
* @param c The heading element of the linked list.
* @return the length of the list (0 for null 1 if c!=null and c.next==null,
* etc.
*/
public static int measureChainLength(ContentModel c)
{
if (c == null)
return 0;
else
return measureChainLength(c.next) + 1;
}
/**
* Transform into internal representation without usind dtd.
* This should be used only for testing.
*/
public static node transform(ContentModel c)
{
return transform(c, null);
}
/**
* Transform into internal representation.
* @param c a model to transform
* @return a transformed model
* @throws Error if the model structure contains errors.
*/
public static node transform(ContentModel c, DTD dtd)
{
// Handle the special cases first.
if (c.content instanceof node)
return (node) c.content;
// Do the typical transform.
node n;
/* Case with the single token */
if (c.next == null)
{
n = optionalTransform(c, dtd);
}
else /* Case with the chain of the multiple tokens. */
{
node[] l = new node[ measureChainLength(c) ];
ContentModel m = c;
for (int i = 0; i < l.length; i++)
{
if (m.content instanceof ContentModel)
{
ContentModel nested = (ContentModel) m.content;
if (nested.next == null &&
!(nested.content instanceof ContentModel)
)
{
l [ i ] =
new node((char) m.type, (char) nested.type, nested.content);
}
else
{
l [ i ] = transform(nested, dtd);
}
}
else
l [ i ] = new node((char) 0, (char) 0, m.content);
addtype(l [ i ], (char) m.type);
m = m.next;
}
if (isBinary(c.type))
for (int i = 0; i < l.length; i++)
{
l [ i ].binary = (char) c.type;
}
n = new list(l);
}
addtype(n, (char) c.type);
return n;
}
/**
* True for binary operator
* @param c a character to test
* @return true for [ ,&| ], false otherwise.
*/
private static boolean isBinary(int c)
{
return binary.indexOf((char) c) >= 0;
}
/**
* True for unary operator.
* @param c a character to test
* @return true for [ +?* ], false otherwise.
*/
private static boolean isUnary(int c)
{
return unary.indexOf((char) c) >= 0;
}
/**
* Assign an operation type for the given node.
* @param n A node to set the operation to.
* @param type Either binary or unary operation, is assigned to the
* corresponding field of the node.
* @throws error if the operation type is not
* representing a valid unary or binary operation.
*/
private static void addtype(node n, char type)
{
if (isBinary(type))
n.binary = type;
else if (isUnary(type))
n.unary = type;
else if (type != 0)
throw new Error("Invalid operation '" + (char) type + "'");
}
private static node optionalTransform(ContentModel c, DTD dtd)
{
node n;
if (c.content instanceof ContentModel)
n = transform((ContentModel) c.content, dtd);
else
/* A single token with the specified operation */
n = new node((char) 0, (char) 0, c.content);
return n;
}
}

View file

@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- package.html - describes classes in javax.swing.text.html.parser package.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. -->
<html>
<head><title>GNU Classpath - javax.swing.text.html.parser</title></head>
<body>
<p>Provides the error tolerant, DTD-driven HTML 4.01 parser.
The parser that is used in web robots, html content analysers,
web browsers, web editors and other related applications.
It should compativle with the older HTML versions, supporting
obsoleted HTML featues. This package also includes some
supporting classes.</p>
@author Audrius Meskauskas, Lithuania
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,112 @@
/* gnuStringIntMapper.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/**
* A helper class, mapping between the strings and they unique integer
* identifiers.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public abstract class gnuStringIntMapper
{
/**
* Maps argument integer values from DTDConstants into they string
* names. Initialized on demand.
*/
private Map is_Map;
/**
* Maps argument string names into they integer values from DTDConstants.
* Initialized on demand.
*/
private Map si_Map;
/**
* Get string from id or null if no such id is present in the mapper.
*/
public final String get(int id)
{
if (is_Map == null)
createTheMap();
return (String) is_Map.get(new Integer(id));
}
/** Get id from string or 0 if no such string is present in the mapper. */
public final int get(String id)
{
if (si_Map == null)
createTheMap();
Integer i = (Integer) si_Map.get(id);
return i != null ? i.intValue() : 0;
}
/**
* Create the mapping table for this mapper by adding the required
* String/int pairs. The method is invoked
* only once for each instance, after the first invocation of the any
* form of the <code>get</code> method. Use <code>add</code> to
* create a map for a concrete instance.
*/
protected abstract void create();
/**
* Add an id/string pair to this mapper. This is called from
* the method <code>create</code> only.
*/
protected void add(String name, int id)
{
Integer i = new Integer(id);
si_Map.put(name, i);
is_Map.put(i, name);
}
private void createTheMap()
{
is_Map = new HashMap();
si_Map = new TreeMap();
create();
}
}

View file

@ -0,0 +1,238 @@
/* Buffer.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* A string buffer that additionally holds line and absolute postion
* information.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class Buffer
{
public static int INITIAL_SIZE = 2048;
/**
* True if the \n symbol has been seen.
*/
public boolean n_seen;
/**
* True if the \r symbol has been seen.
*/
public boolean r_seen;
char[] chr = new char[ INITIAL_SIZE ];
int[] line = new int[ INITIAL_SIZE ];
int[] position = new int[ INITIAL_SIZE ];
/**
* Current line.
*/
int current_line = 0;
/**
* Point to the next free position.
*/
int length;
public Buffer()
{
}
public Buffer(String content)
{
for (int i = 0; i < content.length(); i++)
{
append(content.charAt(i), i);
}
}
/**
* Get the characters into array.
* @param srcBegin From, inclusive
* @param srcEnd To, exclusive.
* @param dst Into
* @param dstBegin Offset.
*/
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
{
System.arraycopy(chr, srcBegin, dst, dstBegin, (srcEnd - srcBegin));
}
/**
* Return the sequence, used to separate lines in the document.
* @return one of \n, \r or \r\n.
*/
public String getEndOfLineSequence()
{
if (r_seen && n_seen)
return "\r\n";
else if (r_seen)
return "\r";
else
// This also is returned for single-line document.
return "\n";
}
/**
* Truncate.
* @param n The length to truncate till.
*/
public void setLength(int n)
{
length = n;
}
/**
* Get location information for the given region.
* @param from Region start, inclusive.
* @param to Region end, exclusive.
* @return The location, covering the region.
*/
public Location getLocation(int from, int to)
{
Location l = new Location();
l.beginLine = line [ from ];
l.endLine = line [ to - 1 ];
l.startPosition = position [ from ];
l.endPosition = position [ to - 1 ] + 1;
return l;
}
/**
* Add the character.
* @param c The character.
* @param pos The character position in the stream (the line number
* is handled internally in the buffer).
*/
public void append(char c, int pos)
{
if (length >= chr.length)
expand();
chr [ length ] = c;
position [ length ] = pos;
if (c == '\n')
{
if (!r_seen)
current_line++;
n_seen = true;
}
else if (c == '\r')
{
current_line++;
r_seen = true;
}
line [ length ] = current_line;
length++;
}
/**
* Return char at the given positon.
*/
public char charAt(int i)
{
return chr [ i ];
}
/**
* Delete the range
* @param from Start position, inclusive.
* @param to End position, exclusive.
*/
public void delete(int from, int to)
{
int len = to - from;
if (len < 1)
throw new AssertionError("Deleting " + from + " till " + to);
int tail = length - to;
System.arraycopy(chr, to, chr, from, tail);
System.arraycopy(position, to, position, from, tail);
System.arraycopy(line, to, line, from, tail);
length = length - len;
}
/**
* Double the buffer size.
*/
public void expand()
{
int nSize = 2 * chr.length;
char[] nchr = new char[ nSize ];
int[] nposition = new int[ nSize ];
int[] nline = new int[ nSize ];
System.arraycopy(chr, 0, nchr, 0, chr.length);
System.arraycopy(position, 0, nposition, 0, position.length);
System.arraycopy(line, 0, nline, 0, line.length);
chr = nchr;
position = nposition;
line = nline;
}
/**
* Return length of the occupied part of the buffer.
*/
public int length()
{
return length;
}
/**
* Prepare for parsing the new document.
*/
public void reset()
{
setLength(0);
r_seen = n_seen = false;
}
public String toString()
{
return new String(chr, 0, length);
}
}

View file

@ -0,0 +1,422 @@
/* Constants.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
import java.util.BitSet;
/**
* The parser constants and operations, directly related to the parser
* constants.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class Constants
{
/* Single character tokens are reflected into they ASCII codes. */
/**
* Start of HTML token.
*/
public static final int BEGIN = '<';
/**
* End of HTML token.
*/
public static final int END = '>';
/**
* Exclamation (indicates SGML or comment).
*/
public static final int EXCLAMATION = '!';
/**
* Slash (indicates closing tag).
*/
public static final int SLASH = '/';
/**
* Equals sign.
*/
public static final int EQ = '=';
/**
* Quoting sign.
*/
public static final int AP = '\'';
/**
* Quoting sign.
*/
public static final int QUOT = '"';
/* The numbers of other tokens start outside the ascii space. */
/* String tokens */
/**
* Double dash (--)
*/
public static final int DOUBLE_DASH = 1000;
/**
* The STYLE tag (needs special handling).
*/
public static final int STYLE = 1001;
/**
* The SCRIPT tag (needs special handling).
*/
public static final int SCRIPT = 1002;
/* Pattern tokens */
/**
* HTML whitespace.
*/
public static final int WS = 1003;
/**
* Named or numeric entity,
*/
public static final int ENTITY = 1004;
/**
* Sequence of valid name characters (can start from digit).
*/
public static final int NUMTOKEN = 1005;
/* Complex tokens */
/**
* Comment opening sequence.
*/
public static final pattern COMMENT_OPEN =
new pattern(new node[]
{
new node(BEGIN), new node(WS, true), new node(EXCLAMATION),
new node(WS, true), new node(DOUBLE_DASH),
}
);
/**
* Comment closing sequence
*/
public static final pattern COMMENT_END =
new pattern(new node[]
{
new node(DOUBLE_DASH), new node(WS, true), new node(END)
}
);
/**
* Special case ---> (also is treated as end of comment).
*/
public static final pattern COMMENT_TRIPLEDASH_END =
new pattern(new node[]
{
new node(DOUBLE_DASH), new node(NUMTOKEN), new node(END)
}
);
/**
* STYLE element heading pattern.
*/
public static final pattern STYLE_OPEN =
new pattern(new node[] { new node(BEGIN), new node(WS, true), new node(STYLE) });
/**
* SCRIPT element heading pattern.
*/
public static final pattern SCRIPT_OPEN =
new pattern(new node[] { new node(BEGIN), new node(WS, true), new node(SCRIPT) });
/**
* SGML element heading pattern.
*/
public static final pattern SGML =
new pattern(new node[]
{
new node(BEGIN), new node(WS, true), new node(EXCLAMATION)
}
);
/**
* SCRIPT element closing pattern.
*/
public static final pattern SCRIPT_CLOSE =
new pattern(new node[]
{
new node(BEGIN), new node(WS, true), new node(SLASH),
new node(WS, true), new node(SCRIPT), new node(WS, true),
new node(END)
}
);
/**
* STYLE element closing pattern.
*/
public static final pattern STYLE_CLOSE =
new pattern(new node[]
{
new node(BEGIN), new node(WS, true), new node(SLASH),
new node(WS, true), new node(STYLE), new node(WS, true),
new node(END)
}
);
/**
* Ordinary HTML tag heading pattern.
*/
public static final pattern TAG =
new pattern(new node[]
{
new node(BEGIN), new node(WS, true), new node(SLASH, true),
new node(WS, true), new node(NUMTOKEN)
}
);
/* Special tokens */
/**
* All other tokens.
*/
public static final int OTHER = 1999;
/**
* The UNICODE "end of text" control code
*/
static final char ETX = 3;
/**
* End of file.
*/
public static final int EOF = ETX;
/* Character categories */
/**
* All single char tokens.
*/
public static final BitSet bSINGLE_CHAR_TOKEN = new BitSet();
/**
* Non letters and non numbers, allowed in HTML names.
*/
public static final BitSet bSPECIAL = new BitSet();
/**
* All letters, used in HTML names.
*/
public static final BitSet bLETTER = new BitSet();
/**
* Digits.
*/
public static final BitSet bDIGIT = new BitSet();
/**
* Both line breaks.
*/
public static final BitSet bLINEBREAK = new BitSet();
/**
* All whitespace.
*/
public static final BitSet bWHITESPACE = new BitSet();
/**
* Both quoting characters.
*/
public static final BitSet bQUOTING = new BitSet();
/**
* Valid name characters.
*/
public static final BitSet bNAME = new BitSet();
/* Entity subcategories */
/**
* Named entity.
*/
public static final int ENTITY_NAMED = 1;
/**
* Numeric entity.
*/
public static final int ENTITY_NUMERIC = 2;
static
{
bQUOTING.set(AP);
bQUOTING.set(QUOT);
bSINGLE_CHAR_TOKEN.set(BEGIN);
bSINGLE_CHAR_TOKEN.set(END);
bSINGLE_CHAR_TOKEN.set(EXCLAMATION);
bSINGLE_CHAR_TOKEN.set(SLASH);
bSINGLE_CHAR_TOKEN.set(EQ);
bSINGLE_CHAR_TOKEN.set(EOF);
bSINGLE_CHAR_TOKEN.or(bQUOTING);
bLINEBREAK.set('\r');
bLINEBREAK.set('\n');
bWHITESPACE.set(' ');
bWHITESPACE.set('\t');
bWHITESPACE.set(0xC);
bWHITESPACE.or(bLINEBREAK);
for (char i = '0'; i <= '9'; i++)
{
bDIGIT.set(i);
}
for (char i = 'a'; i <= 'z'; i++)
{
bLETTER.set(i);
}
for (char i = 'A'; i <= 'Z'; i++)
{
bLETTER.set(i);
}
bSPECIAL.set('-');
bSPECIAL.set('_');
bSPECIAL.set(':');
bSPECIAL.set('.');
bNAME.or(bLETTER);
bNAME.or(bDIGIT);
bNAME.or(bSPECIAL);
}
/**
* Verifies if one of the tokens matches the end of string
* buffer. The last character in the string buffer is the
* "future character", some tokens needs to verify it the
* token does not continue "towards the future". If the token
* matches, it matches till "pre-last" character in the buffer.
* @param b
* @return
*/
public Token endMatches(Buffer b)
{
if (b.length() < 2)
return null;
int p = b.length() - 2;
if (b.length() > 2 && b.charAt(p) == '-' && b.charAt(p - 1) == '-')
return new Token(DOUBLE_DASH, "--", b.getLocation(p - 1, p + 1));
char last = b.charAt(p);
if (bSINGLE_CHAR_TOKEN.get(last))
return new Token(last, last, b.getLocation(p, p + 1));
char future = b.charAt(p + 1);
// Check for numtokens, script and style:
if (bNAME.get(last) && !bNAME.get(future))
{
// Scan the history up:
int u = p - 1;
while (u >= 0 && bNAME.get(b.charAt(u)))
u--;
u++;
char[] token = new char[ p - u + 1 ];
// Found a numtoken
b.getChars(u, p + 1, token, 0);
// Verify for the built-in tokens:
String e = new String(token);
// found the entity reference
if (u > 0 && b.charAt(u - 1) == '&')
{
// The subsequent semicolon may be the part of the token
// as well. The semicolon must be ignored. This must be
// handled elsewhere.
return new Token(ENTITY, ENTITY_NAMED, "&" + e,
b.getLocation(u - 1, p + 1)
);
}
// found the numeric entity reference
if (u > 1 && b.charAt(u - 1) == '#' && b.charAt(u - 2) == '&')
{
// The subsequent semicolon may be the part of the token
// as well. The semicolon must be ignored. This must be
// handled elsewhere.
return new Token(ENTITY, ENTITY_NUMERIC, "&#" + e,
b.getLocation(u - 2, p + 2)
);
}
Location le = b.getLocation(u, p + 1);
if (e.equalsIgnoreCase("SCRIPT"))
return new Token(SCRIPT, e, le);
else if (e.equalsIgnoreCase("STYLE"))
return new Token(STYLE, e, le);
else
return new Token(NUMTOKEN, e, le);
}
// Check for whitespace
if (bWHITESPACE.get(last) && !bWHITESPACE.get(future))
{
// Scan the history up:
int u = p - 1;
while (u >= 0 && bWHITESPACE.get(b.charAt(u)))
u--;
u++;
char[] token = new char[ p - u + 1 ];
b.getChars(u, p + 1, token, 0);
return new Token(WS, new String(token), b.getLocation(u, p + 1));
}
return null;
}
}

View file

@ -0,0 +1,83 @@
/* Location.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* Defines a region in the text: its bounding positions and the line number.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class Location
{
/**
* The line number, where the token starts.
*/
public int beginLine;
/**
* The line, where the token ends.
*/
public int endLine;
/**
* The absolute token end position in the input stream,
* exclusive.
*/
public int endPosition;
/**
* The absolute token start position in the input stream,
* inclusive.
*/
public int startPosition;
public Location()
{
}
/**
* Special case, used to mark EOF.
* @param p The total stream length.
*/
public Location(int p)
{
startPosition = p;
endPosition = p + 1;
beginLine = endLine = -1;
}
}

View file

@ -0,0 +1,51 @@
/* ParseException.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* This can be thrown from various parsing methods.
*/
public class ParseException
extends RuntimeException
{
public ParseException(String s, Throwable cause)
{
super(s, cause);
}
}

View file

@ -0,0 +1,142 @@
/* Queue.java -- a token queue.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
import java.util.Arrays;
/**
* A token queue.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class Queue
{
Token[] m = new Token[ 64 ];
int a = 0;
int b = 0;
/**
* True for the empty queue.
*/
public boolean isEmpty()
{
return size() == 0;
}
/**
* Add this trace to the end of the queue.
*/
public void add(Token u)
{
if (a < m.length)
{
m [ a ] = u;
a++;
}
else // The end of array has been reached.
{
if (b > 0) // If some elements were deleted from the start of the queue, shift.
{
int d = b;
System.arraycopy(m, b, m, 0, a - b);
b = b - d;
a = a - d;
m [ a ] = u;
a++;
}
else // Enlarge the queue, doubling the size.
{
int n = m.length * 2;
Token[] nm = new Token[ 2 * n ];
System.arraycopy(m, 0, nm, 0, m.length);
Arrays.fill(m, null);
nm [ a ] = u;
m = nm;
a++;
}
}
}
/**
* Clear the queue.
*/
public void clear()
{
a = b = 0;
Arrays.fill(m, null);
}
/**
* Read the value ahead. 0 is the value that will be returned with
* the following next. This method does not remove values from the
* queue. To test if there is enough tokens in the queue, size() must
* be checked before calling this method.
*/
public Token get(int ahead)
{
int p = b + ahead;
if (p < a)
return m [ p ];
else
throw new ArrayIndexOutOfBoundsException("Not enough tokens");
}
/**
* Read the oldest value from the queue and remove this value from
* the queue.
*/
public Token next()
{
if (a == b)
throw new ArrayIndexOutOfBoundsException("queue empty");
Token r = m [ b ];
m [ b ] = null;
b++;
return r;
}
/**
* Size of the queue.
*/
public int size()
{
return a - b;
}
}

View file

@ -0,0 +1,374 @@
/* ReaderTokenizer.java -- splits the input char sequence int tokens.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
import java.io.IOException;
import java.io.Reader;
/**
* Reader splits the input char sequence into tokens.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class ReaderTokenizer
extends Constants
{
/**
* This is set to true each time the getNextToken is called.
* Used in preventing loops when all patterns refuse to accept
* the invalid input.
*/
protected boolean advanced;
/**
* If true, the returned tokens are also placed in the backup
* queue.
*/
protected boolean backupMode;
/**
* The buffer to read document into.
*/
Buffer buffer = new Buffer();
/**
* The queue for supporting mark().
*/
Queue backup = new Queue();
/**
* The queue of found tokens.
*/
Queue queue = new Queue();
/**
* The reader to read the document from.
*/
Reader reader;
/**
* Array of char tokens
*/
char[] charTokens;
/**
* Array of string tokens.
*/
String[] stringTokens;
/**
* The current reader position.
*/
int readerPosition = -1;
/**
* Creates a new ReaderTokenizer. The reset(...) method must be
* subsequently called to set the reader.
*/
public ReaderTokenizer()
{
}
/**
* Return the sequence, used to separate lines in the document.
* @return one of \n, \r or \r\n.
*/
public String getEndOfLineSequence()
{
return buffer.getEndOfLineSequence();
}
/**
* Get the next token.
* @return
*/
public Token getNextToken()
{
Token rt;
advanced = true;
try
{
if (queue.isEmpty())
read(1);
if (!queue.isEmpty())
rt = queue.next();
else
rt = new Token(EOF, new Location(readerPosition));
}
catch (IOException ex)
{
throw new ParseException("IO Exception", ex);
}
if (backupMode)
backup.add(rt);
return rt;
}
/**
* Get a token, lying the given number of tokens
* ahead. getToken(0) will return the same token,
* what would be returned by getNextToken().
* getToken(..) does change the current position
* in the input stream. If the end of stream is
* reached, the EOF token is always returned.
*/
public Token getTokenAhead(int ahead)
{
try
{
read(ahead - queue.size() + 1);
return queue.size() >= ahead ? queue.get(ahead) : eofToken();
}
catch (IOException ex)
{
throw new ParseException("IO Exception", ex);
}
}
/**
* Get a token, bein immediatley ahead.
* If the end of stream is
* reached, the EOF token is always returned.
* The method is equivalent calling getTokenAhead(0).
*/
public Token getTokenAhead()
{
try
{
if (queue.isEmpty())
read(1);
if (!queue.isEmpty())
return queue.get(0);
else
return eofToken();
}
catch (IOException ex)
{
throw new ParseException("IO Exception", ex);
}
}
/**
* Invokes the error handler.
*/
public void error(String msg, Token at)
{
System.out.println(msg);
}
/**
* Turns the backup mode on or off.
* It is possible to return where the mark(true) was last called
* by calling reset().
* @param mode True if it is required to save tokens, making
* returning to the current point possible.
*/
public void mark(boolean mode)
{
backup.clear();
backupMode = mode;
}
/**
* Prepare for new parsing from the given stream.
* @param a_reader A reader to parse from.
*/
public void reset(Reader a_reader)
{
reader = a_reader;
readerPosition = -1;
buffer.reset();
queue.clear();
}
/**
* Reset the internal cursor to the position where the mark()
* was last time called. Switches the backup mode off.
*/
public void reset()
{
if (!backupMode)
throw new AssertionError("Call mark(true) before using reset()!");
backupMode = false;
// That is now in the queue, will be appended to the end of backup.
while (!queue.isEmpty())
backup.add(queue.next());
Queue t = queue;
queue = backup;
backup = t;
backup.clear();
}
/**
* Read the given number of the tokens. Add the needed number of EOF
* tokens if there are no more data in the stream.
* @param amount The number of additional tokens to read.
*/
void read(int numberOfTokens)
throws IOException
{
if (numberOfTokens <= 0)
return;
reading:
for (int i = 0; i < numberOfTokens; i++)
readToken();
}
/**
* Read next token from the reader, add it to the queue
*/
void readToken()
throws IOException
{
Token t;
int ch;
enlarging:
while (true)
{
t = tokenMatches();
if (t != null)
break enlarging;
else
{
ch = reader.read();
readerPosition++;
if (ch == ETX)
ch = ' ';
if (ch < 0)
{
if (buffer.length() == 0)
{
queue.add(eofToken());
return;
}
else
{
if (buffer.charAt(buffer.length() - 1) != ETX)
buffer.append(ETX, readerPosition++);
else
{
// Discard terminating ETX
buffer.setLength(buffer.length() - 1);
if (buffer.length() > 0)
{
t = new Token(OTHER, buffer.toString(),
buffer.getLocation(0, buffer.length())
);
queue.add(t);
buffer.setLength(0);
}
return;
}
}
}
else
buffer.append((char) ch, readerPosition);
}
}
}
/**
* Check if the end of buffer matches one of the tokens. If it does,
* return this token and remove the token sequence from the end of
* buffer.
* @return The matching token.
*/
Token tokenMatches()
{
Token rt = endMatches(buffer);
if (rt != null) // Remove the matched image
{
// Consume future character if it was an entity and the future
// character is semicolon.
if (rt.kind == ENTITY)
{
if (buffer.charAt(buffer.length() - 1) == ';')
buffer.setLength(buffer.length() - rt.getImage().length() - 1);
else
{
error("Missing closing semicolon for entity '" + rt.getImage() +
"'", rt
);
consumeBuffer(rt);
}
}
else
{
consumeBuffer(rt);
}
}
// If the buffer is not empty, some sequence does not match any tokens.
// Add it to the queue as "OTHER".
if (rt != null)
{
if (buffer.length() > 1)
{
String rest = buffer.toString();
rest = rest.substring(0, rest.length() - 1);
Token other =
new Token(OTHER, rest, buffer.getLocation(0, buffer.length));
queue.add(other);
consumeBuffer(other);
}
queue.add(rt);
}
return rt;
}
private void consumeBuffer(Token rt)
{
buffer.delete(buffer.length() - rt.getImage().length() - 1,
buffer.length() - 1
);
}
/**
* Create EOF token.
*/
private Token eofToken()
{
return new Token(EOF, "#", new Location(readerPosition));
}
}

View file

@ -0,0 +1,169 @@
/* Token.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* A token.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class Token
{
/**
* The place of this token in the document.
*/
public Location where;
/**
* The additional category of token.
*/
public int category;
/**
* An integer that describes the kind of this token.
*/
public int kind;
/**
* The string image of the token, null if the char image must be used.
*/
private String stringImage;
/**
* The char image of the token.
*/
private char charImage;
/**
* Creates a new token with fields, initialized to the default values.
*/
public Token()
{
}
/**
* Creates a new token of the given kind.
*/
public Token(int _kind, Location _where)
{
kind = _kind;
where = _where;
}
/**
* Creates a new token of the given kind and given single char image.
*/
public Token(int _kind, char _image, Location _where)
{
kind = _kind;
charImage = _image;
where = _where;
}
/**
* Creates a new token of the given kind and given string image.
*/
public Token(int _kind, String _image, Location _where)
{
kind = _kind;
stringImage = _image;
where = _where;
}
/**
* Creates a new token of the given kind, category and given string image.
*/
public Token(int _kind, int _category, String _image, Location _where)
{
kind = _kind;
category = _category;
stringImage = _image;
where = _where;
}
/**
* Creates a new token, where location fields are set as for token,
* spanning over two provided tokens and any tokens between them.
* The image field is initialized to null, the kind field is set to -1.
*/
public Token(Token fromInclusive, Token toInclusive)
{
where = new Location();
where.beginLine = fromInclusive.where.beginLine;
where.startPosition = fromInclusive.where.startPosition;
where.endLine = toInclusive.where.endLine;
where.endPosition = toInclusive.where.endPosition;
}
public String getImage()
{
if (kind == 3)
return "#";
if (stringImage == null)
{
if (charImage == 0)
return null;
stringImage = new String(new char[] { charImage });
}
return stringImage;
}
/**
* Append the token image to the given string buffer.
* This may be more effective that buffer.append(this.getImage()).
* @param buffer A buffer to append.
*/
public void appendTo(StringBuffer buffer)
{
if (charImage == 0)
buffer.append(getImage());
else
buffer.append(charImage);
}
/**
* Returns the string image or, if null, the bounding positions.
*/
public String toString()
{
return getImage() != null ? kind + "'" + getImage()
: "<line " + where.beginLine + ", abs pos " + where.startPosition +
".." + where.endPosition + ">";
}
}

View file

@ -0,0 +1,78 @@
/* node.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* A text level content model node. The only required unary operations
* here are "appears" and "optionally appears" ('?').
* <p>@author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)</p>
*/
public class node
{
/**
* True for node that is optional for the given position.
*/
public boolean optional;
/**
* The kind of the token to match.
*/
public int kind;
/**
* Creates the new node for matching a given kind of the token.
* @param kind The kind of the token to match.
* @param modifier The modifier (*?+).
*/
public node(int kind, boolean _optional)
{
this.kind = kind;
optional = _optional;
}
/**
* Creates the node, indicating that token must match exactluy one time.
* @param kind The kind of token to match.
*/
public node(int kind)
{
this.kind = kind;
optional = false;
}
}

View file

@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- package.html - describes classes in javax.swing.text.html.parser package.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. -->
<html>
<head><title>GNU Classpath - gnu.javax.swing.text.html.parser.support.low</title></head>
<body>
<p>This package contains classes that are directly used to process
the text input: adapted stream tokenizer, specialized buffer and text-level content models .</p>
@author Audrius Meskauskas, Lithuania
</body>
</html>

View file

@ -0,0 +1,105 @@
/* pattern.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support.low;
/**
* The simple pattern, consisting from the sequence of tokens that
* may have the unary modifier '?'. Choices and grouping
* are not required here.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class pattern
{
/**
* The nodes of this pattern.
*/
public final node[] nodes;
/**
* Create a pattern, containing the given list of nodes.
* @param a_nodes
*/
public pattern(node[] a_nodes)
{
nodes = a_nodes;
}
/**
* Checks if the pattern can match the tokens in this
* tokenizer. Does not change the state of tokenizer.
* @param stream The tokenizer to read data from
* @return True if the pattern sequence matches the
* beginning of the tokenizer content.
*/
public boolean matches(ReaderTokenizer stream)
{
try
{
int pt = 0;
int pn = 0;
Token t;
node n;
while (pn < nodes.length)
{
n = nodes [ pn ];
t = stream.getTokenAhead(pt);
if (t.kind == n.kind)
{
pn++;
pt++;
}
else
{
if (!n.optional)
return false;
else
pn++;
}
}
return true;
}
catch (Exception ex)
{
throw new ParseException("Exception", ex);
}
}
}

View file

@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- package.html - describes classes in javax.swing.text.html.parser package.
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. -->
<html>
<head><title>GNU Classpath - gnu.javax.swing.text.html.parser.support</title></head>
<body>
<p>This package provides various specialised classes, needed by HTML parser.
</p>
@author Audrius Meskauskas, Lithuania
</body>
</html>

View file

@ -0,0 +1,106 @@
/* parameterDefaulter.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support;
import gnu.javax.swing.text.html.parser.htmlAttributeSet;
import java.util.Hashtable;
import javax.swing.text.html.parser.AttributeList;
import javax.swing.text.html.parser.DTD;
import javax.swing.text.html.parser.Element;
/**
* Returns an attribute set, containing default
* parameters for the given element. Caches sets of default
* parameters.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class parameterDefaulter
{
public final DTD dtd;
Hashtable sets = new Hashtable();
/**
* Create a parameterDefaulter that looks for the default attribute
* values in the given DTD.
* @param a_dtd
*/
public parameterDefaulter(DTD a_dtd)
{
dtd = a_dtd;
}
/**
* Get the default parameter set for the given element.
* @param element The element name (case insensitive).
* @return the default attrbute set.
*/
public htmlAttributeSet getDefaultParameters(String element)
{
String key = element.toLowerCase();
htmlAttributeSet atts = (htmlAttributeSet) sets.get(key);
if (atts == null)
{
htmlAttributeSet set = new htmlAttributeSet();
Element e = (Element) dtd.elementHash.get(element.toLowerCase());
if (e != null)
{
AttributeList a = e.getAttributes();
while (a != null)
{
if (a.value != null)
set.addAttribute(a.name, a.value);
a = a.next;
}
}
if (set.getAttributeCount() > 0)
sets.put(key, set);
else
sets.put(key, htmlAttributeSet.EMPTY_HTML_ATTRIBUTE_SET);
atts = set;
}
return atts;
}
}

View file

@ -0,0 +1,193 @@
/* textPreProcessor.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.javax.swing.text.html.parser.support;
import gnu.javax.swing.text.html.parser.support.low.Constants;
/**
* Pre - processes text in text parts of the html document.
* Not thread - safe.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class textPreProcessor
{
/**
* Pre - process non-preformatted text.
* \t, \r and \n mutate into spaces, then multiple spaces mutate
* into single one, all whitespace around tags is consumed.
* The content of the passed buffer is destroyed.
* @param text A text to pre-process.
*/
public char[] preprocess(StringBuffer a_text)
{
if (a_text.length() == 0)
return null;
char[] text = toCharArray(a_text);
int a = 0;
int b = text.length - 1;
try
{
while (Constants.bWHITESPACE.get(text [ a ]))
a++;
while (Constants.bWHITESPACE.get(text [ b ]))
b--;
}
catch (ArrayIndexOutOfBoundsException sx)
{
// A text fragment, consisting from line breaks only.
return null;
}
a_text.setLength(0);
boolean spacesWere = false;
boolean spaceNow;
char c;
chars:
for (int i = a; i <= b; i++)
{
c = text [ i ];
spaceNow = Constants.bWHITESPACE.get(c);
if (spacesWere && spaceNow)
continue chars;
if (spaceNow)
a_text.append(' ');
else
a_text.append(c);
spacesWere = spaceNow;
}
if (a_text.length() == text.length)
{
a_text.getChars(0, a_text.length(), text, 0);
return text;
}
else
return toCharArray(a_text);
}
/**
* Pre - process pre-formatted text.
* Heading/closing spaces and tabs preserved.
* ONE bounding \r, \n or \r\n is removed.
* \r or \r\n mutate into \n. Tabs are
* preserved.
* The content of the passed buffer is destroyed.
* @param text
* @return
*/
public char[] preprocessPreformatted(StringBuffer a_text)
{
if (a_text.length() == 0)
return null;
char[] text = toCharArray(a_text);
int a = 0;
int n = text.length - 1;
int b = n;
if (text [ 0 ] == '\n')
a++;
else
{
if (text [ 0 ] == '\r')
{
a++;
if (text.length > 1 && text [ 1 ] == '\n')
a++;
}
}
if (text [ n ] == '\r')
b--;
else
{
if (text [ n ] == '\n')
{
b--;
if (n > 0 && text [ n - 1 ] == '\r')
b--;
}
}
a_text.setLength(0);
if (a > b)
return null;
char c;
for (int i = a; i <= b; i++)
{
c = text [ i ];
if (c == '\r')
{
if (i == b || text [ i + 1 ] != '\n')
a_text.append('\n');
}
else
a_text.append(c);
}
if (a_text.length() == text.length)
{
a_text.getChars(0, a_text.length(), text, 0);
return text;
}
else
return toCharArray(a_text);
}
/**
* Return array of chars, present in the given buffer.
* @param a_text The buffer
* @return
*/
private static char[] toCharArray(StringBuffer a_text)
{
char[] text = new char[ a_text.length() ];
a_text.getChars(0, text.length, text, 0);
return text;
}
}

View file

@ -47,6 +47,7 @@ import org.w3c.dom.ls.LSInput;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSParser;
import org.w3c.dom.ls.LSSerializer;
import gnu.xml.dom.html2.DomHTMLImpl;
import gnu.xml.dom.ls.DomLSInput;
import gnu.xml.dom.ls.DomLSOutput;
import gnu.xml.dom.ls.DomLSParser;
@ -150,6 +151,12 @@ public class DomImpl
"".equals(version) ||
"3.0".equals(version));
}
else if ("html".equals(name) || "xhtml".equals(name))
{
return (version == null ||
"".equals(version) ||
"2.0".equals(version));
}
// views
// stylesheets
@ -199,7 +206,7 @@ public class DomImpl
String rootName,
DocumentType doctype)
{
Document doc = new DomDocument(this);
Document doc = createDocument();
Element root = null;
if (rootName != null)
@ -223,12 +230,22 @@ public class DomImpl
return doc;
}
protected Document createDocument()
{
return new DomDocument(this);
}
// DOM Level 3
public Object getFeature(String feature, String version)
{
if (hasFeature(feature, version))
{
if ("html".equalsIgnoreCase(feature) ||
"xhtml".equalsIgnoreCase(feature))
{
return new DomHTMLImpl();
}
return this;
}
return null;

View file

@ -0,0 +1,189 @@
/* DomHTMLAnchorElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLAnchorElement;
/**
* An HTML 'A' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLAnchorElement
extends DomHTMLElement
implements HTMLAnchorElement
{
protected DomHTMLAnchorElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public String getCharset()
{
return getHTMLAttribute("charset");
}
public void setCharset(String charset)
{
setHTMLAttribute("charset", charset);
}
public String getCoords()
{
return getHTMLAttribute("coords");
}
public void setCoords(String coords)
{
setHTMLAttribute("coords", coords);
}
public String getHref()
{
return getHTMLAttribute("href");
}
public void setHref(String href)
{
setHTMLAttribute("href", href);
}
public String getHreflang()
{
return getHTMLAttribute("hreflang");
}
public void setHreflang(String hreflang)
{
setHTMLAttribute("hreflang", hreflang);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getRel()
{
return getHTMLAttribute("rel");
}
public void setRel(String rel)
{
setHTMLAttribute("rel", rel);
}
public String getRev()
{
return getHTMLAttribute("rev");
}
public void setRev(String rev)
{
setHTMLAttribute("rev", rev);
}
public String getShape()
{
return getHTMLAttribute("shape");
}
public void setShape(String shape)
{
setHTMLAttribute("shape", shape);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getTarget()
{
return getHTMLAttribute("target");
}
public void setTarget(String target)
{
setHTMLAttribute("target", target);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
public void blur()
{
dispatchUIEvent("blur");
}
public void focus()
{
dispatchUIEvent("focus");
}
}

View file

@ -0,0 +1,169 @@
/* DomHTMLAppletElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLAppletElement;
/**
* An HTML 'APPLET' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLAppletElement
extends DomHTMLElement
implements HTMLAppletElement
{
protected DomHTMLAppletElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getAlt()
{
return getHTMLAttribute("alt");
}
public void setAlt(String alt)
{
setHTMLAttribute("alt", alt);
}
public String getArchive()
{
return getHTMLAttribute("archive");
}
public void setArchive(String archive)
{
setHTMLAttribute("archive", archive);
}
public String getCode()
{
return getHTMLAttribute("code");
}
public void setCode(String code)
{
setHTMLAttribute("code", code);
}
public String getCodeBase()
{
return getHTMLAttribute("codebase");
}
public void setCodeBase(String codeBase)
{
setHTMLAttribute("codebase", codeBase);
}
public String getHeight()
{
return getHTMLAttribute("height");
}
public void setHeight(String height)
{
setHTMLAttribute("height", height);
}
public int getHspace()
{
return getIntHTMLAttribute("hspace");
}
public void setHspace(int hspace)
{
setIntHTMLAttribute("hspace", hspace);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getObject()
{
return getHTMLAttribute("object");
}
public void setObject(String object)
{
setHTMLAttribute("object", object);
}
public int getVspace()
{
return getIntHTMLAttribute("vspace");
}
public void setVspace(int vspace)
{
setIntHTMLAttribute("vspace", vspace);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,139 @@
/* DomHTMLAreaElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLAreaElement;
/**
* An HTML 'AREA' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLAreaElement
extends DomHTMLElement
implements HTMLAreaElement
{
protected DomHTMLAreaElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public String getAlt()
{
return getHTMLAttribute("alt");
}
public void setAlt(String alt)
{
setHTMLAttribute("alt", alt);
}
public String getCoords()
{
return getHTMLAttribute("coords");
}
public void setCoords(String coords)
{
setHTMLAttribute("coords", coords);
}
public String getHref()
{
return getHTMLAttribute("href");
}
public void setHref(String href)
{
setHTMLAttribute("href", href);
}
public boolean getNoHref()
{
return getBooleanHTMLAttribute("nohref");
}
public void setNoHref(boolean nohref)
{
setBooleanHTMLAttribute("nohref", nohref);
}
public String getShape()
{
return getHTMLAttribute("shape");
}
public void setShape(String shape)
{
setHTMLAttribute("shape", shape);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getTarget()
{
return getHTMLAttribute("target");
}
public void setTarget(String target)
{
setHTMLAttribute("target", target);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLBRElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLBRElement;
/**
* An HTML 'BR' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLBRElement
extends DomHTMLElement
implements HTMLBRElement
{
protected DomHTMLBRElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getClear()
{
return getHTMLAttribute("clear");
}
public void setClear(String clear)
{
setHTMLAttribute("clear", clear);
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLBaseElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLBaseElement;
/**
* An HTML 'BASE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLBaseElement
extends DomHTMLElement
implements HTMLBaseElement
{
protected DomHTMLBaseElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getHref()
{
return getHTMLAttribute("href");
}
public void setHref(String href)
{
setHTMLAttribute("href", href);
}
public String getTarget()
{
return getHTMLAttribute("target");
}
public void setTarget(String target)
{
setHTMLAttribute("target", target);
}
}

View file

@ -0,0 +1,89 @@
/* DomHTMLBaseFontElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLBaseFontElement;
/**
* An HTML 'BASEFONT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLBaseFontElement
extends DomHTMLElement
implements HTMLBaseFontElement
{
protected DomHTMLBaseFontElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getColor()
{
return getHTMLAttribute("color");
}
public void setColor(String color)
{
setHTMLAttribute("color", color);
}
public String getFace()
{
return getHTMLAttribute("face");
}
public void setFace(String face)
{
setHTMLAttribute("face", face);
}
public int getSize()
{
return getIntHTMLAttribute("size");
}
public void setSize(int size)
{
setIntHTMLAttribute("size", size);
}
}

View file

@ -0,0 +1,119 @@
/* DomHTMLBodyElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLBodyElement;
/**
* An HTML 'BODY' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLBodyElement
extends DomHTMLElement
implements HTMLBodyElement
{
protected DomHTMLBodyElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getALink()
{
return getHTMLAttribute("alink");
}
public void setALink(String alink)
{
setHTMLAttribute("alink", alink);
}
public String getBackground()
{
return getHTMLAttribute("background");
}
public void setBackground(String background)
{
setHTMLAttribute("background", background);
}
public String getBgColor()
{
return getHTMLAttribute("bgcolor");
}
public void setBgColor(String bgcolor)
{
setHTMLAttribute("bgcolor", bgcolor);
}
public String getLink()
{
return getHTMLAttribute("link");
}
public void setLink(String link)
{
setHTMLAttribute("link", link);
}
public String getText()
{
return getHTMLAttribute("text");
}
public void setText(String text)
{
setHTMLAttribute("text", text);
}
public String getVLink()
{
return getHTMLAttribute("vlink");
}
public void setVLink(String vlink)
{
setHTMLAttribute("vlink", vlink);
}
}

View file

@ -0,0 +1,121 @@
/* DomHTMLButtonElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.Node;
import org.w3c.dom.html2.HTMLButtonElement;
import org.w3c.dom.html2.HTMLFormElement;
/**
* An HTML 'BUTTON' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLButtonElement
extends DomHTMLElement
implements HTMLButtonElement
{
protected DomHTMLButtonElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getType()
{
return getHTMLAttribute("type");
}
public String getValue()
{
return getHTMLAttribute("value");
}
public void setValue(String value)
{
setHTMLAttribute("value", value);
}
}

View file

@ -0,0 +1,218 @@
/* DomHTMLCollection.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import gnu.xml.dom.DomElement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLOptionsCollection;
import org.w3c.dom.traversal.NodeFilter;
import org.w3c.dom.traversal.NodeIterator;
/**
* An HTML element collection.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
class DomHTMLCollection
implements HTMLCollection, HTMLOptionsCollection, NodeList, NodeFilter
{
final DomHTMLDocument doc;
final Node root;
List nodeNames;
List attributeNames;
List results;
DomHTMLCollection(DomHTMLDocument doc, Node root)
{
this.doc = doc;
this.root = root;
}
// -- Node name and attribute filtering --
void addNodeName(String name)
{
if (nodeNames == null)
{
nodeNames = new LinkedList();
}
nodeNames.add(name);
}
void addAttributeName(String name)
{
if (attributeNames == null)
{
attributeNames = new LinkedList();
}
attributeNames.add(name);
}
public short acceptNode(Node n)
{
if (n.getNodeType() != Node.ELEMENT_NODE)
{
return NodeFilter.FILTER_SKIP;
}
if (nodeNames != null && !acceptName(n.getLocalName()))
{
return NodeFilter.FILTER_SKIP;
}
if (attributeNames != null && !acceptAttributes(n.getAttributes()))
{
return NodeFilter.FILTER_SKIP;
}
return NodeFilter.FILTER_ACCEPT;
}
private boolean acceptName(String name)
{
for (Iterator i = nodeNames.iterator(); i.hasNext(); )
{
String nodeName = (String) i.next();
if (nodeName.equalsIgnoreCase(name))
{
return true;
}
}
return false;
}
private boolean acceptAttributes(NamedNodeMap attrs)
{
for (Iterator i = attributeNames.iterator(); i.hasNext(); )
{
String attributeName = (String) i.next();
Node attr = getNamedItem(attrs, attributeName);
if (attr != null)
{
// Check that attribute has a non-null value
String nodeValue = attr.getNodeValue();
if (nodeValue != null && nodeValue.length() > 0)
{
return true;
}
}
}
return false;
}
/**
* Case-insensitive version of getNamedItem.
*/
private Node getNamedItem(NamedNodeMap attrs, String name)
{
int len = attrs.getLength();
for (int i = 0; i < len; i++)
{
Node attr = attrs.item(i);
String attrName = attr.getLocalName();
if (name.equalsIgnoreCase(attrName))
{
return attr;
}
}
return null;
}
// -- Perform query --
void evaluate()
{
NodeIterator i = doc.createNodeIterator(root, NodeFilter.SHOW_ELEMENT,
this, true);
results = new ArrayList();
for (Node node = i.nextNode(); node != null; node = i.nextNode())
{
results.add(node);
}
}
// -- HTMLCollection/NodeList interface --
public int getLength()
{
return results.size();
}
public void setLength(int length)
{
throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
public Node item(int index)
{
return (Node) results.get(index);
}
public Node namedItem(String name)
{
boolean xhtml = false; // FIXME detect XHTML document
for (Iterator i = results.iterator(); i.hasNext(); )
{
Node node = (Node) i.next();
NamedNodeMap attrs = node.getAttributes();
Node attr = getNamedItem(attrs, "id");
if (name.equals(attr.getTextContent()))
{
return node;
}
if (!xhtml)
{
attr = getNamedItem(attrs, "name");
if (name.equals(attr.getTextContent()))
{
return node;
}
}
}
return null;
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLDListElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLDListElement;
/**
* An HTML 'DL' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLDListElement
extends DomHTMLElement
implements HTMLDListElement
{
protected DomHTMLDListElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getCompact()
{
return getBooleanHTMLAttribute("compact");
}
public void setCompact(boolean compact)
{
setBooleanHTMLAttribute("compact", compact);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLDirectoryElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLDirectoryElement;
/**
* An HTML 'DIR' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLDirectoryElement
extends DomHTMLElement
implements HTMLDirectoryElement
{
protected DomHTMLDirectoryElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getCompact()
{
return getBooleanHTMLAttribute("compact");
}
public void setCompact(boolean compact)
{
setBooleanHTMLAttribute("compact", compact);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLDivElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLDivElement;
/**
* An HTML 'DIV' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLDivElement
extends DomHTMLElement
implements HTMLDivElement
{
protected DomHTMLDivElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
}

View file

@ -0,0 +1,425 @@
/* DomHTMLDocument.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDocument;
import gnu.xml.dom.DomDOMException;
import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLDocument;
import org.w3c.dom.html2.HTMLElement;
/**
* An HTML document.
* This is the factory object used to create HTML elements.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLDocument
extends DomDocument
implements HTMLDocument
{
private static final Class[] ELEMENT_PT = new Class[] {
DomHTMLDocument.class,
String.class,
String.class
};
private static Map ELEMENT_CLASSES;
static
{
Map map = new HashMap();
map.put("a", DomHTMLAnchorElement.class);
map.put("applet", DomHTMLAppletElement.class);
map.put("area", DomHTMLAreaElement.class);
map.put("base", DomHTMLBaseElement.class);
map.put("basefont", DomHTMLBaseFontElement.class);
map.put("body", DomHTMLBodyElement.class);
map.put("br", DomHTMLBRElement.class);
map.put("button", DomHTMLButtonElement.class);
map.put("dir", DomHTMLDirectoryElement.class);
map.put("div", DomHTMLDivElement.class);
map.put("dlist", DomHTMLDListElement.class);
map.put("fieldset", DomHTMLFieldSetElement.class);
map.put("font", DomHTMLFontElement.class);
map.put("form", DomHTMLFormElement.class);
map.put("frame", DomHTMLFrameElement.class);
map.put("frameset", DomHTMLFrameSetElement.class);
map.put("head", DomHTMLHeadElement.class);
map.put("h1", DomHTMLHeadingElement.class);
map.put("h2", DomHTMLHeadingElement.class);
map.put("h3", DomHTMLHeadingElement.class);
map.put("h4", DomHTMLHeadingElement.class);
map.put("h5", DomHTMLHeadingElement.class);
map.put("h6", DomHTMLHeadingElement.class);
map.put("html", DomHTMLHtmlElement.class);
map.put("iframe", DomHTMLIFrameElement.class);
map.put("img", DomHTMLImageElement.class);
map.put("input", DomHTMLInputElement.class);
map.put("isindex", DomHTMLIsIndexElement.class);
map.put("label", DomHTMLLabelElement.class);
map.put("legend", DomHTMLLegendElement.class);
map.put("li", DomHTMLLIElement.class);
map.put("link", DomHTMLLinkElement.class);
map.put("map", DomHTMLMapElement.class);
map.put("menu", DomHTMLMenuElement.class);
map.put("meta", DomHTMLMetaElement.class);
map.put("ins", DomHTMLModElement.class);
map.put("del", DomHTMLModElement.class);
map.put("object", DomHTMLObjectElement.class);
map.put("ol", DomHTMLOListElement.class);
map.put("optgroup", DomHTMLOptGroupElement.class);
map.put("option", DomHTMLOptionElement.class);
map.put("p", DomHTMLParagraphElement.class);
map.put("param", DomHTMLParamElement.class);
map.put("pre", DomHTMLPreElement.class);
map.put("q", DomHTMLQuoteElement.class);
map.put("blockquote", DomHTMLQuoteElement.class);
map.put("script", DomHTMLScriptElement.class);
map.put("select", DomHTMLSelectElement.class);
map.put("style", DomHTMLStyleElement.class);
map.put("caption", DomHTMLTableCaptionElement.class);
map.put("th", DomHTMLTableCellElement.class);
map.put("td", DomHTMLTableCellElement.class);
map.put("col", DomHTMLTableColElement.class);
map.put("colgroup", DomHTMLTableColElement.class);
map.put("table", DomHTMLTableElement.class);
map.put("tr", DomHTMLTableRowElement.class);
map.put("thead", DomHTMLTableSectionElement.class);
map.put("tfoot", DomHTMLTableSectionElement.class);
map.put("tbody", DomHTMLTableSectionElement.class);
map.put("textarea", DomHTMLTextAreaElement.class);
map.put("title", DomHTMLTitleElement.class);
map.put("ul", DomHTMLUListElement.class);
ELEMENT_CLASSES = Collections.unmodifiableMap(map);
}
private static Set HTML_NS_URIS;
static
{
Set set = new HashSet();
set.add("http://www.w3.org/TR/html4/strict");
set.add("http://www.w3.org/TR/html4/loose");
set.add("http://www.w3.org/TR/html4/frameset");
set.add("http://www.w3.org/1999/xhtml");
set.add("http://www.w3.org/TR/xhtml1/strict");
set.add("http://www.w3.org/TR/xhtml1/loose");
set.add("http://www.w3.org/TR/xhtml1/frameset");
HTML_NS_URIS = Collections.unmodifiableSet(set);
}
/**
* Convenience constructor.
*/
public DomHTMLDocument()
{
this(new DomHTMLImpl());
}
/**
* Constructor.
* This is called by the DOMImplementation.
*/
public DomHTMLDocument(DomHTMLImpl impl)
{
super(impl);
}
private Node getChildNodeByName(Node parent, String name)
{
for (Node ctx = parent.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (name.equalsIgnoreCase(ctx.getNodeName()))
{
return ctx;
}
}
return null;
}
public String getTitle()
{
Node html = getDocumentElement();
if (html != null)
{
Node head = getChildNodeByName(html, "head");
if (head != null)
{
Node title = getChildNodeByName(head, "title");
if (title != null)
{
return title.getTextContent();
}
}
}
return null;
}
public void setTitle(String title)
{
Node html = getDocumentElement();
if (html == null)
{
html = createElement("html");
appendChild(html);
}
Node head = getChildNodeByName(html, "head");
if (head == null)
{
head = createElement("head");
Node first = html.getFirstChild();
if (first != null)
{
html.insertBefore(first, head);
}
else
{
html.appendChild(head);
}
}
Node titleNode = getChildNodeByName(head, "title");
if (titleNode == null)
{
titleNode = createElement("title");
Node first = head.getFirstChild();
if (first != null)
{
head.insertBefore(first, titleNode);
}
else
{
head.appendChild(titleNode);
}
}
titleNode.setTextContent(title);
}
public String getReferrer()
{
// TODO getReferrer
return null;
}
public String getDomain()
{
try
{
URL url = new URL(getDocumentURI());
return url.getHost();
}
catch (MalformedURLException e)
{
return null;
}
}
public String getURL()
{
return getDocumentURI();
}
public HTMLElement getBody()
{
Node html = getDocumentElement();
if (html != null)
{
Node body = getChildNodeByName(html, "body");
if (body == null)
{
body = getChildNodeByName(html, "frameset");
}
return (HTMLElement) body;
}
return null;
}
public void setBody(HTMLElement body)
{
Node html = getDocumentElement();
if (html == null)
{
html = createElement("html");
appendChild(html);
}
Node ref = getBody();
if (ref == null)
{
html.appendChild(body);
}
else
{
html.replaceChild(body, ref);
}
}
public HTMLCollection getImages()
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName("img");
ret.evaluate();
return ret;
}
public HTMLCollection getApplets()
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName("object");
ret.addNodeName("applet");
ret.evaluate();
return ret;
}
public HTMLCollection getLinks()
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName("area");
ret.addNodeName("a");
ret.evaluate();
return ret;
}
public HTMLCollection getForms()
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName("form");
ret.evaluate();
return ret;
}
public HTMLCollection getAnchors()
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName("a");
ret.addAttributeName("name");
ret.evaluate();
return ret;
}
public String getCookie()
{
// TODO getCookie
return null;
}
public void setCookie(String cookie)
{
// TODO setCookie
}
public void open()
{
// TODO open
}
public void close()
{
// TODO close
}
public void write(String text)
{
// TODO write
}
public void writeln(String text)
{
// TODO write
}
public NodeList getElementsByName(String name)
{
DomHTMLCollection ret = new DomHTMLCollection(this, this);
ret.addNodeName(name);
ret.evaluate();
return ret;
// TODO xhtml: return only form controls (?)
}
public Element createElement(String tagName)
{
return createElementNS(null, tagName);
}
public Element createElementNS(String uri, String qName)
{
/* If a non-HTML element, use the default implementation. */
if (uri != null && !HTML_NS_URIS.contains(uri))
{
return super.createElementNS(uri, qName);
}
String localName = qName.toLowerCase();
int ci = qName.indexOf(':');
if (ci != -1)
{
localName = qName.substring(ci + 1);
}
Class t = (Class) ELEMENT_CLASSES.get(localName);
/* If a non-HTML element, use the default implementation. */
if (t == null)
{
return super.createElementNS(uri, qName);
}
try
{
Constructor c = t.getDeclaredConstructor(ELEMENT_PT);
Object[] args = new Object[] { this, uri, qName };
return (Element) c.newInstance(args);
}
catch (Exception e)
{
DOMException e2 = new DomDOMException(DOMException.TYPE_MISMATCH_ERR);
e2.initCause(e);
throw e2;
}
}
}

View file

@ -0,0 +1,269 @@
/* DomHTMLElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import gnu.xml.dom.DomElement;
import gnu.xml.dom.DomEvent;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.events.UIEvent;
import org.w3c.dom.html2.HTMLElement;
/**
* Abstract implementation of an HTML element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public abstract class DomHTMLElement
extends DomElement
implements HTMLElement
{
protected DomHTMLElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
/**
* Returns the value of the specified attribute.
* The attribute name is case insensitive.
*/
protected String getHTMLAttribute(String name)
{
if (hasAttributes())
{
NamedNodeMap attrs = getAttributes();
int len = attrs.getLength();
for (int i = 0; i < len; i++)
{
Node attr = attrs.item(i);
String attrName = attr.getLocalName();
if (attrName.equalsIgnoreCase(name))
{
return attr.getNodeValue();
}
}
}
return "";
}
protected int getIntHTMLAttribute(String name)
{
String value = getHTMLAttribute(name);
if (value == null)
{
return -1;
}
try
{
return Integer.parseInt(value);
}
catch (NumberFormatException e)
{
return -1;
}
}
protected boolean getBooleanHTMLAttribute(String name)
{
String value = getHTMLAttribute(name);
return value != null;
}
/**
* Sets the value of the specified attribute.
* The attribute name is case insensitive.
*/
protected void setHTMLAttribute(String name, String value)
{
Node attr;
NamedNodeMap attrs = getAttributes();
int len = attrs.getLength();
for (int i = 0; i < len; i++)
{
attr = attrs.item(i);
String attrName = attr.getLocalName();
if (attrName.equalsIgnoreCase(name))
{
if (value != null)
{
attr.setNodeValue(value);
}
else
{
attrs.removeNamedItem(attr.getNodeName());
}
return;
}
}
if (value != null)
{
// Create a new attribute
DomHTMLDocument doc = (DomHTMLDocument) getOwnerDocument();
// XXX namespace URI for attribute?
attr = doc.createAttribute(name);
attr.setNodeValue(value);
}
}
protected void setIntHTMLAttribute(String name, int value)
{
setHTMLAttribute(name, Integer.toString(value));
}
protected void setBooleanHTMLAttribute(String name, boolean value)
{
setHTMLAttribute(name, value ? name : null);
}
/**
* Returns the first parent element with the specified name.
*/
protected Node getParentElement(String name)
{
for (Node parent = getParentNode(); parent != null;
parent = parent.getParentNode())
{
if (name.equalsIgnoreCase(parent.getLocalName()))
{
return parent;
}
}
return null;
}
/**
* Returns the first child element with the specified name.
*/
protected Node getChildElement(String name)
{
for (Node child = getFirstChild(); child != null;
child = child.getNextSibling())
{
if (name.equalsIgnoreCase(child.getLocalName()))
{
return child;
}
}
return null;
}
/**
* Returns the index of this element among elements of the same name,
* relative to its parent.
*/
protected int getIndex()
{
int index = 0;
Node parent = getParentNode();
if (parent != null)
{
for (Node ctx = parent.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (ctx == this)
{
return index;
}
index++;
}
}
throw new DomDOMException(DOMException.NOT_FOUND_ERR);
}
protected void dispatchUIEvent(String name)
{
UIEvent event = new DomEvent.DomUIEvent(name);
dispatchEvent(event);
}
public String getId()
{
return getHTMLAttribute("id");
}
public void setId(String id)
{
setHTMLAttribute("id", id);
}
public String getTitle()
{
return getHTMLAttribute("title");
}
public void setTitle(String title)
{
setHTMLAttribute("title", title);
}
public String getLang()
{
return getHTMLAttribute("lang");
}
public void setLang(String lang)
{
setHTMLAttribute("lang", lang);
}
public String getDir()
{
return getHTMLAttribute("dir");
}
public void setDir(String dir)
{
setHTMLAttribute("dir", dir);
}
public String getClassName()
{
return getHTMLAttribute("class");
}
public void setClassName(String className)
{
setHTMLAttribute("class", className);
}
}

View file

@ -0,0 +1,65 @@
/* DomHTMLFieldSetElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFieldSetElement;
import org.w3c.dom.html2.HTMLFormElement;
/**
* An HTML 'FIELDSET' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLFieldSetElement
extends DomHTMLElement
implements HTMLFieldSetElement
{
protected DomHTMLFieldSetElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
}

View file

@ -0,0 +1,89 @@
/* DomHTMLFontElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFontElement;
/**
* An HTML 'FONT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLFontElement
extends DomHTMLElement
implements HTMLFontElement
{
protected DomHTMLFontElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getColor()
{
return getHTMLAttribute("color");
}
public void setColor(String color)
{
setHTMLAttribute("color", color);
}
public String getFace()
{
return getHTMLAttribute("face");
}
public void setFace(String face)
{
setHTMLAttribute("face", face);
}
public String getSize()
{
return getHTMLAttribute("size");
}
public void setSize(String size)
{
setHTMLAttribute("size", size);
}
}

View file

@ -0,0 +1,150 @@
/* DomHTMLFormElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLFormElement;
/**
* An HTML 'FORM' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLFormElement
extends DomHTMLElement
implements HTMLFormElement
{
protected DomHTMLFormElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLCollection getElements()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("input");
ret.addNodeName("button");
ret.addNodeName("select");
ret.addNodeName("textarea");
ret.addNodeName("isindex");
ret.addNodeName("label");
ret.addNodeName("option");
ret.evaluate();
return ret;
}
public int getLength()
{
return getElements().getLength();
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getAcceptCharset()
{
return getHTMLAttribute("accept-charset");
}
public void setAcceptCharset(String acceptCharset)
{
setHTMLAttribute("accept-charset", acceptCharset);
}
public String getAction()
{
return getHTMLAttribute("action");
}
public void setAction(String action)
{
setHTMLAttribute("action", action);
}
public String getEnctype()
{
return getHTMLAttribute("enctype");
}
public void setEnctype(String enctype)
{
setHTMLAttribute("enctype", enctype);
}
public String getMethod()
{
return getHTMLAttribute("method");
}
public void setMethod(String method)
{
setHTMLAttribute("method", method);
}
public String getTarget()
{
return getHTMLAttribute("target");
}
public void setTarget(String target)
{
setHTMLAttribute("target", target);
}
public void submit()
{
dispatchUIEvent("submit");
}
public void reset()
{
dispatchUIEvent("reset");
}
}

View file

@ -0,0 +1,146 @@
/* DomHTMLFrameElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.Document;
import org.w3c.dom.html2.HTMLFrameElement;
/**
* An HTML 'FRAME' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLFrameElement
extends DomHTMLElement
implements HTMLFrameElement
{
protected DomHTMLFrameElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getFrameBorder()
{
return getHTMLAttribute("frameborder");
}
public void setFrameBorder(String frameBorder)
{
setHTMLAttribute("frameborder", frameBorder);
}
public String getLongDesc()
{
return getHTMLAttribute("longdesc");
}
public void setLongDesc(String longDesc)
{
setHTMLAttribute("longdesc", longDesc);
}
public String getMarginHeight()
{
return getHTMLAttribute("marginheight");
}
public void setMarginHeight(String marginHeight)
{
setHTMLAttribute("marginheight", marginHeight);
}
public String getMarginWidth()
{
return getHTMLAttribute("marginwidth");
}
public void setMarginWidth(String marginWidth)
{
setHTMLAttribute("marginwidth", marginWidth);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public boolean getNoResize()
{
return getBooleanHTMLAttribute("noresize");
}
public void setNoResize(boolean noResize)
{
setBooleanHTMLAttribute("noresize", noResize);
}
public String getScrolling()
{
return getHTMLAttribute("scrolling");
}
public void setScrolling(String scrolling)
{
setHTMLAttribute("scrolling", scrolling);
}
public String getSrc()
{
return getHTMLAttribute("src");
}
public void setSrc(String src)
{
setHTMLAttribute("src", src);
}
public Document getContentDocument()
{
// TODO getContentDocument
return null;
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLFrameSetElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFrameSetElement;
/**
* An HTML 'FRAMESET' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLFrameSetElement
extends DomHTMLElement
implements HTMLFrameSetElement
{
protected DomHTMLFrameSetElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getCols()
{
return getHTMLAttribute("cols");
}
public void setCols(String cols)
{
setHTMLAttribute("cols", cols);
}
public String getRows()
{
return getHTMLAttribute("rows");
}
public void setRows(String rows)
{
setHTMLAttribute("rows", rows);
}
}

View file

@ -0,0 +1,99 @@
/* DomHTMLHRElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLHRElement;
/**
* An HTML 'HR' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLHRElement
extends DomHTMLElement
implements HTMLHRElement
{
protected DomHTMLHRElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public boolean getNoShade()
{
return getBooleanHTMLAttribute("noshade");
}
public void setNoShade(boolean noShade)
{
setBooleanHTMLAttribute("noshade", noShade);
}
public String getSize()
{
return getHTMLAttribute("size");
}
public void setSize(String size)
{
setHTMLAttribute("size", size);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLHeadElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLHeadElement;
/**
* An HTML 'HEAD' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLHeadElement
extends DomHTMLElement
implements HTMLHeadElement
{
protected DomHTMLHeadElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getProfile()
{
return getHTMLAttribute("profile");
}
public void setProfile(String profile)
{
setHTMLAttribute("profile", profile);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLHeadingElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLHeadingElement;
/**
* An HTML 'H1', 'H2', 'H3', 'H4', 'H5', or 'H6' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLHeadingElement
extends DomHTMLElement
implements HTMLHeadingElement
{
protected DomHTMLHeadingElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLHtmlElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLHtmlElement;
/**
* An HTML 'HTML' top-level element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLHtmlElement
extends DomHTMLElement
implements HTMLHtmlElement
{
protected DomHTMLHtmlElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getVersion()
{
return getHTMLAttribute("version");
}
public void setVersion(String version)
{
setHTMLAttribute("version", version);
}
}

View file

@ -0,0 +1,166 @@
/* DomHTMLIFrameElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.Document;
import org.w3c.dom.html2.HTMLIFrameElement;
/**
* An HTML 'IFRAME' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLIFrameElement
extends DomHTMLElement
implements HTMLIFrameElement
{
protected DomHTMLIFrameElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getFrameBorder()
{
return getHTMLAttribute("frameborder");
}
public void setFrameBorder(String frameBorder)
{
setHTMLAttribute("frameborder", frameBorder);
}
public String getHeight()
{
return getHTMLAttribute("height");
}
public void setHeight(String height)
{
setHTMLAttribute("height", height);
}
public String getLongDesc()
{
return getHTMLAttribute("longdesc");
}
public void setLongDesc(String longDesc)
{
setHTMLAttribute("longdesc", longDesc);
}
public String getMarginHeight()
{
return getHTMLAttribute("marginheight");
}
public void setMarginHeight(String marginHeight)
{
setHTMLAttribute("marginheight", marginHeight);
}
public String getMarginWidth()
{
return getHTMLAttribute("marginwidth");
}
public void setMarginWidth(String marginWidth)
{
setHTMLAttribute("marginwidth", marginWidth);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getScrolling()
{
return getHTMLAttribute("scrolling");
}
public void setScrolling(String scrolling)
{
setHTMLAttribute("scrolling", scrolling);
}
public String getSrc()
{
return getHTMLAttribute("src");
}
public void setSrc(String src)
{
setHTMLAttribute("src", src);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
public Document getContentDocument()
{
// TODO getContentDocument
return null;
}
}

View file

@ -0,0 +1,179 @@
/* DomHTMLImageElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLImageElement;
/**
* An HTML 'IMG' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLImageElement
extends DomHTMLElement
implements HTMLImageElement
{
protected DomHTMLImageElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getAlt()
{
return getHTMLAttribute("alt");
}
public void setAlt(String alt)
{
setHTMLAttribute("alt", alt);
}
public String getBorder()
{
return getHTMLAttribute("border");
}
public void setBorder(String border)
{
setHTMLAttribute("border", border);
}
public int getHeight()
{
return getIntHTMLAttribute("height");
}
public void setHeight(int height)
{
setIntHTMLAttribute("height", height);
}
public int getHspace()
{
return getIntHTMLAttribute("hspace");
}
public void setHspace(int hspace)
{
setIntHTMLAttribute("hspace", hspace);
}
public boolean getIsMap()
{
return getBooleanHTMLAttribute("ismap");
}
public void setIsMap(boolean isMap)
{
setBooleanHTMLAttribute("ismap", isMap);
}
public String getLongDesc()
{
return getHTMLAttribute("longdesc");
}
public void setLongDesc(String longDesc)
{
setHTMLAttribute("longdesc", longDesc);
}
public String getSrc()
{
return getHTMLAttribute("src");
}
public void setSrc(String src)
{
setHTMLAttribute("src", src);
}
public String getUseMap()
{
return getHTMLAttribute("usemap");
}
public void setUseMap(String useMap)
{
setHTMLAttribute("usemap", useMap);
}
public int getVspace()
{
return getIntHTMLAttribute("vspace");
}
public void setVspace(int vspace)
{
setIntHTMLAttribute("vspace", vspace);
}
public int getWidth()
{
return getIntHTMLAttribute("width");
}
public void setWidth(int width)
{
setIntHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,67 @@
/* DomHTMLImpl.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomImpl;
import org.w3c.dom.Document;
/**
* Specialised DOMImplementation for creating HTML documents.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLImpl
extends DomImpl
{
protected Document createDocument()
{
return new DomHTMLDocument(this);
}
public Object getFeature(String feature, String version)
{
if (hasFeature(feature, version))
{
return this;
}
return null;
}
}

View file

@ -0,0 +1,266 @@
/* DomHTMLInputElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLInputElement;
/**
* An HTML 'INPUT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLInputElement
extends DomHTMLElement
implements HTMLInputElement
{
protected String value;
protected Boolean checked;
protected DomHTMLInputElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getDefaultValue()
{
return getHTMLAttribute("value");
}
public void setDefaultValue(String defaultValue)
{
setHTMLAttribute("value", defaultValue);
}
public boolean getDefaultChecked()
{
return getBooleanHTMLAttribute("checked");
}
public void setDefaultChecked(boolean defaultChecked)
{
setBooleanHTMLAttribute("checked", defaultChecked);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getAccept()
{
return getHTMLAttribute("accept");
}
public void setAccept(String accept)
{
setHTMLAttribute("accept", accept);
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getAlt()
{
return getHTMLAttribute("alt");
}
public void setAlt(String alt)
{
setHTMLAttribute("alt", alt);
}
public boolean getChecked()
{
if (checked == null)
{
checked = Boolean.valueOf(getDefaultChecked());
}
return checked.booleanValue();
}
public void setChecked(boolean checked)
{
this.checked = Boolean.valueOf(checked);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public int getMaxLength()
{
return getIntHTMLAttribute("maxLength");
}
public void setMaxLength(int maxLength)
{
setIntHTMLAttribute("maxLength", maxLength);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public boolean getReadOnly()
{
return getBooleanHTMLAttribute("readonly");
}
public void setReadOnly(boolean readOnly)
{
setBooleanHTMLAttribute("readonly", readOnly);
}
public int getSize()
{
return getIntHTMLAttribute("size");
}
public void setSize(int size)
{
setIntHTMLAttribute("size", size);
}
public String getSrc()
{
return getHTMLAttribute("src");
}
public void setSrc(String src)
{
setHTMLAttribute("src", src);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
public String getUseMap()
{
return getHTMLAttribute("usemap");
}
public void setUseMap(String useMap)
{
setHTMLAttribute("usemap", useMap);
}
public String getValue()
{
if (value == null)
{
value = getDefaultValue();
}
return value;
}
public void setValue(String value)
{
this.value = value;
}
public void blur()
{
dispatchUIEvent("blur");
}
public void focus()
{
dispatchUIEvent("focus");
}
public void select()
{
dispatchUIEvent("select");
}
public void click()
{
dispatchUIEvent("click");
}
}

View file

@ -0,0 +1,75 @@
/* DomHTMLIsIndexElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLIsIndexElement;
/**
* An HTML 'ISINDEX' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLIsIndexElement
extends DomHTMLElement
implements HTMLIsIndexElement
{
protected DomHTMLIsIndexElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getPrompt()
{
return getHTMLAttribute("prompt");
}
public void setPrompt(String prompt)
{
setHTMLAttribute("prompt", prompt);
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLLIElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLLIElement;
/**
* An HTML 'LI' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLLIElement
extends DomHTMLElement
implements HTMLLIElement
{
protected DomHTMLLIElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
public int getValue()
{
return getIntHTMLAttribute("value");
}
public void setValue(int value)
{
setIntHTMLAttribute("value", value);
}
}

View file

@ -0,0 +1,85 @@
/* DomHTMLLabelElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLLabelElement;
/**
* An HTML 'LABEL' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLLabelElement
extends DomHTMLElement
implements HTMLLabelElement
{
protected DomHTMLLabelElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public String getHtmlFor()
{
return getHTMLAttribute("for");
}
public void setHtmlFor(String htmlFor)
{
setHTMLAttribute("for", htmlFor);
}
}

View file

@ -0,0 +1,85 @@
/* DomHTMLLegendElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLLegendElement;
/**
* An HTML 'LEGEND' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLLegendElement
extends DomHTMLElement
implements HTMLLegendElement
{
protected DomHTMLLegendElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
}

View file

@ -0,0 +1,149 @@
/* DomHTMLLinkElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLLinkElement;
/**
* An HTML 'LINK' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLLinkElement
extends DomHTMLElement
implements HTMLLinkElement
{
protected DomHTMLLinkElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getCharset()
{
return getHTMLAttribute("charset");
}
public void setCharset(String charset)
{
setHTMLAttribute("charset", charset);
}
public String getHref()
{
return getHTMLAttribute("href");
}
public void setHref(String href)
{
setHTMLAttribute("href", href);
}
public String getHreflang()
{
return getHTMLAttribute("hreflang");
}
public void setHreflang(String hreflang)
{
setHTMLAttribute("hreflang", hreflang);
}
public String getMedia()
{
return getHTMLAttribute("media");
}
public void setMedia(String media)
{
setHTMLAttribute("media", media);
}
public String getRel()
{
return getHTMLAttribute("rel");
}
public void setRel(String rel)
{
setHTMLAttribute("rel", rel);
}
public String getRev()
{
return getHTMLAttribute("rev");
}
public void setRev(String rev)
{
setHTMLAttribute("rev", rev);
}
public String getTarget()
{
return getHTMLAttribute("target");
}
public void setTarget(String target)
{
setHTMLAttribute("target", target);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLMapElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLMapElement;
/**
* An HTML 'MAP' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLMapElement
extends DomHTMLElement
implements HTMLMapElement
{
protected DomHTMLMapElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLCollection getAreas()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("area");
ret.evaluate();
return ret;
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLMenuElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLMenuElement;
/**
* An HTML 'MENU' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLMenuElement
extends DomHTMLElement
implements HTMLMenuElement
{
protected DomHTMLMenuElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getCompact()
{
return getBooleanHTMLAttribute("compact");
}
public void setCompact(boolean compact)
{
setBooleanHTMLAttribute("compact", compact);
}
}

View file

@ -0,0 +1,99 @@
/* DomHTMLMetaElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLMetaElement;
/**
* An HTML 'META' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLMetaElement
extends DomHTMLElement
implements HTMLMetaElement
{
protected DomHTMLMetaElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getContent()
{
return getHTMLAttribute("content");
}
public void setContent(String content)
{
setHTMLAttribute("content", content);
}
public String getHttpEquiv()
{
return getHTMLAttribute("http-equiv");
}
public void setHttpEquiv(String httpEquiv)
{
setHTMLAttribute("http-equiv", httpEquiv);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getScheme()
{
return getHTMLAttribute("scheme");
}
public void setScheme(String scheme)
{
setHTMLAttribute("scheme", scheme);
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLModElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLModElement;
/**
* An HTML 'INS' or 'DEL' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLModElement
extends DomHTMLElement
implements HTMLModElement
{
protected DomHTMLModElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getCite()
{
return getHTMLAttribute("cite");
}
public void setCite(String cite)
{
setHTMLAttribute("cite", cite);
}
public String getDateTime()
{
return getHTMLAttribute("datetime");
}
public void setDateTime(String dateTime)
{
setHTMLAttribute("datetime", dateTime);
}
}

View file

@ -0,0 +1,89 @@
/* DomHTMLOListElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLOListElement;
/**
* An HTML 'OL' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLOListElement
extends DomHTMLElement
implements HTMLOListElement
{
protected DomHTMLOListElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getCompact()
{
return getBooleanHTMLAttribute("compact");
}
public void setCompact(boolean compact)
{
setBooleanHTMLAttribute("compact", compact);
}
public int getStart()
{
return getIntHTMLAttribute("start");
}
public void setStart(int start)
{
setIntHTMLAttribute("start", start);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
}

View file

@ -0,0 +1,242 @@
/* DomHTMLObjectElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.Document;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLObjectElement;
/**
* An HTML 'OBJECT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLObjectElement
extends DomHTMLElement
implements HTMLObjectElement
{
protected DomHTMLObjectElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getCode()
{
return getHTMLAttribute("code");
}
public void setCode(String code)
{
setHTMLAttribute("code", code);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getArchive()
{
return getHTMLAttribute("archive");
}
public void setArchive(String archive)
{
setHTMLAttribute("archive", archive);
}
public String getBorder()
{
return getHTMLAttribute("border");
}
public void setBorder(String border)
{
setHTMLAttribute("border", border);
}
public String getCodeBase()
{
return getHTMLAttribute("codebase");
}
public void setCodeBase(String codeBase)
{
setHTMLAttribute("codebase", codeBase);
}
public String getCodeType()
{
return getHTMLAttribute("codetype");
}
public void setCodeType(String codeType)
{
setHTMLAttribute("codetype", codeType);
}
public String getData()
{
return getHTMLAttribute("data");
}
public void setData(String data)
{
setHTMLAttribute("data", data);
}
public boolean getDeclare()
{
return getBooleanHTMLAttribute("declare");
}
public void setDeclare(boolean declare)
{
setBooleanHTMLAttribute("declare", declare);
}
public String getHeight()
{
return getHTMLAttribute("height");
}
public void setHeight(String height)
{
setHTMLAttribute("height", height);
}
public int getHspace()
{
return getIntHTMLAttribute("hspace");
}
public void setHspace(int hspace)
{
setIntHTMLAttribute("hspace", hspace);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getStandby()
{
return getHTMLAttribute("standby");
}
public void setStandby(String standby)
{
setHTMLAttribute("standby", standby);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
public String getUseMap()
{
return getHTMLAttribute("usemap");
}
public void setUseMap(String useMap)
{
setHTMLAttribute("usemap", useMap);
}
public int getVspace()
{
return getIntHTMLAttribute("vspace");
}
public void setVspace(int vspace)
{
setIntHTMLAttribute("vspace", vspace);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
public Document getContentDocument()
{
// TODO getContentDocument
return null;
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLOptGroupElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLOptGroupElement;
/**
* An HTML 'OPTGROUP' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLOptGroupElement
extends DomHTMLElement
implements HTMLOptGroupElement
{
protected DomHTMLOptGroupElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getLabel()
{
return getHTMLAttribute("label");
}
public void setLabel(String label)
{
setHTMLAttribute("label", label);
}
}

View file

@ -0,0 +1,131 @@
/* DomHTMLOptionElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLOptionElement;
/**
* An HTML 'OPTION' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLOptionElement
extends DomHTMLElement
implements HTMLOptionElement
{
protected Boolean selected;
protected DomHTMLOptionElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public boolean getDefaultSelected()
{
return getBooleanHTMLAttribute("selected");
}
public void setDefaultSelected(boolean defaultSelected)
{
setBooleanHTMLAttribute("selected", defaultSelected);
}
public String getText()
{
return getTextContent();
}
public int getIndex()
{
return super.getIndex();
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getLabel()
{
return getHTMLAttribute("label");
}
public void setLabel(String label)
{
setHTMLAttribute("label", label);
}
public boolean getSelected()
{
if (selected == null)
{
selected = Boolean.valueOf(getDefaultSelected());
}
return selected.booleanValue();
}
public void setSelected(boolean selected)
{
this.selected = Boolean.valueOf(selected);
}
public String getValue()
{
return getHTMLAttribute("value");
}
public void setValue(String value)
{
setHTMLAttribute("value", value);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLParagraphElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLParagraphElement;
/**
* An HTML 'P' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLParagraphElement
extends DomHTMLElement
implements HTMLParagraphElement
{
protected DomHTMLParagraphElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
}

View file

@ -0,0 +1,99 @@
/* DomHTMLParamElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLParamElement;
/**
* An HTML 'PARAM' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLParamElement
extends DomHTMLElement
implements HTMLParamElement
{
protected DomHTMLParamElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
public String getValue()
{
return getHTMLAttribute("value");
}
public void setValue(String value)
{
setHTMLAttribute("value", value);
}
public String getValueType()
{
return getHTMLAttribute("valuetype");
}
public void setValueType(String valueType)
{
setHTMLAttribute("valuetype", valueType);
}
}

View file

@ -0,0 +1,266 @@
/* DomHTMLParser.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.javax.swing.text.html.parser.support.Parser;
import java.io.IOException;
import java.io.Reader;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.LinkedList;
import javax.swing.text.AttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.parser.DTD;
import javax.swing.text.html.parser.TagElement;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.html2.HTMLDocument;
/**
* This parser reads HTML from the given stream and stores into
* {@link HTMLDocument}. The HTML tag becomes the {@link Node}.
* The tag attributes become the node attributes. The text inside
* HTML tag is inserted as one or several text nodes. The nested
* HTML tags are inserted as child nodes.
*
* If the strict tree structure, closing the tag means closing all
* nested tags. To work around this, this parser closes the nested
* tags and immediately reopens them after the closed tag.
* In this way, <code>&lt;b&gt;&lt;i&gt;c&lt;/b&gt;d</code>
* is parsed as <code>&lt;b&gt;&lt;i&gt;c&lt;/i&gt;&lt;/b&gt;&lt;i&gt;d</code> .
*
* @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
*/
public class DomHTMLParser
extends gnu.javax.swing.text.html.parser.support.Parser
{
/**
* The target where HTML document will be inserted.
*/
protected DomHTMLDocument document;
/**
* The subsequently created new nodes will be inserted as the
* childs of this cursor.
*/
protected Node cursor;
/**
* Create parser using the given DTD.
*
* @param dtd the DTD (for example,
* {@link gnu.javax.swing.text.html.parser.HTML_401F}).
*/
public DomHTMLParser(DTD dtd)
{
super(dtd);
}
/**
* Parse SGML insertion ( &lt;! ... &gt; ).
* Currently just treats it as comment.
*/
public boolean parseMarkupDeclarations(StringBuffer strBuff)
throws java.io.IOException
{
Node c = document.createComment(strBuff.toString());
cursor.appendChild(c);
return false;
}
/**
* Read the document, present in the given stream, and
* return the corresponding {@link HTMLDocument}.
*
* @param input a stream to read from.
* @return a document, reflecting the structure of the provided HTML
* text.
*
* @throws IOException if the reader throws one.
*/
public HTMLDocument parseDocument(Reader input)
throws IOException
{
try
{
document = new DomHTMLDocument();
cursor = document;
parse(input);
DomHTMLDocument h = document;
document = null;
return h;
}
catch (Exception ex)
{
ex.printStackTrace();
throw new IOException("Exception: " + ex.getMessage());
}
}
/**
* Create a new node.
* @param name the name of node, case insensitive.
* @return the created node.
*/
protected Node createNode(String name)
{
Node new_node = document.createElement(name.toLowerCase());
AttributeSet hatts = getAttributes();
NamedNodeMap natts = new_node.getAttributes();
Enumeration enumeration = hatts.getAttributeNames();
Object key;
Node attribute;
while (hatts != null)
{
while (enumeration.hasMoreElements())
{
key = enumeration.nextElement();
attribute = document.createAttribute(key.toString());
attribute.setNodeValue(hatts.getAttribute(key).toString());
natts.setNamedItem(attribute);
}
// The default values are stored in a parent node.
hatts = hatts.getResolveParent();
}
return new_node;
}
/**
* Handle comment by inserting the comment node.
* @param text the comment text.
*/
protected void handleComment(char[] text)
{
Node c = document.createComment(new String(text));
cursor.appendChild(c);
}
/**
* Handle the tag with no content.
* @param tag the tag to handle.
*/
protected void handleEmptyTag(TagElement tag)
{
String name = tag.getHTMLTag().toString();
if (name.equalsIgnoreCase("#pcdata"))
return;
Node c = createNode(name);
cursor.appendChild(c);
}
/**
* Close the given tag. Close and reopen all nested tags.
* @param tag the tag to close.
*/
protected void handleEndTag(TagElement tag)
{
String name = tag.getHTMLTag().toString();
String nname = cursor.getNodeName();
// Closing the current tag.
if (nname != null && nname.equalsIgnoreCase(name))
{
cursor = cursor.getParentNode();
}
else
{
Node nCursor = cursor.getParentNode();
// Remember the opened nodes.
LinkedList open = new LinkedList();
Node close = cursor;
while (close != null && !close.getNodeName().equalsIgnoreCase(name))
{
if (close != document)
open.addFirst(close);
close = close.getParentNode();
}
if (close == null)
cursor = document;
else
cursor = close.getParentNode();
// Insert the copies of the opened nodes.
Iterator iter = open.iterator();
while (iter.hasNext())
{
Node item = (Node) iter.next();
Node copy = item.cloneNode(true);
cursor.appendChild(copy);
cursor = copy;
}
}
}
/**
* Handle the start tag by inserting the HTML element.
* @param tag the tag to handle.
*/
protected void handleStartTag(TagElement tag)
{
HTML.Tag h = tag.getHTMLTag();
Node c = createNode(h.toString());
cursor.appendChild(c);
cursor = c;
}
/**
* Handle text by inserting the text node.
* @param text the text to insert.
*/
protected void handleText(char[] text)
{
Node c = document.createTextNode(text, 0, text.length);
cursor.appendChild(c);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLPreElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLPreElement;
/**
* An HTML 'PRE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLPreElement
extends DomHTMLElement
implements HTMLPreElement
{
protected DomHTMLPreElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public int getWidth()
{
return getIntHTMLAttribute("width");
}
public void setWidth(int width)
{
setIntHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLQuoteElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLQuoteElement;
/**
* An HTML 'Q' or 'BLOCKQUOTE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLQuoteElement
extends DomHTMLElement
implements HTMLQuoteElement
{
protected DomHTMLQuoteElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getCite()
{
return getHTMLAttribute("cite");
}
public void setCite(String cite)
{
setHTMLAttribute("cite", cite);
}
}

View file

@ -0,0 +1,129 @@
/* DomHTMLScriptElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLScriptElement;
/**
* An HTML 'SCRIPT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLScriptElement
extends DomHTMLElement
implements HTMLScriptElement
{
protected DomHTMLScriptElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getText()
{
return getTextContent();
}
public void setText(String text)
{
setTextContent(text);
}
public String getHtmlFor()
{
return getHTMLAttribute("for");
}
public void setHtmlFor(String htmlFor)
{
setHTMLAttribute("for", htmlFor);
}
public String getEvent()
{
return getHTMLAttribute("event");
}
public void setEvent(String event)
{
setHTMLAttribute("event", event);
}
public String getCharset()
{
return getHTMLAttribute("charset");
}
public void setCharset(String charset)
{
setHTMLAttribute("charset", charset);
}
public boolean getDefer()
{
return getBooleanHTMLAttribute("defer");
}
public void setDefer(boolean defer)
{
setBooleanHTMLAttribute("defer", defer);
}
public String getSrc()
{
return getHTMLAttribute("src");
}
public void setSrc(String src)
{
setHTMLAttribute("src", src);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
}

View file

@ -0,0 +1,211 @@
/* DomHTMLSelectElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import org.w3c.dom.DOMException;
import org.w3c.dom.html2.HTMLElement;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLOptionElement;
import org.w3c.dom.html2.HTMLOptionsCollection;
import org.w3c.dom.html2.HTMLSelectElement;
/**
* An HTML 'SELECT' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLSelectElement
extends DomHTMLElement
implements HTMLSelectElement
{
protected DomHTMLSelectElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getType()
{
return getHTMLAttribute("type");
}
public int getSelectedIndex()
{
HTMLOptionsCollection options = getOptions();
int len = options.getLength();
for (int i = 0; i < len; i++)
{
HTMLOptionElement option = (HTMLOptionElement) options.item(i);
if (option.getSelected())
{
return i;
}
}
return -1;
}
public void setSelectedIndex(int selectedIndex)
{
HTMLOptionsCollection options = getOptions();
int len = options.getLength();
if (selectedIndex < 0 || selectedIndex >= len)
{
throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
for (int i = 0; i < len; i++)
{
HTMLOptionElement option = (HTMLOptionElement) options.item(i);
option.setSelected(i == selectedIndex);
}
}
public String getValue()
{
return getHTMLAttribute("value");
}
public void setValue(String value)
{
setHTMLAttribute("value", value);
}
public int getLength()
{
return getIntHTMLAttribute("length");
}
public void setLength(int length)
{
setIntHTMLAttribute("length", length);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public HTMLOptionsCollection getOptions()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("option");
ret.evaluate();
return ret;
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public boolean getMultiple()
{
return getBooleanHTMLAttribute("multiple");
}
public void setMultiple(boolean multiple)
{
setBooleanHTMLAttribute("multiple", multiple);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public int getSize()
{
return getIntHTMLAttribute("size");
}
public void setSize(int size)
{
setIntHTMLAttribute("size", size);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public void add(HTMLElement element, HTMLElement before)
{
insertBefore(before, element);
}
public void remove(int index)
{
HTMLOptionsCollection options = getOptions();
int len = options.getLength();
if (index < 0 || index >= len)
{
throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
HTMLOptionElement option = (HTMLOptionElement) options.item(index);
option.getParentNode().removeChild(option);
}
public void blur()
{
dispatchUIEvent("blur");
}
public void focus()
{
dispatchUIEvent("focus");
}
}

View file

@ -0,0 +1,89 @@
/* DomHTMLStyleElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLStyleElement;
/**
* An HTML 'STYLE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLStyleElement
extends DomHTMLElement
implements HTMLStyleElement
{
protected DomHTMLStyleElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getMedia()
{
return getHTMLAttribute("media");
}
public void setMedia(String media)
{
setHTMLAttribute("media", media);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
}

View file

@ -0,0 +1,70 @@
/* DomHTMLTableCaptionElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLTableCaptionElement;
/**
* An HTML 'CAPTION' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableCaptionElement
extends DomHTMLElement
implements HTMLTableCaptionElement
{
protected DomHTMLTableCaptionElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
}

View file

@ -0,0 +1,205 @@
/* DomHTMLTableCellElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLTableCellElement;
/**
* An HTML 'TH' or 'TD' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableCellElement
extends DomHTMLElement
implements HTMLTableCellElement
{
protected DomHTMLTableCellElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public int getCellIndex()
{
return getIndex();
}
public String getAbbr()
{
return getHTMLAttribute("abbr");
}
public void setAbbr(String abbr)
{
setHTMLAttribute("abbr", abbr);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getAxis()
{
return getHTMLAttribute("axis");
}
public void setAxis(String axis)
{
setHTMLAttribute("axis", axis);
}
public String getBgColor()
{
return getHTMLAttribute("bgcolor");
}
public void setBgColor(String bgColor)
{
setHTMLAttribute("bgcolor", bgColor);
}
public String getCh()
{
return getHTMLAttribute("char");
}
public void setCh(String ch)
{
setHTMLAttribute("char", ch);
}
public String getChOff()
{
return getHTMLAttribute("charoff");
}
public void setChOff(String chOff)
{
setHTMLAttribute("charoff", chOff);
}
public int getColSpan()
{
return getIntHTMLAttribute("colspan");
}
public void setColSpan(int colSpan)
{
setIntHTMLAttribute("colspan", colSpan);
}
public String getHeaders()
{
return getHTMLAttribute("headers");
}
public void setHeaders(String headers)
{
setHTMLAttribute("headers", headers);
}
public String getHeight()
{
return getHTMLAttribute("height");
}
public void setHeight(String height)
{
setHTMLAttribute("height", height);
}
public boolean getNoWrap()
{
return getBooleanHTMLAttribute("nowrap");
}
public void setNoWrap(boolean noWrap)
{
setBooleanHTMLAttribute("nowrap", noWrap);
}
public int getRowSpan()
{
return getIntHTMLAttribute("rowspan");
}
public void setRowSpan(int rowSpan)
{
setIntHTMLAttribute("rowspan", rowSpan);
}
public String getScope()
{
return getHTMLAttribute("scope");
}
public void setScope(String scope)
{
setHTMLAttribute("scope", scope);
}
public String getVAlign()
{
return getHTMLAttribute("valign");
}
public void setVAlign(String vAlign)
{
setHTMLAttribute("valign", vAlign);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,120 @@
/* DomHTMLTableColElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLTableColElement;
/**
* An HTML 'COL' or 'COLGROUP' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableColElement
extends DomHTMLElement
implements HTMLTableColElement
{
protected DomHTMLTableColElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getCh()
{
return getHTMLAttribute("char");
}
public void setCh(String ch)
{
setHTMLAttribute("char", ch);
}
public String getChOff()
{
return getHTMLAttribute("charoff");
}
public void setChOff(String chOff)
{
setHTMLAttribute("charoff", chOff);
}
public int getSpan()
{
return getIntHTMLAttribute("span");
}
public void setSpan(int span)
{
setIntHTMLAttribute("span", span);
}
public String getVAlign()
{
return getHTMLAttribute("valign");
}
public void setVAlign(String vAlign)
{
setHTMLAttribute("valign", vAlign);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
}

View file

@ -0,0 +1,383 @@
/* DomHTMLTableElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLElement;
import org.w3c.dom.html2.HTMLTableCaptionElement;
import org.w3c.dom.html2.HTMLTableElement;
import org.w3c.dom.html2.HTMLTableSectionElement;
/**
* An HTML 'TABLE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableElement
extends DomHTMLElement
implements HTMLTableElement
{
protected DomHTMLTableElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public HTMLTableCaptionElement getCaption()
{
return (HTMLTableCaptionElement) getChildElement("caption");
}
public void setCaption(HTMLTableCaptionElement caption)
{
HTMLTableCaptionElement ref = getCaption();
if (ref == null)
{
appendChild(caption);
}
else
{
replaceChild(caption, ref);
}
}
public HTMLTableSectionElement getTHead()
{
return (HTMLTableSectionElement) getChildElement("thead");
}
public void setTHead(HTMLTableSectionElement tHead)
{
HTMLTableSectionElement ref = getTHead();
if (ref == null)
{
appendChild(tHead);
}
else
{
replaceChild(tHead, ref);
}
}
public HTMLTableSectionElement getTFoot()
{
return (HTMLTableSectionElement) getChildElement("tfoot");
}
public void setTFoot(HTMLTableSectionElement tFoot)
{
HTMLTableSectionElement ref = getTFoot();
if (ref == null)
{
appendChild(tFoot);
}
else
{
replaceChild(tFoot, ref);
}
}
public HTMLCollection getRows()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("tr");
ret.evaluate();
return ret;
}
public HTMLCollection getTBodies()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("tbody");
ret.evaluate();
return ret;
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getBgColor()
{
return getHTMLAttribute("bgcolor");
}
public void setBgColor(String bgColor)
{
setHTMLAttribute("bgcolor", bgColor);
}
public String getBorder()
{
return getHTMLAttribute("border");
}
public void setBorder(String border)
{
setHTMLAttribute("border", border);
}
public String getCellPadding()
{
return getHTMLAttribute("cellpadding");
}
public void setCellPadding(String cellPadding)
{
setHTMLAttribute("cellpadding", cellPadding);
}
public String getCellSpacing()
{
return getHTMLAttribute("cellspacing");
}
public void setCellSpacing(String cellSpacing)
{
setHTMLAttribute("cellspacing", cellSpacing);
}
public String getFrame()
{
return getHTMLAttribute("frame");
}
public void setFrame(String frame)
{
setHTMLAttribute("frame", frame);
}
public String getRules()
{
return getHTMLAttribute("rules");
}
public void setRules(String rules)
{
setHTMLAttribute("rules", rules);
}
public String getSummary()
{
return getHTMLAttribute("summary");
}
public void setSummary(String summary)
{
setHTMLAttribute("summary", summary);
}
public String getWidth()
{
return getHTMLAttribute("width");
}
public void setWidth(String width)
{
setHTMLAttribute("width", width);
}
public HTMLElement createTHead()
{
HTMLTableSectionElement ref = getTHead();
if (ref == null)
{
return (HTMLElement) getOwnerDocument().createElement("thead");
}
else
{
return ref;
}
}
public void deleteTHead()
{
HTMLTableSectionElement ref = getTHead();
if (ref != null)
{
removeChild(ref);
}
}
public HTMLElement createTFoot()
{
HTMLTableSectionElement ref = getTFoot();
if (ref == null)
{
return (HTMLElement) getOwnerDocument().createElement("tfoot");
}
else
{
return ref;
}
}
public void deleteTFoot()
{
HTMLTableSectionElement ref = getTFoot();
if (ref != null)
{
removeChild(ref);
}
}
public HTMLElement createCaption()
{
HTMLTableCaptionElement ref = getCaption();
if (ref == null)
{
return (HTMLElement) getOwnerDocument().createElement("caption");
}
else
{
return ref;
}
}
public void deleteCaption()
{
HTMLTableCaptionElement ref = getCaption();
if (ref != null)
{
removeChild(ref);
}
}
public HTMLElement insertRow(int index)
{
Node ref = getRow(index);
Node row = getOwnerDocument().createElement("tr");
if (ref == null)
{
Node tbody = getChildElement("tbody");
if (tbody == null)
{
tbody = getOwnerDocument().createElement("tfoot");
appendChild(tbody);
}
tbody.appendChild(row);
}
else
{
ref.getParentNode().insertBefore(row, ref);
}
return (HTMLElement) row;
}
public void deleteRow(int index)
{
Node ref = getRow(index);
if (ref == null)
{
throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
ref.getParentNode().removeChild(ref);
}
Node getRow(final int index)
{
int i = 0;
Node thead = getChildElement("thead");
if (thead != null)
{
for (Node ctx = thead.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (!"tr".equalsIgnoreCase(ctx.getLocalName()))
{
continue;
}
if (index == i)
{
return ctx;
}
i++;
}
}
Node tbody = getChildElement("tbody");
if (tbody == null)
{
tbody = this;
}
for (Node ctx = tbody.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (!"tr".equalsIgnoreCase(ctx.getLocalName()))
{
continue;
}
if (index == i)
{
return ctx;
}
i++;
}
Node tfoot = getChildElement("tfoot");
if (tfoot != null)
{
for (Node ctx = tfoot.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (!"tr".equalsIgnoreCase(ctx.getLocalName()))
{
continue;
}
if (index == i)
{
return ctx;
}
i++;
}
}
return null;
}
}

View file

@ -0,0 +1,225 @@
/* DomHTMLTableRowElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLElement;
import org.w3c.dom.html2.HTMLTableRowElement;
/**
* An HTML 'TR' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableRowElement
extends DomHTMLElement
implements HTMLTableRowElement
{
protected DomHTMLTableRowElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public int getRowIndex()
{
return getIndex();
}
public int getSectionRowIndex()
{
int index = 0;
DomHTMLElement parent = (DomHTMLElement) getParentElement("table");
if (parent != null)
{
Node thead = parent.getChildElement("thead");
if (thead != null)
{
for (Node ctx = thead.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (ctx == this)
{
return index;
}
index++;
}
}
Node tbody = parent.getChildElement("tbody");
if (tbody != null)
{
for (Node ctx = tbody.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (ctx == this)
{
return index;
}
index++;
}
}
Node tfoot = parent.getChildElement("tfoot");
if (tfoot != null)
{
for (Node ctx = tfoot.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (ctx == this)
{
return index;
}
index++;
}
}
}
throw new DomDOMException(DOMException.NOT_FOUND_ERR);
}
public HTMLCollection getCells()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("th");
ret.addNodeName("td");
ret.evaluate();
return ret;
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getBgColor()
{
return getHTMLAttribute("bgcolor");
}
public void setBgColor(String bgColor)
{
setHTMLAttribute("bgcolor", bgColor);
}
public String getCh()
{
return getHTMLAttribute("char");
}
public void setCh(String ch)
{
setHTMLAttribute("char", ch);
}
public String getChOff()
{
return getHTMLAttribute("charoff");
}
public void setChOff(String chOff)
{
setHTMLAttribute("charoff", chOff);
}
public String getVAlign()
{
return getHTMLAttribute("valign");
}
public void setVAlign(String vAlign)
{
setHTMLAttribute("valign", vAlign);
}
public HTMLElement insertCell(int index)
{
Node ref = getCell(index);
Node cell = getOwnerDocument().createElement("td");
if (ref == null)
{
appendChild(cell);
}
else
{
insertBefore(cell, ref);
}
return (HTMLElement) cell;
}
public void deleteCell(int index)
{
Node ref = getCell(index);
if (ref == null)
{
throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
removeChild(ref);
}
Node getCell(final int index)
{
int i = 0;
for (Node ctx = getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
String name = ctx.getLocalName();
if (!"td".equalsIgnoreCase(name) &&
!"th".equalsIgnoreCase(name))
{
continue;
}
if (index == i)
{
return ctx;
}
i++;
}
return null;
}
}

View file

@ -0,0 +1,158 @@
/* DomHTMLTableSectionElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import gnu.xml.dom.DomDOMException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.html2.HTMLCollection;
import org.w3c.dom.html2.HTMLElement;
import org.w3c.dom.html2.HTMLTableSectionElement;
/**
* An HTML 'THEAD', 'TFOOT', or 'TBODY' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTableSectionElement
extends DomHTMLElement
implements HTMLTableSectionElement
{
protected DomHTMLTableSectionElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getAlign()
{
return getHTMLAttribute("align");
}
public void setAlign(String align)
{
setHTMLAttribute("align", align);
}
public String getCh()
{
return getHTMLAttribute("char");
}
public void setCh(String ch)
{
setHTMLAttribute("char", ch);
}
public String getChOff()
{
return getHTMLAttribute("charoff");
}
public void setChOff(String chOff)
{
setHTMLAttribute("charoff", chOff);
}
public String getVAlign()
{
return getHTMLAttribute("valign");
}
public void setVAlign(String vAlign)
{
setHTMLAttribute("valign", vAlign);
}
public HTMLCollection getRows()
{
DomHTMLCollection ret =
new DomHTMLCollection((DomHTMLDocument) getOwnerDocument(), this);
ret.addNodeName("tr");
ret.evaluate();
return ret;
}
public HTMLElement insertRow(int index)
{
Node ref = getRow(index);
Node row = getOwnerDocument().createElement("tr");
if (ref == null)
{
appendChild(row);
}
else
{
insertBefore(row, ref);
}
return (HTMLElement) row;
}
public void deleteRow(int index)
{
Node ref = getRow(index);
if (ref == null)
{
throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
removeChild(ref);
}
Node getRow(final int index)
{
int i = 0;
for (Node ctx = getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
if (!"tr".equalsIgnoreCase(ctx.getLocalName()))
{
continue;
}
if (index == i)
{
return ctx;
}
i++;
}
return null;
}
}

View file

@ -0,0 +1,182 @@
/* DomHTMLTextAreaElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLTextAreaElement;
/**
* An HTML 'TEXTAREA' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTextAreaElement
extends DomHTMLElement
implements HTMLTextAreaElement
{
protected String value;
protected DomHTMLTextAreaElement(DomHTMLDocument owner,
String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getDefaultValue()
{
return getHTMLAttribute("value");
}
public void setDefaultValue(String defaultValue)
{
setHTMLAttribute("value", defaultValue);
}
public HTMLFormElement getForm()
{
return (HTMLFormElement) getParentElement("form");
}
public String getAccessKey()
{
return getHTMLAttribute("accesskey");
}
public void setAccessKey(String accessKey)
{
setHTMLAttribute("accesskey", accessKey);
}
public int getCols()
{
return getIntHTMLAttribute("cols");
}
public void setCols(int cols)
{
setIntHTMLAttribute("cols", cols);
}
public boolean getDisabled()
{
return getBooleanHTMLAttribute("disabled");
}
public void setDisabled(boolean disabled)
{
setBooleanHTMLAttribute("disabled", disabled);
}
public String getName()
{
return getHTMLAttribute("name");
}
public void setName(String name)
{
setHTMLAttribute("name", name);
}
public boolean getReadOnly()
{
return getBooleanHTMLAttribute("readOnly");
}
public void setReadOnly(boolean readOnly)
{
setBooleanHTMLAttribute("readonly", readOnly);
}
public int getRows()
{
return getIntHTMLAttribute("rows");
}
public void setRows(int rows)
{
setIntHTMLAttribute("rows", rows);
}
public int getTabIndex()
{
return getIntHTMLAttribute("tabindex");
}
public void setTabIndex(int tabIndex)
{
setIntHTMLAttribute("tabindex", tabIndex);
}
public String getType()
{
return "textarea";
}
public String getValue()
{
if (value == null)
{
value = getDefaultValue();
}
return value;
}
public void setValue(String value)
{
this.value = value;
}
public void blur()
{
dispatchUIEvent("blur");
}
public void focus()
{
dispatchUIEvent("focus");
}
public void select()
{
dispatchUIEvent("select");
}
}

View file

@ -0,0 +1,69 @@
/* DomHTMLTitleElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLTitleElement;
/**
* An HTML 'TITLE' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLTitleElement
extends DomHTMLElement
implements HTMLTitleElement
{
protected DomHTMLTitleElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public String getText()
{
return getTextContent();
}
public void setText(String text)
{
setTextContent(text);
}
}

View file

@ -0,0 +1,79 @@
/* DomHTMLUListElement.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.xml.dom.html2;
import org.w3c.dom.html2.HTMLUListElement;
/**
* An HTML 'UL' element node.
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DomHTMLUListElement
extends DomHTMLElement
implements HTMLUListElement
{
protected DomHTMLUListElement(DomHTMLDocument owner, String namespaceURI,
String name)
{
super(owner, namespaceURI, name);
}
public boolean getCompact()
{
return getBooleanHTMLAttribute("compact");
}
public void setCompact(boolean compact)
{
setBooleanHTMLAttribute("compact", compact);
}
public String getType()
{
return getHTMLAttribute("type");
}
public void setType(String type)
{
setHTMLAttribute("type", type);
}
}

View file

@ -0,0 +1,100 @@
/* ChangedCharSetException.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text;
import java.io.IOException;
import java.io.Serializable;
/**
* The exception is thrown when the document charset is changed.
*
* @author Audrius Meskauskas (AudriusA@Bioinformatics.org)
*/
public class ChangedCharSetException
extends IOException
implements Serializable
{
/**
* Use serialVersionUID for interoperability.
* This value corresponds the version 1.4.
*/
private static final long serialVersionUID = 9119851554465432389L;
/**
* The char set specification.
*/
private final String m_charSetSpec;
/**
* The char set key.
*/
private final boolean m_charSetKey;
/**
* Constructs a new char set exception with two additional parameters,
* defining the circumstances under that the exception was raised.
*/
public ChangedCharSetException(String charSetSpec, boolean charSetKey)
{
m_charSetSpec = charSetSpec;
m_charSetKey = charSetKey;
}
/**
* Get the value of the first parameter, previously passed to the
* constructor.
*
* @return the value of the first parameter
*/
public String getCharSetSpec()
{
return m_charSetSpec;
}
/**
* Get the value of the second parameter, previously passed to the
* constructor.
*
* @return the value of the second parameter
*/
public boolean keyEqualsCharSet()
{
return m_charSetKey;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,53 @@
/* HTMLDocument.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html;
import javax.swing.text.DefaultStyledDocument;
/**
* TODO: This class is not yet completetely implemented.
*
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class HTMLDocument extends DefaultStyledDocument
{
public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent event)
{
}
}

View file

@ -0,0 +1,173 @@
/* HTMLEditorKit.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html;
import java.io.Reader;
import javax.swing.text.BadLocationException;
import javax.swing.text.MutableAttributeSet;
/**
* This class is NOT implemented. This file currently holds only
* declarations of the two enclosing classes, necessary for testing
* the implemented javax.swing.text.html.parser package.
* @author No authorship is taken, implement the class and be!
* TODO: replace this header after implementing the class.
*/
public class HTMLEditorKit
{
/**
* The abstract HTML parser declaration.
*/
public abstract static class Parser
{
/**
* Parse the HTML text, calling various methods of the provided callback
* in response to the occurence of the corresponding HTML constructions.
* @param reader The reader to read the source HTML from.
* @param callback The callback to receive information about the parsed
* HTML structures
* @param ignoreCharSet If true, the parser ignores all charset information
* that may be present in HTML documents.
* @throws IOException, normally if the reader throws one.
*/
public abstract void parse(Reader reader, ParserCallback callback,
boolean ignoreCharSet
)
throws java.io.IOException;
}
/**
* The "hook" that receives all information about the HTML document
* structure while parsing it. The methods are invoked by parser
* and should be normally overridden.
*/
public static class ParserCallback
{
/**
* If the tag does not occurs in the html stream directly, but
* is supposed by parser, the tag attribute set contains this additional
* attribute, having value Boolean.True.
*/
public static final Object IMPLIED = "_implied_";
/**
* The parser calls this method after it finishes parsing the document.
*/
public void flush()
throws BadLocationException
{
}
/**
* Handle HTML comment, present in the given position.
* @param comment the comment
* @position the position of the comment in the text being parsed.
*/
public void handleComment(char[] comment, int position)
{
}
/**
* Notifies about the character sequences, used to separate lines in
* this document. The parser calls this method after it finishes
* parsing the document, but before flush().
* @param end_of_line The "end of line sequence", one of: \r or \n or \r\n.
*/
public void handleEndOfLineString(String end_of_line)
{
}
/**
* The method is called when the HTML closing tag ((like &lt;/table&gt;)
* is found or if the parser concludes that the one should be present
* in the current position.
* @param The tag being handled
* @position the tag position in the text being parsed.
*/
public void handleEndTag(HTML.Tag tag, int position)
{
}
/**
* Handle the error.
* @param message The message, explaining the error.
* @param position The starting position of the fragment that has caused
* the error in the html document being parsed.
*/
public void handleError(String message, int position)
{
}
/**
* Handle the tag with no content, like &lt;br&gt;. The method is
* called for the elements that, in accordance with the current DTD,
* has an empty content.
* @param tag The tag being handled.
* @param position The tag position in the text being parsed.
*/
public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attributes,
int position
)
{
}
/**
* The method is called when the HTML opening tag ((like &lt;table&gt;)
* is found or if the parser concludes that the one should be present
* in the current position.
* @param tag The tag being handled
* @param position The tag position in the text bein parsed
*/
public void handleStartTag(HTML.Tag tag, MutableAttributeSet attributes,
int position
)
{
}
/**
* Handle the text section.
* @param text A section text.
* @param position The text position in the HTML document text being parsed.
*/
public void handleText(char[] text, int position)
{
}
}
}

View file

@ -0,0 +1,132 @@
/* HTMLFrameHyperlinkEvent.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html;
import java.net.URL;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkEvent.EventType;
import javax.swing.text.Element;
/**
* HTMLFrameHyperlinkEvent transfers information about the link that was
* activated in a frame.
*
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class HTMLFrameHyperlinkEvent
extends HyperlinkEvent
{
private final String target_frame;
/**
* Creates a new hypertext link event.
*
* @param source The object this link is associated to.
* @param type The type of event.
* @param url The URL this link pointing too.
* @param element The element in the document representing the anchor.
* @param frame - the Frame to display the document in.
*/
public HTMLFrameHyperlinkEvent(Object source, EventType type, URL url,
Element element, String frame)
{
super(source, type, url, frame, element);
target_frame = frame;
}
/**
* Creates a new hypertext link event.
*
* @param source The object this link is associated to.
* @param type The type of event.
* @param url The URL this link pointing too.
* @param frame - the Frame to display the document in.
*/
public HTMLFrameHyperlinkEvent(Object source, EventType type, URL url,
String frame)
{
super(source, type, url, frame);
target_frame = frame;
}
/**
* Creates a new hypertext link event.
*
* @param source The object this link is associated to.
* @param type The type of event.
* @param url The URL this link pointing too.
* @param description The description for this link.
* @param element The element in the document representing the anchor.
* @param frame - the Frame to display the document in.
*/
public HTMLFrameHyperlinkEvent(Object source, EventType type, URL url,
String description, Element element,
String frame)
{
super(source, type, url, description, element);
target_frame = frame;
}
/**
* Creates a new hypertext link event.
*
* @param source The object this link is associated to.
* @param type The type of event.
* @param url The URL this link pointing too.
* @param description The description for this link.
* @param frame - the Frame to display the document in.
*/
public HTMLFrameHyperlinkEvent(Object source, EventType type, URL url,
String description, String frame)
{
super(source, type, url, description);
target_frame = frame;
}
/**
* Gets the string, passed as the target frame identifier.
*
* @return the target for the link.
*/
public String getTarget()
{
return target_frame;
}
}

View file

@ -0,0 +1,294 @@
/* AttributeList.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
import gnu.javax.swing.text.html.parser.support.gnuStringIntMapper;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Vector;
/**
* <p>
* Stores the attribute information, obtained by parsing SGML (DTD) tag
* <code>&lt;!ATTLIST .. &gt;</code></p>
* <p>
* Elements can have a associated named properties (attributes) having the
* assigned values. The element start tag can have any number of attribute
* value pairs, separated by spaces. They can appear in any order.
* SGML requires you to delimit the attribute values using either double (")
* or single (') quotation marks. In HTML, it is possible
* (but not recommended) to specify the value of an attribute without
* quotation marks. Such attribute value may only contain
* letters, digits, hyphens (-) and periods (.) .
* </p>
* <p>
* The <code>AttributeList</code> defines a single attribute that additionally
* has a pointer referencing the possible subsequent attribute.
* The whole structure is just a simple linked list, storing all attributes of
* some <code>Element</code>.
* Use the <code>getNext()</code> method repeatedly to see all attributes in
* the list.
* </p>
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public final class AttributeList
implements DTDConstants, Serializable
{
/** Maps between type names and they string values. */
private static final gnuStringIntMapper mapper =
new gnuStringIntMapper()
{
protected void create()
{
add("CDATA", DTDConstants.CDATA);
add("ENTITY", DTDConstants.ENTITY);
add("ENTITIES", DTDConstants.ENTITIES);
add("ID", DTDConstants.ID);
add("IDREF", DTDConstants.IDREF);
add("IDREFS", DTDConstants.IDREFS);
add("NAME", DTDConstants.NAME);
add("NAMES", DTDConstants.NAMES);
add("NMTOKEN", DTDConstants.NMTOKEN);
add("NMTOKENS", DTDConstants.NMTOKENS);
add("NOTATION", DTDConstants.NOTATION);
add("NUMBER", DTDConstants.NUMBER);
add("NUMBERS", DTDConstants.NUMBERS);
add("NUTOKEN", DTDConstants.NUTOKEN);
add("NUTOKENS", DTDConstants.NUTOKENS);
}
};
/** Use serialVersionUID for interoperability. */
private static final long serialVersionUID = -1361214058742015233L;
/**
* The value of ( = pointer to ) the next attribute in the linked list,
* storing all attributes of some Element. Contains null for the
* last attribute.
*/
public AttributeList next;
/**
* The name of the attribute. The attribute names are case insensitive.
*/
public String name;
/**
* The default value of this attribute. Equals to null if no default value
* is specified.
*/
public String value;
/**
* The explicit set of the allowed values of this attribute. Equals to
* null, if this parameter was not specified.
* Values, defined in DTD, are case insensitive.
*/
public Vector values;
/**
* The modifier of this attribute. This field contains one of the
* following DTD constants:
* <ul>
* <li> REQUIRED if the attribute value is always required,</li>
* <li> IMPLIED if the user agent must supply the default value itself,</li>
* <li> FIXED if the attribute value is fixed to some value and cannot
* be changed.</li>
* <li> DEFAULT if the attribute default value has been supplied.</li>
* <li> CURRENT the value that at any point in the document is
* the last value supplied for that element. A value is required to be
* supplied for the first* occurrence of an element</li>
* <li> CONREF specifies the IDREF value of
* the reference to content in another location of the document.
* The element with this attribute is empty, the content from
* that another location must be used instead.</li>
* </ul>
*/
public int modifier;
/**
* The type of the attribute. The possible values of this field
* (NUMBER, NAME, ID, CDATA and so on) are defined in DTDConstants.
*/
public int type;
/**
* Creates the attribute with the given name, initializing other fields
* to the default values ( 0 and null ).
*
* @param a_name The name of the attribute.
*/
public AttributeList(String a_name)
{
name = a_name;
}
/**
* Creates the attribute with the given properties.
* @param a_name The name of the attribute
* @param a_type The type of the attribute. The possible values are defined
* in <code> DTDConstants</code>.
* @param a_modifier The modifier of this attribute. The possible values
* are defined in <code> DTDConstants</code>.
* @param a_default The default value of this attribute
* @param allowed_values The explicit set of the allowed values of
* this attribute
* @param a_next The value of the subsequent instance of the AttributeList,
* representing the next attribute definition for the same element.
* Equals to null for the last attribute definition.
*/
public AttributeList(String a_name, int a_type, int a_modifier,
String a_default, Vector allowed_values,
AttributeList a_next
)
{
this(a_name);
type = a_type;
modifier = a_modifier;
value = a_default;
values = allowed_values;
next = a_next;
}
/**
* Get the modifier of this attribute. This field contains one of the
* following DTD constants:
* <ul>
* <li> REQUIRED if the attribute value is always required,</li>
* <li> IMPLIED if the user agent must supply the default value itself,</li>
* <li> FIXED if the attribute value is fixed to some value and cannot
* be changed.</li>
* <li> DEFAULT if the attribute default value has been supplied.</li>
* <li> CURRENT the value that at any point in the document is
* the last value supplied for that element. A value is required to be
* supplied for the first* occurrence of an element</li>
* <li> CONREF specifies the IDREF value of
* the reference to content in another location of the document.
* The element with this attribute is empty, the content from
* that another location must be used instead.</li>
* </ul>
*/
public int getModifier()
{
return modifier;
}
/**
* Get the name of the attribute.
* The value is returned as it was supplied to a
* constructor, preserving the character case.
*/
public String getName()
{
return name;
}
/**
* Get the value of ( = pointer to ) the next attribute in the linked list,
* storing all attributes of some Element. Contains null for the
* last attribute.
*/
public AttributeList getNext()
{
return next;
}
/**
* Get the type of the attribute. The possible values of this field
* (NUMBER, NAME, ID, CDATA and so on) are defined in DTDConstants.
*/
public int getType()
{
return type;
}
/**
* Get the default value of this attribute.
*/
public String getValue()
{
return value;
}
/**
* Get the allowed values of this attribute.
*/
public Enumeration getValues()
{
return values.elements();
}
/**
* Converts a string value, representing a valid SGLM attribute type,
* into the corresponding value, defined in DTDConstants.
* @param typeName the name of the type (character case is ignored).
* @return a value from DTDConstants or DTDConstants.ANY if the
* string is not representing a known type. The known attribute types
* in this implementation are CDATA, ENTITY, ENTITIES, ID, IDREF, IDREFS,
* NAME, NAMES, NMTOKEN, NMTOKENS, NOTATION, NUMBER, NUMBERS, NUTOKEN and
* NUTOKENS.
* @throws NullPointerException if the passed parameter is null.
*/
public static int name2type(String typeName)
{
return mapper.get(typeName.toUpperCase());
}
/**
* Returns the attribute name.
*/
public String toString()
{
return name;
}
/**
* Converts a value from DTDConstants into the string representation.
* @param type - an integer value of the public static integer field,
* defined in the DTDConstants class.
* @return a corresponding SGML DTD keyword (UPPERCASE) or null if there
* are no attribute type constant having the given value.
*/
public static String type2name(int type)
{
return mapper.get(type);
}
}

View file

@ -0,0 +1,218 @@
/* ContentModel.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
import gnu.javax.swing.text.html.parser.models.transformer;
import java.io.Serializable;
import java.util.Vector;
/**
* A representation of the element content. The instances of this class
* can be arranged into the linked list, representing a BNF expression.
* The content model is constructed as a branched tree structure in the
* following way:
* <pre>
* a = new ContentModel('+', A, null); // a reprensents A+
* b = new ContentModel('&amp;', B, a); // b represents B &amp; A+
* c = new ContentModel('*', b, null); // c represents ( B &amp; A+) *
* d = new ContentModel('|', new ContentModel('*', A, null),
* new ContentModel('?', B, null)); // d represents ( A* | B? )
* </pre>
* where the valid operations are:
* <ul>
* <li><code>E* </code> E occurs zero or more times</li>
* <li><code>E+ </code> E occurs one or more times</li>
* <li><code>E? </code> E occurs once or not atl all</li>
* <li><code>A,B</code> A occurs before B</li>
* <li><code>A|B</code> both A and B are permitted in any order.
* The '|' alone does not permit the repetetive occurence of A or B
* (use <code>(A|B)*</code>.</li>
* <li><code>A&amp;B</code> both A and B must occur once (in any order)</li>
* </ul>
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public final class ContentModel
implements Serializable
{
/** Use serialVersionUID for interoperability. */
private static final long serialVersionUID = -1130825523866321257L;
/**
* The next content model model ( = pointer to the next element of
* the linked list) for the binary expression (',','&amp;' or '|'). Null
* for the last element in the list.
*/
public ContentModel next;
/**
* The document content, containing either Element or the enclosed
* content model (that would be in the parentheses in BNF expression).
*/
public Object content;
/**
* Specifies the BNF operation between this node and the node,
* stored in the field <code>next</code> (or for this node, if it is
* an unary operation.
*/
public int type;
/** Create a content model initializing all fields to default values. */
public ContentModel()
{
}
/**
* Create a content model, consisting of the single element.
* Examples:
*<code>
* a = new ContentModel('+', A, null); // a reprensents A+
* b = new ContentModel('&amp;', B, a); // b represents B &amp; A+
* c = new ContentModel('*', b, null); // c represents ( B &amp; A+) *
* d = new ContentModel('|', A,
* new ContentModel('?',b, null);
* // d represents
* </code>
*/
public ContentModel(Element a_content)
{
content = a_content;
}
/**
* Create a content model, involving expression of the given type.
* @param a_type The expression operation type ('*','?' or '+'
* @param a_content The content for that the expression is applied.
*/
public ContentModel(int a_type, ContentModel a_content)
{
content = a_content;
type = a_type;
}
/**
* Create a content model, involving binary expression of the given type.
* @param a_type The expression operation type ( ',', '|' or '&amp;').
* @param a_content The content of the left part of the expression.
* @param a_next The content model, representing the right part of the
* expression.
*/
public ContentModel(int a_type, Object a_content, ContentModel a_next)
{
content = a_content;
type = a_type;
next = a_next;
}
/**
* Adds all list elements to the given vector, ignoring the
* operations between the elements. The old vector values are not
* discarded.
* @param elements - a vector to add the values to.
*/
public void getElements(Vector elements)
{
ContentModel c = this;
while (c != null)
{
elements.add(c.content);
c = c.next;
}
}
/**
* Checks if the content model matches an empty input stream.
* The empty content is created using SGML DTD keyword EMPTY.
* The empty model is a model with the content field equal to null.
*
* @return true if the content field is equal to null.
*/
public boolean empty()
{
return content == null;
}
/**
* Get the element, stored in the <code>next.content</code>.
* The method is programmed as the part of the standard API, but not
* used in this implementation.
* @return the value of the field <code>next</code>.
*/
public Element first()
{
return (Element) next.content;
}
/**
* Checks if this object can potentially be the first token in the
* ContenModel list. The method is programmed as the part of the
* standard API, but not used in this implementation.
*/
public boolean first(Object token)
{
ContentModel c = this;
while (c.next != null)
{
if (c.content != null && c.content.toString().equals(token.toString()) &&
c.type != ','
)
// Agree if the operation with the preceeding element
// is not the comma operation.
return true;
c = c.next;
}
return false;
}
/**
* Returns a string representation (an expression) of this content model.
* The expression has BNF-like syntax, except the absence of the
* unary operator is additionally indicated by " ' ". It is
* advisable to check the created models for correctness using this
* method.
*/
public String toString()
{
return transformer.transform(this).toString();
}
}

View file

@ -0,0 +1,607 @@
/* DTD.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.BitSet;
import java.util.Hashtable;
import java.util.StringTokenizer;
import java.util.Vector;
/**
* <p>Representation or the SGML DTD document.
* Provides basis for describing a syntax of the
* HTML documents. The fields of this class are NOT initialized in
* constructor. You need to do this separately before passing this data
* structure to the HTML parser. The subclasses with the fields, pre-
* initialized, for example, for HTML 4.01, can be available only between
* the implementation specific classes
* ( for example, {@link gnu.javax.swing.text.html.parser.HTML_401F }
* in this implementation).</p>
* <p>
* If you need more information about SGML DTD documents,
* the author suggests to read SGML tutorial on
* {@link http://www.w3.org/TR/WD-html40-970708/intro/sgmltut.html}.
* We also recommend Goldfarb C.F (1991) <i>The SGML Handbook</i>,
* Oxford University Press, 688 p, ISBN: 0198537379.
* </p>
* <p>
* Warning: the html, head and other tag fields will only be automatically
* assigned if the VM has the correctly implemented reflection mechanism.
* As these fields are not used anywhere in the implementation, not
* exception will be thrown in the opposite case.
* </p>
*
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class DTD
implements DTDConstants
{
/**
* The version of the persistent data format.
*/
public static int FILE_VERSION = 1;
/**
* The table of existing available DTDs.
*/
static Hashtable dtdHash = new Hashtable();
/**
* The applet element for this DTD.
*/
public Element applet;
/**
* The base element for this DTD.
*/
public Element base;
/**
* The body element for this DTD.
*/
public Element body;
/**
* The head element for this DTD.
*/
public Element head;
/**
* The html element for this DTD.
*/
public Element html;
/**
* The isindex element of for this DTD.
*/
public Element isindex;
/**
* The meta element for this DTD.
*/
public Element meta;
/**
* The p element for this DTD.
*/
public Element p;
/**
* The param element for this DTD.
*/
public Element param;
/**
* The pcdata for this DTD.
*/
public Element pcdata;
/**
* The title element for this DTD.
*/
public Element title;
/**
* The element for accessing all DTD elements by name.
*/
public Hashtable elementHash = new Hashtable();
/**
* The entity table for accessing all DTD entities by name.
*/
public Hashtable entityHash = new Hashtable();
/**
* The name of this DTD.
*/
public String name;
/**
* Contains all elements in this DTD. The
* javax.swing.text.html.parser.Element#index field of all elements
* in this vector is set to the element position in this vector.
*/
public Vector elements = new Vector();
/** Create a new DTD with the specified name. */
protected DTD(String a_name)
{
name = a_name;
}
/** Get this DTD by name. The current implementation
* only looks in the internal table of DTD documents. If no corresponding
* entry is found, the new entry is created, placed into
* the table and returned. */
public static DTD getDTD(String name)
throws IOException
{
DTD d = (DTD) dtdHash.get(name);
if (d == null)
{
d = new DTD(name);
dtdHash.put(d.name, d);
}
return d;
}
/**
* Get the element by the element name. If the element is not yet
* defined, it is newly created and placed into the element table.
* If the element name matches (ingoring case) a public non static
* element field in this class, this field is assigned to the value
* of the newly created element.
*/
public Element getElement(String element_name)
{
return newElement(element_name);
}
/**
* Get the element by the value of its
* {@link javax.swing.text.html.parser.Element#index} field.
*/
public Element getElement(int index)
{
return (Element) elements.get(index);
}
/**
* Get the entity with the given identifier.
* @param id that can be returned by
* {@link javax.swing.text.html.parser.Entity#name2type(String an_entity)}
* @return The entity from this DTD or null if there is no entity with
* such id or such entity is not present in the table of this instance.
*/
public Entity getEntity(int id)
{
String name = Entity.mapper.get(id);
if (name != null)
return (Entity) entityHash.get(name);
else
return null;
}
/**
* Get the named entity by its name.
*/
public Entity getEntity(String entity_name)
{
return (Entity) entityHash.get(entity_name);
}
/**
* Get the name of this instance of DTD
*/
public String getName()
{
return name;
}
/**
* Creates, adds into the entity table and returns the
* character entity like <code>&amp;lt;</code>
* (means '<code>&lt;</code>' );
* @param name The entity name (without heading &amp; and closing ;)
* @param type The entity type
* @param character The entity value (single character)
* @return The created entity
*/
public Entity defEntity(String name, int type, int character)
{
Entity e = newEntity(name, type);
e.data = new char[] { (char) character };
return e;
}
/**
* Define the attributes for the element with the given name.
* If the element is not exist, it is created.
* @param forElement
* @param attributes
*/
public void defineAttributes(String forElement, AttributeList attributes)
{
Element e = (Element) elementHash.get(forElement.toLowerCase());
if (e == null)
e = newElement(forElement);
e.atts = attributes;
}
/**
* Defines the element and adds it to the element table. Sets the
* <code>Element.index</code> field to the value, unique for this
* instance of DTD. If the element with the given name already exists,
* replaces all other its settings by the method argument values.
* @param name the name of the element
* @param type the type of the element
* @param headless true if the element needs no starting tag
* (should not occur in HTML).
* @param tailless true if the element needs no ending tag (like
* <code>&lt;hr&gt;</code>
* @param content the element content
* @param exclusions the set of elements that must not occur inside
* this element. The <code>Element.index</code> value defines which
* bit in this bitset corresponds to that element.
* @param inclusions the set of elements that can occur inside this
* element. the <code>Element.index</code> value defines which
* bit in this bitset corresponds to that element.
* @param attributes the element attributes.
* @return the newly defined element.
*/
public Element defineElement(String name, int type, boolean headless,
boolean tailless, ContentModel content,
BitSet exclusions, BitSet inclusions,
AttributeList attributes
)
{
Element e = newElement(name);
e.type = type;
e.oStart = headless;
e.oEnd = tailless;
e.content = content;
e.exclusions = exclusions;
e.inclusions = inclusions;
e.atts = attributes;
return e;
}
/**
* Creates, intializes and adds to the entity table the new
* entity.
* @param name the name of the entity
* @param type the type of the entity
* @param data the data section of the entity
* @return the created entity
*/
public Entity defineEntity(String name, int type, char[] data)
{
Entity e = newEntity(name, type);
e.data = data;
return e;
}
/** Place this DTD into the DTD table. */
public static void putDTDHash(String name, DTD dtd)
{
dtdHash.put(name, dtd);
}
/**
* <p>Reads DTD from an archived format. This format is not standardized
* and differs between implementations.</p><p> This implementation
* reads and defines all entities and elements using
* ObjectInputStream. The elements and entities can be written into the
* stream in any order. The objects other than elements and entities
* are ignored.</p>
* @param stream A data stream to read from.
* @throws java.io.IOException If one is thrown by the input stream
*/
public void read(DataInputStream stream)
throws java.io.IOException
{
ObjectInputStream oi = new ObjectInputStream(stream);
Object def;
try
{
while (true)
{
def = oi.readObject();
if (def instanceof Element)
{
Element e = (Element) def;
elementHash.put(e.name.toLowerCase(), e);
assignField(e);
}
else if (def instanceof Entity)
{
Entity e = (Entity) def;
entityHash.put(e.name, e);
}
}
}
catch (ClassNotFoundException ex)
{
throw new IOException(ex.getMessage());
}
catch (EOFException ex)
{
// ok EOF
}
}
/**
* Returns the name of this instance of DTD.
*/
public String toString()
{
return name;
}
/**
* Creates and returns new attribute (not an attribute list).
* @param name the name of this attribute
* @param type the type of this attribute (FIXED, IMPLIED or
* REQUIRED from <code>DTDConstants</code>).
* @param modifier the modifier of this attribute
* @param default_value the default value of this attribute
* @param allowed_values the allowed values of this attribute. The multiple
* possible values in this parameter are supposed to be separated by
* '|', same as in SGML DTD <code>&lt;!ATTLIST </code>tag. This parameter
* can be null if no list of allowed values is specified.
* @param atts the previous attribute of this element. This is
* placed to the field
* {@link javax.swing.text.html.parser.AttributeList#next },
* creating a linked list.
* @return
*/
protected AttributeList defAttributeList(String name, int type, int modifier,
String default_value,
String allowed_values,
AttributeList atts
)
{
AttributeList al = new AttributeList(name);
al.modifier = modifier;
al.value = default_value;
al.next = atts;
if (allowed_values != null)
{
StringTokenizer st = new StringTokenizer(allowed_values, " \t|");
Vector v = new Vector(st.countTokens());
while (st.hasMoreTokens())
v.add(st.nextToken());
al.values = v;
}
return al;
}
/**
* Creates a new content model.
* @param type specifies the BNF operation for this content model.
* The valid operations are documented in the
* {@link javax.swing.text.html.parser.ContentModel#type }.
* @param content the content of this content model
* @param next if the content model is specified by BNF-like
* expression, contains the rest of this expression.
* @return The newly created content model.
*/
protected ContentModel defContentModel(int type, Object content,
ContentModel next
)
{
ContentModel model = new ContentModel();
model.type = type;
model.next = next;
model.content = content;
return model;
}
/**
* Defines a new element and adds it to the element table.
* If the element alredy exists,
* overrides it settings with the specified values.
* @param name the name of the new element
* @param type the type of the element
* @param headless true if the element needs no starting tag
* @param tailless true if the element needs no closing tag
* @param content the element content.
* @param exclusions the elements that must be excluded from the
* content of this element, in all levels of the hierarchy.
* @param inclusions the elements that can be included as the
* content of this element.
* @param attributes the element attributes.
* @return the created or updated element.
*/
protected Element defElement(String name, int type, boolean headless,
boolean tailless, ContentModel content,
String[] exclusions, String[] inclusions,
AttributeList attributes
)
{
// compute the bit sets
BitSet exclude = bitSet(exclusions);
BitSet include = bitSet(inclusions);
Element e =
defineElement(name, type, headless, tailless, content, exclude, include,
attributes
);
return e;
}
/**
* Creates, intializes and adds to the entity table the new
* entity.
* @param name the name of the entity
* @param type the type of the entity
* @param data the data section of the entity
* @return the created entity
*/
protected Entity defEntity(String name, int type, String data)
{
Entity e = newEntity(name, type);
e.data = data.toCharArray();
return e;
}
private void assignField(Element e)
{
String element_name = e.name;
try
{
// Assign the field via reflection.
Field f = getClass().getField(element_name.toLowerCase());
if ((f.getModifiers() & Modifier.PUBLIC) != 0)
if ((f.getModifiers() & Modifier.STATIC) == 0)
if (f.getType().isAssignableFrom(e.getClass()))
f.set(this, e);
}
catch (IllegalAccessException ex)
{
unexpected(ex);
}
catch (NoSuchFieldException ex)
{
// This is ok.
}
// Some virtual machines may still lack the proper
// implementation of reflection. As the tag fields
// are not used anywhere in this implementation,
// (and this class is also rarely used by the end user),
// it may be better not to crash everything by throwing an error
// for each case when the HTML parsing is required.
catch (Throwable t)
{
// This VM has no reflection mechanism implemented!
if (t instanceof OutOfMemoryError)
throw (Error) t;
}
}
/**
* Create the bit set for this array of elements.
* The unknown elements are automatically defined and added
* to the element table.
* @param elements
* @return
*/
private BitSet bitSet(String[] elements)
{
BitSet b = new BitSet();
for (int i = 0; i < elements.length; i++)
{
Element e = getElement(elements [ i ]);
if (e == null)
e = newElement(elements [ i ]);
b.set(e.index);
}
return b;
}
/**
* Find the element with the given name in the element table.
* If not find, create a new element with this name and add to the
* table.
* @param name the name of the element
* @return the found or created element.
*/
private Element newElement(String name)
{
Element e = (Element) elementHash.get(name.toLowerCase());
if (e == null)
{
e = new Element();
e.name = name;
e.index = elements.size();
elements.add(e);
elementHash.put(e.name.toLowerCase(), e);
assignField(e);
}
return e;
}
/**
* Creates and adds to the element table the entity with an
* unitialized data section. Used internally.
* @param name the name of the entity
* @param type the type of the entity, a bitwise combination
* of GENERAL, PARAMETER, SYSTEM and PUBLIC.
* @throws an error if the parameter is both GENERAL and PARAMETER
* of both PUBLIC and SYSTEM.
* @return the created entity
*/
private Entity newEntity(String name, int type)
{
Entity e = new Entity(name, type, null);
entityHash.put(e.name, e);
return e;
}
private void unexpected(Exception ex)
{
throw new Error("This should never happen, report a bug", ex);
}
}

View file

@ -0,0 +1,290 @@
/* DTDConstants.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
/**
* <p>This class defines the SGML basic types, used for describing HTML 4.01
* at {@link http://www.w3.org/TR/html4/types.html }. Not all constants,
* defined here, are actually used in HTML 4.01 SGML specification. Some others
* are defined just as part of the required implementation.
* </p>
* <p>
* If you need more information about SGML DTD documents,
* the author suggests to read SGML tutorial on
* {@link http://www.w3.org/TR/WD-html40-970708/intro/sgmltut.html}.
* We also recommend Goldfarb C.F (1991) <i>The SGML Handbook</i>,
* Oxford University Press, 688 p, ISBN: 0198537379.
* </p>
*
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public interface DTDConstants
{
/* ----- The data types, used in HTML 4.01 SGML definition: ---- */
/**
* The CDATA (Character data) constant, specifes the content model,
* consisting of characters only. In SGML for HTML 4.01, the character
* entities must be replaced by characters, the line feeds must be
* ignored and any number of the subsequent carriage returns or tabs
* must be replaced by a single space.
*/
int CDATA = 1;
/**
* The EMPTY constant, means the element with no content.
*/
int EMPTY = 17;
/**
* The ID constant, means that the token is the unique identifier.
* This identifier can be referenced by attribute with value of IDREF.
* The identifier must begin with letter, followed by any number of
* letters, digits, hyphens, underscores, colons and periods.
*/
int ID = 4;
/**
* The IDREF constant, specifies reference to a valid ID within
* the document.
*/
int IDREF = 5;
/**
* The IDREFS constant, a space separated list of IDREFs
*/
int IDREFS = 6;
/**
* The NAME constant, means the token that
* must begin with letter, followed by any number of
* letters, digits, hyphens, underscores, colons and periods.
*/
int NAME = 7;
/**
* The NAMES constant, specifies a space separated of NAMEs.
*/
int NAMES = 8;
/**
* The NMTOKEN constant, specifies the attribute, consisting of
* characters that can be either digits or alphabetic characters).
*/
int NMTOKEN = 9;
/**
* The NMTOKENS constant, specifies a list of NMTOKENs.
*/
int NMTOKENS = 10;
/**
* The NOTATION constant, a previously defined data type.
*/
int NOTATION = 11;
/**
* The NUMBER constant (means that the attribute consists of at least
* one decimal digit).
*/
int NUMBER = 12;
/**
* The NUMBERS constant, specifies a space separated list of NUMBERs.
*/
int NUMBERS = 13;
/**
* The NUTOKEN constant.
*/
int NUTOKEN = 14;
/**
* The NUTOKENS constant.
*/
int NUTOKENS = 15;
/* -------
The entity scope constants.
As these four constants are combined with the bitwise OR,
they are defined in the hexadecimal notation.
The reason of setting the two bits at once (for PUBLIC and SYSTEM)
is probably historical. ----- */
/**
* The PUBLIC constant, specifies the public entity. The PUBLIC entities
* are assumed to be known to many systems so that a full declaration
* need not be transmitted. For example,
* &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN"&gt;
*/
int PUBLIC = 0xA;
/**
* The SYSTEM constant, specifies the system entitiy. The system entities
* are assumed to be known but require the clear identifer
* (like the file path), where they can be found in the system.
* For example, <code>
* &lt;DOCTYPE html SYSTEM "/path/to/file.dtd"&gt; </code>.
*/
int SYSTEM = 0x11;
/**
* The PARAMETER constant, specifies that entity is only valid
* inside SGML DTD scope.
*/
int PARAMETER = 0x40000;
/**
* The GENERAL constant, specifies theat the entity is valid in the
* whole HTML document scope.
*/
int GENERAL = 0x10000;
/* ---- The constants, defining if the element attribute is required,
fixed or implied. ---- */
/**
* The attribute modifier #REQUIRED constant, indicates that the
* value must be supplied.
*/
int REQUIRED = 2;
/**
* The attribute modifier #FIXED constant, means that the attribute has
* the fixed value that cannot be changed.
*/
int FIXED = 1;
/**
* The attribute modifier #IMPLIED constant,
* indicating that for this attribute the user agent must provide
* the value itself.
*/
int IMPLIED = 5;
/**
* The attribute modifier #CURRENT constant, specifies the value
* that at any point in the document is the last value supplied for
* that element. A value is required to be supplied for the first
* occurrence of an element
*/
int CURRENT = 3;
/**
* The attribute modifier #CONREF constant, specifies the IDREF value of
* the reference to content in another location of the document.
* The element with this attribute is empty, the content from
* that another location must be used instead.
*/
int CONREF = 4;
/* ----- Constants, defining if the element
start and end tags are required. ---- */
/**
* The STARTTAG, meaning that the element needs a starting tag.
*/
int STARTTAG = 13;
/**
* The ENDTAG constant, meaning that the element needs a closing tag.
*/
int ENDTAG = 14;
/* ----- Other constants: ----- */
/**
* The ANY constant, specifies
* an attribute, consisting from arbitrary characters.
*/
int ANY = 19;
/**
* The DEFAULT constant, specifies the default value.
*/
int DEFAULT = 131072;
/**
* The ENTITIES constant (list of ENTITYes)
*/
int ENTITIES = 3;
/**
* The ENTITY constant, meaning the numeric or symbolic name of some
* HTML data.
*/
int ENTITY = 2;
/**
* The MD constant.
*/
int MD = 16;
/**
* The MODEL constant.
*/
int MODEL = 18;
/**
* The MS constant.
*/
int MS = 15;
/**
* The PI (Processing Instruction) constant, specifies a processing
* instruction. Processing instructions are used to embed information
* intended for specific applications.
*/
int PI = 12;
/**
* The RCDATA constant (Entity References and Character Data), specifies
* the content model, consisting of characters AND entities. The
* "&lt;" is threated as an ordinary character, but
* "<code>&amp;name;</code>" still means the general entity with
* the given name.
*/
int RCDATA = 16;
/**
* The SDATA constant. Means that the value contains the entity name
* and the replacement value of a character entity reference.
*/
int SDATA = 11;
}

View file

@ -0,0 +1,258 @@
/* DocumentParser.java -- A parser for HTML documents.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
import gnu.javax.swing.text.html.parser.htmlAttributeSet;
import javax.swing.text.html.parser.Parser;
import java.io.IOException;
import java.io.Reader;
import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTMLEditorKit;
/**
* <p>A simple error-tolerant HTML parser that uses a DTD document
* to access data on the possible tokens, arguments and syntax.</p>
* <p> The parser reads an HTML content from a Reader and calls various
* notifying methods (which should be overridden in a subclass)
* when tags or data are encountered.</p>
* <p>Some HTML elements need no opening or closing tags. The
* task of this parser is to invoke the tag handling methods also when
* the tags are not explicitly specified and must be supposed using
* information, stored in the DTD.
* For example, parsing the document
* <p>&lt;table&gt;&lt;tr&gt;&lt;td&gt;a&lt;td&gt;b&lt;td&gt;c&lt;/tr&gt; <br>
* will invoke exactly the handling methods exactly in the same order
* (and with the same parameters) as if parsing the document: <br>
* <em>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;table&gt;&lt;
* tbody&gt;</em>&lt;tr&gt;&lt;td&gt;a<em>&lt;/td&gt;</em>&lt;td&gt;b<em>
* &lt;/td&gt;</em>&lt;td&gt;c<em>&lt;/td&gt;&lt;/tr&gt;</em>&lt;
* <em>/tbody&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</em></p>
* (supposed tags are given in italics). The parser also supports
* obsolete elements of HTML syntax.<p>
* </p>
* In this implementation, DocumentParser is directly derived from its
* ancestor without changes of functionality.
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public class DocumentParser
extends Parser
implements DTDConstants
{
/**
* The enclosed working parser class.
*/
private class gnuParser
extends gnu.javax.swing.text.html.parser.support.Parser
{
private gnuParser(DTD d)
{
super(d);
}
protected final void handleComment(char[] comment)
{
parser.handleComment(comment);
callBack.handleComment(comment, hTag.where.startPosition);
}
protected final void handleEmptyTag(TagElement tag)
throws javax.swing.text.ChangedCharSetException
{
parser.handleEmptyTag(tag);
callBack.handleSimpleTag(tag.getHTMLTag(), getAttributes(),
hTag.where.startPosition
);
}
protected final void handleEndTag(TagElement tag)
{
parser.handleEndTag(tag);
callBack.handleEndTag(tag.getHTMLTag(), hTag.where.startPosition);
}
protected final void handleError(int line, String message)
{
parser.handleError(line, message);
callBack.handleError(message, hTag.where.startPosition);
}
protected final void handleStartTag(TagElement tag)
{
parser.handleStartTag(tag);
htmlAttributeSet attributes = gnu.getAttributes();
if (tag.fictional())
attributes.addAttribute(HTMLEditorKit.ParserCallback.IMPLIED,
Boolean.TRUE
);
callBack.handleStartTag(tag.getHTMLTag(), attributes,
hTag.where.startPosition
);
}
protected final void handleText(char[] text)
{
parser.handleText(text);
callBack.handleText(text, hTag.where.startPosition);
}
DTD getDTD()
{
return dtd;
}
}
/**
* This field is used to access the identically named
* methods of the outer class.
*/
private DocumentParser parser = this;
/**
* The callback.
*/
private HTMLEditorKit.ParserCallback callBack;
/**
* The reference to the working class of HTML parser that is
* actually used to parse the document.
*/
private gnuParser gnu;
/**
* Creates a new parser that uses the given DTD to access data on the
* possible tokens, arguments and syntax. There is no single - step way
* to get a default DTD; you must either refer to the implementation -
* specific packages, write your own DTD or obtain the working instance
* of parser in other way, for example, by calling
* {@link javax.swing.text.html.HTMLEditorKit#getParser() }.
* @param a_dtd a DTD to use.
*/
public DocumentParser(DTD a_dtd)
{
super(a_dtd);
gnu = new gnuParser(a_dtd);
}
/**
* Parses the HTML document, calling methods of the provided
* callback. This method must be multithread - safe.
* @param reader The reader to read the HTML document from
* @param callback The callback that is notifyed about the presence
* of HTML elements in the document.
* @param ignoreCharSet If thrue, any charset changes during parsing
* are ignored.
* @throws java.io.IOException
*/
public void parse(Reader reader, HTMLEditorKit.ParserCallback a_callback,
boolean ignoreCharSet
)
throws IOException
{
callBack = a_callback;
gnu.parse(reader);
callBack.handleEndOfLineString(gnu.getEndOfLineSequence());
try
{
callBack.flush();
}
catch (BadLocationException ex)
{
// Convert this into the supported type of exception.
throw new IOException(ex.getMessage());
}
}
/**
* Handle HTML comment. The default method returns without action.
* @param comment the comment being handled
*/
protected void handleComment(char[] comment)
{
}
/**
* Handle the tag with no content, like &lt;br&gt;. The method is
* called for the elements that, in accordance with the current DTD,
* has an empty content.
* @param tag the tag being handled.
* @throws javax.swing.text.ChangedCharSetException
*/
protected void handleEmptyTag(TagElement tag)
throws javax.swing.text.ChangedCharSetException
{
}
/**
* The method is called when the HTML closing tag ((like &lt;/table&gt;)
* is found or if the parser concludes that the one should be present
* in the current position.
* @param The tag being handled
*/
protected void handleEndTag(TagElement tag)
{
}
/* Handle error that has occured in the given line. */
protected void handleError(int line, String message)
{
}
/**
* The method is called when the HTML opening tag ((like &lt;table&gt;)
* is found or if the parser concludes that the one should be present
* in the current position.
* @param The tag being handled
*/
protected void handleStartTag(TagElement tag)
{
}
/**
* Handle the text section.
* @param text a section text.
*/
protected void handleText(char[] text)
{
}
}

View file

@ -0,0 +1,317 @@
/* Element.java --
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing.text.html.parser;
import gnu.javax.swing.text.html.parser.support.gnuStringIntMapper;
import java.io.Serializable;
import java.util.BitSet;
/**
* <p>
* Stores the element information, obtained by parsing SGML DTD
* tag <code>&lt;!ELEMENT .. &gt;</code>. This class has no public
* constructor and can only be instantiated using the
* {@link javax.swing.text.html.parser.DTD } methods</p>
*
* <p>SGML defines elements that represent structures or
* behavior. An element typically consists of a start tag, content, and an
* end tag. Hence the elements are not tags. The HTML 4.0 definition specifies
* that some elements are not required to have the end tags. Also, some
* HTML elements (like <code>&lt;hr&gt;</code>) have no content. Element names
* are case sensitive.</p>
* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
*/
public final class Element
implements DTDConstants, Serializable
{
/**
* Package level mapper between type names and they string values.
*/
static final gnuStringIntMapper mapper =
new gnuStringIntMapper()
{
protected void create()
{
add("CDATA", DTDConstants.CDATA);
add("RCDATA", DTDConstants.RCDATA);
add("EMPTY", DTDConstants.EMPTY);
add("ANY", DTDConstants.ANY);
}
};
/** Use serialVersionUID for interoperability. */
private static final long serialVersionUID = -6717939384601675586L;
/**
* The element attributes.
*/
public AttributeList atts;
/**
* Contains refernces to elements that must NOT occur inside this element,
* at any level of hierarchy.
*/
public BitSet exclusions;
/**
* Contains refernces to elements that must CAN occur inside this element,
* at any level of hierarchy.
*/
public BitSet inclusions;
/**
* The content model, defining elements, entities and DTD text
* that may/may not occur inside this element.
*/
public ContentModel content;
/**
* A field to store additional user data for this Element.
*/
public Object data;
/**
* The element name.
*/
public String name;
/**
* True is this element need not to have the closing tag, false
* otherwise. The HTML 4.0 definition specifies
* that some elements (like <code>&lt;hr&gt;</code>are
* not required to have the end tags.
*/
public boolean oEnd;
/**
* True is this element need not to have the starting tag, false
* otherwise. The HTML 4.0 definition specifies
* that some elements (like <code>&lt;head&gt;</code> or
* <code>&lt;body&gt;</code>) are
* not required to have the start tags.
*/
public boolean oStart;
/**
* This field contains the unique integer identifier of this Element,
* used to refer the element (more exactly, the element flag)
* in <code>inclusions</code> and <code>exclusions</code> bit set.
*/
public int index;
/**
* The element type, containing value, defined in DTDConstants.
* In this implementation, the element type can be
* CDATA, RCDATA, EMPTY or ANY.
*/
public int type;
/**
* The default constructor must have package level access in this
* class. Use DTD.defineElement(..) to create an element when required.
* @todo MAKE THIS PACKAGE in the final version. Now the Parser needs it!
*/
Element()
{
}
/**
* Converts the string representation of the element type
* into its unique integer identifier, defined in DTDConstants.
* @param a_type A name of the type
* @return DTDConstants.CDATA, DTDConstants.RCDATA, DTDConstants.EMPTY,
* DTDConstants.ANY or null if the type name is not
* "CDATA", "RCDATA", "EMPTY" or "ANY". This function is case sensitive.
* @throws NullPointerException if <code>a_type</code> is null.
*/
public static int name2type(String a_type)
{
return mapper.get(a_type);
}
/**
* Get the element attribute by name.
* @param attribute the attribute name, case insensitive.
* @return the correspoding attribute of this element. The class,
* for storing as attribute list, as a single attribute, is used to
* store a single attribute in this case.
* @throws NullPointerException if the attribute name is null.
*/
public AttributeList getAttribute(String attribute)
{
AttributeList a = atts;
while (a != null && !attribute.equalsIgnoreCase(a.name))
a = a.next;
return a;
}
/**
* Get the element attribute by its value.
* @param a_value the attribute value, case insensitive.
* @return the correspoding attribute of this element. The class,
* for storing as attribute list, as a single attribute, is used to
* store a single attribute in this case. If there are several
* attributes with the same value, there is no garranty, which one
* is returned.
*/
public AttributeList getAttributeByValue(String a_value)
{
AttributeList a = atts;
if (a_value == null)
{
while (a != null)
{
if (a.value == null)
return a;
a = a.next;
}
}
else
{
while (a != null)
{
if (a.value != null && a_value.equalsIgnoreCase(a.value))
return a;
a = a.next;
}
}
return null;
}
/**
* Get all attributes of this document as an attribute list.
* @return
*/
public AttributeList getAttributes()
{
return atts;
}
/**
* Get the content model, defining elements, entities and DTD text
* that may/may not occur inside this element.
*/
public ContentModel getContent()
{
return content;
}
/**
* Returns true for the element with no content.
* Empty elements are defined with the SGML DTD keyword "EMPTY".
* @return true if content model field (content) method is equal to
* null or its method empty() returns true.
*/
public boolean isEmpty()
{
return content == null || content.empty();
}
/**
* Get the unique integer identifier of this Element,
* used to refer the element (more exactly, the element flag)
* in <code>inclusions</code> and <code>exclusions</code> bit set.
* WARNING: This value may not be the same between different
* implementations.
*/
public int getIndex()
{
return index;
}
/**
* Get the element name.
*/
public String getName()
{
return name;
}
/**
* Get the element type.
* @return one of the values, defined DTDConstants.
* In this implementation, the element type can be
* CDATA, RCDATA, EMPTY or ANY.
*/
public int getType()
{
return type;
}
/**
* True is this element need not to have the starting tag, false
* otherwise.s element need not to have the closing tag, false
* otherwise. The HTML 4.0 definition specifies
* that some elements (like <code>&lt;hr&gt;</code>are
* not required to have the end tags.
*/
public boolean omitEnd()
{
return oEnd;
}
/**
* True is this element need not to have the closing tag, false
* otherwise. The HTML 4.0 definition specifies
* that some elements (like <code>&lt;head&gt;</code> or
* <code>&lt;body&gt;</code>) are
* not required to have the start tags.
*/
public boolean omitStart()
{
return oStart;
}
/**
* Returns the name of this element.
*/
public String toString()
{
return name;
}
}

Some files were not shown because too many files have changed in this diff Show more