protected StoreDataflow analyze(Method method) throws CFGBuilderException, DataflowAnalysisException { MethodGen methodGen = getMethodGen(method); if (methodGen == null) return null; StoreAnalysis analysis = new StoreAnalysis( getDepthFirstSearch(method), getConstantPoolGen() ); StoreDataflow dataflow = new StoreDataflow(getCFG(method), analysis); dataflow.execute(); return dataflow; }
protected LoadedFieldSet analyze(Method method) { MethodGen methodGen = getMethodGen(method); if (methodGen == null) return null; InstructionList il = methodGen.getInstructionList();  LoadedFieldSet loadedFieldSet = new LoadedFieldSet(methodGen);  for (InstructionHandle handle = il.getStart(); handle != null; handle = handle.getNext()) { Instruction ins = handle.getInstruction(); short opcode = ins.getOpcode(); try { if (opcode == Constants.INVOKESTATIC) { INVOKESTATIC inv = (INVOKESTATIC) ins; if (Hierarchy.isInnerClassAccess(inv, getConstantPoolGen())) { InnerClassAccess access = Hierarchy.getInnerClassAccess(inv, getConstantPoolGen());  if (access != null) { if (access.isLoad()) loadedFieldSet.addLoad(handle, access.getField()); else loadedFieldSet.addStore(handle, access.getField()); } } } else if (fieldInstructionOpcodeSet.get(opcode)) { boolean isLoad = (opcode == Constants.GETFIELD || opcode == Constants.GETSTATIC); XField field = Hierarchy.findXField((FieldInstruction) ins, getConstantPoolGen()); if (field != null) { if (isLoad) loadedFieldSet.addLoad(handle, field); else loadedFieldSet.addStore(handle, field); } } } catch (ClassNotFoundException e) { analysisContext.getLookupFailureCallback().reportMissingClass(e); } }  return loadedFieldSet; }
			protected StoreDataflow analyze(Method method) throws CFGBuilderException, DataflowAnalysisException {				MethodGen methodGen = getMethodGen(method);				if (methodGen == null)					return null;				StoreAnalysis analysis = new StoreAnalysis(						getDepthFirstSearch(method),						getConstantPoolGen()						);				StoreDataflow dataflow = new StoreDataflow(getCFG(method), analysis);				dataflow.execute();				return dataflow;			}