IntroductionDefinition introDef = (IntroductionDefinition)it.next();
// load default mixinPrototype impl from the aspect which defines it
Class defaultImplClass = crossCuttingInfo.getAspectClass().getClassLoader()
.loadClass(introDef.getName());
Introduction mixinPrototype = new Introduction(
introDef.getName(),
defaultImplClass, crossCuttingInfo,
introDef
);
IntroductionContainer introductionContainer = new IntroductionContainer(
mixinPrototype,
aspectContainer
);
aspectContainer.addIntroductionContainer(
introDef.getName(), introductionContainer
);
// prepare the aspectContainer
mixinPrototype.setContainer(introductionContainer);
final Mixin[] tmpMixins = new Mixin[m_mixins.length + 1];
java.lang.System.arraycopy(m_mixins, 0, tmpMixins, 0, m_mixins.length);
tmpMixins[m_mixins.length] = mixinPrototype;
m_mixins = new Mixin[m_mixins.length + 1];
java.lang.System.arraycopy(tmpMixins, 0, m_mixins, 0, tmpMixins.length);