1 22 23 package server; 24 25 import org.xml.sax.helpers.DefaultHandler ; 26 import org.xml.sax.Attributes ; 27 28 29 34 public class ConfigParser extends DefaultHandler { 35 38 private LlamaChatServer server; 39 40 43 private boolean inMessage; 44 45 48 private String messageBuffer; 49 50 54 ConfigParser(LlamaChatServer s) { 55 server = s; 56 inMessage = false; 57 messageBuffer = ""; 58 } 59 60 63 public void characters(char[] ch, int start, int length) { 64 String s = new String (ch, start, length); 65 if (s != null && inMessage) { 66 s = s.replaceAll("[\\t\\n]", " "); 67 s = s.replaceAll("[ ]{2,}", " "); 68 s = s.trim(); 69 messageBuffer+= s; 70 } 71 } 72 73 76 public void endElement(String uri, String localName, String qName) { 77 String name = localName; 78 if ("".equals(name)) name = qName; 79 if ("WelcomeMessage".equals(name)) { 80 inMessage = false; 81 server.welcomeMessage = messageBuffer; 82 } 83 } 84 85 88 public void startElement(String uri, String localName, String qName, 89 Attributes attributes) { 90 String name = localName; 91 if ("".equals(name)) name = qName; 92 if ("Port".equals(name)) { 93 String val = attributes.getValue("value"); 94 try { 95 if (val != null) server.PORT = Integer.parseInt(val); 96 } catch (NumberFormatException e) { } 97 } else if ("SysLogFile".equals(name)) { 98 String val = attributes.getValue("value"); 99 if (val != null) server.sysLogFile = val; 100 } else if ("ChatLogPath".equals(name)) { 101 String val = attributes.getValue("value"); 102 if (val != null) { 103 if ("".equals(val)) { 104 val = "."; 105 } 106 server.chatLogPath = val; 107 } 108 } else if ("AllowAdmin".equals(name)) { 109 String val = attributes.getValue("value"); 110 if (val != null) { 111 if (val.equals("yes")) { 112 server.allowAdmin = true; 113 } else if (val.equals("no")) { 114 server.allowAdmin = false; 115 } 116 } 117 } else if ("PassPhrase".equals(name)) { 118 String val = attributes.getValue("value"); 119 if (val != null) server.adminPass = val; 120 } else if ("UserExportFile".equals(name)) { 121 String val = attributes.getValue("value"); 122 if (val != null) server.userExportFile = val; 123 } else if ("AllowUserChannels".equals(name)) { 124 String val = attributes.getValue("value"); 125 if (val != null) { 126 if (val.equals("yes")) { 127 server.channels.allowUserChannels = 'y'; 128 } else if (val.equals("admin")) { 129 server.channels.allowUserChannels = 'a'; 130 } if (val.equals("no")) { 131 server.channels.allowUserChannels = 'n'; 132 } 133 } 134 } else if ("DefaultChannel".equals(name)) { 135 String val = attributes.getValue("value"); 136 if (val != null) server.channels.setDefaultChannel(val); 137 } else if ("Channel".equals(name)) { 138 String val = attributes.getValue("value"); 139 String pass = null; 140 if (attributes.getLength() > 1) { 141 pass = attributes.getValue("pass"); 142 } 143 if (val != null) server.channels.addSystemChannel(val, pass); 144 } else if ("WelcomeMessage".equals(name)) { 145 inMessage = true; 146 } else if ("br".equals(name)) { 147 messageBuffer+= "\n"; 148 } 149 } 150 } 151 | Popular Tags |