def validate(IterMode, StepVal, ValueType, ValueList,
             BreakOnFail, MinVal, MaxVal, PrevIterVerdict):
    plLogger = PLLogger.GetLogger('methodology')
    plLogger.LogInfo(" Validate ObjectIteratorCommand")

    # Call base class for validation
    res = base.validate(BreakOnFail, MinVal, MaxVal, PrevIterVerdict)
    if res is not "":
        return res

    if ValueType == "LIST":
        if len(ValueList) < 1:
            return "ERROR: ValueType is LIST so ValueList must contain elements"
    elif ValueType == "RANGE":
        if StepVal == 0:
            if MinVal != MaxVal:
                return "ERROR: MinVal and MaxVal must be the same if StepVal is 0."
        if MinVal > MaxVal:
            return "ERROR: MinVal must be less than (or equal to) MaxVal."
    return ''
def validate(BreakOnFail, MinVal, MaxVal, PrevIterVerdict,
             Resolution, ResolutionMode, RoundingResolution):

    plLogger = PLLogger.GetLogger('methodology')
    plLogger.LogInfo(" Validate RateIteratorCommand")

    if MinVal > MaxVal:
        return "ERROR: MinVal must be less than or equal to MaxVal."

    # Call base class for validation
    res = base.validate(BreakOnFail, MinVal, MaxVal, PrevIterVerdict)
    if res is not "":
        return res

    # Check Rounding Resolution
    res = validate_rounding(MinVal, MaxVal, Resolution,
                            ResolutionMode, RoundingResolution)
    if res is not "":
        return res

    return ""