public static Optional convert()

in kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/ExpressionConverter.java [84:156]


    public static Optional<SqlNode> convert(final ExpressionSegment segment) {
        if (null == segment) {
            return Optional.empty();
        }
        if (segment instanceof LiteralExpressionSegment) {
            return LiteralExpressionConverter.convert((LiteralExpressionSegment) segment);
        }
        if (segment instanceof CommonExpressionSegment) {
            // TODO
            throw new UnsupportedSQLOperationException("unsupported CommonExpressionSegment");
        }
        if (segment instanceof ListExpression) {
            return ListExpressionConverter.convert((ListExpression) segment);
        }
        if (segment instanceof BinaryOperationExpression) {
            return BinaryOperationExpressionConverter.convert((BinaryOperationExpression) segment);
        }
        if (segment instanceof ColumnSegment) {
            return ColumnConverter.convert((ColumnSegment) segment);
        }
        if (segment instanceof ExistsSubqueryExpression) {
            return ExistsSubqueryExpressionConverter.convert((ExistsSubqueryExpression) segment);
        }
        if (segment instanceof SubqueryExpressionSegment) {
            return SubqueryExpressionConverter.convert((SubqueryExpressionSegment) segment);
        }
        if (segment instanceof InExpression) {
            return InExpressionConverter.convert((InExpression) segment);
        }
        if (segment instanceof BetweenExpression) {
            return BetweenExpressionConverter.convert((BetweenExpression) segment);
        }
        if (segment instanceof ParameterMarkerExpressionSegment) {
            return ParameterMarkerExpressionConverter.convert((ParameterMarkerExpressionSegment) segment);
        }
        if (segment instanceof FunctionSegment) {
            return FunctionConverter.convert((FunctionSegment) segment);
        }
        if (segment instanceof AggregationProjectionSegment) {
            return AggregationProjectionConverter.convert((AggregationProjectionSegment) segment);
        }
        if (segment instanceof DataTypeSegment) {
            return DataTypeConverter.convert((DataTypeSegment) segment);
        }
        if (segment instanceof CaseWhenExpression) {
            return CaseWhenExpressionConverter.convert((CaseWhenExpression) segment);
        }
        if (segment instanceof NotExpression) {
            return NotExpressionConverter.convert((NotExpression) segment);
        }
        if (segment instanceof TypeCastExpression) {
            return TypeCastExpressionConverter.convert((TypeCastExpression) segment);
        }
        if (segment instanceof ExtractArgExpression) {
            return ExtractArgExpressionConverter.convert((ExtractArgExpression) segment);
        }
        if (segment instanceof MatchAgainstExpression) {
            return MatchExpressionConverter.convert((MatchAgainstExpression) segment);
        }
        if (segment instanceof CollateExpression) {
            return CollateExpressionConverter.convert((CollateExpression) segment);
        }
        if (segment instanceof RowExpression) {
            return RowExpressionConverter.convert((RowExpression) segment);
        }
        if (segment instanceof VariableSegment) {
            return VariableSegmentConverter.convert((VariableSegment) segment);
        }
        if (segment instanceof UnaryOperationExpression) {
            return UnaryOperationExpressionConverter.convert((UnaryOperationExpression) segment);
        }
        throw new UnsupportedSQLOperationException("unsupported TableSegment type: " + segment.getClass());
    }