1 19 20 package edu.umd.cs.findbugs.ba.bcp; 21 22 import java.util.Iterator ; 23 import java.util.LinkedList ; 24 25 import org.apache.bcel.generic.InstructionHandle; 26 27 public class ByteCodePatternMatch { 28 private BindingSet bindingSet; 29 private PatternElementMatch lastElementMatch; 30 private LinkedList <PatternElementMatch> patternElementMatchList; 31 32 public ByteCodePatternMatch(BindingSet bindingSet, PatternElementMatch lastElementMatch) { 33 this.bindingSet = bindingSet; 34 this.lastElementMatch = lastElementMatch; 35 this.patternElementMatchList = new LinkedList <PatternElementMatch>(); 36 37 while (lastElementMatch != null) { 40 patternElementMatchList.addFirst(lastElementMatch); 41 lastElementMatch = lastElementMatch.getPrev(); 42 } 43 } 44 45 public BindingSet getBindingSet() { 46 return bindingSet; 47 } 48 49 public Iterator <PatternElementMatch> patternElementMatchIterator() { 50 return patternElementMatchList.iterator(); 51 } 52 53 public InstructionHandle getLabeledInstruction(String label) { 54 return lastElementMatch != null 55 ? lastElementMatch.getLabeledInstruction(label) 56 : null; 57 } 58 59 public PatternElementMatch getFirstLabeledMatch(String label) { 60 return lastElementMatch != null 61 ? lastElementMatch.getFirstLabeledMatch(label) 62 : null; 63 } 64 65 public PatternElementMatch getLastLabeledMatch(String label) { 66 return lastElementMatch != null 67 ? lastElementMatch.getLastLabeledMatch(label) 68 : null; 69 } 70 } 71 72 | Popular Tags |