/* 1168 */ MethodCalledByConstructorInvocation inv = (MethodCalledByConstructorInvocation)invocation;
/* 1169 */ Constructor callingCon = inv.getCalling();
/* 1170 */ Class callingClass = callingCon.getDeclaringClass();
/* 1171 */ if (isAdvised(callingClass))
/* */ {
/* 1173 */ ClassAdvisor advisor = AspectManager.instance().getAdvisor(callingClass);
/* 1174 */ if (advisor != null)
/* */ {
/* 1176 */ int index = advisor.getConstructorIndex(callingCon);
/* 1177 */ if (index >= 0)
/* */ {
/* 1179 */ HashMap calledClassesMap = advisor.getConCalledByConInterceptors()[index];
/* 1180 */ if (calledClassesMap != null)
/* */ {
/* 1182 */ TLongObjectHashMap calledCons = (TLongObjectHashMap)calledClassesMap.get(constructor.getDeclaringClass().getName());
/* 1183 */ if (calledCons != null)
/* */ {
/* 1185 */ long calledHash = MethodHashing.constructorHash(constructor);
/* 1186 */ ConByConInfo info = (ConByConInfo)calledCons.get(calledHash);
/* */
/* 1188 */ if ((info != null) && (info.hasAdvices()))
/* */ {
/* 1190 */ return advisor.invokeConCalledByCon(info, inv.getCallingObject(), args);
/* */ }
/* */ }
/* */ }
/* */ }
/* */ }
/* */ }
/* */ }
/* 1198 */ else if ((invocation instanceof MethodCalledByMethodInvocation))
/* */ {
/* 1200 */ MethodCalledByMethodInvocation inv = (MethodCalledByMethodInvocation)invocation;
/* 1201 */ Method callingMethod = inv.getCallingMethod();
/* 1202 */ if (isAdvised(callingMethod.getDeclaringClass()))
/* */ {
/* 1204 */ ClassAdvisor advisor = AspectManager.instance().getAdvisor(callingMethod.getDeclaringClass());
/* 1205 */ if (advisor != null)
/* */ {
/* 1207 */ long callingMethodHash = MethodHashing.calculateHash(callingMethod);
/* 1208 */ long calledHash = MethodHashing.constructorHash(constructor);
/* */
/* 1210 */ HashMap calledClassesMap = (HashMap)advisor.getConCalledByMethodInterceptors().get(callingMethodHash);
/* 1211 */ if (calledClassesMap != null)
/* */ {
/* 1213 */ TLongObjectHashMap calledCons = (TLongObjectHashMap)calledClassesMap.get(constructor.getDeclaringClass().getName());
/* 1214 */ if (calledCons != null)
/* */ {
/* 1217 */ ConByMethodInfo info = (ConByMethodInfo)calledCons.get(calledHash);
/* */
/* 1219 */ if ((info != null) && (info.hasAdvices()))
/* */ {
/* 1222 */ return advisor.invokeConCalledByMethod(info, inv.getCallingObject(), args);
/* */ }
/* */ }
/* */ }
/* */ }
/* */ }
/* */
/* */ }
/* */
/* 1231 */ Class calledClass = constructor.getDeclaringClass();
/* 1232 */ if (isAdvised(calledClass))
/* */ {
/* 1234 */ ClassAdvisor advisor = AspectManager.instance().getAdvisor(constructor.getDeclaringClass());
/* */
/* 1236 */ if ((advisor != null) && (advisor.hasAspects()))
/* */ {
/* 1238 */ int index = advisor.getConstructorIndex(constructor);
/* 1239 */ if (index >= 0)
/* */ {
/* 1241 */ ConstructorInfo jp = advisor.getConstructorInfos()[index];
/* 1242 */ return jp.getWrapper().invoke(null, args);
/* */ }
/* */ }
/* */ }
/* 1246 */ return invocation.invokeNext();