Prof. Guido Russo - Scope - Università degli Studi di Napoli Federico II
Prof. Guido Russo - Scope - Università degli Studi di Napoli Federico II
Prof. Guido Russo - Scope - Università degli Studi di Napoli Federico II
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
*/<br />
protected boolean addFarm(String farmName) {<br />
try {<br />
if (this.device.getElementById(farmName) == null)<br />
{Element node = this.device.createElement("device");<br />
node.setAttribute("name", farmName);<br />
node.setAttribute("type", "farm");<br />
node.setIdAttribute("name", true);<br />
Element actionElement = this.device.createElement("action");<br />
Element onElement = this.device.createElement("on");<br />
onElement.setAttribute("plugin", "");<br />
Element offSoftElement = this.device.createElement("off-soft");<br />
offSoftElement.setAttribute("plugin", "");<br />
Element offHardElement = this.device.createElement("off-hard");<br />
offHardElement.setAttribute("plugin", "");<br />
Element checkOnElement = this.device.createElement("check-on");<br />
checkOnElement.setAttribute("plugin", "");<br />
Element checkOffElement = this.device.createElement("check-off");<br />
checkOffElement.setAttribute("plugin", "");<br />
actionElement.appendChild(onElement);<br />
actionElement.appendChild(offSoftElement);<br />
actionElement.appendChild(offHardElement);<br />
actionElement.appendChild(checkOnElement);<br />
actionElement.appendChild(checkOffElement);<br />
node.appendChild(actionElement);<br />
this.device.getLastChild().appendChild(node);<br />
this.device.normalize();<br />
Document tmp = saveDocument(this.device, this.deviceFile,<br />
this.deviceDtdFileName);<br />
if (tmp != null)<br />
this.device = tmp;<br />
else<br />
return false;<br />
}<br />
}<br />
catch (Exception e) {<br />
return false;<br />
}<br />
return true;<br />
}<br />
/**<br />
* Restituisce tutte le <strong>di</strong>pendenze del <strong>di</strong>spositivo deviceName<br />
* @param String deviceName<br />
* @param boolean incoming<br />
* @return String[]<br />
*/<br />
public String[] getDependenciesOfDevice(String deviceName, boolean incoming) {<br />
ArrayList names = new ArrayList();<br />
NodeList nodes = (incoming) <br />
XPath("dependencies/arc[@target=\"" + deviceName + "\"]/@source",<br />
this.dependency) :<br />
XPath("dependencies/arc[@source=\"" + deviceName +<br />
"\"]/@target", this.dependency);<br />
for (int i = 0; i < nodes.getLength(); ++i) {<br />
String dep = nodes.item(i).getNodeValue();<br />
if (!(Arrays.asList(getFarms()).contains(dep)))<br />
names.add(dep);<br />
}<br />
return ((String[])names.toArray(new String[0]));<br />
}<br />
protected String[] getAllDepthDependenciesOfDevice(String name, ArrayList reached,<br />
boolean incoming) {<br />
for (String child : getDependenciesOfDevice(name, incoming)) {<br />
getAllDepthDependenciesOfDevice(child, reached, incoming);<br />
}<br />
reached.add(name);<br />
Pietro Neroni 566/2833 Pagina 90 <strong>di</strong> 117