aboutsummaryrefslogtreecommitdiff
path: root/src/uk/org/ury/config/ConfigReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/uk/org/ury/config/ConfigReader.java')
-rw-r--r--src/uk/org/ury/config/ConfigReader.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/uk/org/ury/config/ConfigReader.java b/src/uk/org/ury/config/ConfigReader.java
new file mode 100644
index 0000000..6b66e24
--- /dev/null
+++ b/src/uk/org/ury/config/ConfigReader.java
@@ -0,0 +1,61 @@
+package uk.org.ury.config;
+
+import java.io.File;
+import org.w3c.dom.*;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+import uk.org.ury.database.UserClass;
+
+public class ConfigReader {
+
+ private Database database;
+ private Auth auth;
+
+ public Database getDatabase() { return database; }
+ public Auth getAuth() { return auth; }
+
+ public ConfigReader() {
+
+ try {
+ DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
+ Document doc = docBuilder.parse (new File("res/conf.xml"));
+ doc.getDocumentElement().normalize();
+
+ System.out.println(doc.getDocumentElement().getNodeName());
+
+ String user = doc.getElementsByTagName("user").item(0).getTextContent();
+ String pass = doc.getElementsByTagName("pass").item(0).getTextContent();
+ UserClass type;
+ if(doc.getElementsByTagName("type").item(0).getTextContent().toLowerCase().equals("read_only")) {
+ type = UserClass.READ_ONLY;
+ } else if(doc.getElementsByTagName("type").item(0).getTextContent().toLowerCase().equals("read_write")) {
+ type = UserClass.READ_WRITE;
+ } else {
+ throw new IllegalArgumentException("Unused user class.");
+ }
+ auth = new Auth(user, pass, type);
+
+ String host = doc.getElementsByTagName("host").item(0).getTextContent();
+ int port = Integer.parseInt(doc.getElementsByTagName("port").item(0).getTextContent().trim());
+ String db = doc.getElementsByTagName("db").item(0).getTextContent();
+ database = new Database(host, port, db);
+ }
+
+ catch (SAXParseException err) {
+ System.out.println ("** Parsing error" + ", line " + err.getLineNumber () + ", uri " + err.getSystemId ());
+ System.out.println(" " + err.getMessage ());
+ }
+ catch (SAXException e) {
+ Exception x = e.getException ();
+ ((x == null) ? e : x).printStackTrace ();
+ }
+ catch (Throwable t) {
+ t.printStackTrace ();
+ }
+ }
+}