/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cismap.commons.preferences;
import org.jdom.Attribute;
import org.jdom.CDATA;
import org.jdom.Element;
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
public class CapabilityLink {
//~ Static fields/initializers ---------------------------------------------
public static final String OGC = "OGC"; // NOI18N
public static final String OGC_DEPRECATED = "OGC-WMS"; // NOI18N
public static final String SEPARATOR = "SEPARATOR"; // NOI18N
public static final String MENU = "MENU"; // NOI18N
public static final String INTERNAL_DB = "INTERNAL-DB"; // NOI18N
//~ Instance fields --------------------------------------------------------
private String type;
private String subparent;
private String link;
private String title;
// contains the version of the represented capabilities document
private String version;
private boolean active = false;
private boolean reverseAxisOrder = false;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new CapabilityLink object.
*
* @param parent DOCUMENT ME!
*/
public CapabilityLink(final Element parent) {
final Element e = parent.getChild("capabilities"); // NOI18N
type = e.getAttribute("type").getValue(); // NOI18N
try {
active = e.getAttribute("active").getBooleanValue(); // NOI18N
} catch (Exception notHandled) {
}
try {
reverseAxisOrder = e.getAttribute("reverseAxisOrder").getBooleanValue(); // NOI18N
} catch (Exception notHandled) {
// nothing to do
}
link = e.getTextTrim();
if (e.getAttribute("version") != null) {
version = e.getAttribute("version").getValue(); // NOI18N
}
}
/**
* Creates a new CapabilityLink object.
*
* @param type DOCUMENT ME!
* @param link DOCUMENT ME!
* @param reverseAxisOrder DOCUMENT ME!
* @param active DOCUMENT ME!
*/
public CapabilityLink(final String type, final String link, final boolean reverseAxisOrder, final boolean active) {
this(type, link, reverseAxisOrder, active, null);
}
/**
* Creates a new CapabilityLink object.
*
* @param type DOCUMENT ME!
* @param link DOCUMENT ME!
* @param reverseAxisOrder DOCUMENT ME!
* @param title DOCUMENT ME!
*/
public CapabilityLink(final String type, final String link, final boolean reverseAxisOrder, final String title) {
this(type, link, reverseAxisOrder, title, null);
}
/**
* Creates a new CapabilityLink object.
*
* @param type DOCUMENT ME!
* @param link DOCUMENT ME!
* @param reverseAxisOrder DOCUMENT ME!
* @param active DOCUMENT ME!
* @param subparent DOCUMENT ME!
*/
public CapabilityLink(final String type,
final String link,
final boolean reverseAxisOrder,
final boolean active,
final String subparent) {
this.type = type;
this.link = link;
this.active = active;
this.subparent = subparent;
this.reverseAxisOrder = reverseAxisOrder;
}
/**
* Creates a new CapabilityLink object.
*
* @param type DOCUMENT ME!
* @param link DOCUMENT ME!
* @param reverseAxisOrder DOCUMENT ME!
* @param version DOCUMENT ME!
* @param active DOCUMENT ME!
*/
public CapabilityLink(final String type,
final String link,
final boolean reverseAxisOrder,
final String version,
final boolean active) {
this(type, link, active, null);
this.version = version;
}
/**
* Creates a new CapabilityLink object.
*
* @param type DOCUMENT ME!
* @param link DOCUMENT ME!
* @param reverseAxisOrder DOCUMENT ME!
* @param title DOCUMENT ME!
* @param subparent DOCUMENT ME!
*/
public CapabilityLink(final String type,
final String link,
final boolean reverseAxisOrder,
final String title,
final String subparent) {
this.type = type;
this.link = link;
this.title = title;
this.subparent = subparent;
this.reverseAxisOrder = reverseAxisOrder;
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getType() {
return type;
}
/**
* DOCUMENT ME!
*
* @param type DOCUMENT ME!
*/
public void setType(final String type) {
this.type = type;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getLink() {
return link;
}
/**
* DOCUMENT ME!
*
* @param link DOCUMENT ME!
*/
public void setLink(final String link) {
this.link = link;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public Element getElement() {
final Element elem = new Element("capabilities"); // NOI18N
final CDATA cd = new CDATA(link);
elem.addContent(cd);
elem.setAttribute(new Attribute("type", type)); // NOI18N
if (isReverseAxisOrder()) {
elem.setAttribute("reverseAxisOrder", String.valueOf(isReverseAxisOrder())); // NOI18N
}
if (subparent != null) {
elem.setAttribute(new Attribute("subparent", subparent)); // NOI18N
}
elem.setAttribute(new Attribute("active", new Boolean(active).toString())); // NOI18N
if (version != null) {
elem.setAttribute(new Attribute("version", version)); // NOI18N
}
return elem;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public Element getElementAsListEntry() {
final Element elem = new Element("capabilitiesList"); // NOI18N
final CDATA cd = new CDATA(link);
elem.addContent(cd);
elem.setAttribute("titlestring", title); // NOI18N
if (!isReverseAxisOrder()) {
elem.setAttribute("reverseAxisOrder", String.valueOf(isReverseAxisOrder())); // NOI18N
}
elem.setAttribute(new Attribute("type", type)); // NOI18N
if (subparent != null) {
elem.setAttribute(new Attribute("subparent", subparent)); // NOI18N
}
if (version != null) {
elem.setAttribute(new Attribute("version", version)); // NOI18N
}
return elem;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getTitle() {
return title;
}
/**
* DOCUMENT ME!
*
* @param title DOCUMENT ME!
*/
public void setTitle(final String title) {
this.title = title;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public boolean isActive() {
return active;
}
/**
* DOCUMENT ME!
*
* @param active DOCUMENT ME!
*/
public void setActive(final boolean active) {
this.active = active;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getSubparent() {
return subparent;
}
/**
* DOCUMENT ME!
*
* @param subparent DOCUMENT ME!
*/
public void setSubparent(final String subparent) {
this.subparent = subparent;
}
/**
* DOCUMENT ME!
*
* @return the version
*/
public String getVersion() {
return version;
}
/**
* DOCUMENT ME!
*
* @param version the version to set
*/
public void setVersion(final String version) {
this.version = version;
}
/**
* DOCUMENT ME!
*
* @return the reverseAxisOrder
*/
public boolean isReverseAxisOrder() {
return reverseAxisOrder;
}
/**
* DOCUMENT ME!
*
* @param reverseAxisOrder the reverseAxisOrder to set
*/
public void setReverseAxisOrder(final boolean reverseAxisOrder) {
this.reverseAxisOrder = reverseAxisOrder;
}
}