super("findmatch");
}
public void execute(DTState state) throws RulesException {
RArray array = state.datapop().rArrayValue();
IRObject v3 = state.datapop();
IRObject n3 = state.datapop();
IRObject v2 = state.datapop();
IRObject n2 = state.datapop();
IRObject v1 = state.datapop();
IRObject n1 = state.datapop();
for(IRObject ie : array){
IREntity e = ie.rEntityValue();
if(n3.type().getId() != RNull.type.getId()){
IRObject v = e.get(n3.rNameValue());
if(!v.equals(v3)){
continue;
}
}
if(n2.type().getId() != RNull.type.getId()){
IRObject v = e.get(n2.rNameValue());
if(!v.equals(v2)){
continue;
}
}
if(n1.type().getId() != RNull.type.getId()){
IRObject v = e.get(n1.rNameValue());
if(!v.equals(v1)){
continue;
}
}
state.datapush(e);
state.datapush(RBoolean.getRBoolean(true));