package importexport.exporting;
import importexport.util.CSVFileInfo;
import importexport.util.FileInfo;
import java.io.BufferedWriter;
import java.io.IOException;
import controller.Feature;
import db.DatabaseAccessException;
/**
* Injects the header of a .arff-file which should be build.
*/
public class ArffFileInfoInjector extends CSVFileInfoInjector {
/**
* {@inheritDoc}
*/
@Override
public void injectFileInfo(final BufferedWriter bw, final FileInfo fInfo, final Feature[] features)
throws IOException, DatabaseAccessException {
if (fInfo instanceof CSVFileInfo) {
CSVFileInfo info = (CSVFileInfo) fInfo;
bw.write(("@relation " + info.getName()));
bw.newLine();
bw.newLine();
int normalFeatNr = 0;
for (Feature f : features) {
if (!f.isOutlier()) {
++normalFeatNr;
}
}
/* Starts with i = 1, because feeture[0] is
* effective outlierness of current object.
*/
for (int i = 1; i < normalFeatNr; ++i) {
bw.append(("@attribute " + features[i]));
bw.newLine();
}
bw.append("@attribute class {0, 1}");
bw.newLine();
bw.newLine();
bw.append("@data");
bw.newLine();
bw.flush();
}
}
}