details:   https://code.openbravo.com/erp/devel/pi/rev/796c6f172597
changeset: 30492:796c6f172597
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Tue Oct 18 08:36:30 2016 +0200
summary:   Fixes issue 34228: Add getInstances method to WeldUtils class
Add the getInstances method

diffstat:

 modules/org.openbravo.base.weld/src/org/openbravo/base/weld/WeldUtils.java |  
19 ++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diffs (34 lines):

diff -r f4adff9d033c -r 796c6f172597 
modules/org.openbravo.base.weld/src/org/openbravo/base/weld/WeldUtils.java
--- 
a/modules/org.openbravo.base.weld/src/org/openbravo/base/weld/WeldUtils.java    
    Mon Oct 17 19:46:29 2016 +0200
+++ 
b/modules/org.openbravo.base.weld/src/org/openbravo/base/weld/WeldUtils.java    
    Tue Oct 18 08:36:30 2016 +0200
@@ -18,6 +18,8 @@
  */
 package org.openbravo.base.weld;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
 
 import javax.enterprise.context.ApplicationScoped;
@@ -120,4 +122,21 @@
     }
     throw new IllegalArgumentException("No bean found for type " + type);
   }
+
+  /**
+   * Returns a set of instances for a specified type/class
+   */
+  @SuppressWarnings("unchecked")
+  public static <T> List<T> getInstances(Class<T> type) {
+    final BeanManager beanManager = WeldUtils.getStaticInstanceBeanManager();
+    final Set<Bean<?>> beans = beanManager.getBeans(type);
+
+    final List<T> instances = new ArrayList<T>();
+    for (Bean<?> bean : beans) {
+      T instance = (T) beanManager.getReference(bean, type,
+          beanManager.createCreationalContext(bean));
+      instances.add(instance);
+    }
+    return instances;
+  }
 }

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to