[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:
@@ -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>
|
||||
+3729
File diff suppressed because it is too large
Load Diff
+422
@@ -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><!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>&lt;</code>
|
||||
* (means '<code><</code>' );
|
||||
* This method inactivates the recursive refenrences to the same
|
||||
* entity.
|
||||
* @param name The entity name (without heading & 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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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 <head> tag: the parser is notified about its silent closing
|
||||
* when <body> 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 + "'"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
+382
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
+337
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
+1440
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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 + ">";
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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><b><i>c</b>d</code>
|
||||
* is parsed as <code><b><i>c</i></b><i>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 ( <! ... > ).
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user