Changeset 584 for DCWoRMS/trunk
- Timestamp:
- 11/08/12 14:22:26 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/test/DEBBTranslator/src/DEBB2DCWoRMSTranslator.java
r568 r584 53 53 private static HashMap<String, String> computingResourceClasses = null; 54 54 private static HashMap<String, String> resourceUnitClasses; 55 private static XPath xpath; 56 private static Document dcwormsDocument; 55 57 56 58 /** … … 87 89 88 90 XPathFactory xpathFactory = XPathFactory.newInstance(); 89 XPathxpath = xpathFactory.newXPath();91 xpath = xpathFactory.newXPath(); 90 92 NamespaceContext nsContext = new DEBBNamespaceContext(); 91 93 xpath.setNamespaceContext(nsContext); … … 100 102 101 103 // Creating destination, dcworms document 102 DocumentdcwormsDocument = xmlDocumentBuilder.newDocument();104 dcwormsDocument = xmlDocumentBuilder.newDocument(); 103 105 // Creating root, environment, element 104 106 Element rootElement = dcwormsDocument.createElement("environment"); … … 125 127 // Transform top level DEBB and all nested DEBBs 126 128 transformDEBB(plmxmlDocument, dcwormsDocument, resourcesElement, 127 xpath,rootIdNode.getNodeValue());129 rootIdNode.getNodeValue()); 128 130 129 131 // write the content into xml file … … 167 169 computingResourceClasses.put("Node", "Node"); 168 170 computingResourceClasses.put("Processor", "Processor"); 169 171 170 172 resourceUnitClasses = new HashMap<String, String>(); 171 173 resourceUnitClasses.put("Sensor", "Sensor"); … … 244 246 * @param dcwormsDocument 245 247 * TODO 246 * @param xpath247 248 * @param instanceId 248 249 * @return … … 250 251 */ 251 252 public static void transformDEBB(Document plmxmlDocument, 252 Document dcwormsDocument, Element debbParentElement, XPath xpath,253 Document dcwormsDocument, Element debbParentElement, 253 254 String instanceId) throws Exception { 254 255 … … 437 438 System.out.println("id=" + debbComponentNode.getNodeName()); 438 439 439 // Get all baseboards 440 expr = xpath.compile("Baseboard"); 441 result = expr.evaluate(debbComponentNode, 442 XPathConstants.NODESET); 443 NodeList baseboardNodeList = (NodeList) result; 444 if (baseboardNodeList != null) { 445 for (int i = 0; i < baseboardNodeList.getLength(); i++) { 446 Node baseboardNode = baseboardNodeList.item(i); 447 448 Element resourceUnitElement = dcwormsDocument 449 .createElement("resourceUnit"); 450 Attr baseboardClassAttribute = dcwormsDocument.createAttribute("class"); 451 baseboardClassAttribute.setValue(resourceUnitClasses.get(baseboardNode.getNodeName())); 452 resourceUnitElement.setAttributeNode(baseboardClassAttribute); 453 computingResourceElement 454 .appendChild(resourceUnitElement); 455 } 456 } 457 458 // Get all memory units 459 expr = xpath.compile("Memory"); 460 result = expr.evaluate(debbComponentNode, 461 XPathConstants.NODESET); 462 NodeList memoryNodeList = (NodeList) result; 463 if (memoryNodeList != null) { 464 for (int i = 0; i < memoryNodeList.getLength(); i++) { 465 Node memoryNode = memoryNodeList.item(i); 466 467 Element resourceUnitElement = dcwormsDocument 468 .createElement("resourceUnit"); 469 Attr memoryClassAttribute = dcwormsDocument.createAttribute("class"); 470 memoryClassAttribute.setValue(resourceUnitClasses.get(memoryNode.getNodeName())); 471 resourceUnitElement.setAttributeNode(memoryClassAttribute); 472 computingResourceElement 473 .appendChild(resourceUnitElement); 474 } 475 } 476 477 // Get all storages 478 expr = xpath.compile("Storage"); 479 result = expr.evaluate(debbComponentNode, 480 XPathConstants.NODESET); 481 NodeList storageNodeList = (NodeList) result; 482 if (storageNodeList != null) { 483 for (int i = 0; i < storageNodeList.getLength(); i++) { 484 Node storageNode = storageNodeList.item(i); 485 486 Element resourceUnitElement = dcwormsDocument 487 .createElement("resourceUnit"); 488 Attr storageClassAttribute = dcwormsDocument.createAttribute("class"); 489 storageClassAttribute.setValue(resourceUnitClasses.get(storageNode.getNodeName())); 490 resourceUnitElement.setAttributeNode(storageClassAttribute); 491 computingResourceElement 492 .appendChild(resourceUnitElement); 493 } 494 } 495 496 // Get all sensors 497 expr = xpath.compile("Sensor"); 498 result = expr.evaluate(debbComponentNode, 499 XPathConstants.NODESET); 500 NodeList sensorsNodeList = (NodeList) result; 501 if (sensorsNodeList != null) { 502 for (int i = 0; i < sensorsNodeList.getLength(); i++) { 503 Node sensorNode = sensorsNodeList.item(i); 504 505 Element resourceUnitElement = dcwormsDocument 506 .createElement("resourceUnit"); 507 Attr sensorClassAttribute = dcwormsDocument.createAttribute("class"); 508 sensorClassAttribute.setValue(resourceUnitClasses.get(sensorNode.getNodeName())); 509 resourceUnitElement.setAttributeNode(sensorClassAttribute); 510 computingResourceElement 511 .appendChild(resourceUnitElement); 512 } 513 } 514 515 // Get all cooling devices 516 expr = xpath.compile("CoolingDevice"); 517 result = expr.evaluate(debbComponentNode, 518 XPathConstants.NODESET); 519 NodeList coolingDeviceNodeList = (NodeList) result; 520 if (coolingDeviceNodeList != null) { 521 for (int i = 0; i < coolingDeviceNodeList.getLength(); i++) { 522 Node coolingDeviceNode = coolingDeviceNodeList.item(i); 523 524 Element resourceUnitElement = dcwormsDocument 525 .createElement("resourceUnit"); 526 Attr coolingDeviceClassAttribute = dcwormsDocument.createAttribute("class"); 527 coolingDeviceClassAttribute.setValue(resourceUnitClasses.get(coolingDeviceNode.getNodeName())); 528 resourceUnitElement.setAttributeNode(coolingDeviceClassAttribute); 529 computingResourceElement 530 .appendChild(resourceUnitElement); 531 } 532 } 533 534 // Get all processors 535 expr = xpath.compile("Processor"); 536 result = expr.evaluate(debbComponentNode, 537 XPathConstants.NODESET); 538 NodeList processorNodeList = (NodeList) result; 539 if (processorNodeList != null) { 540 for (int i = 0; i < processorNodeList.getLength(); i++) { 541 Node processorNode = processorNodeList.item(i); 542 543 Element processorElement = dcwormsDocument 544 .createElement("computingResource"); 545 Attr processorClassAttribute = dcwormsDocument.createAttribute("class"); 546 processorClassAttribute.setValue(computingResourceClasses.get(processorNode.getNodeName())); 547 processorElement.setAttributeNode(processorClassAttribute); 548 computingResourceElement 549 .appendChild(processorElement); 550 } 551 } 552 440 // Get all processors 441 transformProcessors(debbComponentNode, computingResourceElement); 442 443 // Get all memory units 444 transformMemoryUnits(debbComponentNode, 445 computingResourceElement); 446 447 // Get all storages 448 transformStorages(debbComponentNode, computingResourceElement); 449 450 // Get all cooling devices 451 transformCoolingDevices(debbComponentNode, 452 computingResourceElement); 453 // Get all baseboards 454 transformBaseboards(debbComponentNode, computingResourceElement); 455 // Get all sensors 456 transformSensors(debbComponentNode, computingResourceElement); 553 457 } 554 458 … … 571 475 // Go down in the hierarchy 572 476 transformDEBB(plmxmlDocument, dcwormsDocument, 573 computingResourceElement, xpath,instance);477 computingResourceElement, instance); 574 478 System.out.println(); 575 479 } … … 578 482 } 579 483 484 private static void transformCoolingDevices(Node debbComponentNode, 485 Element computingResourceElement) throws XPathExpressionException { 486 XPathExpression expr = xpath.compile("CoolingDevice"); 487 Object result = expr 488 .evaluate(debbComponentNode, XPathConstants.NODESET); 489 NodeList coolingDeviceNodeList = (NodeList) result; 490 if (coolingDeviceNodeList != null) { 491 for (int i = 0; i < coolingDeviceNodeList.getLength(); i++) { 492 Node coolingDeviceNode = coolingDeviceNodeList.item(i); 493 494 Element resourceUnitElement = dcwormsDocument 495 .createElement("resourceUnit"); 496 Attr coolingDeviceClassAttribute = dcwormsDocument 497 .createAttribute("class"); 498 coolingDeviceClassAttribute.setValue(resourceUnitClasses 499 .get(coolingDeviceNode.getNodeName())); 500 resourceUnitElement 501 .setAttributeNode(coolingDeviceClassAttribute); 502 computingResourceElement.appendChild(resourceUnitElement); 503 } 504 } 505 506 } 507 508 private static void transformProcessors(Node debbComponentNode, 509 Element computingResourceElement) throws XPathExpressionException { 510 XPathExpression expr = xpath.compile("Processor"); 511 Object result = expr 512 .evaluate(debbComponentNode, XPathConstants.NODESET); 513 NodeList processorNodeList = (NodeList) result; 514 if (processorNodeList != null) { 515 for (int i = 0; i < processorNodeList.getLength(); i++) { 516 Node processorNode = processorNodeList.item(i); 517 518 Element processorElement = dcwormsDocument 519 .createElement("computingResource"); 520 Attr processorClassAttribute = dcwormsDocument 521 .createAttribute("class"); 522 processorClassAttribute.setValue(computingResourceClasses 523 .get(processorNode.getNodeName())); 524 processorElement.setAttributeNode(processorClassAttribute); 525 // 526 // // Device attributes 527 // NodeList parameterNodes = processorNode.getChildNodes(); 528 // String tmp = ""; 529 // for (int j = 0; j < parameterNodes.getLength(); j++) { 530 // Node child = parameterNodes.item(j); 531 // 532 // short type = child.getNodeType(); 533 // System.out.println("type=" + type); 534 // if (type == Node.ELEMENT_NODE) { 535 // Element parameterElement = dcwormsDocument 536 // .createElement("parameter"); 537 // Attr parameterNameAttribute = dcwormsDocument 538 // .createAttribute("name"); 539 // parameterNameAttribute.setValue(child.getNodeName()); 540 // parameterElement 541 // .setAttributeNode(parameterNameAttribute); 542 // Element valueElement = dcwormsDocument 543 // .createElement("value"); 544 // valueElement.appendChild(dcwormsDocument 545 // .createTextNode(tmp)); 546 // parameterElement.appendChild(valueElement); 547 // computingResourceElement.appendChild(parameterElement); 548 // 549 // } else if (type == Node.TEXT_NODE) { 550 // tmp = child.getNodeValue(); 551 // 552 // } 553 // 554 // } 555 } 556 } 557 558 } 559 560 private static void transformSensors(Node debbComponentNode, 561 Element computingResourceElement) throws XPathExpressionException { 562 563 // TODO: Take them from PLM XML 564 /* 565 * XPathExpression expr = xpath.compile("Sensor"); Object result = 566 * expr.evaluate(debbComponentNode, XPathConstants.NODESET); NodeList 567 * sensorsNodeList = (NodeList) result; if (sensorsNodeList != null) { 568 * for (int i = 0; i < sensorsNodeList.getLength(); i++) { Node 569 * sensorNode = sensorsNodeList.item(i); 570 * 571 * Element resourceUnitElement = dcwormsDocument 572 * .createElement("resourceUnit"); Attr sensorClassAttribute = 573 * dcwormsDocument.createAttribute("class"); 574 * sensorClassAttribute.setValue 575 * (resourceUnitClasses.get(sensorNode.getNodeName())); 576 * resourceUnitElement.setAttributeNode(sensorClassAttribute); 577 * computingResourceElement .appendChild(resourceUnitElement); } } 578 */ 579 580 } 581 582 private static void transformStorages(Node debbComponentNode, 583 Element computingResourceElement) throws XPathExpressionException { 584 XPathExpression expr = xpath.compile("Storage"); 585 Object result = expr 586 .evaluate(debbComponentNode, XPathConstants.NODESET); 587 NodeList storageNodeList = (NodeList) result; 588 if (storageNodeList != null) { 589 for (int i = 0; i < storageNodeList.getLength(); i++) { 590 Node storageNode = storageNodeList.item(i); 591 592 Element resourceUnitElement = dcwormsDocument 593 .createElement("resourceUnit"); 594 Attr storageClassAttribute = dcwormsDocument 595 .createAttribute("class"); 596 storageClassAttribute.setValue(resourceUnitClasses 597 .get(storageNode.getNodeName())); 598 resourceUnitElement.setAttributeNode(storageClassAttribute); 599 computingResourceElement.appendChild(resourceUnitElement); 600 } 601 } 602 603 } 604 605 private static void transformMemoryUnits(Node debbComponentNode, 606 Element computingResourceElement) throws XPathExpressionException { 607 XPathExpression expr = xpath.compile("Memory"); 608 Object result = expr 609 .evaluate(debbComponentNode, XPathConstants.NODESET); 610 NodeList memoryNodeList = (NodeList) result; 611 if (memoryNodeList != null) { 612 for (int i = 0; i < memoryNodeList.getLength(); i++) { 613 Node memoryNode = memoryNodeList.item(i); 614 615 Element resourceUnitElement = dcwormsDocument 616 .createElement("resourceUnit"); 617 Attr memoryClassAttribute = dcwormsDocument 618 .createAttribute("class"); 619 memoryClassAttribute.setValue(resourceUnitClasses 620 .get(memoryNode.getNodeName())); 621 resourceUnitElement.setAttributeNode(memoryClassAttribute); 622 computingResourceElement.appendChild(resourceUnitElement); 623 } 624 } 625 } 626 627 private static void transformBaseboards(Node debbComponentNode, 628 Element computingResourceElement) throws XPathExpressionException { 629 630 XPathExpression expr = xpath.compile("Baseboard"); 631 Object result = expr 632 .evaluate(debbComponentNode, XPathConstants.NODESET); 633 NodeList baseboardNodeList = (NodeList) result; 634 if (baseboardNodeList != null) { 635 for (int i = 0; i < baseboardNodeList.getLength(); i++) { 636 Node baseboardNode = baseboardNodeList.item(i); 637 638 Element resourceUnitElement = dcwormsDocument 639 .createElement("resourceUnit"); 640 Attr baseboardClassAttribute = dcwormsDocument 641 .createAttribute("class"); 642 baseboardClassAttribute.setValue(resourceUnitClasses 643 .get(baseboardNode.getNodeName())); 644 resourceUnitElement.setAttributeNode(baseboardClassAttribute); 645 computingResourceElement.appendChild(resourceUnitElement); 646 } 647 } 648 649 } 650 580 651 }
Note: See TracChangeset
for help on using the changeset viewer.