findClassesWithPublicNoArgConstructor static method

List<ClassElement> findClassesWithPublicNoArgConstructor(
  1. List<ClassElement> classes
)

Finds all classes that have a public, no-argument constructor from a list of classes. Returns a list of ClassElements that meet the criteria.

Implementation

static List<ClassElement> findClassesWithPublicNoArgConstructor(final List<ClassElement> classes) {
  List<ClassElement> resultClasses = [];
  for (final aClass in classes) {
    //Check the class for a public no-argument constructor:
    if (aClass.constructors.isEmpty || !aClass.constructors.any((c) => c.isPublic && c.parameters.isEmpty)) {
      print(ColorfulText.paint("Annotated class ${aClass.name} ignored. It does not have a public no-argument constructor.", ColorfulText.red));
    }
    else {
      resultClasses.add(aClass);
    }
  }
  return resultClasses;
}