Changeset 584 for DCWoRMS/trunk/src


Ignore:
Timestamp:
11/08/12 14:22:26 (12 years ago)
Author:
gosiaw
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/trunk/src/test/DEBBTranslator/src/DEBB2DCWoRMSTranslator.java

    r568 r584  
    5353        private static HashMap<String, String> computingResourceClasses = null; 
    5454        private static HashMap<String, String> resourceUnitClasses; 
     55        private static XPath xpath; 
     56        private static Document dcwormsDocument; 
    5557 
    5658        /** 
     
    8789 
    8890                        XPathFactory xpathFactory = XPathFactory.newInstance(); 
    89                         XPath xpath = xpathFactory.newXPath(); 
     91                        xpath = xpathFactory.newXPath(); 
    9092                        NamespaceContext nsContext = new DEBBNamespaceContext(); 
    9193                        xpath.setNamespaceContext(nsContext); 
     
    100102 
    101103                        // Creating destination, dcworms document 
    102                         Document dcwormsDocument = xmlDocumentBuilder.newDocument(); 
     104                        dcwormsDocument = xmlDocumentBuilder.newDocument(); 
    103105                        // Creating root, environment, element 
    104106                        Element rootElement = dcwormsDocument.createElement("environment"); 
     
    125127                        // Transform top level DEBB and all nested DEBBs 
    126128                        transformDEBB(plmxmlDocument, dcwormsDocument, resourcesElement, 
    127                                         xpath, rootIdNode.getNodeValue()); 
     129                                        rootIdNode.getNodeValue()); 
    128130 
    129131                        // write the content into xml file 
     
    167169                computingResourceClasses.put("Node", "Node"); 
    168170                computingResourceClasses.put("Processor", "Processor"); 
    169                  
     171 
    170172                resourceUnitClasses = new HashMap<String, String>(); 
    171173                resourceUnitClasses.put("Sensor", "Sensor"); 
     
    244246         * @param dcwormsDocument 
    245247         *            TODO 
    246          * @param xpath 
    247248         * @param instanceId 
    248249         * @return 
     
    250251         */ 
    251252        public static void transformDEBB(Document plmxmlDocument, 
    252                         Document dcwormsDocument, Element debbParentElement, XPath xpath, 
     253                        Document dcwormsDocument, Element debbParentElement, 
    253254                        String instanceId) throws Exception { 
    254255 
     
    437438                                System.out.println("id=" + debbComponentNode.getNodeName()); 
    438439 
    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); 
    553457                        } 
    554458 
     
    571475                                        // Go down in the hierarchy 
    572476                                        transformDEBB(plmxmlDocument, dcwormsDocument, 
    573                                                         computingResourceElement, xpath, instance); 
     477                                                        computingResourceElement, instance); 
    574478                                        System.out.println(); 
    575479                                } 
     
    578482        } 
    579483 
     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 
    580651} 
Note: See TracChangeset for help on using the changeset viewer.