package gw.web.rating uses java.lang.Integer uses java.util.List /** * A lightweight container of a CalcRoutineDefinition's fields which determine its uniqueness * including: * Code, * Version, * any branching fields, e.g. Jurisdiction */ class CalcRoutineCodeAndVersion { var _code: String as Code var _version: Integer as Version var _branchValues : List as BranchValues construct(calcRoutine : CalcRoutineDefinition) { _code = calcRoutine.Code _version = calcRoutine.Version _branchValues = calcRoutine.BranchingFieldValues } function isMatch(calcRoutine : CalcRoutineDefinition) : boolean { return calcRoutine.Version == _version and isMatchIgnoreVersion(calcRoutine) } function isMatchIgnoreVersion(calcRoutine : CalcRoutineDefinition) : boolean { if (calcRoutine.Code != _code) { return false } var ind = 0 for (field in CalcRoutineDefinition.BranchingFields) { if (calcRoutine.getFieldValue(field) != _branchValues.get(ind)) { return false } ind = ind + 1 } return true } }