User: salborini
  Date: 00/07/26 15:35:22

  Modified:    src/main/org/jboss/ejb EntityContainer.java
  Log:
  Added support for finder methods that return java.util.Enumeration
  
  Revision  Changes    Path
  1.15      +18 -2     jboss/src/main/org/jboss/ejb/EntityContainer.java
  
  Index: EntityContainer.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/ejb/EntityContainer.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- EntityContainer.java      2000/07/14 18:36:20     1.14
  +++ EntityContainer.java      2000/07/26 22:35:22     1.15
  @@ -25,6 +25,7 @@
   import javax.ejb.RemoveException;
   
   import org.jboss.logging.Logger;
  +import org.jboss.util.SerializableEnumeration;
   
   /**
    *   This is a Container for EntityBeans (both BMP and CMP).
  @@ -33,7 +34,8 @@
    *   @see EntityEnterpriseContext
    *   @author Rickard �berg ([EMAIL PROTECTED])
    *   @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
  - *   @version $Revision: 1.14 $
  + *   @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
  + *   @version $Revision: 1.15 $
    */
   public class EntityContainer
      extends Container
  @@ -365,7 +367,21 @@
         {
            // Iterator finder
            Collection c = getPersistenceManager().findEntities(mi.getMethod(), 
mi.getArguments(), (EntityEnterpriseContext)mi.getEnterpriseContext());
  -         return containerInvoker.getEntityCollection(c);
  +         Collection ec = containerInvoker.getEntityCollection(c);
  +              
  +              // BMP entity finder methods are allowed to return 
java.util.Enumeration.
  +              // We need a serializable Enumeration, so we can't use 
Collections.enumeration()
  +              try {
  +                      if 
(mi.getMethod().getReturnType().equals(Class.forName("java.util.Enumeration"))) {
  +                              return new SerializableEnumeration(ec);
  +                      } else {
  +                              return ec;
  +                      }
  +              } catch (ClassNotFoundException e) {
  +                     // shouldn't happen
  +             return ec;
  +              }
  +                            
         } else
         {
            // Single entity finder
  
  
  

Reply via email to