@@ -128,47 +128,36 @@ case class FileExistsRule(pathSubstitutions: List[(String,String)], enforceCaseS
128128
129129case class InRule (inValue : ArgProvider ) extends Rule (" in" , Seq (inValue): _* ) {
130130 override def valid (cellValue : String , columnDefinition : ColumnDefinition , columnIndex : Int , row : Row , schema : Schema , mayBeLast : Option [Boolean ] = None ): Boolean = {
131- val ruleValue = inValue.referenceValue(columnIndex, row, schema)
132-
133- val (rv, cv) = if (columnDefinition.directives.contains(IgnoreCase ())) (ruleValue.get.toLowerCase, cellValue.toLowerCase) else (ruleValue.get, cellValue)
134- rv contains cv
131+ val (potentialRv, cv) = argProviderHelper(inValue, columnDefinition, columnIndex, row, schema, cellValue)
132+ potentialRv.exists(_.contains(cv))
135133 }
136134}
137135
138136case class IsRule (isValue : ArgProvider ) extends Rule (" is" , Seq (isValue): _* ) {
139137 override def valid (cellValue : String , columnDefinition : ColumnDefinition , columnIndex : Int , row : Row , schema : Schema , mayBeLast : Option [Boolean ] = None ): Boolean = {
140- val ruleValue = isValue.referenceValue(columnIndex, row, schema)
141-
142- val (rv, cv) = if (columnDefinition.directives.contains(IgnoreCase ())) (ruleValue.get.toLowerCase, cellValue.toLowerCase) else (ruleValue.get, cellValue)
143- cv == rv
138+ val (potentialRv, cv) = argProviderHelper(isValue, columnDefinition, columnIndex, row, schema, cellValue)
139+ potentialRv.contains(cv)
144140 }
145141}
146142
147-
148143case class NotRule (notValue : ArgProvider ) extends Rule (" not" , Seq (notValue): _* ) {
149144 override def valid (cellValue : String , columnDefinition : ColumnDefinition , columnIndex : Int , row : Row , schema : Schema ,mayBeLast : Option [Boolean ] = None ): Boolean = {
150- val ruleValue = notValue.referenceValue(columnIndex, row, schema)
151-
152- val (rv, cv) = if (columnDefinition.directives.contains(IgnoreCase ())) (ruleValue.get.toLowerCase, cellValue.toLowerCase) else (ruleValue.get, cellValue)
153- cv != rv
145+ val (potentialRv, cv) = argProviderHelper(notValue, columnDefinition, columnIndex, row, schema, cellValue)
146+ ! potentialRv.contains(cv)
154147 }
155148}
156149
157150case class StartsRule (startsValue : ArgProvider ) extends Rule (" starts" , Seq (startsValue): _* ) {
158151 override def valid (cellValue : String , columnDefinition : ColumnDefinition , columnIndex : Int , row : Row , schema : Schema , mayBeLast : Option [Boolean ] = None ): Boolean = {
159- val ruleValue = startsValue.referenceValue(columnIndex, row, schema)
160-
161- val (rv, cv) = if (columnDefinition.directives.contains(IgnoreCase ())) (ruleValue.get.toLowerCase, cellValue.toLowerCase) else (ruleValue.get, cellValue)
162- cv startsWith rv
152+ val (potentialRv, cv) = argProviderHelper(startsValue, columnDefinition, columnIndex, row, schema, cellValue)
153+ potentialRv.exists(rv => cv.startsWith(rv))
163154 }
164155}
165156
166157case class EndsRule (endsValue : ArgProvider ) extends Rule (" ends" , Seq (endsValue): _* ) {
167158 override def valid (cellValue : String , columnDefinition : ColumnDefinition , columnIndex : Int , row : Row , schema : Schema , mayBeLast : Option [Boolean ] = None ): Boolean = {
168- val ruleValue = endsValue.referenceValue(columnIndex, row, schema)
169-
170- val (rv, cv) = if (columnDefinition.directives.contains(IgnoreCase ())) (ruleValue.get.toLowerCase, cellValue.toLowerCase) else (ruleValue.get, cellValue)
171- cv endsWith rv
159+ val (potentialRv, cv) = argProviderHelper(endsValue, columnDefinition, columnIndex, row, schema, cellValue)
160+ potentialRv.exists(rv => cv.endsWith(rv))
172161 }
173162}
174163
0 commit comments