There are some small issues with the ProblemList data type.
If there have been none problems found for an arbitrary metric, a ProblemList instance would be init with an empty list instance. Here we access the 0-index of the list, which, of course, throws an exception. Also, maybe we can think about removing the init exception throwing, because we, anyway, catch it and treat it as a checked exception in the getQualityProblems method. Instead we can return just an empty instance of a list.
It would be nice to implement a list interface for this particular data structure, not to have constructions like problemListInstance.getProblemList.size()which is Demeter violation.
There are some small issues with the ProblemList data type.
problemListInstance.getProblemList.size()
which is Demeter violation.