[Htmlparser-cvs] htmlparser/src/org/htmlparser/visitors LinkFindingVisitor.java,1.34,1.35 StringFind
Brought to you by:
derrickoswald
From: <der...@pr...> - 2004-01-27 13:25:38
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26191/visitors Modified Files: LinkFindingVisitor.java StringFindingVisitor.java Log Message: Fix bug #883664 toUpperCase on tag names and attributes depends on locale Added locale information to all relevant toUpperCase() calls, with an English locale for tag names and attribute names, or developers choice of locale for methods that do uppercase conversion as part of their algorithms. Index: LinkFindingVisitor.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors/LinkFindingVisitor.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** LinkFindingVisitor.java 2 Jan 2004 16:24:58 -0000 1.34 --- LinkFindingVisitor.java 25 Jan 2004 21:33:14 -0000 1.35 *************** *** 27,55 **** package org.htmlparser.visitors; import org.htmlparser.tags.LinkTag; ! public class LinkFindingVisitor extends NodeVisitor { private String linkTextToFind; ! private boolean linkTagFound = false; ! private int count = 0; ! public LinkFindingVisitor(String linkTextToFind) { ! this.linkTextToFind = linkTextToFind.toUpperCase(); } ! public void visitLinkTag(LinkTag linkTag) { ! // System.out.println("Matching with "+linkTag.getLinkText()); ! if (linkTag.getLinkText().toUpperCase().indexOf(linkTextToFind)!=-1) { ! linkTagFound = true; count++; - } } ! public boolean linkTextFound() { ! return linkTagFound; } ! public int getCount() { ! return count; } --- 27,66 ---- package org.htmlparser.visitors; + import java.util.Locale; + import org.htmlparser.tags.LinkTag; ! public class LinkFindingVisitor extends NodeVisitor ! { private String linkTextToFind; ! private int count; ! private Locale locale; ! public LinkFindingVisitor (String linkTextToFind) ! { ! this (linkTextToFind, null); } ! public LinkFindingVisitor (String linkTextToFind, Locale locale) ! { ! count = 0; ! this.locale = (null == locale) ? Locale.ENGLISH : locale; ! this.linkTextToFind = linkTextToFind.toUpperCase (this.locale); ! } ! ! public void visitLinkTag(LinkTag linkTag) ! { ! if (-1 != linkTag.getLinkText ().toUpperCase (locale).indexOf (linkTextToFind)) count++; } ! public boolean linkTextFound() ! { ! return (0 != count); } ! public int getCount() ! { ! return (count); } Index: StringFindingVisitor.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/visitors/StringFindingVisitor.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** StringFindingVisitor.java 2 Jan 2004 16:24:58 -0000 1.38 --- StringFindingVisitor.java 25 Jan 2004 21:33:14 -0000 1.39 *************** *** 27,53 **** package org.htmlparser.visitors; import org.htmlparser.StringNode; ! public class StringFindingVisitor extends NodeVisitor { ! private boolean stringFound = false; private String stringToFind; private int foundCount; private boolean multipleSearchesWithinStrings; ! public StringFindingVisitor(String stringToFind) { ! this.stringToFind = stringToFind.toUpperCase(); foundCount = 0; multipleSearchesWithinStrings = false; } ! public void doMultipleSearchesWithinStrings() { multipleSearchesWithinStrings = true; } ! public void visitStringNode(StringNode stringNode) { ! String stringToBeSearched = stringNode.getText().toUpperCase(); if (!multipleSearchesWithinStrings && stringToBeSearched.indexOf(stringToFind) != -1) { - stringFound = true; foundCount++; } else if (multipleSearchesWithinStrings) { --- 27,64 ---- package org.htmlparser.visitors; + import java.util.Locale; + import org.htmlparser.StringNode; ! public class StringFindingVisitor extends NodeVisitor ! { private String stringToFind; private int foundCount; private boolean multipleSearchesWithinStrings; + private Locale locale; ! public StringFindingVisitor(String stringToFind) ! { ! this (stringToFind, null); ! } ! ! public StringFindingVisitor(String stringToFind, Locale locale) ! { ! this.locale = (null == locale) ? Locale.ENGLISH : locale; ! this.stringToFind = stringToFind.toUpperCase (this.locale); foundCount = 0; multipleSearchesWithinStrings = false; } ! public void doMultipleSearchesWithinStrings() ! { multipleSearchesWithinStrings = true; } ! public void visitStringNode(StringNode stringNode) ! { ! String stringToBeSearched = stringNode.getText().toUpperCase(locale); if (!multipleSearchesWithinStrings && stringToBeSearched.indexOf(stringToFind) != -1) { foundCount++; } else if (multipleSearchesWithinStrings) { *************** *** 61,69 **** } ! public boolean stringWasFound() { ! return stringFound; } ! public int stringFoundCount() { return foundCount; } --- 72,82 ---- } ! public boolean stringWasFound() ! { ! return (0 != stringFoundCount()); } ! public int stringFoundCount() ! { return foundCount; } |