[Htmlparser-cvs] htmlparser/src/org/htmlparser/parserHelper CompositeTagScannerHelper.java,1.49,1.50
Brought to you by:
derrickoswald
From: <der...@us...> - 2003-10-06 01:43:33
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper In directory sc8-pr-cvs1:/tmp/cvs-serv2828/parserHelper Modified Files: CompositeTagScannerHelper.java Log Message: Updated tests to correspond to new behaviour. Mostly due to changes in order and case of tag contents. Of the forty odd remaining failing tests, the majority comprise altered functionality that needs to be resolved. Index: CompositeTagScannerHelper.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper/CompositeTagScannerHelper.java,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** CompositeTagScannerHelper.java 5 Oct 2003 13:49:50 -0000 1.49 --- CompositeTagScannerHelper.java 6 Oct 2003 01:43:27 -0000 1.50 *************** *** 45,55 **** public class CompositeTagScannerHelper { private CompositeTagScanner scanner; ! private Tag tag; private Lexer mLexer; private Tag endTag; private NodeList nodeList; private boolean endTagFound; - private int startingLineNumber; - private int endingLineNumber; private boolean balance_quotes; --- 45,53 ---- public class CompositeTagScannerHelper { private CompositeTagScanner scanner; ! private Tag mTag; private Lexer mLexer; private Tag endTag; private NodeList nodeList; private boolean endTagFound; private boolean balance_quotes; *************** *** 61,65 **** this.scanner = scanner; ! this.tag = tag; mLexer = lexer; this.endTag = null; --- 59,63 ---- this.scanner = scanner; ! mTag = tag; mLexer = lexer; this.endTag = null; *************** *** 70,79 **** public Tag scan() throws ParserException { - startingLineNumber = mLexer.getCurrentLineNumber (); if (shouldCreateEndTagAndExit()) { return createEndTagAndRepositionReader(); } scanner.beforeScanningStarts(); ! Node currentNode = tag; doEmptyXmlTagCheckOn(currentNode); --- 68,76 ---- public Tag scan() throws ParserException { if (shouldCreateEndTagAndExit()) { return createEndTagAndRepositionReader(); } scanner.beforeScanningStarts(); ! Node currentNode = mTag; doEmptyXmlTagCheckOn(currentNode); *************** *** 84,88 **** continue; if (currentNode instanceof Tag) ! doForceCorrectionCheckOn((Tag)currentNode); doEmptyXmlTagCheckOn(currentNode); --- 81,98 ---- continue; if (currentNode instanceof Tag) ! { ! Tag possibleEndTag = (Tag)currentNode; ! if (scanner.isTagToBeEndedFor(possibleEndTag) || ! ( ! !(possibleEndTag.isEndTag ()) && ! !scanner.isAllowSelfChildren() && ! possibleEndTag.getTagName().equals(mTag.getTagName()) ! )) ! { ! createCorrectionEndTagBefore(possibleEndTag.elementBegin()); ! mLexer.setPosition (possibleEndTag.elementBegin ()); ! endTagFound = true; ! } ! } doEmptyXmlTagCheckOn(currentNode); *************** *** 95,99 **** createCorrectionEndTagBefore (mLexer.getCursor ().getPosition ()); - endingLineNumber = mLexer.getCurrentLineNumber (); return createTag(); } --- 105,108 ---- *************** *** 104,109 **** private Tag createEndTagAndRepositionReader() { ! createCorrectionEndTagBefore (tag.elementBegin ()); ! mLexer.setPosition (tag.elementBegin ()); return endTag; } --- 113,118 ---- private Tag createEndTagAndRepositionReader() { ! createCorrectionEndTagBefore (mTag.elementBegin ()); ! mLexer.setPosition (mTag.elementBegin ()); return endTag; } *************** *** 111,115 **** private void createCorrectionEndTagBefore(int position) { ! String endTagName = "/" + tag.getTagName(); Vector attributes = new Vector (); attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); --- 120,124 ---- private void createCorrectionEndTagBefore(int position) { ! String endTagName = "/" + mTag.getRawTagName(); Vector attributes = new Vector (); attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); *************** *** 123,142 **** } ! private void createCorrectionEndTagBefore(Tag possibleEndTagCauser) { ! String endTagName = "/" + tag.getTagName(); ! int endTagBegin = possibleEndTagCauser.elementBegin(); ! int endTagEnd = endTagBegin + endTagName.length() + 2; ! possibleEndTagCauser.setTagBegin(endTagEnd+1); ! Vector attributes = new Vector (); ! attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); ! TagData data = new TagData( ! endTagName, ! endTagBegin, ! attributes, ! mLexer.getPage ().getUrl (), ! false); ! ! endTag = new Tag(data); ! } private Tag createTag() throws ParserException --- 132,151 ---- } ! // private void createCorrectionEndTagBefore(Tag possibleEndTagCauser) { ! // String endTagName = "/" + tag.getTagName(); ! // int endTagBegin = possibleEndTagCauser.elementBegin(); ! // int endTagEnd = endTagBegin + endTagName.length() + 2; ! // possibleEndTagCauser.setTagBegin(endTagEnd+1); ! // Vector attributes = new Vector (); ! // attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); ! // TagData data = new TagData( ! // endTagName, ! // endTagBegin, ! // attributes, ! // mLexer.getPage ().getUrl (), ! // false); ! // ! // endTag = new Tag(data); ! // } private Tag createTag() throws ParserException *************** *** 146,158 **** data = new TagData( mLexer.getPage (), ! tag.elementBegin(), endTag.elementEnd(), ! tag.getAttributesEx (), mLexer.getPage ().getUrl (), ! tag.isEmptyXmlTag ()); CompositeTag newTag = (CompositeTag)scanner.createTag (data, new CompositeTagData( ! tag,endTag,nodeList ) ); --- 155,167 ---- data = new TagData( mLexer.getPage (), ! mTag.elementBegin(), endTag.elementEnd(), ! mTag.getAttributesEx (), mLexer.getPage ().getUrl (), ! mTag.isEmptyXmlTag ()); CompositeTag newTag = (CompositeTag)scanner.createTag (data, new CompositeTagData( ! mTag,endTag,nodeList ) ); *************** *** 187,191 **** private boolean isExpectedEndTag (TagNode possibleEndTag) { ! return (possibleEndTag.getTagName().equals (tag.getTagName ())); } --- 196,200 ---- private boolean isExpectedEndTag (TagNode possibleEndTag) { ! return (possibleEndTag.getTagName().equals (mTag.getTagName ())); } *************** *** 193,197 **** if (currentNode instanceof Tag) { Tag possibleEndTag = (Tag)currentNode; ! if (isXmlEndTag(tag)) { endTag = possibleEndTag; endTagFound = true; --- 202,206 ---- if (currentNode instanceof Tag) { Tag possibleEndTag = (Tag)currentNode; ! if (mTag.isEmptyXmlTag ()) { endTag = possibleEndTag; endTagFound = true; *************** *** 200,229 **** } ! private void doForceCorrectionCheckOn(Tag possibleEndTagCauser) { ! if (isEndTagMissing(possibleEndTagCauser)) { ! createCorrectionEndTagBefore(possibleEndTagCauser); ! ! endTagFound = true; ! } ! } ! ! private boolean isEndTagMissing(Tag possibleEndTag) { ! return ! scanner.isTagToBeEndedFor(possibleEndTag) || ! isSelfChildTagRecievedIncorrectly(possibleEndTag); ! } ! private boolean isSelfChildTagRecievedIncorrectly(Tag possibleEndTag) { ! return ( ! !(possibleEndTag.isEndTag ()) && ! !scanner.isAllowSelfChildren() && ! possibleEndTag.getTagName().equals(tag.getTagName()) ! ); ! } ! public boolean isXmlEndTag(Tag tag) { ! String tagText = tag.getText(); ! int lastSlash = tagText.lastIndexOf("/"); ! return (lastSlash == tagText.length()-1 || tag.isEmptyXmlTag()) && tag.getText().indexOf("://")==-1; ! } } --- 209,229 ---- } ! // private void doForceCorrectionCheckOn(Tag possibleEndTag) { ! // } ! // private boolean isEndTagMissing(Tag possibleEndTag) { ! // return ! // scanner.isTagToBeEndedFor(possibleEndTag) || ! // ( ! // !(possibleEndTag.isEndTag ()) && ! // !scanner.isAllowSelfChildren() && ! // possibleEndTag.getTagName().equals(tag.getTagName()) ! // ); ! // } ! // public boolean isXmlEndTag(Tag tag) { ! // String tagText = tag.getText(); ! // int lastSlash = tagText.lastIndexOf("/"); ! // return (lastSlash == tagText.length()-1 || tag.isEmptyXmlTag()) && tag.getText().indexOf("://")==-1; ! // } } |