1 19 20 package edu.umd.cs.findbugs.ba.bcp; 21 22 import org.apache.bcel.generic.ConstantPoolGen; 23 import org.apache.bcel.generic.InstructionHandle; 24 25 import edu.umd.cs.findbugs.ba.DataflowAnalysisException; 26 import edu.umd.cs.findbugs.ba.Edge; 27 import edu.umd.cs.findbugs.ba.vna.ValueNumberFrame; 28 29 35 public class Opcode extends PatternElement { 36 private int opcode; 37 38 43 public Opcode(int opcode) { 44 this.opcode = opcode; 45 } 46 47 @Override 48 public MatchResult match(InstructionHandle handle, ConstantPoolGen cpg, 49 ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException { 50 51 if (handle.getInstruction().getOpcode() == opcode) 52 return new MatchResult(this, bindingSet); 53 else 54 return null; 55 56 } 57 58 @Override 59 public boolean acceptBranch(Edge edge, InstructionHandle source) { 60 return true; 61 } 62 63 @Override 64 public int minOccur() { 65 return 1; 66 } 67 68 @Override 69 public int maxOccur() { 70 return 1; 71 } 72 } 73 74 | Popular Tags |