Search in sources :

Example 1 with InputSource

use of com.baidu.hugegraph.loader.source.InputSource in project incubator-hugegraph-toolchain by apache.

the class MappingUtil method parseV1.

private static LoadMapping parseV1(String json) {
    GraphStructV1 graphStruct = JsonUtil.fromJson(json, GraphStructV1.class);
    Map<FileSourceKey, InputStruct> fileSourceInputStructs = InsertionOrderUtil.newMap();
    List<InputStruct> jdbcSourceInputStructs = new ArrayList<>();
    for (ElementStructV1 originStruct : graphStruct.structs()) {
        InputSource inputSource = originStruct.input();
        ElementMapping targetStruct = convertV1ToV2(originStruct);
        SourceType type = inputSource.type();
        if (type == SourceType.FILE || type == SourceType.HDFS) {
            FileSource source = (FileSource) inputSource;
            FileSourceKey key = new FileSourceKey(type, source.path());
            fileSourceInputStructs.compute(key, (k, inputStruct) -> {
                if (inputStruct == null) {
                    inputStruct = new InputStruct(null, null);
                    inputStruct.input(source);
                }
                inputStruct.add(targetStruct);
                return inputStruct;
            });
        } else {
            assert type == SourceType.JDBC;
            InputStruct inputStruct = new InputStruct(null, null);
            inputStruct.input(inputSource);
            inputStruct.add(targetStruct);
            jdbcSourceInputStructs.add(inputStruct);
        }
    }
    // Generate id for every input mapping
    List<InputStruct> inputStructs = new ArrayList<>();
    int id = 0;
    for (InputStruct inputStruct : fileSourceInputStructs.values()) {
        inputStruct.id(String.valueOf(++id));
        inputStructs.add(inputStruct);
    }
    for (InputStruct inputStruct : jdbcSourceInputStructs) {
        inputStruct.id(String.valueOf(++id));
        inputStructs.add(inputStruct);
    }
    return new LoadMapping(inputStructs);
}
Also used : ElementMapping(com.baidu.hugegraph.loader.mapping.ElementMapping) InputSource(com.baidu.hugegraph.loader.source.InputSource) SourceType(com.baidu.hugegraph.loader.source.SourceType) FileSource(com.baidu.hugegraph.loader.source.file.FileSource) ArrayList(java.util.ArrayList) LoadMapping(com.baidu.hugegraph.loader.mapping.LoadMapping) InputStruct(com.baidu.hugegraph.loader.mapping.InputStruct) GraphStructV1(com.baidu.hugegraph.loader.struct.GraphStructV1) ElementStructV1(com.baidu.hugegraph.loader.struct.ElementStructV1)

Example 2 with InputSource

use of com.baidu.hugegraph.loader.source.InputSource in project incubator-hugegraph-toolchain by apache.

the class ElementBuilder method convertPropertyValue.

private Object convertPropertyValue(String key, Object rawValue) {
    PropertyKey propertyKey = this.getPropertyKey(key);
    InputSource inputSource = this.struct.input();
    return DataTypeUtil.convert(rawValue, propertyKey, inputSource);
}
Also used : InputSource(com.baidu.hugegraph.loader.source.InputSource) PropertyKey(com.baidu.hugegraph.structure.schema.PropertyKey)

Aggregations

InputSource (com.baidu.hugegraph.loader.source.InputSource)2 ElementMapping (com.baidu.hugegraph.loader.mapping.ElementMapping)1 InputStruct (com.baidu.hugegraph.loader.mapping.InputStruct)1 LoadMapping (com.baidu.hugegraph.loader.mapping.LoadMapping)1 SourceType (com.baidu.hugegraph.loader.source.SourceType)1 FileSource (com.baidu.hugegraph.loader.source.file.FileSource)1 ElementStructV1 (com.baidu.hugegraph.loader.struct.ElementStructV1)1 GraphStructV1 (com.baidu.hugegraph.loader.struct.GraphStructV1)1 PropertyKey (com.baidu.hugegraph.structure.schema.PropertyKey)1 ArrayList (java.util.ArrayList)1