getClassDetailInfo method

void getClassDetailInfo(
  1. String classId,
  2. dynamic completion(
    1. ClsModel?
    )
)

Implementation

void getClassDetailInfo(
    String classId, Function(ClsModel?) completion) async {
  Class cls = await serviceWrapper.getObject(classId) as Class;
  ClsModel? _clsModel;
  if (cls.fields != null && cls.fields!.isNotEmpty) {
    List<Property> properties = [];
    List<String> functions = [];
    cls.fields?.forEach((fieldRef) {
      Property _property = Property(fieldRef.isConst, fieldRef.isStatic,
          fieldRef.isFinal, fieldRef.declaredType!.name, fieldRef.name);
      properties.add(_property);
    });
    for (var fucRef in cls.functions!) {
      String? code;
      Obj func = await serviceWrapper.getObject(fucRef.id!);
      if (func is Func) {
        code = func.code!.name;
        if (func.code!.name!.contains("[Stub]")) {
          continue;
        }
        code = code!.replaceAll('[Unoptimized] ', '');
        code = code.replaceAll('[Optimized] ', '');
        functions.add(code);
      }
    }
    _clsModel = ClsModel(propeties: properties, functions: functions);
  }
  completion(_clsModel);
}