package gw.pcf.rating.rtm uses gw.rating.rtm.util.AvailableAttributePresenter class RateTableArgumentSourceHelper { var _matchOp : RateTableMatchOp as MatchOp var _argSrcSet : RateTableArgumentSourceSet as ArgumentSrcSet var _argSrc : RateTableArgumentSource as ArgumentSource private construct() { } construct(mo : RateTableMatchOp, argSrcSet : RateTableArgumentSourceSet) { // Q: do we REALLY not want to set _matchOp unless argSrcSet != null? // It means if argSrcSet == null, AvailableUsages will be empty and hasMultipleAttributes will be false. if (mo != null and argSrcSet != null) { _matchOp = mo _argSrcSet = argSrcSet _argSrc = argSrcSet.RateTableArgumentSources.firstWhere(\argSrc ->argSrc.Parameter == _matchOp) } } property get AvailableUsages() : List { if (MatchOp == null) { return {} } return MatchOp.getAvailableUsages() } property get ArgumentSourceWrapper() : AvailableAttributePresenter { return ArgumentSource.ArgumentSourceWrapper } property set ArgumentSourceWrapper(availAttrib : AvailableAttributePresenter) { ArgumentSource.ArgumentSourceWrapper = availAttrib } property get hasMultipleAttributes() : boolean { return MatchOp.AvailableAttributes.Count > 1 } }