09.01.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!