SchematicEdgeData.fromJson constructor

SchematicEdgeData.fromJson(
  1. Map<String, dynamic> json
)

Create a new SchematicEdgeData from JSON data.

Implementation

factory SchematicEdgeData.fromJson(Map<String, dynamic> json) {
  final pointList = <SchematicPoint>[];
  if (json['points'] is List) {
    for (final p in json['points'] as List) {
      if (p is Map<String, dynamic>) {
        pointList.add(SchematicPoint.fromJson(p));
      }
    }
  }

  List<SchematicPoint>? junctionList;
  if (json['junctionPoints'] is List) {
    junctionList = <SchematicPoint>[];
    for (final jp in json['junctionPoints'] as List) {
      if (jp is Map<String, dynamic>) {
        junctionList.add(SchematicPoint.fromJson(jp));
      }
    }
  }

  List<SchematicPoint>? dotsList;
  if (json['dots'] is List) {
    dotsList = <SchematicPoint>[];
    for (final dot in json['dots'] as List) {
      if (dot is Map<String, dynamic>) {
        dotsList.add(SchematicPoint.fromJson(dot));
      }
    }
  }

  return SchematicEdgeData(
    id: json['id']?.toString() ?? '',
    source: json['source']?.toString(),
    sourcePort: json['sourcePort']?.toString(),
    target: json['target']?.toString(),
    targetPort: json['targetPort']?.toString(),
    points: pointList,
    junctionPoints: junctionList,
    dots: dotsList,
    name: json['name']?.toString() ?? '',
    parentId: json['parentId']?.toString(),
    parentName: json['parentName']?.toString() ?? '',
    cssClass: json['cssClass']?.toString() ?? '',
    signalWidth: (json['signalWidth'] as num?)?.toInt() ?? 1,
    scopeHierarchyPath: json['scopeHierarchyPath']?.toString(),
  );
}