From: Vance K. <va...@us...> - 2006-03-09 04:43:39
|
User: vancek Date: 06/03/08 20:43:38 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3MessageDrivenFacadeLogicImpl.java Log: implemented getInterceptorReferences and isExcludeDefaultInterceptors Revision Changes Path 1.6 +71 -7 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java Index: EJB3MessageDrivenFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- EJB3MessageDrivenFacadeLogicImpl.java 29 Jan 2006 01:56:26 -0000 1.5 +++ EJB3MessageDrivenFacadeLogicImpl.java 9 Mar 2006 04:43:38 -0000 1.6 @@ -1,8 +1,10 @@ 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.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; @@ -10,8 +12,11 @@ import org.andromda.metafacades.uml.DependencyFacade; import org.andromda.metafacades.uml.ModelElementFacade; import org.andromda.metafacades.uml.Role; +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.BooleanUtils; import org.apache.commons.lang.StringUtils; @@ -281,7 +286,9 @@ public Collection getServiceReferences() { Collection references = super.getServiceReferences(); - CollectionUtils.filter(references, new Predicate() + CollectionUtils.filter( + references, + new Predicate() { public boolean evaluate(Object object) { @@ -342,4 +349,61 @@ return this.hasStereotype(EJB3Profile.STEREOTYPE_LISTENER); } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacadeLogic#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.EJB3MessageDrivenFacadeLogic#handleIsExcludeDefaultInterceptors() + */ + protected boolean handleIsExcludeDefaultInterceptors() + { + boolean excludeDefault = false; + String excludeDefaultStr = + (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_SERVICE_INTERCEPTOR_EXCLUDE_DEFAULT); + if (excludeDefaultStr != null) + { + excludeDefault = BooleanUtils.toBoolean(excludeDefaultStr); + } + return excludeDefault; + } + } \ No newline at end of file |