if (c == Boolean.class) {
data[i] = new BooleanData(name, (Boolean) o);
} else if (c == Integer.class) {
data[i] = new IntData(name, (Integer) o);
} else if (c == Long.class) {
data[i] = new LongData(name, (Long) o);
} else if (c == String.class) {
data[i] = new StringData(name, (String) o);
} else {
// HARDCODE
throw new DataTypeException("Only boolean, integer, long and string are allowed for keyword");