override fun getVariants()

in src/com/intellij/idea/plugin/hybris/flexibleSearch/psi/reference/FxSYColumnReference.kt [62:84]


    override fun getVariants(): Array<out Any> {
        val tableToAlias = getTableToAlias()
            ?: return getSuitablePrefixes()
        val type = tableToAlias.first.tableName
        val hasTableAlias = tableToAlias.second != null
        val hasColumnAlias = isAliasedReference()
        val canFallback = canFallbackToTableName()

        if (!hasColumnAlias && HybrisConstants.FXS_DUMMY_IDENTIFIER == element.text && hasTableAlias) {
            return getSuitablePrefixes()
        }

        if (!hasColumnAlias && HybrisConstants.FXS_DUMMY_IDENTIFIER == element.text && !hasTableAlias) {
            return getSuitablePrefixes() + getColumns(type)
        }
        if ((hasColumnAlias && hasTableAlias)
            || (!hasColumnAlias && (!hasTableAlias || canFallback))
        ) {
            return getColumns(type)
        }

        return getSuitablePrefixes()
    }