package gw.rating.rtm.validation uses java.lang.Comparable uses gw.rating.rtm.util.MatchOpValidationRange uses gw.api.system.PCLoggerCategory uses java.util.List abstract class RangeMatchOpValidator extends MatchOpValidator{ construct() { } override function validate(values : List>) : boolean { var a = values.first() if(a === null) { return true } var b = values.last() if(b === null) { return true } if (PCLoggerCategory.RTM.DebugEnabled) { PCLoggerCategory.RTM.debug("Comparing range limits in validate: " + a + " verses: " + b) PCLoggerCategory.RTM.debug("Will return: " + doCompareRangeLimits(a, b)) } return doCompareRangeLimits(a, b) } override function validatePair(first : List, second : List) : boolean { var range1 = new MatchOpValidationRange(this, first.first(), first.last()) var range2 = new MatchOpValidationRange(this, second.first(), second.last()) return !range1.overlapsWith(range2) } abstract function doCompareRangeLimits(min : Comparable, max : Comparable) : boolean abstract function doCompare(firstMax : Comparable, secondMin : Comparable) : boolean }