/** * gets GeneratorPredicate from condition * * @param cond * Condition * @return GeneratorPredicate */ private GeneratorPredicate getGP(Condition cond) { GeneratorPredicate gp = new GeneratorPredicate(); // ===================when assignable to if (cond instanceof ConditionWhenTypeAssignableTo) { gp.setEPredict(EPredicts.ASSIGNABLE); gp.setName(GeneratorPredicate.CLASS); gp.setValue(((ConditionWhenTypeAssignableTo) cond) .getAssignableToTypeName()); // ===================when type is } else if (cond instanceof ConditionWhenTypeIs) { gp.setEPredict(EPredicts.TYPEIS); gp.setName(GeneratorPredicate.CLASS); gp.setValue((String) getPrivateField(cond, "exactTypeName")); // ===================when property is } else if (cond instanceof ConditionWhenPropertyIs) { gp.setEPredict(EPredicts.PROPERTY); gp.setName((String) getPrivateField( ((ConditionWhenPropertyIs) cond), "propName")); gp.setValue((String) getPrivateField( ((ConditionWhenPropertyIs) cond), "value")); } return gp; }
String value = null; try { switch (entry.getEPredict()) { case ASSIGNABLE: if (context.getTypeOracle().findType(typeName) .isAssignableTo( context.getTypeOracle().getType( entry.getValue()))) { value = entry.getValue(); } else { value = typeName; value = context.getPropertyOracle().getSelectionProperty(logger, entry.getName()).getCurrentValue(); break; default: switch (gr.getOperator()) { case ANY: result = result || entry.getValue().equals(value); break; case NONE: result = !entry.getValue().equals(value); if (!result) return false; break; case ALL: result = entry.getValue().equals(value); if (!result) return false;