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

net.sf.jsqlparser.expression.JsonExpression Maven / Gradle / Ivy

Go to download

JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern.

The newest version!
/*-
 * #%L
 * JSQLParser library
 * %%
 * Copyright (C) 2004 - 2019 JSQLParser
 * %%
 * Dual licensed under GNU LGPL 2.1 or Apache License 2.0
 * #L%
 */
package net.sf.jsqlparser.expression;

import net.sf.jsqlparser.parser.ASTNodeAccessImpl;

import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;

public class JsonExpression extends ASTNodeAccessImpl implements Expression {
    private final List> idents = new ArrayList<>();
    private Expression expr;

    public JsonExpression() {

    }

    public JsonExpression(Expression expr) {
        this.expr = expr;
    }

    public JsonExpression(Expression expr, List> idents) {
        this.expr = expr;
        this.idents.addAll(idents);
    }

    @Override
    public  T accept(ExpressionVisitor expressionVisitor, S context) {
        return expressionVisitor.visit(this, context);
    }

    public Expression getExpression() {
        return expr;
    }

    public void setExpression(Expression expr) {
        this.expr = expr;
    }

    public void addIdent(Expression ident, String operator) {
        idents.add(new AbstractMap.SimpleEntry<>(ident, operator));
    }

    public void addAllIdents(Collection> idents) {
        this.idents.addAll(idents);
    }

    public List> getIdentList() {
        return idents;
    }

    public Map.Entry getIdent(int index) {
        return idents.get(index);
    }

    @Deprecated
    public List getIdents() {
        ArrayList l = new ArrayList<>();
        for (Map.Entry ident : idents) {
            l.add(ident.getKey());
        }

        return l;
    }

    @Deprecated
    public List getOperators() {
        ArrayList l = new ArrayList<>();
        for (Map.Entry ident : idents) {
            l.add(ident.getValue());
        }
        return l;
    }

    @Override
    public String toString() {
        StringBuilder b = new StringBuilder();
        b.append(expr.toString());
        for (Map.Entry ident : idents) {
            b.append(ident.getValue()).append(ident.getKey());
        }
        return b.toString();
    }

    public JsonExpression withExpression(Expression expr) {
        this.setExpression(expr);
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy