for (int i = 0; i < predicateHierarchy.length && totalMethodsVerified < predicateAnalysisDataContainer._referringMethods.size(); i++)
{
String nextClass = predicateHierarchy[i];
byte[] bytecode = predicateAnalysisDataContainer._predicateSubjectBytecode
.get(nextClass);
ClassReader cr = new ClassReader(bytecode);
ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS
| ClassWriter.COMPUTE_FRAMES);
SubjectFieldAccessAnalizer predicateSubjectFieldAccessAnalizer = new SubjectFieldAccessAnalizer(cw, nextClass, predicateAnalysisDataContainer);
cr.accept(predicateSubjectFieldAccessAnalizer,
ClassReader.EXPAND_FRAMES);
if(predicateSubjectFieldAccessAnalizer._totalMethodsAnalized > 0){
int currentHierarchyIndex = predicateAnalysisDataContainer._predicateSubjectClassDescriptor.getHierarchyTypeIndex(nextClass);
predicateAnalysisDataContainer._lowestClassInHieratchyToModify = Math.min(predicateAnalysisDataContainer._lowestClassInHieratchyToModify, currentHierarchyIndex);
predicateAnalysisDataContainer._classesForTransformation.put(nextClass, null);