View Javadoc

1   /*
2    *  Java HTML Tidy - JTidy
3    *  HTML parser and pretty printer
4    *
5    *  Copyright (c) 1998-2000 World Wide Web Consortium (Massachusetts
6    *  Institute of Technology, Institut National de Recherche en
7    *  Informatique et en Automatique, Keio University). All Rights
8    *  Reserved.
9    *
10   *  Contributing Author(s):
11   *
12   *     Dave Raggett <dsr@w3.org>
13   *     Andy Quick <ac.quick@sympatico.ca> (translation to Java)
14   *     Gary L Peskin <garyp@firstech.com> (Java development)
15   *     Sami Lempinen <sami@lempinen.net> (release management)
16   *     Fabrizio Giustina <fgiust at users.sourceforge.net>
17   *     Vlad Skarzhevskyy <vlads at users.sourceforge.net> (JTidy servlet  development)
18   *
19   *  The contributing author(s) would like to thank all those who
20   *  helped with testing, bug fixes, and patience.  This wouldn't
21   *  have been possible without all of you.
22   *
23   *  COPYRIGHT NOTICE:
24   *
25   *  This software and documentation is provided "as is," and
26   *  the copyright holders and contributing author(s) make no
27   *  representations or warranties, express or implied, including
28   *  but not limited to, warranties of merchantability or fitness
29   *  for any particular purpose or that the use of the software or
30   *  documentation will not infringe any third party patents,
31   *  copyrights, trademarks or other rights.
32   *
33   *  The copyright holders and contributing author(s) will not be
34   *  liable for any direct, indirect, special or consequential damages
35   *  arising out of any use of the software or documentation, even if
36   *  advised of the possibility of such damage.
37   *
38   *  Permission is hereby granted to use, copy, modify, and distribute
39   *  this source code, or portions hereof, documentation and executables,
40   *  for any purpose, without fee, subject to the following restrictions:
41   *
42   *  1. The origin of this source code must not be misrepresented.
43   *  2. Altered versions must be plainly marked as such and must
44   *     not be misrepresented as being the original source.
45   *  3. This Copyright notice may not be removed or altered from any
46   *     source or altered source distribution.
47   *
48   *  The copyright holders and contributing author(s) specifically
49   *  permit, without fee, and encourage the use of this source code
50   *  as a component for supporting the Hypertext Markup Language in
51   *  commercial products. If you use this source code in a product,
52   *  acknowledgment is not required but would be appreciated.
53   *
54   */
55  package org.w3c.tidy.servlet;
56  /*
57   * Created on 31.10.2004 by vlads
58   */
59  import java.io.InputStream;
60  import java.io.*;
61  import javax.servlet.http.HttpSession;
62  
63  import org.apache.commons.logging.Log;
64  import org.apache.commons.logging.LogFactory;
65  import org.w3c.tidy.servlet.properties.JTidyServletProperties;
66  
67  /***
68   * 
69   * 
70   */
71  public class TidyServletHelper
72  {
73      
74      /***
75       * Logger.
76       */
77      private static Log log = LogFactory.getLog(TidyServletHelper.class);
78      
79      public static ResponseRecordRepository getRecordRepository(HttpSession httpSession) 
80      {
81          return JTidyServletProperties.getInstance().getRepositoryInstance(httpSession);
82      }
83      
84      public static String getResponseID(String keyString, HttpSession httpSession)
85      {
86          ResponseRecordRepository rep = getRecordRepository(httpSession);
87          if (rep == null)
88          {
89              return "";
90          }
91          Object key = rep.getResponseID(keyString);
92          if (key != null)
93          {
94              return key.toString();
95          }
96          else
97          {
98              return "";
99          }
100     }
101     
102     public static String process(InputStream in, HttpSession httpSession) {
103         RepositoryFactory factory = JTidyServletProperties.getInstance().getRepositoryFactoryInstance();
104         
105         TidyProcessor tidyProcessor = new TidyProcessor(
106             httpSession,
107             null,
108             null);
109         tidyProcessor.setValidateOnly(true);
110         
111         Object requestID = factory.getResponseID(httpSession, null, null, true);
112         
113         StringBuffer html = new StringBuffer();
114         BufferedReader buffer = new BufferedReader(new InputStreamReader(in));
115         String line;
116         try
117         {
118             while ((line = buffer.readLine()) != null)
119             {
120                 html.append(line).append("\n");
121             }
122             buffer.close();
123         }
124         catch (IOException e)
125         {
126             log.error("Error Reading file", e);
127         }
128         
129         ByteArrayInputStream processorIn = new ByteArrayInputStream(html.toString().getBytes());
130         
131         tidyProcessor.parse(processorIn, null, html.toString(), requestID, factory);
132         return requestID.toString();
133     }
134 }