JobDiagnoser.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.vaidya;
  19. import org.apache.hadoop.vaidya.util.XMLUtils;
  20. import org.w3c.dom.Document;
  21. import org.w3c.dom.Element;
  22. import javax.xml.parsers.DocumentBuilder;
  23. import javax.xml.parsers.DocumentBuilderFactory;
  24. import javax.xml.parsers.ParserConfigurationException;
  25. /**
  26.  * This is a base driver class for job diagnostics. Various specialty drivers that
  27.  * tests specific aspects of job problems e.g. PostExPerformanceDiagnoser extends the
  28.  * this base class.
  29.  *
  30.  */
  31. public class JobDiagnoser {
  32.   /*
  33.    * XML document containing report elements, one for each rule tested
  34.    */
  35.   private Document _report;
  36.   /*
  37.    * @report : returns report document
  38.    */
  39.   public Document getReport() {
  40.     return this._report;
  41.   }
  42.   
  43.   /**
  44.    * Constructor. It initializes the report document.
  45.    */
  46.   public JobDiagnoser () throws Exception {
  47.     
  48.     /*
  49.      * Initialize the report document, make it ready to add the child report elements 
  50.      */
  51.     DocumentBuilder builder = null;
  52.     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  53.     try{
  54.       builder = factory.newDocumentBuilder();
  55.       this._report = builder.newDocument();
  56.     } catch (ParserConfigurationException e) {
  57.       e.printStackTrace();
  58.     }
  59.       
  60.     // Insert Root Element
  61.     Element root = (Element) this._report.createElement("PostExPerformanceDiagnosticReport");
  62.     this._report.appendChild(root);
  63.   }
  64.   
  65.   /*
  66.    * Print the report document to console
  67.    */
  68.   public void printReport() {
  69.     XMLUtils.printDOM(this._report);
  70.   }
  71.   
  72.   /*
  73.    * Save the report document the specified report file
  74.    * @param reportfile : path of report file. 
  75.    */
  76.   public void saveReport(String filename) {
  77.     XMLUtils.writeXmlToFile(filename, this._report);
  78.   }
  79. }