package gw.rating.worksheet uses gw.pl.persistence.core.Key uses gw.rating.ICostData uses gw.rating.RateFlowLogger uses gw.rating.worksheet.domain.Worksheet uses gw.rating.worksheet.domain.WorksheetEntryContainer uses entity.DiagRatingWorksheetRef @ReadOnly enhancement DiagnosticRatingWorksheetEnhancement : entity.DiagnosticRatingWorksheet { function populateTextData(container : WorksheetEntryContainer, description : String) { var partialWorksheet = new Worksheet() {:Description = description, :WorksheetEntries = container.WorksheetEntries } this.TextData = partialWorksheet.toXml().asUTFString() } function saveStackTrace(t : Throwable) { if (t == null) { this.DiagnosticCapture = "(No stack trace available)" } else { this.DiagnosticCapture = t.StackTraceAsString } } function saveCostKeys(data : ICostData) { data?.eachKey(\ k -> { if (k typeis Key) { addKeyReference(k) } }) } function saveParams(params : Map, paramSet : CalcRoutineParameterSet) { var rfLogger = RateFlowLogger.Logger params.eachKeyAndValue(\ key, value -> { var param = paramSet.Parameters.firstWhere(\ p -> p.Code == key) if (rfLogger.DebugEnabled) { rfLogger.debug("DiagnosticRatingWorkSheet:saveParams(...) [param, key, value] = " + param + ", " + key + ", " + value) } if (param != null) { var ref = new DiagRateflowParamRef(this.Branch, this.EffectiveDate, this.ExpirationDate) this.addToEntityReferences(ref) ref.CalcRoutineParameter = param if (value typeis EffDated) { ref.Reference = value } else { ref.StringValue = value!=null ? value.toString() : null } } }) } function addKeyReference(k : Key) { var ref = new DiagRatingWorksheetRef(this.Branch, this.EffectiveDate, this.ExpirationDate) this.addToEntityReferences(ref) ref.ReferenceFixedKey = k } }