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();
}
}