1 7 34 35 package com.sun.tools.example.debug.bdi; 36 37 import com.sun.jdi.*; 38 39 class SourceNameReferenceTypeSpec implements ReferenceTypeSpec { 40 final String sourceName; 41 final int linenumber; 42 43 SourceNameReferenceTypeSpec(String sourceName, int linenumber) { 44 this.sourceName = sourceName; 45 this.linenumber = linenumber; 46 } 47 48 51 public boolean matches(ReferenceType refType) { 52 try { 53 if (refType.sourceName().equals(sourceName)) { 54 try { 55 refType.locationsOfLine(linenumber); 56 return true; 58 } catch(AbsentInformationException exc) { 59 } catch(ObjectCollectedException exc) { 60 } catch(InvalidLineNumberException exc) { 61 } 64 } 65 } catch(AbsentInformationException exc) { 66 } 68 return false; 69 } 70 71 public int hashCode() { 72 return sourceName.hashCode() + linenumber; 73 } 74 75 public boolean equals(Object obj) { 76 if (obj instanceof SourceNameReferenceTypeSpec) { 77 SourceNameReferenceTypeSpec spec = (SourceNameReferenceTypeSpec)obj; 78 79 return sourceName.equals(spec.sourceName) && 80 (linenumber == spec.linenumber); 81 } else { 82 return false; 83 } 84 } 85 86 public String toString() { 87 return sourceName + "@" + linenumber; 88 } 89 } 90 91 92 | Popular Tags |