package com.occamlab.te; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * Provides metadata about a test suite. * */ public class Suite { private String prefix; private String namespaceUri; private String localName; private String title; private String description; private String startingTestPrefix; private String startingTestNamespaceUri; private String startingTestLocalName; private String link; private String dataLink; private String version; public Suite(Element suiteElement) { String name = suiteElement.getAttribute("name"); this.version = suiteElement.getAttribute("version"); int colon = name.indexOf(":"); prefix = name.substring(0, colon); localName = name.substring(colon + 1); namespaceUri = suiteElement.lookupNamespaceURI(prefix); NodeList titleElements = suiteElement.getElementsByTagNameNS( Test.CTL_NS, "title"); title = ((Element) titleElements.item(0)).getTextContent(); NodeList descElements = suiteElement.getElementsByTagNameNS( Test.CTL_NS, "description"); if (descElements.getLength() > 0) { description = ((Element) descElements.item(0)).getTextContent(); } else { description = null; } NodeList linkElements = suiteElement.getElementsByTagNameNS( Test.CTL_NS, "link"); for (int i = 0; i < linkElements.getLength(); i++) { Element linkElem = (Element) linkElements.item(i); String linkText = linkElem.getTextContent(); if (linkText.startsWith("data")) { this.dataLink = linkText; } else { this.link = linkText; } } NodeList startingTestElements = suiteElement.getElementsByTagNameNS( Test.CTL_NS, "starting-test"); name = ((Element) startingTestElements.item(0)).getTextContent(); colon = name.indexOf(":"); startingTestPrefix = name.substring(0, colon); startingTestLocalName = name.substring(colon + 1); startingTestNamespaceUri = suiteElement .lookupNamespaceURI(startingTestPrefix); } public String getKey() { return namespaceUri + "," + localName; } public String getPrefix() { return prefix; } public String getNamespaceUri() { return namespaceUri; } public String getLocalName() { return localName; } public String getTitle() { return title; } public String getDescription() { return description; } public String getLink() { return this.link; } public String getDataLink() { return this.dataLink; } public String getStartingTestPrefix() { return startingTestPrefix; } public String getStartingTestNamespaceUri() { return startingTestNamespaceUri; } public String getStartingTestLocalName() { return startingTestLocalName; } public String getVersion() { return this.version; } }