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);
|