[210497] Ejb validator does not complete in 12h for 10 ejb relations.
diff --git a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/CMPBeanClassVRule.java b/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/CMPBeanClassVRule.java index 0bc8c64..797ae20 100644 --- a/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/CMPBeanClassVRule.java +++ b/plugins/org.eclipse.jst.j2ee.core/j2ee-validation/org/eclipse/jst/j2ee/model/internal/validation/CMPBeanClassVRule.java
@@ -237,7 +237,9 @@ } } - List cmpFields = cmp.getFilteredFeatures(LocalModelledPersistentAttributeFilter.singleton()); + LocalModelledPersistentAttributeFilter filter = LocalModelledPersistentAttributeFilter.singleton(); + filter.enableCache(true); + List cmpFields = cmp.getFilteredFeatures(filter); if(cmpFields != null && !cmpFields.isEmpty()) { iterator = cmpFields.iterator(); while(iterator.hasNext()) { @@ -247,6 +249,7 @@ } } } + filter.clearCache(); } public void validateEjbCreateMethod(IEJBValidationContext vc, EnterpriseBean bean, JavaClass clazz, Method method, List[] methodsExtendedList) throws ValidationCancelledException, InvalidInputException, ValidationException {
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRelationshipRoleAttributeFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRelationshipRoleAttributeFilter.java index a05f6ee..f7cfdb7 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRelationshipRoleAttributeFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRelationshipRoleAttributeFilter.java
@@ -9,6 +9,7 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.ejb.internal.impl; + import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -16,84 +17,29 @@ import org.eclipse.jst.j2ee.ejb.CommonRelationshipRole; import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; - -/** - * Insert the type's description here. - * Creation date: (11/28/2000 7:06:49 PM) - * @author: Administrator - */ -public abstract class AbstractRelationshipRoleAttributeFilter extends ContainerManagedEntityFilter { -/** - * AbstractRelationshipRoleAttributeFilter constructor comment. - */ -public AbstractRelationshipRoleAttributeFilter() { - super(); -} -/** - * filter method comment. - */ -public List filter(ContainerManagedEntity cmp) { - List attributes = new ArrayList(); - Iterator it = getSourceRoles(cmp).iterator(); - CommonRelationshipRole role; - while (it.hasNext()) { - role = (CommonRelationshipRole) it.next(); - attributes.addAll(role.getAttributes()); +public abstract class AbstractRelationshipRoleAttributeFilter extends + ContainerManagedEntityFilter { + /** + * AbstractRelationshipRoleAttributeFilter constructor comment. + */ + public AbstractRelationshipRoleAttributeFilter() { + super(); } - return attributes; + + protected List filterNotcached(ContainerManagedEntity cmp) { + List attributes = new ArrayList(); + Iterator it = getSourceRoles(cmp).iterator(); + CommonRelationshipRole role; + while (it.hasNext()) { + role = (CommonRelationshipRole) it.next(); + attributes.addAll(role.getAttributes()); + } + return attributes; + } + + /** + * Return the proper list of roles from cmpExt. + */ + protected abstract java.util.List getSourceRoles( + ContainerManagedEntity cmpExt); } -/** - * Return the proper list of roles from cmpExt. - */ -protected abstract java.util.List getSourceRoles(ContainerManagedEntity cmpExt) ; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRequiredRelationshipRoleFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRequiredRelationshipRoleFilter.java index 765ec1e..8065ebd 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRequiredRelationshipRoleFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/AbstractRequiredRelationshipRoleFilter.java
@@ -27,10 +27,7 @@ public AbstractRequiredRelationshipRoleFilter() { super(); } -/** - * filter method comment. - */ -public List filter(ContainerManagedEntity cmp) { +protected List filterNotcached(ContainerManagedEntity cmp) { List roles = new ArrayList(); List allRoles = getRolesToFilter(cmp); CommonRelationshipRole role;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityFilter.java index 206558b..2a7d799 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ContainerManagedEntityFilter.java
@@ -12,7 +12,9 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.eclipse.jst.j2ee.ejb.CMPAttribute; import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; @@ -23,25 +25,26 @@ import org.eclipse.jst.j2ee.internal.IEJBModelExtenderManager; import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; - -/** - * Insert the type's description here. Creation date: (11/28/2000 6:28:39 PM) - * @author: Administrator - */ public abstract class ContainerManagedEntityFilter implements EJBExtensionFilter { - + + private static ThreadLocal<CMPCache> _cache = new ThreadLocal<CMPCache>(); - /** - * AttributeFilter constructor comment. - */ - public ContainerManagedEntityFilter() { - super(); + public List filter(ContainerManagedEntity cmp){ + List list = getCache(this, cmp); + if (list != null)return list; + + list = filterNotcached(cmp); + setCache(this, cmp, list); + return list; } - + /** - * filter method comment. + * Subclasses that don't implement the filter method need to override this method + * to provided the filtered results. */ - public abstract List filter(ContainerManagedEntity cmp); + protected List filterNotcached(ContainerManagedEntity cmp){ + return new ArrayList(); + } /** * All CMPAttributeFilters only operate on ContainerManagedEntityExtension @@ -98,4 +101,100 @@ if(extensionHelper != null) collectRelationshipRoles((ContainerManagedEntity) extensionHelper.getSuperType(cmp), extensionHelper, containerList); } + + /** + * Clear the cache and turn off caching. + */ + public void clearCache(){ + if (_cache == null)return; + getCache().clear(); + getCache().setEnabled(false); + } + + + protected void setCache(ContainerManagedEntityFilter filter, ContainerManagedEntity cmp, List list) { + getCache().set(filter, cmp, list); + } + + + protected List getCache(ContainerManagedEntityFilter filter, ContainerManagedEntity cmp) { + return getCache().get(filter, cmp); + } + + /** + * Answer the CMPCache for this thread. + * @return + */ + private CMPCache getCache(){ + CMPCache cache = _cache.get(); + if (cache == null){ + cache = new CMPCache(); + _cache.set(cache); + } + return cache; + } + + /** + * This method needs to be called (with the parameter true) if you wish the + * filter results to be cached. By default the results are not cached. + * <p> + * The cache is thread based. When done the clearCache method should be called. + * + * @param isEnabled set this to true to have the filter results cached. + */ + public void enableCache(boolean isEnabled){ + getCache().setEnabled(isEnabled); + } + + /** + * Keep a thread local cache of filtered results. + * @author karasiuk + * + */ + private static class CMPCache { + + /* + * We discovered some very deep code paths when validating EJBs. In one example project that + * only had a few beans, it took 12 hours to validate. Keeping a cache during validation + * reduced the time to seconds. + */ + + private Map _map = new HashMap(30); + + /** Is the cache turned on, by default it is not. */ + private boolean _enabled; + + public void setEnabled(boolean isEnabled){ + _enabled = isEnabled; + } + + public List get(ContainerManagedEntityFilter filter, ContainerManagedEntity cmp) { + if (!_enabled)return null; + + Map map = (Map)_map.get(filter); + if (map == null){ + map = new HashMap(100); + _map.put(filter, map); + } + return (List)map.get(cmp); + } + + public void set(ContainerManagedEntityFilter filter, ContainerManagedEntity cmp, List list) { + if (!_enabled)return; + + Map map = (Map)_map.get(filter); + if (map == null){ + map = new HashMap(100); + _map.put(filter, map); + } + + map.put(cmp, list); + } + + public void clear(){ + _map.clear(); + } + + } + }
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/KeyRelationshipRoleFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/KeyRelationshipRoleFilter.java index 01b7bea..bf7cb79 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/KeyRelationshipRoleFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/KeyRelationshipRoleFilter.java
@@ -29,10 +29,7 @@ private static KeyRelationshipRoleFilter singleton; - /** - * filter method comment. - */ - public java.util.List filter(ContainerManagedEntity cmp) { + protected List filterNotcached(ContainerManagedEntity cmp) { List keyRoles = new ArrayList(); Iterator it = getRelationshipRoles(cmp).iterator(); CommonRelationshipRole role;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/LocalOppositeRelationshipRoleFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/LocalOppositeRelationshipRoleFilter.java index 0348357..f6ad374 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/LocalOppositeRelationshipRoleFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/LocalOppositeRelationshipRoleFilter.java
@@ -32,7 +32,7 @@ /** * Return a List with the opposite roles for the local relationship roles. */ - public List filter(ContainerManagedEntity cmp) { + protected List filterNotcached(ContainerManagedEntity cmp) { List oppositeRoles = new ArrayList(); Iterator it = getLocalRelationshipRoles(cmp).iterator(); CommonRelationshipRole role, opposite;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledKeyAttributeFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledKeyAttributeFilter.java index aef838d..93da3ea 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledKeyAttributeFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledKeyAttributeFilter.java
@@ -9,97 +9,54 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.ejb.internal.impl; + +import java.util.ArrayList; import java.util.List; import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; /** - * This filter will return a subset of the keyAttributes from the - * ContainerManagedEntityExtension that is passed as an argument to the filter method. - * It will remove any keyAttributes that are held by EjbRelationshipRole objects (including - * inherited EjbRelationshipRole attributes). - * That means the returned list of CMPAttributes will be key attributes that were defined locally - * and all inherited key attributes minus any key attributes pointed to by EjbRelationshipRoles, thus the - * key attributes will only be key attributes that were defined by the user. - * Creation date: (11/28/2000 8:09:10 PM) + * This filter will return a subset of the keyAttributes from the + * ContainerManagedEntityExtension that is passed as an argument to the filter + * method. It will remove any keyAttributes that are held by EjbRelationshipRole + * objects (including inherited EjbRelationshipRole attributes). That means the + * returned list of CMPAttributes will be key attributes that were defined + * locally and all inherited key attributes minus any key attributes pointed to + * by EjbRelationshipRoles, thus the key attributes will only be key attributes + * that were defined by the user. Creation date: (11/28/2000 8:09:10 PM) + * * @author: Administrator */ public class ModelledKeyAttributeFilter extends ContainerManagedEntityFilter { private static ModelledKeyAttributeFilter singleton; -/** - * filter method comment. - */ -public List filter(ContainerManagedEntity cmp) { - return getSourceAttributes(cmp); + + protected List filterNotcached(ContainerManagedEntity cmp) { + return getSourceAttributes(cmp); + } + + /** + * Return the proper list of attributes from cmpExt. Return all attributes + * minus those added due to Relationship Roles. + */ + protected List getSourceAttributes(ContainerManagedEntity cmp) { + List all, localRoleKeyAttributes; + all = new ArrayList(cmp.getKeyAttributes()); + localRoleKeyAttributes = cmp + .getFilteredFeatures(KeyRelationshipRoleAttributeFilter + .singleton()); + filterRoleAttributesByName(all, localRoleKeyAttributes); + return all; + } + + /** + * Insert the method's description here. Creation date: (11/28/2000 5:36:00 + * PM) + * + * @return com.ibm.ejs.models.base.extensions.ejbext.impl.ModelledKeyAttributeFilter + */ + public static ModelledKeyAttributeFilter singleton() { + if (singleton == null) + singleton = new ModelledKeyAttributeFilter(); + return singleton; + } } -/** - * Return the proper list of attributes from cmpExt. - * Return all attributes minus those added due to Relationship Roles. - */ -protected java.util.List getSourceAttributes(ContainerManagedEntity cmp) { - java.util.List all, localRoleKeyAttributes; - all = new java.util.ArrayList(cmp.getKeyAttributes()); - localRoleKeyAttributes = cmp.getFilteredFeatures(KeyRelationshipRoleAttributeFilter.singleton()); - filterRoleAttributesByName(all, localRoleKeyAttributes); - return all; -} -/** - * Insert the method's description here. - * Creation date: (11/28/2000 5:36:00 PM) - * @return com.ibm.ejs.models.base.extensions.ejbext.impl.ModelledKeyAttributeFilter - */ -public static ModelledKeyAttributeFilter singleton() { - if (singleton == null) - singleton = new ModelledKeyAttributeFilter(); - return singleton; -} -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledPersistentAttributeFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledPersistentAttributeFilter.java index e68e8d0..99d38af 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledPersistentAttributeFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/ModelledPersistentAttributeFilter.java
@@ -9,97 +9,54 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.ejb.internal.impl; + +import java.util.ArrayList; import java.util.List; import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; /** - * This filter will return a subset of the persistentAttributes from the - * ContainerManagedEntityExtension that is passed as an argument to the filter method. - * It will remove any persistentAttributes that are held by EjbRelationshipRole objects (including - * inherited EjbRelationshipRole attributes). - * That means the returned list of CMPAttributes will be attributes that were defined locally - * and all inherited attributes minus any attributes pointed to by EjbRelationshipRoles, thus the - * attributes will only be attributes that were defined by the user. - * Creation date: (11/28/2000 7:31:42 PM) - * @author: Administrator + * This filter will return a subset of the persistentAttributes from the + * ContainerManagedEntityExtension that is passed as an argument to the filter + * method. It will remove any persistentAttributes that are held by + * EjbRelationshipRole objects (including inherited EjbRelationshipRole + * attributes). That means the returned list of CMPAttributes will be attributes + * that were defined locally and all inherited attributes minus any attributes + * pointed to by EjbRelationshipRoles, thus the attributes will only be + * attributes that were defined by the user. */ -public class ModelledPersistentAttributeFilter extends ContainerManagedEntityFilter { +public class ModelledPersistentAttributeFilter extends + ContainerManagedEntityFilter { + private static ModelledPersistentAttributeFilter singleton; -/** - * filter method comment. - */ -public List filter(ContainerManagedEntity cmp) { - return getSourceAttributes(cmp); + + protected List filterNotcached(ContainerManagedEntity cmp) { + return getSourceAttributes(cmp); + } + + /** + * Return the proper list of attributes from cmpExt. Return all attributes + * minus those added due to Relationship Roles. + */ + protected List getSourceAttributes(ContainerManagedEntity cmp) { + List all, roleAttributes; + all = new ArrayList(cmp.getPersistentAttributes()); + roleAttributes = cmp + .getFilteredFeatures(RelationshipRoleAttributeFilter + .singleton()); + filterRoleAttributesByName(all, roleAttributes); + return all; + } + + /** + * Insert the method's description here. Creation date: (11/28/2000 5:36:00 + * PM) + * + * @return com.ibm.ejs.models.base.extensions.ejbext.impl.ModelledPersistentAttributeFilter + */ + public static ModelledPersistentAttributeFilter singleton() { + if (singleton == null) + singleton = new ModelledPersistentAttributeFilter(); + return singleton; + } } -/** - * Return the proper list of attributes from cmpExt. - * Return all attributes minus those added due to Relationship Roles. - */ -protected java.util.List getSourceAttributes(ContainerManagedEntity cmp) { - java.util.List all, roleAttributes; - all = new java.util.ArrayList(cmp.getPersistentAttributes()); - roleAttributes = cmp.getFilteredFeatures(RelationshipRoleAttributeFilter.singleton()); - filterRoleAttributesByName(all, roleAttributes); - return all; -} -/** - * Insert the method's description here. - * Creation date: (11/28/2000 5:36:00 PM) - * @return com.ibm.ejs.models.base.extensions.ejbext.impl.ModelledPersistentAttributeFilter - */ -public static ModelledPersistentAttributeFilter singleton() { - if (singleton == null) - singleton = new ModelledPersistentAttributeFilter(); - return singleton; -} -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/NonKeyRequiredRoleFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/NonKeyRequiredRoleFilter.java index e31f73c..ad6c029 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/NonKeyRequiredRoleFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/NonKeyRequiredRoleFilter.java
@@ -24,20 +24,11 @@ import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; -/** - * @author jlanuti - * - * To change the template for this generated type comment go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ public class NonKeyRequiredRoleFilter extends ContainerManagedEntityFilter { private static NonKeyRequiredRoleFilter singleton; - /** - * filter method comment. - */ - public List filter(ContainerManagedEntity cmp) { + protected List filterNotcached(ContainerManagedEntity cmp) { List roles = new ArrayList(); Iterator it = getRelationshipRoles(cmp).iterator(); CommonRelationshipRole role;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/RequiredRelationshipRoleFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/RequiredRelationshipRoleFilter.java index 1404f3c..42ce821 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/RequiredRelationshipRoleFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/RequiredRelationshipRoleFilter.java
@@ -18,18 +18,11 @@ import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; -/** - * Insert the type's description here. Creation date: (8/6/2001 11:26:10 AM) - * @author: Administrator - */ public class RequiredRelationshipRoleFilter extends ContainerManagedEntityFilter { private static RequiredRelationshipRoleFilter singleton; - /** - * filter method comment. - */ - public List filter(ContainerManagedEntity cmp) { + protected List filterNotcached(ContainerManagedEntity cmp) { List roles = new ArrayList(); Iterator it = getRelationshipRoles(cmp).iterator(); CommonRelationshipRole role;
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/SupertypeCMPAttributeFilter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/SupertypeCMPAttributeFilter.java index 7e203cd..7e5236a 100644 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/SupertypeCMPAttributeFilter.java +++ b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/impl/SupertypeCMPAttributeFilter.java
@@ -18,11 +18,6 @@ import org.eclipse.jst.j2ee.internal.EjbModuleExtensionHelper; -/** - * Insert the type's description here. - * Creation date: (11/28/2000 6:54:26 PM) - * @author: Administrator - */ public abstract class SupertypeCMPAttributeFilter extends ContainerManagedEntityFilter { /** * SupertypeCMPAttributeFilter constructor comment. @@ -30,10 +25,8 @@ public SupertypeCMPAttributeFilter() { super(); } -/** - * filter method comment. - */ -public List filter(ContainerManagedEntity cmp) { + +protected List filterNotcached(ContainerManagedEntity cmp) { ContainerManagedEntity supertype = null; EjbModuleExtensionHelper extensionHelper = getEjbModuleExtHelper(cmp); if(extensionHelper != null) @@ -45,7 +38,7 @@ /** * filter method comment. */ -protected java.util.List filterUsingSupertype(ContainerManagedEntity cmp, ContainerManagedEntity supertype) { +protected List filterUsingSupertype(ContainerManagedEntity cmp, ContainerManagedEntity supertype) { ContainerManagedEntity superEntity = supertype; List result = new ArrayList(); Iterator it = getSourceAttributes(cmp).iterator(); @@ -60,7 +53,7 @@ /** * Return the proper list of attributes from cmpExt. */ -protected abstract java.util.List getSourceAttributes(ContainerManagedEntity cmp) ; +protected abstract List getSourceAttributes(ContainerManagedEntity cmp) ; /** * Return a boolean indicating whether anAttribute also exists in the superEntity. */