KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencms > util > I_CmsHtmlNodeVisitor


1 /*
2  * File : $Source: /usr/local/cvs/opencms/src/org/opencms/util/I_CmsHtmlNodeVisitor.java,v $
3  * Date : $Date: 2006/09/19 14:29:08 $
4  * Version: $Revision: 1.3 $
5  *
6  * This library is part of OpenCms -
7  * the Open Source Content Mananagement System
8  *
9  * Copyright (C) 2005 Alkacon Software GmbH (http://www.alkacon.com)
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * Lesser General Public License for more details.
20  *
21  * For further information about Alkacon Software GmbH, please see the
22  * company website: http://www.alkacon.com
23  *
24  * For further information about OpenCms, please see the
25  * project website: http://www.opencms.org
26  *
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */

31
32 package org.opencms.util;
33
34 import java.util.List JavaDoc;
35
36 import org.htmlparser.Remark;
37 import org.htmlparser.Tag;
38 import org.htmlparser.Text;
39 import org.htmlparser.util.ParserException;
40
41 /**
42  *
43  * Interface for a combination of a visitor of HTML documents along with the hook to start the
44  * parser / lexer that triggers the visit.
45  * <p>
46  *
47  *
48  *
49  * @author Alexander Kandzior
50  *
51  * @version $Revision: 1.3 $
52  *
53  * @since 6.1.3
54  *
55  */

56 public interface I_CmsHtmlNodeVisitor {
57
58     /**
59      * Returns the configuartion String of this visitor or the empty String if was not provided
60      * before.
61      * <p>
62      *
63      * @return the configuartion String of this visitor - by this contract never null but an empty
64      * String if not provided.
65      *
66      * @see #setConfiguration(String)
67      */

68     String JavaDoc getConfiguration();
69
70     /**
71      * Returns the text extraction result.
72      * <p>
73      *
74      * @return the text extraction result
75      */

76     String JavaDoc getResult();
77     
78     /**
79      * Extracts the text from the given html content, assuming the given html encoding.
80      * <p>
81      *
82      * @param html the content to extract the plain text from
83      * @param encoding the encoding to use
84      *
85      * @return the text extracted from the given html content
86      *
87      * @throws ParserException if something goes wrong
88      */

89     String JavaDoc process(String JavaDoc html, String JavaDoc encoding) throws ParserException;
90
91     /**
92      * Set a configuartion String for this visitor.
93      * <p>
94      *
95      * This will most likely be done with data from an xsd, custom jsp tag, ...
96      * <p>
97      *
98      * @param configuration the configuration of this visitor to set.
99      */

100     void setConfiguration(String JavaDoc configuration);
101
102     /**
103      * Sets a list of upper case tag names for which parsing / visitng should not correct missing closing tags.<p>
104      *
105      * This has to be used before <code>{@link #process(String, String)}</code> is invoked to take an effect.<p>
106      *
107      * @param noAutoCloseTags a list of upper case tag names for which parsing / visiting
108      * should not correct missing closing tags to set.
109      */

110     void setNoAutoCloseTags(List JavaDoc noAutoCloseTags);
111
112     /**
113      * Visitor method (callback) invoked when a closing Tag is encountered.
114      * <p>
115      *
116      * @param tag the tag that is ended.
117      *
118      * @see org.htmlparser.visitors.NodeVisitor#visitEndTag(org.htmlparser.Tag)
119      */

120     void visitEndTag(Tag tag);
121
122     /**
123      * Visitor method (callback) invoked when a remark Tag (HTML comment) is encountered.
124      * <p>
125      *
126      * @param remark the remark Tag to visit.
127      *
128      * @see org.htmlparser.visitors.NodeVisitor#visitRemarkNode(org.htmlparser.Remark)
129      */

130     void visitRemarkNode(Remark remark);
131
132     /**
133      *
134      * Visitor method (callback) invoked when a remark Tag (HTML comment) is encountered.
135      * <p>
136      *
137      * @param text the text that is visited.
138      *
139      * @see org.htmlparser.visitors.NodeVisitor#visitStringNode(org.htmlparser.Text)
140      */

141     void visitStringNode(Text text);
142     
143     /**
144      * Visitor method (callback) invoked when a starting Tag (HTML comment) is encountered.
145      * <p>
146      *
147      * @param tag the tag that is visited.
148      *
149      * @see org.htmlparser.visitors.NodeVisitor#visitTag(org.htmlparser.Tag)
150      */

151     void visitTag(Tag tag);
152
153 }
Popular Tags