/* Generated By:JJTree: Do not edit this line. OUpdateStatement.java Version 4.3 */
/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=true,NODE_PREFIX=O,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
package com.orientechnologies.orient.core.sql.parser;
import com.orientechnologies.orient.core.storage.OStorage;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class OUpdateStatement extends OStatement {
public OFromClause target;
protected List<OUpdateOperations> operations = new ArrayList<OUpdateOperations>();
protected boolean upsert = false;
protected boolean returnBefore = false;
protected boolean returnAfter = false;
protected boolean returnCount = false;
protected OProjection returnProjection;
public OLetClause let;
public OWhereClause whereClause;
public OStorage.LOCKING_STRATEGY lockRecord = null;
public OLimit limit;
public OTimeout timeout;
public OUpdateStatement(int id) {
super(id);
}
public OUpdateStatement(OrientSql p, int id) {
super(p, id);
}
public void toString(Map<Object, Object> params, StringBuilder builder) {
builder.append(getStatementType());
if(target!=null){
target.toString(params, builder);
}
for (OUpdateOperations ops : this.operations) {
builder.append(" ");
ops.toString(params, builder);
}
if (upsert) {
builder.append(" UPSERT");
}
if (returnBefore || returnAfter || returnCount) {
builder.append(" RETURN");
if (returnBefore) {
builder.append(" BEFORE");
} else if (returnAfter){
builder.append(" AFTER");
} else{
builder.append(" COUNT");
}
if (returnProjection != null) {
builder.append(" ");
returnProjection.toString(params, builder);
}
}
if(let != null){
builder.append(" ");
let.toString(params, builder);
}
if (whereClause != null) {
builder.append(" WHERE ");
whereClause.toString(params, builder);
}
if (lockRecord!=null) {
builder.append(" LOCK ");
switch (lockRecord){
case DEFAULT:
builder.append("DEFAULT");
break;
case EXCLUSIVE_LOCK:
builder.append("RECORD");
break;
case SHARED_LOCK:
builder.append("SHARED");
break;
case NONE:
builder.append("NONE");
break;
}
}
if (limit != null) {
limit.toString(params, builder);
}
if (timeout != null) {
timeout.toString(params, builder);
}
}
protected String getStatementType() {
return "UPDATE ";
}
}
/* JavaCC - OriginalChecksum=093091d7273f1073ad49f2a2bf709a53 (do not edit this line) */