/* Generated By:JJTree: Do not edit this line. ONotBlock.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.command.OCommandContext;
import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal;
import com.orientechnologies.orient.core.db.record.OIdentifiable;
import com.orientechnologies.orient.core.metadata.schema.OClass;
import java.util.List;
import java.util.Map;
public class ONotBlock extends OBooleanExpression {
protected OBooleanExpression sub;
protected boolean negate = false;
public ONotBlock(int id) {
super(id);
}
public ONotBlock(OrientSql p, int id) {
super(p, id);
}
@Override
public boolean evaluate(OIdentifiable currentRecord, OCommandContext ctx) {
if (sub == null) {
return true;
}
boolean result = sub.evaluate(currentRecord, ctx);
if (negate) {
return !result;
}
return result;
}
public OBooleanExpression getSub() {
return sub;
}
public void setSub(OBooleanExpression sub) {
this.sub = sub;
}
public boolean isNegate() {
return negate;
}
public void setNegate(boolean negate) {
this.negate = negate;
}
public void toString(Map<Object, Object> params, StringBuilder builder) {
if (negate) {
builder.append("NOT ");
}
sub.toString(params, builder);
}
@Override
public boolean supportsBasicCalculation() {
return true;
}
@Override
protected int getNumberOfExternalCalculations() {
return sub.getNumberOfExternalCalculations();
}
@Override
protected List<Object> getExternalCalculationConditions() {
return sub.getExternalCalculationConditions();
}
public List<OBinaryCondition> getIndexedFunctionConditions(OClass iSchemaClass, ODatabaseDocumentInternal database) {
if (sub == null) {
return null;
}
if (negate) {
return null;
}
return sub.getIndexedFunctionConditions(iSchemaClass, database);
}
@Override public List<OAndBlock> flatten() {
if(!negate){
return sub.flatten();
}
return super.flatten();
}
@Override public List<String> getMatchPatternInvolvedAliases() {
return sub.getMatchPatternInvolvedAliases();
}
}
/* JavaCC - OriginalChecksum=1926313b3f854235aaa20811c22d583b (do not edit this line) */