package com.github.javaparser.ast.expr;
import com.github.javaparser.ASTHelper;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import xapi.source.X_Source;
/**
* @author James X. Nelson (james@wetheinter.net)
* Created on 4/10/16.
*/
public class JsonPairExpr extends UiExpr {
private Expression keyExpr;
private Expression valueExpr;
public JsonPairExpr(final int beginLine, final int beginColumn, final int endLine, final int endColumn, Expression keyExpr, Expression valueExpr) {
super(beginLine, beginColumn, endLine, endColumn);
this.keyExpr = keyExpr;
this.valueExpr = valueExpr;
}
public Expression getKeyExpr() {
return keyExpr;
}
public Expression getValueExpr() {
return valueExpr;
}
public void setKeyExpr(Expression keyExpr) {
this.keyExpr = keyExpr;
setAsParentNodeOf(keyExpr);
}
public void setValueExpr(Expression valueExpr) {
this.valueExpr = valueExpr;
setAsParentNodeOf(valueExpr);
}
@Override
public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
return v.visit(this, arg);
}
@Override
public <A> void accept(VoidVisitor<A> v, A arg) {
v.visit(this, arg);
}
public String getKeyString() {
return ASTHelper.extractStringValue(getKeyExpr());
}
public String getKeyQuoted() {
String asString = ASTHelper.extractStringValue(getKeyExpr());
return asString.startsWith("\"") ? asString : "\"" + X_Source.escape(asString) + "\"";
}
}