package gw.rating.rtm.domain uses gw.rating.rtm.domain.table.RateTableModel uses java.lang.Exception uses gw.api.system.PCLoggerCategory class DatabasePopulator implements RateTablePopulator { override function populate(model : RateTableModel, errorCollector : ErrorCollector) : RateTableModel { return model } override function refresh(model : RateTableModel) { model.resetFactorRows() doPopulate(model) } override function startInEditMode() : boolean { return false } private function doPopulate(model : RateTableModel) : RateTableModel { try { var rows = model.RateTable.Factors if (rows.Empty) { model.RateTable.NewRowsFromBundle.each(\ r -> { model.addFactorRow(r) }) } else { // can't do this because it tries to do bundle transfers addToModel(model, rows) } model.sortFactorRows() } catch (ex : Exception) { PCLoggerCategory.RATING.error("Failed to read factors for table ${model.RateTable}", ex) throw "Failed to read factors for table ${model.RateTable}" } return model } private function addToModel(model : RateTableModel, rows : List) { var bundle = model.RateTable.Bundle rows.each(\ row -> { var r = bundle.add(row) model.addFactorRow(r) }) } }