1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.sat4j.reader;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.InputStreamReader;
24 import java.io.PrintWriter;
25 import java.io.Reader;
26
27 import javax.xml.parsers.ParserConfigurationException;
28
29 import org.sat4j.csp.xml.CspXmlParser;
30 import org.sat4j.specs.ContradictionException;
31 import org.sat4j.specs.IProblem;
32 import org.sat4j.specs.ISolver;
33 import org.xml.sax.SAXException;
34
35 public class XMLCSPReader extends org.sat4j.reader.Reader {
36
37 private final CSPReader cspreader;
38
39 public XMLCSPReader(ISolver solver, boolean allDiffCard) {
40 cspreader = new CSPSupportReader(solver,allDiffCard);
41 }
42
43 @Override
44 public String decode(int[] model) {
45 return cspreader.decode(model);
46 }
47
48 @Override
49 public void decode(int[] model, PrintWriter out) {
50 cspreader.decode(model, out);
51 }
52
53
54
55
56
57
58 @Override
59 public IProblem parseInstance(String filename)
60 throws ParseFormatException, IOException,
61 ContradictionException {
62 try {
63 CspXmlParser.parse(cspreader, filename);
64 } catch (SAXException e) {
65 throw new ParseFormatException(e);
66 } catch (ParserConfigurationException e) {
67 throw new ParseFormatException(e);
68 }
69 return cspreader.getProblem();
70 }
71
72 @Override
73 public IProblem parseInstance(Reader in) throws ParseFormatException,
74 ContradictionException, IOException {
75 throw new UnsupportedOperationException();
76 }
77
78 @Override
79 public IProblem parseInstance(final InputStream in)
80 throws ParseFormatException, ContradictionException, IOException {
81 return parseInstance(new InputStreamReader(in));
82 }
83
84
85
86
87
88
89 @Override
90 public void setVerbosity(boolean b) {
91 super.setVerbosity(b);
92 cspreader.setVerbosity(b);
93 }
94
95 }