foss-vuln-tracker/molerat/src/main/java/it/unitn/molerat/data/csv/AbstractDataPoint.java

68 lines
1.8 KiB
Java
Raw Normal View History

2017-08-24 15:37:25 +00:00
package it.unitn.molerat.data.csv;
import java.lang.reflect.Field;
public abstract class AbstractDataPoint {
public AbstractDataPoint(String[] entries) throws Exception {
Field[] fields = this.getClass().getFields();
if (entries.length != fields.length) {
throw new Exception("Bad entries for initializing a molerat.data point!");
}
int i = 0;
for (Field field : fields) {
if (!field.getName().equals("this$0")) {
try {
field.set(this, entries[i++]);
} catch (IllegalArgumentException e) {
System.out.println("ERROR: " + e.getMessage());
} catch (IllegalAccessException e) {
System.out.println("ERROR: " + e.getMessage());
}
}
}
}
public AbstractDataPoint(String str) throws Exception {
this(str.replace(" ", "").split(","));
}
public AbstractDataPoint() {
}
@Override
public final String toString() {
StringBuilder builder = new StringBuilder();
Field[] fields = this.getClass().getFields();
for (Field field : fields) {
if (!field.getName().equals("this$0")) {
try {
builder.append(field.get(this) + ",");
} catch (IllegalArgumentException e) {
System.out.println("ERROR: " + e.getMessage());
} catch (IllegalAccessException e) {
System.out.println("ERROR: " + e.getMessage());
}
}
}
builder.deleteCharAt(builder.length()-1);
return builder.toString();
}
public final String getHeader() {
StringBuilder builder = new StringBuilder();
Field[] fields = this.getClass().getFields();
for (Field field : fields) {
if (!field.getName().equals("this$0")) {
try {
builder.append(field.getName() + ",");
} catch (IllegalArgumentException e) {
System.out.println("ERROR: " + e.getMessage());
}
}
}
builder.deleteCharAt(builder.length()-1);
return builder.toString();
}
}