toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  // TODO: implement toString
  String tosend = '<svg';

  for(String key in attributes.keys){
    tosend += ' $key="${attributes[key]}"';
  }
  if(style.isNotEmpty){
    tosend += ' style=';
    for(String key in style.keys){
      tosend += '"$key: ${style[key]};"';
    }
  }
  tosend += '>';

  if(styleNodes.isNotEmpty){
    tosend += '<style type="text/css">.st{stroke:#33333;stroke-width:1;}';
    for(int i = 0; i < styleNodes.length; i++){
      tosend += '.st$i{';
      for(String key in styleNodes[i].keys){
        if(styleNodes[i][key] != 'null'){
          tosend += '${styleNodes[i][key]}';
        }
      }
      tosend += '}';
    }
    tosend += '</style>';
  }
  if(childNodes.isNotEmpty){
    for(int i = 0; i < childNodes.length;i++){
      tosend += '<path';
      for(String key in childNodes[i].keys){
        String? data = childNodes[i][key];
        if(edgeOnly){
          data = SvgEdgeFinder().reduce(childNodes[i][key]!);
        }
        tosend += ' $key="$data"';
      }
      tosend += ' class="st$i st"></path>';
    }
  }

  tosend += '</svg>';

  return tosend;
}