if (!m_initialized) {
loadAdvices();
}
// TODO: handle a list of systems that nees to be matched to the advice lists (loadAdvices etc.)
if (m_system.isAttribDef()) {
AttribDefSystem system = (AttribDefSystem)m_system;
for (int i = 0, j = m_preAdvices.length; i < j; i++) {
try {
IndexTuple index = m_preAdvices[i];
int aspectIndex = index.getAspectIndex();
int methodIndex = index.getMethodIndex();
system.getAspect(aspectIndex).___AW_invokeAdvice(methodIndex, this);
}
catch (ArrayIndexOutOfBoundsException ex) {
throw new RuntimeException(createAdvicesNotCorrectlyMappedMessage());
}
}
}
else {
XmlDefSystem system = (XmlDefSystem)m_system;
for (int i = 0, j = m_preAdvices.length; i < j; i++) {
try {
system.getAdvice(m_preAdvices[i]).doExecute(this);
}
catch (ArrayIndexOutOfBoundsException ex) {
throw new RuntimeException(createAdvicesNotCorrectlyMappedMessage());
}
}