Search in sources :

Example 1 with Types

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());
}
Also used : Types(apoc.meta.Meta.Types) Util(apoc.util.Util)

Aggregations

Types (apoc.meta.Meta.Types)1 Util (apoc.util.Util)1