getInformation method

Map? getInformation()

Implementation

Map? getInformation() {
  const PythonTypeMap = {
    'String': 'str',
    'int': 'int',
    'DateTime': 'datetime'
  };
  var instance_mirror = reflect(library);
  var class_mirror = instance_mirror.type;
  // instance_mirror.invoke(memberName, positionalArguments)
   library_information = {
    '__intro__': {'doc': 'Library documentation'},
  } ;
  for (var v in class_mirror.declarations.values) {
    if (v is MethodMirror) {
      var props = {
        'args': [],
        'types': [],
        'doc': '',
      };
      var args = [];
      var types = [];
      var name = MirrorSystem.getName(v.simpleName);
      for (var p in v.parameters) {
        var name = MirrorSystem.getName(p.simpleName);
        var type = MirrorSystem.getName(p.type.simpleName);
        args.add(name);
        types.add(PythonTypeMap[type]);
      }
      props['args'] = args;
      props['types'] = types;
      if(library_information != null) {
        library_information![name] = props;
      }
    }
  }
  print('returned library info $library_information');
  return library_information;
}