All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.harmonysoft.oss.sql.parser.ParsingSelectItemVisitor.kt Maven / Gradle / Ivy

package tech.harmonysoft.oss.sql.parser

import net.sf.jsqlparser.statement.select.AllColumns
import net.sf.jsqlparser.statement.select.SelectExpressionItem
import net.sf.jsqlparser.statement.select.SelectItem
import tech.harmonysoft.oss.sql.ast.delegation.DelegatingSelectItemVisitorAdapter
import tech.harmonysoft.oss.sql.dsl.target.SelectTarget
import tech.harmonysoft.oss.sql.dsl.target.SqlTarget

class ParsingSelectItemVisitor(
    private val context: SqlParseContext
) : DelegatingSelectItemVisitorAdapter() {

    override fun handle(item: SelectItem) {
        throw IllegalArgumentException("unexpected select item of class ${item::class.qualifiedName}: $item")
    }

    override fun visit(selectExpressionItem: SelectExpressionItem) {
        val target = context.buildTarget(selectExpressionItem.expression)
        context.targets += SelectTarget(target, selectExpressionItem.alias?.name?.trim())
    }

    override fun visit(allColumns: AllColumns) {
        context.targets += SelectTarget(SqlTarget.AllColumns)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy