private List < ScoreWeight > processWidgetScores ( List < Widget > widgets , ScoreCriteriaSettings scoreCriteriaSettings ) { List < ScoreWeight > scoreWeights = new ArrayList <> ( ) ; Map < String , ScoreComponentSettings > scoreParamSettingsMap = generateWidgetSettings ( scoreCriteriaSettings ) ; Set < String > widgetTypes = scoreParamSettingsMap . keySet ( ) ; if ( widgetTypes . isEmpty ( ) ) { return null ; } //For each widget calculate score for ( String widgetType : widgetTypes ) { ScoreComponentSettings scoreSettings = scoreParamSettingsMap . get ( widgetType ) ; WidgetScore widgetScore = getWidgetScoreByType ( widgetType ) ; ScoreWeight score = widgetScore . processWidgetScore ( getWidgetByName ( widgets , widgetType ) , scoreSettings ) ; LOGGER . info ( "Widget for type: " + widgetType + " score" + score ) ; if ( null != score ) { setWidgetAlert ( score , scoreCriteriaSettings . getComponentAlert ( ) ) ; scoreWeights . add ( score ) ; } } return scoreWeights ; }
Process scores for each widget based on widget settings