com.orientechnologies.orient.core.sql.parser.OIsDefinedCondition Maven / Gradle / Ivy
/* Generated By:JJTree: Do not edit this line. OIsDefinedCondition.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.record.OIdentifiable;
import com.orientechnologies.orient.core.record.OElement;
import com.orientechnologies.orient.core.sql.executor.OResult;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class OIsDefinedCondition extends OBooleanExpression implements OSimpleBooleanExpression {
protected OExpression expression;
public OIsDefinedCondition(int id) {
super(id);
}
public OIsDefinedCondition(OrientSql p, int id) {
super(p, id);
}
@Override
public boolean evaluate(OIdentifiable currentRecord, OCommandContext ctx) {
Object elem = currentRecord.getRecord();
if (elem instanceof OElement) {
return expression.isDefinedFor((OElement) elem);
}
return false;
}
@Override
public boolean evaluate(OResult currentRecord, OCommandContext ctx) {
if (expression.isFunctionAny()) {
return currentRecord.getPropertyNames().size() > 0;
}
if (expression.isFunctionAll()) {
return true;
}
return expression.isDefinedFor(currentRecord);
}
public void toString(Map