in src/main/java/software/amazon/neptune/csv2rdf/NeptuneCsvInputParser.java [308:351]
private static NeptunePropertyGraphVertex create(NeptuneCsvVertexHeader header, CSVRecord record) {
String id = header.getId() == null ? null : getValueIfExists(record, header.getId());
NeptunePropertyGraphVertex vertex = new NeptunePropertyGraphVertex(id);
for (NeptuneCsvUserDefinedColumn userDefinedType : header.getUserDefinedTypes()) {
String fieldValue = getValueIfExists(record, userDefinedType.getIndex());
if (fieldValue == null || fieldValue.isEmpty()) {
continue;
}
switch (userDefinedType.getCardinality()) {
case SINGLE:
vertex.add(new NeptuneCsvSingleValuedUserDefinedProperty(userDefinedType.getName(),
userDefinedType.getDataType(), fieldValue));
break;
case SET:
case DEFAULT:
if (userDefinedType.isArray()) {
vertex.add(new NeptuneCsvUserDefinedArrayProperty(userDefinedType.getName(),
userDefinedType.getDataType(), fieldValue));
} else {
vertex.add(new NeptuneCsvSetValuedUserDefinedProperty(userDefinedType.getName(),
userDefinedType.getDataType(), fieldValue));
}
break;
default:
break;
}
}
String labels = header.getLabel() == null ? null : getValueIfExists(record, header.getLabel());
if (labels == null) {
return vertex;
}
for (String labelValue : labels.split(NeptuneCsvUserDefinedColumn.ARRAY_VALUE_SEPARATOR)) {
if (labelValue != null && !labelValue.isEmpty()) {
vertex.add(labelValue);
}
}
return vertex;
}