package mediawiki.info; import java.net.URL; import javat.xml.Element; import mediawiki.XMLRepresented; public class Site implements XMLRepresented { public static enum State { CLOSED, PRIVATE, FISHBOWL, ALL } private URL url; private Project project; private String code; private String sitename; private State state = null; public Site(URL url, Project project, String code, String sitename, State state) { setURL(url); setProject(project); setCode(code); setSitename(sitename); setState(state); } public Site(Element e) throws Exception { convert(e); } @Override public void convert(Element element) throws Exception { setURL(new URL(element.getAttribute("url").getValue())); setProject(new Project(element.getAttribute("dbname").getValue())); setCode(element.getAttribute("code").getValue()); if(element.getAttribute("closed") != null) setState(State.CLOSED); else if(element.getAttribute("private") != null) setState(State.PRIVATE); else if(element.getAttribute("fishbowl") != null) setState(State.FISHBOWL); } public URL getURL() { return url; } public Project getProject() { return project; } public String getCode() { return code; } public String getSitename() { return sitename; } public State getState() { return state; } public void setURL(URL url) { this.url = url; } public void setProject(Project project) { this.project = project; } public void setCode(String code) { this.code = code; } public void setSitename(String sitename) { this.sitename = sitename; } public void setState(State state) { this.state = state; } public boolean isRegular() { return getState() == null; } @Override public String toString() { return getProject().toString(); } }