From: Vance K. <va...@us...> - 2006-03-09 04:46:27
|
User: vancek Date: 06/03/08 20:46:26 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3SessionOperationFacadeLogicImpl.java Log: fixed getInterceptorReferences to get all interceptors recursively to maintain ordering Revision Changes Path 1.10 +33 -15 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionOperationFacadeLogicImpl.java Index: EJB3SessionOperationFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionOperationFacadeLogicImpl.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- EJB3SessionOperationFacadeLogicImpl.java 2 Mar 2006 10:32:36 -0000 1.9 +++ EJB3SessionOperationFacadeLogicImpl.java 9 Mar 2006 04:46:26 -0000 1.10 @@ -1,6 +1,7 @@ package org.andromda.cartridges.ejb3.metafacades; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashSet; @@ -328,7 +329,9 @@ protected Collection handleGetInterceptorReferences() { Collection references = this.getSourceDependencies(); - CollectionUtils.filter(references, new Predicate() + CollectionUtils.filter( + references, + new Predicate() { public boolean evaluate(Object object) { @@ -337,14 +340,29 @@ return (targetElement != null && targetElement.hasStereotype(EJB3Profile.STEREOTYPE_INTERCEPTOR)); } }); - CollectionUtils.transform(references, new Transformer() + CollectionUtils.transform( + references, + new Transformer() { public Object transform(final Object object) { return ((DependencyFacade)object).getTargetElement(); } }); - return references; + final Collection interceptors = new LinkedHashSet(references); + CollectionUtils.forAllDo( + references, + new Closure() + { + public void execute(Object object) + { + if (object instanceof EJB3InterceptorFacade) + { + interceptors.addAll(((EJB3InterceptorFacade)object).getInterceptorReferences()); + } + } + }); + return interceptors; } /** |