import com.workbrain2.compliance.publ.api.RuleLogicScriptable
import com.workbrain2.compliance.publ.api.domain.FullComplianceGroupRuleParameterValuePubl
import com.workbrain2.compliance.publ.api.domain.FullComplianceViolationPubl
import com.workbrain2.compliance.publ.api.domain.ParameterValidationResultPubl
import com.workbrain2.compliance.publ.api.domain.ParameterValuePubl
import com.workbrain2.compliance.publ.api.domain.RuleExecutionContextPubl
import com.workbrain2.compliance.publ.api.domain.UserMessagePubl
import com.workbrain2.compliance.publ.api.domain.ValidationContextPubl
import com.workbrain2.platform.publ.api.domain.SimpleTimePeriodPubl
import static com.workbrain2.platform.publ.api.DebugPrint.*
class RuleLogicSample extends RuleLogicScriptable {
@Override
public int countParameters() {
return 0
}
@Override
public SimpleTimePeriodPubl calculateRequiredDataRange(List<FullComplianceGroupRuleParameterValuePubl> params, ValidationContextPubl context) {
return context.getValidationPeriod()
}
@Override
public String getCustomDefaultViolationMessage() {
return ""
}
@Override
public ParameterValidationResultPubl validateRuleParameters(List<ParameterValuePubl> paramValues) {
return null // no extra validation required
}
@Override
public List<UserMessagePubl> getDefaultRuleParameterValidationMessages(){
return new ArrayList<UserMessagePubl>()
}
@Override
public List<FullComplianceViolationPubl> validateCompliance(RuleExecutionContextPubl context){
debugprint("Custom compliance validation")
return new ArrayList<FullComplianceViolationPubl>()
}
}