FindBugs™ 1.3.9

edu.umd.cs.findbugs.ml
Class ConvertToARFF

java.lang.Object
  extended by edu.umd.cs.findbugs.ml.ConvertToARFF

public class ConvertToARFF
extends java.lang.Object

Convert a BugCollection into ARFF format. See Witten and Frank, Data Mining, ISBN 1-55860-552-5.

Author:
David Hovemeyer
See Also:
BugCollection, BugInstance

Nested Class Summary
static class ConvertToARFF.AbstractClassificationAttribute
           
static class ConvertToARFF.AppNameAttribute
           
static interface ConvertToARFF.Attribute
           
static interface ConvertToARFF.AttributeCallback
           
static class ConvertToARFF.BinaryClassificationAttribute
           
static class ConvertToARFF.BooleanAttribute
           
static class ConvertToARFF.ClassificationAttribute
           
static class ConvertToARFF.IdAttribute
          An attribute that just gives each instance a unique id.
static class ConvertToARFF.IdStringAttribute
           
static class ConvertToARFF.NominalAttribute
           
static class ConvertToARFF.NumericAttribute
           
static class ConvertToARFF.PriorityAttribute
           
static class ConvertToARFF.RandomIdAttribute
           
 
Constructor Summary
ConvertToARFF()
           
 
Method Summary
 void addAppNameAttribute()
           
 void addAttribute(ConvertToARFF.Attribute attribute)
           
 void addBooleanAttribute(java.lang.String name, java.lang.String xpath)
           
 void addClassificationAttribute()
           
 void addIdAttribute()
           
 void addNominalAttribute(java.lang.String name, java.lang.String xpath)
           
 void addNumericAttribute(java.lang.String name, java.lang.String xpath)
           
 void addPriorityAttribute()
           
static java.lang.String collectionToRange(java.util.Collection<java.lang.String> collection)
           
 void convert(java.lang.String relationName, org.dom4j.Document document, java.lang.String appName, java.io.Writer out)
          Convert a single Document to ARFF format.
 void dropUnclassifiedWarnings()
           
 void generateHeader(java.lang.String relationName, java.io.Writer out)
          Generate ARFF header.
 void generateInstances(org.dom4j.Document document, java.lang.String appName, java.io.Writer out)
          Generate instances from given Document.
 int getNumAttributes()
           
static void main(java.lang.String[] argv)
           
 void scan(org.dom4j.Document document, java.lang.String appName)
          Scan a Document to find out the ranges of attributes.
 void scanAttributeList(ConvertToARFF.AttributeCallback callback)
          Apply a callback to all Attributes.
 void setAppName(java.lang.String appName)
           
 void setNodeSelectionXpath(java.lang.String nodeSelectionXpath)
          Set the xpath expression used to select BugInstance nodes.
 java.lang.String toAppName(java.lang.String fileName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConvertToARFF

public ConvertToARFF()
Method Detail

collectionToRange

public static java.lang.String collectionToRange(java.util.Collection<java.lang.String> collection)

setAppName

public void setAppName(java.lang.String appName)

setNodeSelectionXpath

public void setNodeSelectionXpath(java.lang.String nodeSelectionXpath)
Set the xpath expression used to select BugInstance nodes.

Parameters:
nodeSelectionXpath - the node selection xpath expression

getNumAttributes

public int getNumAttributes()

dropUnclassifiedWarnings

public void dropUnclassifiedWarnings()

addAttribute

public void addAttribute(ConvertToARFF.Attribute attribute)

addNominalAttribute

public void addNominalAttribute(java.lang.String name,
                                java.lang.String xpath)

addBooleanAttribute

public void addBooleanAttribute(java.lang.String name,
                                java.lang.String xpath)

addClassificationAttribute

public void addClassificationAttribute()

addNumericAttribute

public void addNumericAttribute(java.lang.String name,
                                java.lang.String xpath)

addPriorityAttribute

public void addPriorityAttribute()

addIdAttribute

public void addIdAttribute()

addAppNameAttribute

public void addAppNameAttribute()

convert

public void convert(java.lang.String relationName,
                    org.dom4j.Document document,
                    java.lang.String appName,
                    java.io.Writer out)
             throws java.io.IOException,
                    edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException
Convert a single Document to ARFF format.

Parameters:
relationName - the relation name
document - the Document
appName - the application name
out - Writer to write the ARFF output to
Throws:
java.io.IOException
edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException

scan

public void scan(org.dom4j.Document document,
                 java.lang.String appName)
          throws edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException,
                 java.io.IOException
Scan a Document to find out the ranges of attributes. All Documents must be scanned before generating the ARFF header and instances.

Parameters:
document - the Document
appName - the application name
Throws:
edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException
java.io.IOException

generateHeader

public void generateHeader(java.lang.String relationName,
                           java.io.Writer out)
                    throws edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException,
                           java.io.IOException
Generate ARFF header. Documents must have already been scanned.

Parameters:
relationName - the relation name
out - Writer to write the ARFF output to
Throws:
edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException
java.io.IOException

generateInstances

public void generateInstances(org.dom4j.Document document,
                              java.lang.String appName,
                              java.io.Writer out)
                       throws edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException,
                              java.io.IOException
Generate instances from given Document. Document should already have been scanned, and the ARFF header generated.

Parameters:
document - the Document
appName - the application name
out - Writer to write the ARFF output to
Throws:
edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException
java.io.IOException

scanAttributeList

public void scanAttributeList(ConvertToARFF.AttributeCallback callback)
                       throws edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException,
                              java.io.IOException
Apply a callback to all Attributes.

Parameters:
callback - the callback
Throws:
edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException
java.io.IOException

toAppName

public java.lang.String toAppName(java.lang.String fileName)

main

public static void main(java.lang.String[] argv)
                 throws java.lang.Exception
Throws:
java.lang.Exception

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.