1 7 package ch.ethz.prose.query; 8 9 import ch.ethz.prose.Aspect; 10 11 12 18 public 19 class AspectSurrogate implements java.io.Serializable { 20 21 private String aspectClassName; 22 private Object associatedObject; 23 24 public AspectSurrogate(String aspectClassName, Object associatedObject) 25 { 26 this.aspectClassName = aspectClassName; 27 this.associatedObject = associatedObject; 28 } 29 30 public AspectSurrogate(Aspect asp) 31 { 32 if (asp == null) 33 throw new IllegalArgumentException ("AspectSurrogate.init: null arg"); 34 aspectClassName = asp.getClass().getName(); 35 associatedObject = asp.getAssociatedObject(); 36 } 37 38 public String getAspectClassName() 39 { 40 return aspectClassName; 41 } 42 43 public Object getAssociatedObject() 44 { 45 return associatedObject; 46 } 47 48 58 public 59 boolean equals(Object obj) 60 { 61 return 62 obj instanceof AspectSurrogate && 63 associatedObject.equals(((AspectSurrogate) obj).associatedObject); 64 } 65 66 70 public 71 int hashCode() 72 { 73 return associatedObject.hashCode(); 74 } 75 76 public String toString() 77 { 78 return aspectClassName + "[" + associatedObject + "]"; 79 } 80 } 81 82 83 | Popular Tags |