From: Vance K. <va...@us...> - 2006-03-09 04:41:41
|
User: vancek Date: 06/03/08 20:41:41 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3InterceptorFacadeLogicImpl.java Log: implemented isDefaultInterceptor and getInterceptorReferences Revision Changes Path 1.2 +62 -1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3InterceptorFacadeLogicImpl.java Index: EJB3InterceptorFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3InterceptorFacadeLogicImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- EJB3InterceptorFacadeLogicImpl.java 17 Jan 2006 03:51:10 -0000 1.1 +++ EJB3InterceptorFacadeLogicImpl.java 9 Mar 2006 04:41:41 -0000 1.2 @@ -1,7 +1,18 @@ 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; + +import org.andromda.cartridges.ejb3.EJB3Profile; +import org.andromda.metafacades.uml.DependencyFacade; +import org.andromda.metafacades.uml.ModelElementFacade; +import org.apache.commons.collections.Closure; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.Transformer; import org.apache.commons.lang.StringUtils; @@ -46,4 +57,54 @@ null); } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacadeLogic#handleGetInterceptorReferences() + */ + protected Collection handleGetInterceptorReferences() + { + Collection references = this.getSourceDependencies(); + CollectionUtils.filter( + references, + new Predicate() + { + public boolean evaluate(Object object) + { + DependencyFacade dependency = (DependencyFacade)object; + ModelElementFacade targetElement = dependency.getTargetElement(); + return (targetElement != null && targetElement.hasStereotype(EJB3Profile.STEREOTYPE_INTERCEPTOR)); + } + }); + CollectionUtils.transform( + references, + new Transformer() + { + public Object transform(final Object object) + { + return ((DependencyFacade)object).getTargetElement(); + } + }); + 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; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3InterceptorFacadeLogic#handleIsDefaultInterceptor() + */ + protected boolean handleIsDefaultInterceptor() + { + return this.hasStereotype(EJB3Profile.STEREOTYPE_DEFAULT_INTERCEPTOR); + } + } \ No newline at end of file |