Thread: [Htmlparser-cvs] htmlparser/src/org/htmlparser/scanners CompositeTagScanner.java,1.86,1.87 Scanner.j
Brought to you by:
derrickoswald
From: Derrick O. <der...@us...> - 2004-07-02 00:50:07
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32670/src/org/htmlparser/scanners Modified Files: CompositeTagScanner.java Scanner.java ScriptScanner.java StyleScanner.java TagScanner.java Log Message: Part four of a multiphase refactoring. Most internals now use the Tag interface. This interface has been broadened to add set/get scanner and set/get endtag. Removed the org.htmlparser.tags.Tag class and moved the remaining (minor) functionality to the TagNode class. So now tags inherit directly from TagNode or CompositeTag. ** NOTE: If you have subclassed org.htmlparser.tags.Tag, use org.htmlparser.nodes.TagNode now.** Removed deprecated methods getTagBegin/getTagEnd and deleted unused classes: PeekingIterator and it's Implementation. Index: CompositeTagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/CompositeTagScanner.java,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** CompositeTagScanner.java 24 May 2004 16:18:20 -0000 1.86 --- CompositeTagScanner.java 2 Jul 2004 00:49:28 -0000 1.87 *************** *** 31,39 **** import org.htmlparser.Attribute; import org.htmlparser.Node; import org.htmlparser.lexer.Lexer; import org.htmlparser.lexer.Page; import org.htmlparser.scanners.Scanner; - import org.htmlparser.tags.CompositeTag; - import org.htmlparser.tags.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 31,39 ---- import org.htmlparser.Attribute; import org.htmlparser.Node; + import org.htmlparser.Tag; import org.htmlparser.lexer.Lexer; import org.htmlparser.lexer.Page; + import org.htmlparser.nodes.TagNode; import org.htmlparser.scanners.Scanner; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; *************** *** 101,107 **** String name; Scanner scanner; ! CompositeTag ret; ! ret = (CompositeTag)tag; if (ret.isEmptyXmlTag ()) --- 101,107 ---- String name; Scanner scanner; ! Tag ret; ! ret = tag; if (ret.isEmptyXmlTag ()) *************** *** 143,159 **** { // fake recursion: ! if ((scanner == this) && (next instanceof CompositeTag)) { ! CompositeTag ondeck = (CompositeTag)next; ! if (ondeck.isEmptyXmlTag ()) { ! ondeck.setEndTag (ondeck); ! finishTag (ondeck, lexer); ! addChild (ret, ondeck); } else { stack.add (ret); ! ret = ondeck; } } --- 143,158 ---- { // fake recursion: ! if (scanner == this) { ! if (next.isEmptyXmlTag ()) { ! next.setEndTag (next); ! finishTag (next, lexer); ! addChild (ret, next); } else { stack.add (ret); ! ret = next; } } *************** *** 192,196 **** attributes.addElement (new Attribute (name, null)); Tag opener = (Tag)lexer.getNodeFactory ().createTagNode ( ! next.getPage (), next.getStartPosition (), next.getEndPosition (), attributes); --- 191,195 ---- attributes.addElement (new Attribute (name, null)); Tag opener = (Tag)lexer.getNodeFactory ().createTagNode ( ! lexer.getPage (), next.getStartPosition (), next.getEndPosition (), attributes); *************** *** 202,208 **** for (int i = stack.size () - 1; (-1 == index) && (i >= 0); i--) { ! // short circuit here... assume everything on the stack is a CompositeTag and has this as it's scanner // we'll need to stop if either of those conditions isn't met ! CompositeTag boffo = (CompositeTag)stack.elementAt (i); if (name.equals (boffo.getTagName ())) index = i; --- 201,207 ---- for (int i = stack.size () - 1; (-1 == index) && (i >= 0); i--) { ! // short circuit here... assume everything on the stack has this as it's scanner // we'll need to stop if either of those conditions isn't met ! Tag boffo = (Tag)stack.elementAt (i); if (name.equals (boffo.getTagName ())) index = i; *************** *** 214,225 **** // finish off the current one first finishTag (ret, lexer); ! addChild ((CompositeTag)stack.elementAt (stack.size () - 1), ret); for (int i = stack.size () - 1; i > index; i--) { ! CompositeTag fred = (CompositeTag)stack.remove (i); finishTag (fred, lexer); ! addChild ((CompositeTag)stack.elementAt (i - 1), fred); } ! ret = (CompositeTag)stack.remove (index); node = null; } --- 213,224 ---- // finish off the current one first finishTag (ret, lexer); ! addChild ((Tag)stack.elementAt (stack.size () - 1), ret); for (int i = stack.size () - 1; i > index; i--) { ! Tag fred = (Tag)stack.remove (i); finishTag (fred, lexer); ! addChild ((Tag)stack.elementAt (i - 1), fred); } ! ret = (Tag)stack.remove (index); node = null; } *************** *** 247,253 **** { node = stack.elementAt (depth - 1); ! if (node instanceof CompositeTag) { ! CompositeTag precursor = (CompositeTag)node; scanner = precursor.getThisScanner (); if (scanner == this) --- 246,252 ---- { node = stack.elementAt (depth - 1); ! if (node instanceof Tag) { ! Tag precursor = (Tag)node; scanner = precursor.getThisScanner (); if (scanner == this) *************** *** 295,311 **** * @param lexer A lexer positioned at the end of the tag. */ ! protected void finishTag (CompositeTag tag, Lexer lexer) throws ParserException { if (null == tag.getEndTag ()) ! tag.setEndTag (createVirtualEndTag (tag, lexer.getPage (), lexer.getCursor ().getPosition ())); tag.getEndTag ().setParent (tag); tag.doSemanticAction (); } ! /** * Creates an end tag with the same name as the given tag. * @param tag The tag to end. * @param page The page the tag is on (virtually). * @param position The offset into the page at which the tag is to --- 294,311 ---- * @param lexer A lexer positioned at the end of the tag. */ ! protected void finishTag (Tag tag, Lexer lexer) throws ParserException { if (null == tag.getEndTag ()) ! tag.setEndTag (createVirtualEndTag (tag, lexer, lexer.getPage (), lexer.getCursor ().getPosition ())); tag.getEndTag ().setParent (tag); tag.doSemanticAction (); } ! /** * Creates an end tag with the same name as the given tag. * @param tag The tag to end. + * @param lexer The object containg the node factory. * @param page The page the tag is on (virtually). * @param position The offset into the page at which the tag is to *************** *** 315,319 **** * equal may be used to distinguish it as a virtual tag later on. */ ! protected Tag createVirtualEndTag (Tag tag, Page page, int position) { Tag ret; --- 315,321 ---- * equal may be used to distinguish it as a virtual tag later on. */ ! protected Tag createVirtualEndTag (Tag tag, Lexer lexer, Page page, int position) ! throws ! ParserException { Tag ret; *************** *** 321,328 **** Vector attributes; ! name = "/" + tag.getRawTagName(); attributes = new Vector (); attributes.addElement (new Attribute (name, (String)null)); ! ret = new Tag (page, position, position, attributes); return (ret); --- 323,331 ---- Vector attributes; ! name = "/" + tag.getRawTagName (); attributes = new Vector (); attributes.addElement (new Attribute (name, (String)null)); ! ret = (Tag)lexer.getNodeFactory ().createTagNode ( ! page, position, position, attributes); return (ret); Index: StyleScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/StyleScanner.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** StyleScanner.java 14 Jun 2004 00:06:52 -0000 1.35 --- StyleScanner.java 2 Jul 2004 00:49:28 -0000 1.36 *************** *** 36,41 **** import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Lexer; ! import org.htmlparser.tags.CompositeTag; ! import org.htmlparser.tags.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 36,40 ---- import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Lexer; ! import org.htmlparser.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; *************** *** 75,79 **** NodeFactory factory; Text content; ! CompositeTag ret; done = false; --- 74,78 ---- NodeFactory factory; Text content; ! Tag ret; done = false; *************** *** 118,123 **** // build new end tag if required if (null == end) ! end = new Tag (lexer.getPage (), endpos, endpos, new Vector ()); ! ret = (CompositeTag)tag; ret.setEndTag (end); ret.setChildren (new NodeList (content)); --- 117,123 ---- // build new end tag if required if (null == end) ! end = (Tag)lexer.getNodeFactory ().createTagNode ( ! lexer.getPage (), endpos, endpos, new Vector ()); ! ret = tag; ret.setEndTag (end); ret.setChildren (new NodeList (content)); Index: ScriptScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/ScriptScanner.java,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** ScriptScanner.java 14 Jun 2004 00:06:52 -0000 1.58 --- ScriptScanner.java 2 Jul 2004 00:49:28 -0000 1.59 *************** *** 33,43 **** import org.htmlparser.PrototypicalNodeFactory; import org.htmlparser.Remark; import org.htmlparser.Text; import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Lexer; import org.htmlparser.scanners.ScriptDecoder; - import org.htmlparser.tags.CompositeTag; import org.htmlparser.tags.ScriptTag; - import org.htmlparser.tags.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 33,42 ---- import org.htmlparser.PrototypicalNodeFactory; import org.htmlparser.Remark; + import org.htmlparser.Tag; import org.htmlparser.Text; import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Lexer; import org.htmlparser.scanners.ScriptDecoder; import org.htmlparser.tags.ScriptTag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; *************** *** 80,84 **** NodeFactory factory; Text content; ! CompositeTag ret; done = false; --- 79,83 ---- NodeFactory factory; Text content; ! Tag ret; done = false; *************** *** 135,140 **** // build new end tag if required if (null == end) ! end = new Tag (lexer.getPage (), endpos, endpos, new Vector ()); ! ret = (CompositeTag)tag; ret.setEndTag (end); ret.setChildren (new NodeList (content)); --- 134,140 ---- // build new end tag if required if (null == end) ! end = (Tag)lexer.getNodeFactory ().createTagNode ( ! lexer.getPage (), endpos, endpos, new Vector ()); ! ret = tag; ret.setEndTag (end); ret.setChildren (new NodeList (content)); Index: Scanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/Scanner.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Scanner.java 20 Dec 2003 23:47:55 -0000 1.1 --- Scanner.java 2 Jul 2004 00:49:28 -0000 1.2 *************** *** 27,32 **** package org.htmlparser.scanners; import org.htmlparser.lexer.Lexer; - import org.htmlparser.tags.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 27,32 ---- package org.htmlparser.scanners; + import org.htmlparser.Tag; import org.htmlparser.lexer.Lexer; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; Index: TagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/TagScanner.java,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** TagScanner.java 20 Dec 2003 23:47:55 -0000 1.53 --- TagScanner.java 2 Jul 2004 00:49:28 -0000 1.54 *************** *** 29,34 **** import java.io.Serializable; import org.htmlparser.lexer.Lexer; - import org.htmlparser.tags.Tag; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 29,34 ---- import java.io.Serializable; + import org.htmlparser.Tag; import org.htmlparser.lexer.Lexer; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; |