[Htmlparser-cvs] htmlparser/src/org/htmlparser/beans StringBean.java,1.36,1.37
Brought to you by:
derrickoswald
From: <der...@us...> - 2004-02-11 12:42:07
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/beans In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3754/src/org/htmlparser/beans Modified Files: StringBean.java Log Message: Incorporate patch from Nick Burch to make StringBean a NodeVisistor for other parsers. See task #93155 StringBean driven by visitor. Index: StringBean.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/beans/StringBean.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** StringBean.java 10 Jan 2004 15:23:33 -0000 1.36 --- StringBean.java 11 Feb 2004 12:37:59 -0000 1.37 *************** *** 55,60 **** * String s = sb.getStrings (); * </pre> ! * @author Derrick Oswald ! * Created on December 23, 2002, 5:01 PM */ public class StringBean extends NodeVisitor implements Serializable --- 55,74 ---- * String s = sb.getStrings (); * </pre> ! * You can also use the StringBean as a NodeVisitor on your own parser, ! * in which case you have to refetch your page if you change one of the ! * properties because it resets the Strings property:</p> ! * <pre> ! * StringBean sb = new StringBean (); ! * Parser parser = new Parser ("http://cbc.ca"); ! * parser.visitAllNodesWith (sb); ! * String s = sb.getStrings (); ! * sb.setLinks (true); ! * parser.reset (); ! * parser.visitAllNodesWith (sb); ! * String sl = sb.getStrings (); ! * </pre> ! * According to Nick Burch, who contributed the patch, this is handy if you ! * don't want StringBean to wander off and get the content itself, either ! * because you already have it, it's not on a website etc. */ public class StringBean extends NodeVisitor implements Serializable *************** *** 168,171 **** --- 182,188 ---- mReplaceSpace = true; mCollapse = true; + mBuffer = new StringBuffer (4096); + mIsScript = false; + mIsPre = false; } *************** *** 259,268 **** String ret; - mIsPre = false; - mIsScript = false; - mBuffer = new StringBuffer (4096); mParser.visitAllNodesWith (this); ret = mBuffer.toString (); ! mBuffer = null; return (ret); --- 276,282 ---- String ret; mParser.visitAllNodesWith (this); ret = mBuffer.toString (); ! mBuffer = new StringBuffer(4096); return (ret); *************** *** 294,302 **** try { - mIsPre = false; - mIsScript = false; try { - mBuffer = new StringBuffer (4096); mParser.visitAllNodesWith (this); updateStrings (mBuffer.toString ()); --- 308,313 ---- *************** *** 304,308 **** finally { ! mBuffer = null; } } --- 315,319 ---- finally { ! mBuffer = new StringBuffer (4096); } } *************** *** 331,334 **** --- 342,352 ---- updateStrings (pe.toString ()); } + else + { + // reset in case this StringBean is used as a visitor + // on another parser, not it's own + mStrings = null; + mBuffer = new StringBuffer (4096); + } } *************** *** 388,392 **** { if (null == mStrings) ! setStrings (); return (mStrings); --- 406,413 ---- { if (null == mStrings) ! if (0 == mBuffer.length ()) ! setStrings (); ! else ! updateStrings (mBuffer.toString ()); return (mStrings); |