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