use of apoc.meta.Meta.Types in project neo4j-apoc-procedures by neo4j-contrib.
the class Convert method convertToList.
@SuppressWarnings("unchecked")
private <T> List<T> convertToList(Object list, Class<T> type) {
List<Object> convertedList = convertToList(list);
if (convertedList == null) {
return null;
}
Stream<T> stream = null;
Types varType = Types.of(type);
switch(varType) {
case INTEGER:
stream = (Stream<T>) convertedList.stream().map(Util::toLong);
break;
case FLOAT:
stream = (Stream<T>) convertedList.stream().map(Util::toDouble);
break;
case STRING:
stream = (Stream<T>) convertedList.stream().map(this::toString);
break;
case BOOLEAN:
stream = (Stream<T>) convertedList.stream().map(this::toBoolean);
break;
case NODE:
stream = (Stream<T>) convertedList.stream().map(this::toNode);
break;
case RELATIONSHIP:
stream = (Stream<T>) convertedList.stream().map(this::toRelationship);
break;
default:
throw new RuntimeException("Supported types are: Integer, Float, String, Boolean, Node, Relationship");
}
return stream.collect(Collectors.toList());
}