1 8 package org.codehaus.aspectwerkz.transform.inlining.compiler; 9 10 import org.codehaus.aspectwerkz.joinpoint.management.AdviceInfoContainer; 11 import org.codehaus.aspectwerkz.util.Strings; 12 import org.codehaus.aspectwerkz.transform.TransformationConstants; 13 import org.codehaus.aspectwerkz.transform.inlining.EmittedJoinPoint; 14 import org.codehaus.aspectwerkz.reflect.ClassInfo; 15 16 21 public final class CompilationInfo { 22 private final Model m_initialModel; 23 private Model m_redefinedModel; 24 private int m_redefinitionCounter = 0; 25 26 public CompilationInfo(final Model initialModel) { 27 m_initialModel = initialModel; 28 } 29 30 public Model getInitialModel() { 31 return m_initialModel; 32 } 33 34 public Model getRedefinedModel() { 35 return m_redefinedModel; 36 } 37 38 public void setRedefinedModel(final Model redefinedModel) { 39 m_redefinedModel = redefinedModel; 40 } 41 42 public int getRedefinitionCounter() { 43 return m_redefinitionCounter; 44 } 45 46 public void incrementRedefinitionCounter() { 47 m_redefinitionCounter += 1; 48 } 49 50 public boolean equals(Object o) { 51 if (this == o) { 52 return true; 53 } 54 if (!(o instanceof CompilationInfo)) { 55 return false; 56 } 57 58 final CompilationInfo compilationInfo = (CompilationInfo) o; 59 60 if (m_redefinitionCounter != compilationInfo.m_redefinitionCounter) { 61 return false; 62 } 63 if (m_initialModel != null ? 64 !m_initialModel.equals(compilationInfo.m_initialModel) : 65 compilationInfo.m_initialModel != null) { 66 return false; 67 } 68 if (m_redefinedModel != null ? 69 !m_redefinedModel.equals(compilationInfo.m_redefinedModel) : 70 compilationInfo.m_redefinedModel != null) { 71 return false; 72 } 73 74 return true; 75 } 76 77 public int hashCode() { 78 int result; 79 result = (m_initialModel != null ? m_initialModel.hashCode() : 0); 80 result = 29 * result + (m_redefinedModel != null ? m_redefinedModel.hashCode() : 0); 81 result = 29 * result + m_redefinitionCounter; 82 return result; 83 } 84 85 90 public final static class Model { 91 private final String m_joinPointClassName; 92 private final EmittedJoinPoint m_emittedJoinPoint; 93 private final AdviceInfoContainer m_adviceInfoContainer; 94 private final ClassInfo m_thisClassInfo; 95 96 public Model(final EmittedJoinPoint emittedJoinPoint, 97 final AdviceInfoContainer adviceInfoContainer, 98 final ClassInfo thisClassInfo) { 99 m_emittedJoinPoint = emittedJoinPoint; 100 m_adviceInfoContainer = adviceInfoContainer; 101 m_joinPointClassName = m_emittedJoinPoint.getJoinPointClassName(); 102 m_thisClassInfo = thisClassInfo; 103 } 104 105 public Model(final EmittedJoinPoint emittedJoinPoint, 106 final AdviceInfoContainer adviceInfoContainer, 107 final int redefinitionCounter, 108 final ClassInfo thisClassInfo) { 109 m_emittedJoinPoint = emittedJoinPoint; 110 m_adviceInfoContainer = adviceInfoContainer; 111 m_joinPointClassName = Strings.replaceSubString( 112 m_emittedJoinPoint.getJoinPointClassName(), 113 TransformationConstants.JOIN_POINT_CLASS_SUFFIX, 114 new StringBuffer ().append('_').append(redefinitionCounter). 115 append(TransformationConstants.JOIN_POINT_CLASS_SUFFIX).toString() 116 ); 117 m_thisClassInfo = thisClassInfo; 118 } 119 120 public String getJoinPointClassName() { 121 return m_joinPointClassName; 122 } 123 124 public EmittedJoinPoint getEmittedJoinPoint() { 125 return m_emittedJoinPoint; 126 } 127 128 public AdviceInfoContainer getAdviceInfoContainer() { 129 return m_adviceInfoContainer; 130 } 131 132 136 public ClassInfo getThisClassInfo() { 137 return m_thisClassInfo; 138 } 139 140 public int hashCode() { 141 return m_emittedJoinPoint.hashCode(); 142 } 143 144 public boolean equals(Object o) { 145 return ((Model) o).m_emittedJoinPoint == m_emittedJoinPoint; 146 } 147 } 148 } | Popular Tags |