package net.basilwang.config; import java.util.ArrayList; import java.util.List; public class College { // public public String name; public String gnmkdm; public String cookieless; public String hascheckcode; public List<Server> servers; public List<UrlMap> urlMaps; public CurriculumConfig curriculumConfig; public ScoreConfig scoreConfig; // private private Server server; private String parentTagName = "college"; private enum tagName {// college的子节点 name, gnmkdm, cookieless, hascheckcode }; private enum hasChildrenTag {// 有子节点的节点 server, urlmap, curriculumconfig, scoreconfig } public College(List<UrlMap> urlMaps) { servers = new ArrayList<Server>(); this.urlMaps = new ArrayList<UrlMap>(urlMaps); } public College() { servers = new ArrayList<Server>(); } public void setProperty(String nodeName, String content) { if (parentTagName == "college") {// 当各个节点的父节点都是college时 try { switch (hasChildrenTag.valueOf(nodeName)) { case server: parentTagName = "server"; server = new Server(); break; case curriculumconfig: curriculumConfig = new CurriculumConfig(); parentTagName = "curriculumconfig"; break; case scoreconfig: parentTagName = "scoreconfig"; scoreConfig = new ScoreConfig(); default: break; } } catch (IllegalArgumentException e) { setTag(nodeName, content); } } else { MyChildrenSetTag(parentTagName, nodeName, content); } } public void MyChildrenSetTag(String parentName, String nodeName, String content) { try { switch (hasChildrenTag.valueOf(parentName)) { case server: server.setProperty(nodeName, content); break; case curriculumconfig: curriculumConfig.setProperty(nodeName, content); break; case scoreconfig: scoreConfig.setProperty(nodeName, content); break; default: break; } } catch (IllegalArgumentException e) { return; } } public void addUrlMapNode(UrlMap urlMap) { urlMaps.add(urlMap); } public void setTag(String nodeName, String content) { try { switch (tagName.valueOf(nodeName)) { case name: setName(content); break; case gnmkdm: setGnmkdm(content); case cookieless: setCookieless(content); break; case hascheckcode: setHascheckcode(content); break; default: break; } } catch (Exception e) { return; } } public void setGnmkdm(String gnmkdm) { this.gnmkdm = gnmkdm; } public void setName(String name) { this.name = name; } public void setCookieless(String cookieless) { this.cookieless = cookieless; } public void setHascheckcode(String hascheckcode) { this.hascheckcode = hascheckcode; } public void addServerNode() { servers.add(server); parentTagName = "college"; server = new Server(); } public void addListNode(String nodeName) { try { switch (hasChildrenTag.valueOf(nodeName)) { case server: addServerNode(); break; case curriculumconfig: parentTagName = "college"; case scoreconfig: parentTagName = "college"; } } catch (IllegalArgumentException e) { myChildrenAddListNode(nodeName); return; } } public void myChildrenAddListNode(String nodeName) { try { switch (hasChildrenTag.valueOf(parentTagName)) { case scoreconfig: scoreConfig.addListNode(nodeName); break; case curriculumconfig: curriculumConfig.addListNode(nodeName); break; } } catch (IllegalArgumentException e) { return; } } public String getName() { return name; } public String getGnmkdm() { return gnmkdm; } public String getCookieless() { return cookieless; } public String getHascheckcode() { return hascheckcode; } public List<Server> getServers() { return servers; } public List<UrlMap> getUrlMaps() { return urlMaps; } public CurriculumConfig getCurriculumConfig() { return curriculumConfig; } public ScoreConfig getScoreConfig() { return scoreConfig; } }