Package edu.umd.cs.findbugs.ml
Class ConvertToARFF
- java.lang.Object
-
- edu.umd.cs.findbugs.ml.ConvertToARFF
-
public class ConvertToARFF extends java.lang.ObjectConvert 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 classConvertToARFF.AbstractClassificationAttributestatic classConvertToARFF.AppNameAttributestatic interfaceConvertToARFF.Attributestatic interfaceConvertToARFF.AttributeCallbackstatic classConvertToARFF.BinaryClassificationAttributestatic classConvertToARFF.BooleanAttributestatic classConvertToARFF.ClassificationAttributestatic classConvertToARFF.IdAttributeAn attribute that just gives each instance a unique id.static classConvertToARFF.IdStringAttributestatic classConvertToARFF.NominalAttributestatic classConvertToARFF.NumericAttributestatic classConvertToARFF.PriorityAttributestatic classConvertToARFF.RandomIdAttribute
-
Constructor Summary
Constructors Constructor Description ConvertToARFF()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAppNameAttribute()voidaddAttribute(ConvertToARFF.Attribute attribute)voidaddBooleanAttribute(java.lang.String name, java.lang.String xpath)voidaddClassificationAttribute()voidaddIdAttribute()voidaddNominalAttribute(java.lang.String name, java.lang.String xpath)voidaddNumericAttribute(java.lang.String name, java.lang.String xpath)voidaddPriorityAttribute()static java.lang.StringcollectionToRange(java.util.Collection<java.lang.String> collection)voidconvert(java.lang.String relationName, org.dom4j.Document document, java.lang.String appName, java.io.Writer out)Convert a single Document to ARFF format.voiddropUnclassifiedWarnings()voidgenerateHeader(java.lang.String relationName, java.io.Writer out)Generate ARFF header.voidgenerateInstances(org.dom4j.Document document, java.lang.String appName, java.io.Writer out)Generate instances from given Document.intgetNumAttributes()static voidmain(java.lang.String[] argv)voidscan(org.dom4j.Document document, java.lang.String appName)Scan a Document to find out the ranges of attributes.voidscanAttributeList(ConvertToARFF.AttributeCallback callback)Apply a callback to all Attributes.voidsetAppName(java.lang.String appName)voidsetNodeSelectionXpath(java.lang.String nodeSelectionXpath)Set the xpath expression used to select BugInstance nodes.java.lang.StringtoAppName(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.MissingNodeExceptionConvert 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.IOExceptionedu.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.IOExceptionScan 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.MissingNodeExceptionjava.io.IOException
-
generateHeader
public void generateHeader(java.lang.String relationName, java.io.Writer out) throws edu.umd.cs.findbugs.ml.ConvertToARFF.MissingNodeException, java.io.IOExceptionGenerate 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.MissingNodeExceptionjava.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.IOExceptionGenerate 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.MissingNodeExceptionjava.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.MissingNodeExceptionjava.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
-
-