getNextString = ".getPrecedingOperators().get(0)";
buffer.append(spaces + this.variableList_left.get(jumpOp.getName() + "_end").assign_variable(opName));
for(Operator tmpOp : jumpOp.getPrecedingOperators()) {
AbstractRuleOperator tmpOp2 = (AbstractRuleOperator) tmpOp;
if(tmpOp2.alsoSubClasses()) {
Class<?> clazz = jumpOp.getClassType().getOpClass().getSuperclass();
boolean moreGeneric = false;
while(clazz != Object.class) {
if(clazz == tmpOp2.getClassType().getOpClass()) {
moreGeneric = true;
break;
}
clazz = clazz.getSuperclass();
}
if(moreGeneric) {
if(jumpOp.alsoSubClasses()) {
condition.append("_searchIndex_" + runNumber + "_" + i + " instanceof " + jumpOp.getClassType().getOpClass().getName());
}
else {
condition.append("_searchIndex_" + runNumber + "_" + i + ".getClass() == " + jumpOp.getClassType().getOpClass().getName() + ".class");
}
}
else {
condition.append("!(_searchIndex_" + runNumber + "_" + i + " instanceof " + tmpOp2.getClassType().getOpClass().getName() + ")");
}
}
else {
condition.append("_searchIndex_" + runNumber + "_" + i + ".getClass() != " + tmpOp2.getClassType().getOpClass().getName() + ".class");
}
condition.append(" || ");
}
}
else {
getNextString = ".getSucceedingOperators().get(0).getOperator()";
buffer.append(spaces + this.variableList_left.get(jumpOp.getName() + "_begin").assign_variable(opName));
for(OperatorIDTuple<Operator> tmpOp : jumpOp.getSucceedingOperators()) {
AbstractRuleOperator tmpOp2 = (AbstractRuleOperator) tmpOp.getOperator();
if(tmpOp2.alsoSubClasses()) {
Class<?> clazz = jumpOp.getClassType().getOpClass().getSuperclass();
boolean moreGeneric = false;
while(clazz != Object.class) {
if(clazz == tmpOp2.getClassType().getOpClass()) {
moreGeneric = true;
break;
}
clazz = clazz.getSuperclass();
}
if(moreGeneric) {
if(jumpOp.alsoSubClasses()) {
condition.append("_searchIndex_" + runNumber + "_" + i + " instanceof " + jumpOp.getClassType().getOpClass().getName());
}
else {
condition.append("_searchIndex_" + runNumber + "_" + i + ".getClass() == " + jumpOp.getClassType().getOpClass().getName() + ".class");
}
}
else {
condition.append("!(_searchIndex_" + runNumber + "_" + i + " instanceof " + tmpOp2.getClassType().getOpClass().getName() + ")");
}
}
else {
condition.append("_searchIndex_" + runNumber + "_" + i + ".getClass() != " + tmpOp2.getClassType().getOpClass().getName() + ".class");
}
condition.append(" || ");
}
}