Clover Coverage Report
Coverage timestamp: mer. juin 27 2007 07:27:16 CEST
10   100   3   2,5
4   43   0,6   4
4     1,5  
1    
 
  Reader       Line # 46 10 3 55,6% 0.5555556
 
  (172)
 
1    /*
2    * SAT4J: a SATisfiability library for Java Copyright (C) 2004-2006 Daniel Le Berre
3    *
4    * Based on the original minisat specification from:
5    *
6    * An extensible SAT solver. Niklas E?n and Niklas S?rensson. Proceedings of the
7    * Sixth International Conference on Theory and Applications of Satisfiability
8    * Testing, LNCS 2919, pp 502-518, 2003.
9    *
10    * This library is free software; you can redistribute it and/or modify it under
11    * the terms of the GNU Lesser General Public License as published by the Free
12    * Software Foundation; either version 2.1 of the License, or (at your option)
13    * any later version.
14    *
15    * This library is distributed in the hope that it will be useful, but WITHOUT
16    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17    * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18    * details.
19    *
20    * You should have received a copy of the GNU Lesser General Public License
21    * along with this library; if not, write to the Free Software Foundation, Inc.,
22    * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23    *
24    */
25   
26    package org.sat4j.reader;
27   
28    import java.io.FileInputStream;
29    import java.io.FileNotFoundException;
30    import java.io.IOException;
31    import java.io.InputStream;
32    import java.io.InputStreamReader;
33    import java.io.PrintWriter;
34    import java.net.URL;
35    import java.util.zip.GZIPInputStream;
36   
37    import org.sat4j.specs.ContradictionException;
38    import org.sat4j.specs.IProblem;
39   
40    /**
41    * A reader is responsible to feed an ISolver from a text file and to convert
42    * the model found by the solver to a textual representation.
43    *
44    * @author leberre
45    */
 
46    public abstract class Reader {
47   
 
48  2501 toggle public IProblem parseInstance(final String filename)
49    throws FileNotFoundException, ParseFormatException, IOException,
50    ContradictionException {
51  2501 InputStream in;
52  2501 if (filename.startsWith("http://")) {
53  0 in = (new URL(filename)).openStream();
54    } else {
55  2501 in = new FileInputStream(filename);
56    }
57  2501 if (filename.endsWith(".gz")) {
58  0 in = new GZIPInputStream(in);
59    }
60  2501 return parseInstance(in);
61    }
62   
 
63  828 toggle public IProblem parseInstance(final InputStream in)
64    throws ParseFormatException, ContradictionException, IOException {
65  828 return parseInstance(new InputStreamReader(in));
66    }
67   
68    public abstract IProblem parseInstance(final java.io.Reader in)
69    throws ParseFormatException, ContradictionException, IOException;
70   
71    /**
72    * Produce a model using the reader format.
73    *
74    * @param model
75    * a model using the Dimacs format.
76    * @return a human readable view of the model.
77    */
78    @Deprecated
79    public abstract String decode(int[] model);
80   
81    /**
82    * Produce a model using the reader format on a provided printwriter.
83    *
84    * @param model
85    * a model using the Dimacs format.
86    * @param out
87    * the place where to display the model
88    */
89    public abstract void decode(int[] model, PrintWriter out);
90   
 
91  0 toggle public boolean isVerbose() {
92  0 return verbose;
93    }
94   
 
95  0 toggle public void setVerbosity(boolean b) {
96  0 verbose = b;
97    }
98   
99    private boolean verbose = false;
100    }