visitConstructorElement method

  1. @override
void visitConstructorElement(
  1. ConstructorElement element
)
override

This is an overrided method that help to visit each constructor to read its parameters

Implementation

@override
void visitConstructorElement(ConstructorElement element) {
  className = element.type.returnType;
  uri = element.source.uri.toString();
  try {
    meta =
        element.metadata.first.computeConstantValue.call()?.type.toString();
  } catch (e) {
    ;
  }

  metaData = element.metadata
      .map((e) => MapEntry(e.computeConstantValue()?.toStringValue(),
          e.computeConstantValue()?.type))
      .toList();
  element.parameters.forEach((param) {
    var constructor = (constructors[element.displayName] ?? {});
    constructors[element.displayName] = constructor;
    constructors['${param.hashCode}'] = {
      'declaration': {
        'isNamed': param.isNamed,
        'type': param.declaration.type.toString() + '\n',
        'name': param.declaration.name + '\n',
        'kind.name': param.declaration.kind.name + '\n',
        'hasDefaultValue': '${param.declaration.hasDefaultValue}\n',
        'isOptional': '${param.declaration.isOptional}\n',
        'defaultValue': '${param.declaration.defaultValueCode}\n'
      },
      'hasParams':
          param.typeParameters.map((e) => e.runtimeType).toList().toString() +
              '\n',
      'meta': param.metadata
              .map((e) => e.element?.displayName)
              .toList()
              .toString() +
          '\n'
    };
  });
}