@@ -96,7 +96,7 @@ dynamic _handleValue(ng.Value v, ValueMetaData meta, int? timezoneOffset) {
96
96
return v.iVal;
97
97
}
98
98
if (v.fVal != null ) {
99
- meta.type = GdbTypes .float ;
99
+ meta.type = GdbTypes .double ;
100
100
return v.fVal;
101
101
}
102
102
if (v.sVal != null ) {
@@ -207,14 +207,6 @@ _handleList(ng.NList v, ValueMetaData meta, int? timezoneOffset) {
207
207
return values;
208
208
}
209
209
210
- const _needTypeDetail = [
211
- GdbTypes .dataSet,
212
- GdbTypes .node,
213
- GdbTypes .relationship,
214
- GdbTypes .path,
215
- GdbTypes .step,
216
- ];
217
-
218
210
_handleCollection (
219
211
ValueMetaData meta,
220
212
dynamic values,
@@ -230,18 +222,10 @@ _handleCollection(
230
222
..name = ''
231
223
..type = GdbTypes .unknown;
232
224
var value = _handle (v, valueMeta, timezoneOffset);
233
- // TODO 补全path属性
234
- if (_needTypeDetail.contains (valueMeta.type) && list != null ) {
235
- for (var element in valueMeta.submetas) {
236
- var c = valueMeta.submetas.indexOf (element);
237
- var valueIdx = meta.addSubmeta (element);
238
- if (list.length <= valueIdx) {
239
- list.length = valueIdx + 1 ;
240
- list[valueIdx] = value[c];
241
- }
242
- }
243
- } else {
244
- list? .add (value);
225
+ var valueIdx = meta.addSubmeta (valueMeta);
226
+ if (list != null && list.length <= valueIdx) {
227
+ list.length = valueIdx + 1 ;
228
+ list[valueIdx] = value;
245
229
}
246
230
set ? .add (value);
247
231
}
@@ -260,18 +244,23 @@ _handlePath(ng.Path v, ValueMetaData meta, int? timezoneOffset) {
260
244
meta.type = GdbTypes .path;
261
245
var path = < dynamic > [];
262
246
263
- ValueMetaData startNode = ValueMetaData ()..name = r' startNode$' ;
247
+ ValueMetaData startNode = ValueMetaData ()..name = MetaKey . startNode;
264
248
if (v.src != null ) {
265
249
var value = _handleNode (v.src! , startNode, timezoneOffset);
266
250
_extendListBasic (meta, startNode, path, value);
267
251
}
268
252
269
253
if (v.steps != null ) {
270
254
ValueMetaData stepMeta = ValueMetaData ()
271
- ..name = r' steps$'
255
+ ..name = MetaKey . steps
272
256
..type = GdbTypes .list;
273
257
var steps = < dynamic > [];
274
258
_handleCollection (stepMeta, v.steps, timezoneOffset, list: steps);
259
+ var stepsIdx = meta.addSubmeta (stepMeta);
260
+ if (path.length <= stepsIdx) {
261
+ path.length = stepsIdx + 1 ;
262
+ path[stepsIdx] = steps;
263
+ }
275
264
}
276
265
277
266
return path;
@@ -281,31 +270,33 @@ List<dynamic> _handleRelationship(
281
270
ng.Edge v, ValueMetaData meta, int ? timezoneOffset) {
282
271
meta.type = GdbTypes .relationship;
283
272
var edgeData = [];
284
- ValueMetaData startNodeId = ValueMetaData ()..name = r'startNodeId$' ;
273
+ ValueMetaData startNodeId = ValueMetaData ()..name = MetaKey .startId ;
285
274
_extendList (meta, startNodeId, edgeData, v.src, timezoneOffset);
286
275
287
276
ValueMetaData idMeta = ValueMetaData ()
288
- ..name = r'id$'
277
+ ..name = MetaKey .relationshipId
289
278
..type = GdbTypes .int ;
290
279
_extendListBasic (meta, idMeta, edgeData, v.ranking);
291
280
292
- ValueMetaData endNodeId = ValueMetaData ()..name = r'endNodeId$' ;
281
+ ValueMetaData endNodeId = ValueMetaData ()..name = MetaKey .endId ;
293
282
_extendList (meta, endNodeId, edgeData, v.dst, timezoneOffset);
294
283
295
284
ValueMetaData edgeMeta = ValueMetaData ()
296
285
..name = utf8.decode (v.name ?? [])
297
- ..type = GdbTypes .relationship ;
286
+ ..type = GdbTypes .prop ;
298
287
List <dynamic > edgeProp = [];
299
288
300
289
_handleProps (v.props, edgeMeta, edgeProp, timezoneOffset);
290
+ meta.addSubmeta (edgeMeta);
291
+ edgeData.add (edgeProp);
301
292
return edgeData;
302
293
}
303
294
304
295
List <dynamic > _handleNode (
305
296
ng.Vertex v, ValueMetaData meta, int ? timezoneOffset) {
306
297
meta.type = GdbTypes .node;
307
298
ValueMetaData idMeta = ValueMetaData ();
308
- idMeta.name = r'id$' ;
299
+ idMeta.name = MetaKey .nodeId ;
309
300
var nodeData = [];
310
301
311
302
_extendList (meta, idMeta, nodeData, v.vid! , timezoneOffset);
0 commit comments