Package edu.umd.cs.findbugs.ml
Class ConvertToARFF
- java.lang.Object
-
- 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
Nested Classes Modifier and Type Class Description 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
Constructors Constructor Description ConvertToARFF()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)
-
-
-
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 namedocument
- the DocumentappName
- the application nameout
- 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 DocumentappName
- 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 nameout
- 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 DocumentappName
- the application nameout
- 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
-
-