public BigDecimal Tree(List<CareCriteria> careCriterias, AuthorizationForm myForm,
String noteId) throws SecurityException, NoSuchFieldException,
IllegalArgumentException, IllegalAccessException {
BigDecimal physical = new BigDecimal("0");
for(CareCriteria careCriteria : careCriterias) {
if(noteId.equals(careCriteria.noteId)) {
if("1".equals(careCriteria.endFlag)) {
physical = careCriteria.endValue;
return physical;
}
if(careCriteria.objectGroup !=null && !"".equals(careCriteria.objectGroup)) {
Class<?> demo = AuthorizationService.class;
Field field = demo.getDeclaredField(careCriteria.objectGroup);
field.setAccessible(true);
BigDecimal zou = new BigDecimal("0");
zou = zou.add((BigDecimal) field.get(this));
if(zou.compareTo(careCriteria.groupDatumValue) == 1) {
return Tree(careCriterias,myForm,careCriteria.nextNoteNo);
}else{
return Tree(careCriterias,myForm,careCriteria.nextNoteYes);
}
}else if(careCriteria.objectItem != null && !"".equals(careCriteria.objectItem)){
Class<?> demo = myForm.authoriza.getClass();
Field field = demo.getDeclaredField(careCriteria.objectItem);
field.setAccessible(true);
String strings[] = careCriteria.objectDatumValue.split(",");
for(String value :strings){
if(field.get(myForm.authoriza).equals(value)){
return Tree(careCriterias,myForm,careCriteria.nextNoteYes);
}
}
return Tree(careCriterias,myForm,careCriteria.nextNoteNo);
}
}
}
return null;
}