1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir package convwatch;
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir import java.io.File;
31*cdf0e10cSrcweir import java.io.FileWriter;
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir public class INIOutputter
34*cdf0e10cSrcweir {
35*cdf0e10cSrcweir     FileWriter m_aOut;
36*cdf0e10cSrcweir     String m_sFilename;
37*cdf0e10cSrcweir     String m_sNamePrefix;              // the HTML files used a suffix to build it's right name
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir     /**
40*cdf0e10cSrcweir      * ls is the current line separator (carridge return)
41*cdf0e10cSrcweir      */
42*cdf0e10cSrcweir     String ls;
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir     public static INIOutputter create( String _sOutputPath, String _sHTMLFilename, String _sNamePrefix, String _sTitle )
45*cdf0e10cSrcweir         {
46*cdf0e10cSrcweir             FileHelper.makeDirectories("", _sOutputPath);
47*cdf0e10cSrcweir             INIOutputter a = new INIOutputter();
48*cdf0e10cSrcweir             String fs = System.getProperty("file.separator");
49*cdf0e10cSrcweir             String sFilename = _sOutputPath + fs + _sHTMLFilename;
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir             try
52*cdf0e10cSrcweir             {
53*cdf0e10cSrcweir                 File outputFile = new File(sFilename);
54*cdf0e10cSrcweir                 a.m_aOut = new FileWriter(outputFile.toString());
55*cdf0e10cSrcweir                 a.ls = System.getProperty("line.separator");
56*cdf0e10cSrcweir             }
57*cdf0e10cSrcweir             catch (java.io.IOException e)
58*cdf0e10cSrcweir             {
59*cdf0e10cSrcweir                 e.printStackTrace();
60*cdf0e10cSrcweir                 GlobalLogWriter.get().println("ERROR: Can't create INI Outputter");
61*cdf0e10cSrcweir                 return null;
62*cdf0e10cSrcweir             }
63*cdf0e10cSrcweir             a.m_sFilename = sFilename;
64*cdf0e10cSrcweir             a.m_sNamePrefix = _sNamePrefix;
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir             return a;
67*cdf0e10cSrcweir         }
68*cdf0e10cSrcweir     public String getFilename() {return m_sFilename;}
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir     public void createHeader()
71*cdf0e10cSrcweir         {
72*cdf0e10cSrcweir             try
73*cdf0e10cSrcweir             {
74*cdf0e10cSrcweir                 m_aOut.write("; This file is automatically created by a convwatch run" + ls);
75*cdf0e10cSrcweir                 m_aOut.write("; " + ls);
76*cdf0e10cSrcweir                 m_aOut.write("; If you see this file in a browser you may have forgotten to set the follows in the property file" + ls);
77*cdf0e10cSrcweir                 m_aOut.write("; " + PropertyName.DOC_COMPARATOR_HTML_OUTPUT_PREFIX + "=http://lla-1.germany/gfxcmp/cw.php?inifile=" + ls);
78*cdf0e10cSrcweir                 m_aOut.write("; Please check the documentation if you got confused." + ls);
79*cdf0e10cSrcweir                 m_aOut.write("; " + ls);
80*cdf0e10cSrcweir                 m_aOut.write("; " + ls);
81*cdf0e10cSrcweir             }
82*cdf0e10cSrcweir             catch (java.io.IOException e)
83*cdf0e10cSrcweir             {
84*cdf0e10cSrcweir             }
85*cdf0e10cSrcweir         }
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir     public void writeSection(String _sSectionName)
88*cdf0e10cSrcweir         {
89*cdf0e10cSrcweir             try
90*cdf0e10cSrcweir             {
91*cdf0e10cSrcweir                 m_aOut.write("[" + _sSectionName + "]" + ls);
92*cdf0e10cSrcweir                 m_aOut.flush();
93*cdf0e10cSrcweir             }
94*cdf0e10cSrcweir             catch (java.io.IOException e)
95*cdf0e10cSrcweir             {
96*cdf0e10cSrcweir             }
97*cdf0e10cSrcweir         }
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir     public void writeValue(String _sName, String _sValue)
100*cdf0e10cSrcweir         {
101*cdf0e10cSrcweir             try
102*cdf0e10cSrcweir             {
103*cdf0e10cSrcweir                 m_aOut.write(_sName + "=" + _sValue + ls);
104*cdf0e10cSrcweir                 m_aOut.flush();
105*cdf0e10cSrcweir             }
106*cdf0e10cSrcweir             catch (java.io.IOException e)
107*cdf0e10cSrcweir             {
108*cdf0e10cSrcweir             }
109*cdf0e10cSrcweir         }
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir     public void startSection(int _nNumber)
112*cdf0e10cSrcweir         {
113*cdf0e10cSrcweir             writeSection( "page" + String.valueOf(_nNumber));
114*cdf0e10cSrcweir         }
115*cdf0e10cSrcweir 
116*cdf0e10cSrcweir     public void close()
117*cdf0e10cSrcweir         {
118*cdf0e10cSrcweir             try
119*cdf0e10cSrcweir             {
120*cdf0e10cSrcweir                 m_aOut.flush();
121*cdf0e10cSrcweir                 m_aOut.close();
122*cdf0e10cSrcweir             }
123*cdf0e10cSrcweir             catch (java.io.IOException e)
124*cdf0e10cSrcweir             {
125*cdf0e10cSrcweir             }
126*cdf0e10cSrcweir         }
127*cdf0e10cSrcweir 
128*cdf0e10cSrcweir     public void checkLine(StatusHelper _aStatus, boolean _bCurrentResult)
129*cdf0e10cSrcweir         {
130*cdf0e10cSrcweir             try
131*cdf0e10cSrcweir             {
132*cdf0e10cSrcweir                 m_aOut.write( "oldgfx=" + _aStatus.m_sOldGfx + ls);
133*cdf0e10cSrcweir                 m_aOut.write( "newgfx=" + _aStatus.m_sNewGfx + ls);
134*cdf0e10cSrcweir                 m_aOut.write( "diffgfx=" + _aStatus.m_sDiffGfx + ls);
135*cdf0e10cSrcweir 
136*cdf0e10cSrcweir                 String sPercent = String.valueOf(_aStatus.nPercent) + "%";
137*cdf0e10cSrcweir                 if (_aStatus.nPercent > 0 && _aStatus.nPercent < 5)
138*cdf0e10cSrcweir                 {
139*cdf0e10cSrcweir                     sPercent += " (less 5% is ok)";
140*cdf0e10cSrcweir                 }
141*cdf0e10cSrcweir                 m_aOut.write("percent=" +  sPercent + ls);
142*cdf0e10cSrcweir 
143*cdf0e10cSrcweir                 if (_aStatus.m_sDiff_BM_Gfx == null)
144*cdf0e10cSrcweir                 {
145*cdf0e10cSrcweir                     m_aOut.write("BM=false" + ls);
146*cdf0e10cSrcweir                 }
147*cdf0e10cSrcweir                 else
148*cdf0e10cSrcweir                 {
149*cdf0e10cSrcweir                     m_aOut.write("BM=true" + ls);
150*cdf0e10cSrcweir                     m_aOut.write( "old_BM_gfx=" + _aStatus.m_sOld_BM_Gfx + ls);
151*cdf0e10cSrcweir                     m_aOut.write( "new_BM_gfx=" + _aStatus.m_sNew_BM_Gfx + ls);
152*cdf0e10cSrcweir                     m_aOut.write( "diff_BM_gfx=" + _aStatus.m_sDiff_BM_Gfx + ls);
153*cdf0e10cSrcweir 
154*cdf0e10cSrcweir                     String sPercent2 = String.valueOf(_aStatus.nPercent2) + "%";
155*cdf0e10cSrcweir                     if (_aStatus.nPercent2 > 0 && _aStatus.nPercent2 < 5)
156*cdf0e10cSrcweir                     {
157*cdf0e10cSrcweir                         sPercent2 += " (less 5% is ok)";
158*cdf0e10cSrcweir                     }
159*cdf0e10cSrcweir                     m_aOut.write("percent2=" +  sPercent2 + ls);
160*cdf0e10cSrcweir                 }
161*cdf0e10cSrcweir 
162*cdf0e10cSrcweir                 writeResult(_bCurrentResult);
163*cdf0e10cSrcweir                 m_aOut.flush();
164*cdf0e10cSrcweir             }
165*cdf0e10cSrcweir             catch (java.io.IOException e)
166*cdf0e10cSrcweir             {
167*cdf0e10cSrcweir             }
168*cdf0e10cSrcweir         }
169*cdf0e10cSrcweir 
170*cdf0e10cSrcweir     void writeResult(boolean _bCurrentResult) throws java.io.IOException
171*cdf0e10cSrcweir         {
172*cdf0e10cSrcweir             // is the check positiv, in a defined range
173*cdf0e10cSrcweir             if (_bCurrentResult)
174*cdf0e10cSrcweir             {
175*cdf0e10cSrcweir                 m_aOut.write("result=YES" + ls);
176*cdf0e10cSrcweir             }
177*cdf0e10cSrcweir             else
178*cdf0e10cSrcweir             {
179*cdf0e10cSrcweir                 m_aOut.write("result=NO" + ls);
180*cdf0e10cSrcweir             }
181*cdf0e10cSrcweir         }
182*cdf0e10cSrcweir 
183*cdf0e10cSrcweir     public void checkDiffDiffLine(StatusHelper _aStatus, boolean _bCurrentResult)
184*cdf0e10cSrcweir         {
185*cdf0e10cSrcweir             try
186*cdf0e10cSrcweir             {
187*cdf0e10cSrcweir                 m_aOut.write( "oldgfx=" + _aStatus.m_sOldGfx + ls);
188*cdf0e10cSrcweir                 m_aOut.write( "newgfx=" + _aStatus.m_sNewGfx + ls);
189*cdf0e10cSrcweir                 m_aOut.write( "diffgfx=" + _aStatus.m_sDiffGfx + ls);
190*cdf0e10cSrcweir 
191*cdf0e10cSrcweir                 String sPercent = String.valueOf(_aStatus.nPercent) + "%";
192*cdf0e10cSrcweir                 // if (_aStatus.nPercent > 0 && _aStatus.nPercent < 5)
193*cdf0e10cSrcweir                 // {
194*cdf0e10cSrcweir                 //     sPercent += " (less 5% is ok)";
195*cdf0e10cSrcweir                 // }
196*cdf0e10cSrcweir                 m_aOut.write("percent=" + sPercent + ls);
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir                 // is the check positiv, in a defined range
199*cdf0e10cSrcweir                 writeResult(_bCurrentResult);
200*cdf0e10cSrcweir                 m_aOut.flush();
201*cdf0e10cSrcweir             }
202*cdf0e10cSrcweir             catch (java.io.IOException e)
203*cdf0e10cSrcweir             {
204*cdf0e10cSrcweir             }
205*cdf0e10cSrcweir         }
206*cdf0e10cSrcweir 
207*cdf0e10cSrcweir }
208