2017-01-03 23:45:44 -05:00

27 lines
776 B
Kotlin

package exh.search
import exh.anyChar
import ru.lanwen.verbalregex.VerbalExpression
class Text: QueryComponent() {
val components = mutableListOf<TextComponent>()
fun asRegex(): VerbalExpression.Builder {
val builder = VerbalExpression.regex()
for(component in components) {
when(component) {
is StringTextComponent -> builder.then(component.value)
is SingleWildcard -> builder.anyChar()
is MultiWildcard -> builder.anything()
}
}
return builder
}
fun rawTextOnly() = components
.filter { it is StringTextComponent }
.joinToString(separator = "", transform = {
(it as StringTextComponent).value
})
}