public class DOEDataLogger
extends java.lang.Object
implements java.beans.PropertyChangeListener
To use, whenever the factor settings change, be sure to call
setFactors(Object...)
with a complete list of the factor values.
Also, after all runs are complete, call close()
to close and
write the output file.
Modifier and Type | Field and Description |
---|---|
private java.io.BufferedWriter |
bufferedWriter |
private java.lang.String |
delimiter |
private java.lang.Object[] |
factors |
private java.lang.String |
factorString |
private java.lang.String[] |
header |
private static java.util.logging.Logger |
LOGGER |
private java.lang.String |
propertyName |
Constructor and Description |
---|
DOEDataLogger()
Zero parameter constructor - user must explicitly call setters plus
buildFactorString() and writeHeader()
|
DOEDataLogger(java.lang.String propertyName,
java.io.File outputFile,
java.lang.String[] header)
Uses default delimiter ","
|
DOEDataLogger(java.lang.String propertyName,
java.io.File outputFile,
java.lang.String[] header,
java.lang.Object... factors) |
DOEDataLogger(java.lang.String propertyName,
java.io.File outputFile,
java.lang.String[] header,
java.lang.String delimiter) |
DOEDataLogger(java.lang.String propertyName,
java.io.File outputFile,
java.lang.String[] header,
java.lang.String delimiter,
java.lang.Object... factors) |
DOEDataLogger(java.lang.String propertyName,
java.lang.String outputFileName,
java.lang.String[] header,
java.lang.Object... factors)
Default delimiter ","
|
Modifier and Type | Method and Description |
---|---|
protected void |
buildFactorString()
Builds the factorString from the factors object
|
void |
close()
flush and close bufferedWriter
|
java.lang.String |
getDelimiter() |
java.lang.Object[] |
getFactors() |
java.lang.String |
getFactorString() |
java.lang.String[] |
getHeader() |
java.lang.String |
getPropertyName() |
void |
propertyChange(java.beans.PropertyChangeEvent evt)
If evt has right propertyName, append a line to the output, consisting of
the factors followed by the newValue, separated by the delimiter.
|
void |
setDelimiter(java.lang.String delimiter) |
void |
setFactors(java.lang.Object... factors) |
void |
setHeader(java.lang.String... header) |
void |
setOutputFile(java.io.File outputFile) |
void |
setPropertyName(java.lang.String propertyName) |
protected void |
writeHeader()
Writes the first row with the factor names and the property name to the
output file
|
private static final java.util.logging.Logger LOGGER
private java.io.BufferedWriter bufferedWriter
private java.lang.String delimiter
private java.lang.Object[] factors
private java.lang.String propertyName
private java.lang.String[] header
private java.lang.String factorString
public DOEDataLogger(java.lang.String propertyName, java.io.File outputFile, java.lang.String[] header, java.lang.String delimiter, java.lang.Object... factors) throws java.io.IOException
propertyName
- Name of property to listen foroutputFile
- File to which output is writtenheader
- First row names of parameters; must be same length as
factorsdelimiter
- Delimiter - default is ","factors
- Values of factors corresponding to the heard property
valuesjava.io.IOException
- if thrown when writing to outputFilejava.lang.IllegalArgumentException
- if header.length ≠ factors.lengthpublic DOEDataLogger()
public DOEDataLogger(java.lang.String propertyName, java.lang.String outputFileName, java.lang.String[] header, java.lang.Object... factors) throws java.io.IOException
propertyName
- Name of property to listen foroutputFileName
- name of File to which output is writtenheader
- First row names of parameters; must be same length as
factorsfactors
- Values of factors corresponding to the heard property
valuesjava.io.IOException
- If thrown when writing to File given by
outputFileNamejava.lang.IllegalArgumentException
- if header.length ≠ factors.lengthpublic DOEDataLogger(java.lang.String propertyName, java.io.File outputFile, java.lang.String[] header, java.lang.Object... factors) throws java.io.IOException
propertyName
- Name of property to listen foroutputFile
- File to which output is writtenheader
- First row names of parameters; must be same length as
factorsfactors
- Values of factors corresponding to the heard property
valuesjava.io.IOException
- if thrown when writing to outputFilejava.lang.IllegalArgumentException
- if header.length ≠ factors.lengthpublic DOEDataLogger(java.lang.String propertyName, java.io.File outputFile, java.lang.String[] header, java.lang.String delimiter)
propertyName
- Given property nameoutputFile
- Given output fileheader
- Given header arraydelimiter
- Given delimiterpublic DOEDataLogger(java.lang.String propertyName, java.io.File outputFile, java.lang.String[] header)
propertyName
- Given property nameoutputFile
- Given output fileheader
- Given headerpublic void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange
in interface java.beans.PropertyChangeListener
evt
- Heard PropertyChangeEventprotected void buildFactorString()
protected void writeHeader()
public java.lang.String getDelimiter()
public java.lang.Object[] getFactors()
public void setFactors(java.lang.Object... factors)
factors
- the factors to setjava.lang.IllegalArgumentException
- if # factors ≠ header.lengthpublic java.lang.String getPropertyName()
public void close()
public java.lang.String[] getHeader()
public void setHeader(java.lang.String... header)
header
- the header to setjava.lang.RuntimeException
- if header has already been setpublic void setDelimiter(java.lang.String delimiter)
delimiter
- the delimiter to setpublic void setPropertyName(java.lang.String propertyName)
propertyName
- the propertyName to setpublic void setOutputFile(java.io.File outputFile) throws java.io.IOException
outputFile
- Given output filejava.io.IOException
- if thrown by bufferedWriterpublic java.lang.String getFactorString()