一个典型的GuildLineDataFactory类,以及它所解析的xml

这段代码完成的功能是:从xml中解析数据,将数据存放在一个类中。

首先是数据工厂类。

GuildLineDataFactory
package com.zte.audit.core;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class GuildLineDataFactory {
    
private static String filePath;

    
public static List getDatas(String fileName, String filePath)
            
throws SAXException {
        
// filePath = "E:\\work\\workspaces\\runtime-New_configuration1\\mm\\";
        fileName = filePath + "\\" + fileName; // 存放的是xml的绝对路径
        List list = new ArrayList();
        
/**//*
         * { GuildlineData data = new GuildlineData(); data.setFunName("main");
         * data.setShortName("AVGS"); data.setName("表示可以可执行语句的平均运算符和操作数的数量。");
         * data.setValue("3.00"); data.setMin("1.00"); data.setMax("9.00");
         * data.setStatus("0"); list.add(data); } { GuildlineData data = new
         * GuildlineData(); data.setFunName("add"); data.setShortName("COMF");
         * data.setName("注释的频度。"); data.setValue("5.00"); data.setMin("0.2");
         * data.setMax("+00"); data.setStatus("0"); list.add(data); } {
         * GuildlineData data = new GuildlineData(); data.setFunName("main");
         * data.setShortName("DRCT_CALLS");
         * data.setName("直接调用函数数,直接调用函数的数量,不计算同一函数的重复调用。");
         * data.setValue("9.00"); data.setMin("0"); data.setMax("7.00");
         * data.setStatus("1"); list.add(data); }
         
*/


        
// 开始读取xml,并讲结果放在list中,里面的元素是GuildlineData
        String tempFunName;
        
// 为解析XML作准备,创建DocumentBuilderFactory实例,指定DocumentBuilder
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db 
= null;
        
try {
            db 
= dbf.newDocumentBuilder();
        }
 catch (ParserConfigurationException pce) {
            System.err.println(pce); 
// 出异常时输出异常信息,然后退出,下同
            
// System.exit(1);
            return list;
        }

        Document doc 
= null;
        
try {
            doc 
= db.parse(fileName);
        }
 catch (DOMException dom) {
            System.err.println(dom.getMessage());
            
return list;
        }
 catch (IOException ioe) {
            System.err.println(ioe);
            
// System.exit(1);
            return list;
        }

        
// 下面是解析XML的全过程,比较简单,先取根元素"ROOT"
        Element root = doc.getDocumentElement();
        
// 取“FILE”节点
        NodeList files = root.getElementsByTagName("FILE");
        
for (int k = 0; k < files.getLength(); k++{
            Element file 
= (Element) files.item(k);

            
// 取"FUNCTION"元素列表
            NodeList funs = file.getElementsByTagName("FUNCTION");
            
// 对每一个"FUNCTION"元素进行操作
            for (int i = 0; i < funs.getLength(); i++{
                Element fun 
= (Element) funs.item(i);
                tempFunName 
= fun.getAttribute("NAME");
                NodeList metrics 
= fun.getElementsByTagName("METRIC");
                
// 将每一个"METRIC"节点的数据放入data,并将整个文件的data放入一个list返回
                for (int j = 0; j < metrics.getLength(); j++{
                    Element metric 
= (Element) metrics.item(j);
                    GuildlineData data 
= new GuildlineData();
                    data.setFunName(tempFunName);
                    data.setShortName(metric.getAttribute(
"NAME"));
                    data.setName(metric.getAttribute(
"DESCRIBE"));
                    data.setValue(metric.getAttribute(
"VALUE"));
                    data.setMin(metric.getAttribute(
"MIN"));
                    data.setMax(metric.getAttribute(
"MAX"));
                    data.setStatus(metric.getAttribute(
"STATUS"));
                    list.add(data);
                }

            }

        }

        
return list;
    }


}


存放数据的类的结构如下:

GuildlineData
package com.zte.audit.core;

public class GuildlineData {
    
private String funName;
    
private String shortName;
    
private String name;
    
private String value;
    
private String max;
    
private String min;
    
private String status;
    
public String getMax() {
        
return max;
    }

    
public void setMax(String max) {
        
this.max = max;
    }

    
public String getMin() {
        
return min;
    }

    
public void setMin(String min) {
        
this.min = min;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
public String getShortName() {
        
return shortName;
    }

    
public void setShortName(String shortName) {
        
this.shortName = shortName;
    }

    
public String getStatus() {
        
return status;
    }

    
public void setStatus(String status) {
        
this.status = status;
    }

    
public String getValue() {
        
return value;
    }

    
public void setValue(String value) {
        
this.value = value;
    }

    
public String getFunName() {
        
return funName;
    }

    
public void setFunName(String funName) {
        
this.funName = funName;
    }

    
}


最后是xml文件:

xml
<?xml version="1.0" encoding="gb2312"?>
<ROOT>
  
<FILE NAME="test1.c">
    
<FUNCTION NAME="HelloWorld" LINE="49">
      
<QUALITY NAME="Maintainability" VALUE="11" STATUS="Good"/>
      
<QUALITY NAME="Analyzability" VALUE="3" STATUS="good"/>
      
<QUALITY NAME="Changeability" VALUE="4" STATUS="Excellent"/>
      
<QUALITY NAME="Stability" VALUE="4" STATUS="Excellent"/>
      
<QUALITY NAME="Testability" VALUE="4" STATUS="Excellent"/>
      
<QUALITY NAME="AVGE: Average size of statements" VALUE="2.00" STATUS="1"/>
      
<QUALITY NAME="COMF: Comments frequency" VALUE="0.00" STATUS="0"/>
      
<QUALITY NAME="DRCT_CALLS: Number of direct calls" VALUE="1.00" STATUS="1"/>
      
<QUALITY NAME="GOTO: Number of GOTO statements" VALUE="0.00" STATUS="1"/>
      
<QUALITY NAME="LEVL: Number of levels" VALUE="1.00" STATUS="1"/>
      
<QUALITY NAME="LVAR: Number of local variables" VALUE="0.00" STATUS="1"/>
      
<QUALITY NAME="NBCALLING: Number of callers" VALUE="0.00" STATUS="1"/>
      
<QUALITY NAME="PARA: Number of function parameters" VALUE="1.00" STATUS="1"/>
      
<QUALITY NAME="PATH: Number of paths" VALUE="1.00" STATUS="1"/>
      
<QUALITY NAME="RETU: Number of RETURN statements" VALUE="0.00" STATUS="1"/>
      
<QUALITY NAME="STMT: Number of statements" VALUE="2.00" STATUS="1"/>
      
<QUALITY NAME="VG: Cyclomatic number" VALUE="1.00" STATUS="1"/>
      
<QUALITY NAME="VOCF: Vocabulary frequency" VALUE="1.00" STATUS="1"/>
      
<METRIC NAME="AVGE" DESCRIBE="Average size of statements" VALUE="2.00" MIN="1.00" MAX="9.00" STATUS="1"/>
      
<METRIC NAME="CN" DESCRIBE="Estimated Length" VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="COMM" DESCRIBE="Number of comments" VALUE="0.00" MIN="0.00" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="COMF" DESCRIBE="Comments frequency" VALUE="0.00" MIN="0.20" MAX="+oo" STATUS="0"/>
      
<METRIC NAME="D" DESCRIBE="Difficulty" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="DRCT_CALLS" DESCRIBE="Number of direct calls" VALUE="1.00" MIN="0.00" MAX="7.00" STATUS="1"/>
      
<METRIC NAME="E" DESCRIBE="Mental Effort" VALUE="8.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="GOTO" DESCRIBE="Number of GOTO statements" VALUE="0.00" MIN="0.00" MAX="0.00" STATUS="1"/>
      
<METRIC NAME="L" DESCRIBE="Level" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="LEVL" DESCRIBE="Number of levels" VALUE="1.00" MIN="0.00" MAX="4.00" STATUS="1"/>
      
<METRIC NAME="LVAR" DESCRIBE="Number of local variables" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/>
      
<METRIC NAME="N" DESCRIBE="Program length " VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="N1" DESCRIBE="Total number of operators" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="N2" DESCRIBE="Total number of operands" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="NBCALLING" DESCRIBE="Number of callers" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/>
      
<METRIC NAME="NEST" DESCRIBE="Number of nestings" VALUE="0.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="PARA" DESCRIBE="Number of function parameters" VALUE="1.00" MIN="0.00" MAX="5.00" STATUS="1"/>
      
<METRIC NAME="PATH" DESCRIBE="Number of paths" VALUE="1.00" MIN="1.00" MAX="80.00" STATUS="1"/>
      
<METRIC NAME="RETU" DESCRIBE="Number of RETURN statements" VALUE="0.00" MIN="0.00" MAX="1.00" STATUS="1"/>
      
<METRIC NAME="STMT" DESCRIBE="Number of statements" VALUE="2.00" MIN="1.00" MAX="50.00" STATUS="1"/>
      
<METRIC NAME="V" DESCRIBE="Volume" VALUE="8.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="VG" DESCRIBE="Cyclomatic number " VALUE="1.00" MIN="1.00" MAX="10.00" STATUS="1"/>
      
<METRIC NAME="VOCF" DESCRIBE="Vocabulary frequency" VALUE="1.00" MIN="1.00" MAX="4.00" STATUS="1"/>
      
<METRIC NAME="n" DESCRIBE="Vocabulary" VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="n1" DESCRIBE="Number of distinct operators" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/>
      
<METRIC NAME="n2" DESCRIBE="Number of distinct operands" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/>
    
</FUNCTION>
  
<FUNCTION NAME="mainop" LINE="7"><QUALITY NAME="Maintainability" VALUE="7" STATUS="Fair"/><QUALITY NAME="Analyzability" VALUE="3" STATUS="good"/><QUALITY NAME="Changeability" VALUE="2" STATUS="Fair"/><QUALITY NAME="Stability" VALUE="3" STATUS="good"/><QUALITY NAME="Testability" VALUE="3" STATUS="good"/><QUALITY NAME="AVGE: Average size of statements" VALUE="4.09" STATUS="1"/><QUALITY NAME="COMF: Comments frequency" VALUE="0.00" STATUS="0"/><QUALITY NAME="DRCT_CALLS: Number of direct calls" VALUE="3.00" STATUS="1"/><QUALITY NAME="GOTO: Number of GOTO statements" VALUE="1.00" STATUS="0"/><QUALITY NAME="LEVL: Number of levels" VALUE="2.00" STATUS="1"/><QUALITY NAME="LVAR: Number of local variables" VALUE="3.00" STATUS="1"/><QUALITY NAME="NBCALLING: Number of callers" VALUE="0.00" STATUS="1"/><QUALITY NAME="PARA: Number of function parameters" VALUE="8.00" STATUS="0"/><QUALITY NAME="PATH: Number of paths" VALUE="4.00" STATUS="1"/><QUALITY NAME="RETU: Number of RETURN statements" VALUE="1.00" STATUS="1"/><QUALITY NAME="STMT: Number of statements" VALUE="11.00" STATUS="1"/><QUALITY NAME="VG: Cyclomatic number" VALUE="4.00" STATUS="1"/><QUALITY NAME="VOCF: Vocabulary frequency" VALUE="1.88" STATUS="1"/><METRIC NAME="AVGE" DESCRIBE="Average size of statements" VALUE="4.09" MIN="1.00" MAX="9.00" STATUS="1"/><METRIC NAME="CN" DESCRIBE="Estimated Length" VALUE="84.58" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="COMM" DESCRIBE="Number of comments" VALUE="0.00" MIN="0.00" MAX="+oo" STATUS="1"/><METRIC NAME="COMF" DESCRIBE="Comments frequency" VALUE="0.00" MIN="0.20" MAX="+oo" STATUS="0"/><METRIC NAME="D" DESCRIBE="Difficulty" VALUE="11.90" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="DRCT_CALLS" DESCRIBE="Number of direct calls" VALUE="3.00" MIN="0.00" MAX="7.00" STATUS="1"/><METRIC NAME="E" DESCRIBE="Mental Effort" VALUE="2455.25" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="GOTO" DESCRIBE="Number of GOTO statements" VALUE="1.00" MIN="0.00" MAX="0.00" STATUS="0"/><METRIC NAME="L" DESCRIBE="Level" VALUE="0.08" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="LEVL" DESCRIBE="Number of levels" VALUE="2.00" MIN="0.00" MAX="4.00" STATUS="1"/><METRIC NAME="LVAR" DESCRIBE="Number of local variables" VALUE="3.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="N" DESCRIBE="Program length " VALUE="45.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N1" DESCRIBE="Total number of operators" VALUE="28.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N2" DESCRIBE="Total number of operands" VALUE="17.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="NBCALLING" DESCRIBE="Number of callers" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="NEST" DESCRIBE="Number of nestings" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="PARA" DESCRIBE="Number of function parameters" VALUE="8.00" MIN="0.00" MAX="5.00" STATUS="0"/><METRIC NAME="PATH" DESCRIBE="Number of paths" VALUE="4.00" MIN="1.00" MAX="80.00" STATUS="1"/><METRIC NAME="RETU" DESCRIBE="Number of RETURN statements" VALUE="1.00" MIN="0.00" MAX="1.00" STATUS="1"/><METRIC NAME="STMT" DESCRIBE="Number of statements" VALUE="11.00" MIN="1.00" MAX="50.00" STATUS="1"/><METRIC NAME="V" DESCRIBE="Volume" VALUE="206.32" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="VG" DESCRIBE="Cyclomatic number " VALUE="4.00" MIN="1.00" MAX="10.00" STATUS="1"/><METRIC NAME="VOCF" DESCRIBE="Vocabulary frequency" VALUE="1.88" MIN="1.00" MAX="4.00" STATUS="1"/><METRIC NAME="n" DESCRIBE="Vocabulary" VALUE="45.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n1" DESCRIBE="Number of distinct operators" VALUE="14.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n2" DESCRIBE="Number of distinct operands" VALUE="10.00" MIN="-oo" MAX="+oo" STATUS="1"/></FUNCTION><FUNCTION NAME="to_binary" LINE="28"><QUALITY NAME="Maintainability" VALUE="10" STATUS="Good"/><QUALITY NAME="Analyzability" VALUE="3" STATUS="good"/><QUALITY NAME="Changeability" VALUE="3" STATUS="good"/><QUALITY NAME="Stability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="Testability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="AVGE: Average size of statements" VALUE="4.14" STATUS="1"/><QUALITY NAME="COMF: Comments frequency" VALUE="0.00" STATUS="0"/><QUALITY NAME="DRCT_CALLS: Number of direct calls" VALUE="3.00" STATUS="1"/><QUALITY NAME="GOTO: Number of GOTO statements" VALUE="0.00" STATUS="1"/><QUALITY NAME="LEVL: Number of levels" VALUE="2.00" STATUS="1"/><QUALITY NAME="LVAR: Number of local variables" VALUE="5.00" STATUS="1"/><QUALITY NAME="NBCALLING: Number of callers" VALUE="0.00" STATUS="1"/><QUALITY NAME="PARA: Number of function parameters" VALUE="1.00" STATUS="1"/><QUALITY NAME="PATH: Number of paths" VALUE="2.00" STATUS="1"/><QUALITY NAME="RETU: Number of RETURN statements" VALUE="1.00" STATUS="1"/><QUALITY NAME="STMT: Number of statements" VALUE="7.00" STATUS="1"/><QUALITY NAME="VG: Cyclomatic number" VALUE="2.00" STATUS="1"/><QUALITY NAME="VOCF: Vocabulary frequency" VALUE="1.71" STATUS="1"/><METRIC NAME="AVGE" DESCRIBE="Average size of statements" VALUE="4.14" MIN="1.00" MAX="9.00" STATUS="1"/><METRIC NAME="CN" DESCRIBE="Estimated Length" VALUE="52.36" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="COMM" DESCRIBE="Number of comments" VALUE="0.00" MIN="0.00" MAX="+oo" STATUS="1"/><METRIC NAME="COMF" DESCRIBE="Comments frequency" VALUE="0.00" MIN="0.20" MAX="+oo" STATUS="0"/><METRIC NAME="D" DESCRIBE="Difficulty" VALUE="7.31" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="DRCT_CALLS" DESCRIBE="Number of direct calls" VALUE="3.00" MIN="0.00" MAX="7.00" STATUS="1"/><METRIC NAME="E" DESCRIBE="Mental Effort" VALUE="866.80" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="GOTO" DESCRIBE="Number of GOTO statements" VALUE="0.00" MIN="0.00" MAX="0.00" STATUS="1"/><METRIC NAME="L" DESCRIBE="Level" VALUE="0.14" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="LEVL" DESCRIBE="Number of levels" VALUE="2.00" MIN="0.00" MAX="4.00" STATUS="1"/><METRIC NAME="LVAR" DESCRIBE="Number of local variables" VALUE="5.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="N" DESCRIBE="Program length " VALUE="29.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N1" DESCRIBE="Total number of operators" VALUE="16.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N2" DESCRIBE="Total number of operands" VALUE="13.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="NBCALLING" DESCRIBE="Number of callers" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="NEST" DESCRIBE="Number of nestings" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="PARA" DESCRIBE="Number of function parameters" VALUE="1.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="PATH" DESCRIBE="Number of paths" VALUE="2.00" MIN="1.00" MAX="80.00" STATUS="1"/><METRIC NAME="RETU" DESCRIBE="Number of RETURN statements" VALUE="1.00" MIN="0.00" MAX="1.00" STATUS="1"/><METRIC NAME="STMT" DESCRIBE="Number of statements" VALUE="7.00" MIN="1.00" MAX="50.00" STATUS="1"/><METRIC NAME="V" DESCRIBE="Volume" VALUE="118.54" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="VG" DESCRIBE="Cyclomatic number " VALUE="2.00" MIN="1.00" MAX="10.00" STATUS="1"/><METRIC NAME="VOCF" DESCRIBE="Vocabulary frequency" VALUE="1.71" MIN="1.00" MAX="4.00" STATUS="1"/><METRIC NAME="n" DESCRIBE="Vocabulary" VALUE="29.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n1" DESCRIBE="Number of distinct operators" VALUE="9.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n2" DESCRIBE="Number of distinct operands" VALUE="8.00" MIN="-oo" MAX="+oo" STATUS="1"/></FUNCTION><FUNCTION NAME="addition" LINE="42"><QUALITY NAME="Maintainability" VALUE="11" STATUS="Good"/><QUALITY NAME="Analyzability" VALUE="3" STATUS="good"/><QUALITY NAME="Changeability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="Stability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="Testability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="AVGE: Average size of statements" VALUE="3.00" STATUS="1"/><QUALITY NAME="COMF: Comments frequency" VALUE="0.00" STATUS="0"/><QUALITY NAME="DRCT_CALLS: Number of direct calls" VALUE="1.00" STATUS="1"/><QUALITY NAME="GOTO: Number of GOTO statements" VALUE="0.00" STATUS="1"/><QUALITY NAME="LEVL: Number of levels" VALUE="1.00" STATUS="1"/><QUALITY NAME="LVAR: Number of local variables" VALUE="0.00" STATUS="1"/><QUALITY NAME="NBCALLING: Number of callers" VALUE="0.00" STATUS="1"/><QUALITY NAME="PARA: Number of function parameters" VALUE="1.00" STATUS="1"/><QUALITY NAME="PATH: Number of paths" VALUE="1.00" STATUS="1"/><QUALITY NAME="RETU: Number of RETURN statements" VALUE="1.00" STATUS="1"/><QUALITY NAME="STMT: Number of statements" VALUE="4.00" STATUS="1"/><QUALITY NAME="VG: Cyclomatic number" VALUE="1.00" STATUS="1"/><QUALITY NAME="VOCF: Vocabulary frequency" VALUE="1.33" STATUS="1"/><METRIC NAME="AVGE" DESCRIBE="Average size of statements" VALUE="3.00" MIN="1.00" MAX="9.00" STATUS="1"/><METRIC NAME="CN" DESCRIBE="Estimated Length" VALUE="19.29" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="COMM" DESCRIBE="Number of comments" VALUE="0.00" MIN="0.00" MAX="+oo" STATUS="1"/><METRIC NAME="COMF" DESCRIBE="Comments frequency" VALUE="0.00" MIN="0.20" MAX="+oo" STATUS="0"/><METRIC NAME="D" DESCRIBE="Difficulty" VALUE="3.12" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="DRCT_CALLS" DESCRIBE="Number of direct calls" VALUE="1.00" MIN="0.00" MAX="7.00" STATUS="1"/><METRIC NAME="E" DESCRIBE="Mental Effort" VALUE="118.87" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="GOTO" DESCRIBE="Number of GOTO statements" VALUE="0.00" MIN="0.00" MAX="0.00" STATUS="1"/><METRIC NAME="L" DESCRIBE="Level" VALUE="0.32" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="LEVL" DESCRIBE="Number of levels" VALUE="1.00" MIN="0.00" MAX="4.00" STATUS="1"/><METRIC NAME="LVAR" DESCRIBE="Number of local variables" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="N" DESCRIBE="Program length " VALUE="12.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N1" DESCRIBE="Total number of operators" VALUE="7.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N2" DESCRIBE="Total number of operands" VALUE="5.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="NBCALLING" DESCRIBE="Number of callers" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="NEST" DESCRIBE="Number of nestings" VALUE="0.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="PARA" DESCRIBE="Number of function parameters" VALUE="1.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="PATH" DESCRIBE="Number of paths" VALUE="1.00" MIN="1.00" MAX="80.00" STATUS="1"/><METRIC NAME="RETU" DESCRIBE="Number of RETURN statements" VALUE="1.00" MIN="0.00" MAX="1.00" STATUS="1"/><METRIC NAME="STMT" DESCRIBE="Number of statements" VALUE="4.00" MIN="1.00" MAX="50.00" STATUS="1"/><METRIC NAME="V" DESCRIBE="Volume" VALUE="38.04" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="VG" DESCRIBE="Cyclomatic number " VALUE="1.00" MIN="1.00" MAX="10.00" STATUS="1"/><METRIC NAME="VOCF" DESCRIBE="Vocabulary frequency" VALUE="1.33" MIN="1.00" MAX="4.00" STATUS="1"/><METRIC NAME="n" DESCRIBE="Vocabulary" VALUE="12.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n1" DESCRIBE="Number of distinct operators" VALUE="5.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n2" DESCRIBE="Number of distinct operands" VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/></FUNCTION><FUNCTION NAME="HelloWorld3" LINE="54"><QUALITY NAME="Maintainability" VALUE="11" STATUS="Good"/><QUALITY NAME="Analyzability" VALUE="3" STATUS="good"/><QUALITY NAME="Changeability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="Stability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="Testability" VALUE="4" STATUS="Excellent"/><QUALITY NAME="AVGE: Average size of statements" VALUE="2.00" STATUS="1"/><QUALITY NAME="COMF: Comments frequency" VALUE="0.00" STATUS="0"/><QUALITY NAME="DRCT_CALLS: Number of direct calls" VALUE="1.00" STATUS="1"/><QUALITY NAME="GOTO: Number of GOTO statements" VALUE="0.00" STATUS="1"/><QUALITY NAME="LEVL: Number of levels" VALUE="1.00" STATUS="1"/><QUALITY NAME="LVAR: Number of local variables" VALUE="0.00" STATUS="1"/><QUALITY NAME="NBCALLING: Number of callers" VALUE="0.00" STATUS="1"/><QUALITY NAME="PARA: Number of function parameters" VALUE="1.00" STATUS="1"/><QUALITY NAME="PATH: Number of paths" VALUE="1.00" STATUS="1"/><QUALITY NAME="RETU: Number of RETURN statements" VALUE="0.00" STATUS="1"/><QUALITY NAME="STMT: Number of statements" VALUE="2.00" STATUS="1"/><QUALITY NAME="VG: Cyclomatic number" VALUE="1.00" STATUS="1"/><QUALITY NAME="VOCF: Vocabulary frequency" VALUE="1.00" STATUS="1"/><METRIC NAME="AVGE" DESCRIBE="Average size of statements" VALUE="2.00" MIN="1.00" MAX="9.00" STATUS="1"/><METRIC NAME="CN" DESCRIBE="Estimated Length" VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="COMM" DESCRIBE="Number of comments" VALUE="0.00" MIN="0.00" MAX="+oo" STATUS="1"/><METRIC NAME="COMF" DESCRIBE="Comments frequency" VALUE="0.00" MIN="0.20" MAX="+oo" STATUS="0"/><METRIC NAME="D" DESCRIBE="Difficulty" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="DRCT_CALLS" DESCRIBE="Number of direct calls" VALUE="1.00" MIN="0.00" MAX="7.00" STATUS="1"/><METRIC NAME="E" DESCRIBE="Mental Effort" VALUE="8.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="GOTO" DESCRIBE="Number of GOTO statements" VALUE="0.00" MIN="0.00" MAX="0.00" STATUS="1"/><METRIC NAME="L" DESCRIBE="Level" VALUE="1.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="LEVL" DESCRIBE="Number of levels" VALUE="1.00" MIN="0.00" MAX="4.00" STATUS="1"/><METRIC NAME="LVAR" DESCRIBE="Number of local variables" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="N" DESCRIBE="Program length " VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N1" DESCRIBE="Total number of operators" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="N2" DESCRIBE="Total number of operands" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="NBCALLING" DESCRIBE="Number of callers" VALUE="0.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="NEST" DESCRIBE="Number of nestings" VALUE="0.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="PARA" DESCRIBE="Number of function parameters" VALUE="1.00" MIN="0.00" MAX="5.00" STATUS="1"/><METRIC NAME="PATH" DESCRIBE="Number of paths" VALUE="1.00" MIN="1.00" MAX="80.00" STATUS="1"/><METRIC NAME="RETU" DESCRIBE="Number of RETURN statements" VALUE="0.00" MIN="0.00" MAX="1.00" STATUS="1"/><METRIC NAME="STMT" DESCRIBE="Number of statements" VALUE="2.00" MIN="1.00" MAX="50.00" STATUS="1"/><METRIC NAME="V" DESCRIBE="Volume" VALUE="8.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="VG" DESCRIBE="Cyclomatic number " VALUE="1.00" MIN="1.00" MAX="10.00" STATUS="1"/><METRIC NAME="VOCF" DESCRIBE="Vocabulary frequency" VALUE="1.00" MIN="1.00" MAX="4.00" STATUS="1"/><METRIC NAME="n" DESCRIBE="Vocabulary" VALUE="4.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n1" DESCRIBE="Number of distinct operators" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/><METRIC NAME="n2" DESCRIBE="Number of distinct operands" VALUE="2.00" MIN="-oo" MAX="+oo" STATUS="1"/></FUNCTION></FILE>
</ROOT>


 

你可能感兴趣的:(一个典型的GuildLineDataFactory类,以及它所解析的xml)