6 package com.vesoft.nebula.client.storage.processor;
8 import com.google.common.collect.Maps;
9 import com.vesoft.nebula.DataSet;
10 import com.vesoft.nebula.Row;
11 import com.vesoft.nebula.Value;
12 import com.vesoft.nebula.client.graph.data.ValueWrapper;
13 import com.vesoft.nebula.client.storage.data.EdgeRow;
14 import com.vesoft.nebula.client.storage.data.EdgeTableRow;
15 import java.util.ArrayList;
16 import java.util.List;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
22 private static final Logger LOGGER = LoggerFactory.getLogger(
EdgeProcessor.class);
24 public static List<EdgeRow> constructEdgeRow(List<DataSet> dataSets, String decodeType) {
25 List<EdgeRow> edgeRows =
new ArrayList<>();
26 for (DataSet dataSet : dataSets) {
27 List<Row> rows = dataSet.getRows();
28 List<byte[]> colNames = dataSet.getColumn_names();
29 for (Row row : rows) {
30 List<Value> values = row.getValues();
31 if (values.size() < 3) {
32 LOGGER.error(
"values size error for row: " + row.toString());
37 Map<String, ValueWrapper> props = Maps.newHashMap();
38 for (
int i = 0; i < values.size(); i++) {
39 String colName =
new String(colNames.get(i));
40 if (!colName.contains(
".")) {
43 if (
"_src".equals(colName.split(
"\\.")[1])) {
44 srcId = values.get(i);
45 }
else if (
"_dst".equals(colName.split(
"\\.")[1])) {
46 dstId = values.get(i);
47 }
else if (
"_rank".equals(colName.split(
"\\.")[1])) {
50 props.put(colName.split(
"\\.")[1],
55 new ValueWrapper(dstId, decodeType), rank.getIVal(), props);
56 edgeRows.add(edgeRow);
63 public static List<EdgeTableRow> constructEdgeTableRow(List<DataSet> dataSets,
65 List<EdgeTableRow> edgeRows =
new ArrayList<>();
66 for (DataSet dataSet : dataSets) {
67 List<Row> rows = dataSet.getRows();
68 for (Row row : rows) {
69 List<Value> values = row.getValues();
70 List<ValueWrapper> props =
new ArrayList<>();
71 for (
int i = 0; i < values.size(); i++) {