You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/06/28 14:44:59 UTC

svn commit: r789093 - in /incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax: enterprise/inject/Instance.java inject/

Author: gerdogdu
Date: Sun Jun 28 12:44:59 2009
New Revision: 789093

URL: http://svn.apache.org/viewvc?rev=789093&view=rev
Log:
Updating Instance interface. Removing @Obtains annotation.

Removed:
    incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/inject/
Modified:
    incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/enterprise/inject/Instance.java

Modified: incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/enterprise/inject/Instance.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/enterprise/inject/Instance.java?rev=789093&r1=789092&r2=789093&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/enterprise/inject/Instance.java (original)
+++ incubator/openwebbeans/trunk/webbeans-api/src/main/java/javax/enterprise/inject/Instance.java Sun Jun 28 12:44:59 2009
@@ -15,8 +15,67 @@
 
 import java.lang.annotation.Annotation;
 
-public interface Instance<T>
+/**
+ * The <code>Instance</code> interface provides a method for obtaining 
+ * instances of beans with required types and bindings.
+ * 
+ * @version $Rev$ $Date$
+ *
+ * @param <T> bean required type
+ */
+public interface Instance<T> extends Iterable<T>
 {
-    T get(Annotation... annotations);
+    /**
+     * Returns bean instance with required type 
+     * and required binding type that are defined
+     * at the injection point.
+     * 
+     * @return bean instance with required type and required binding type
+     */
+    public T get();
+    
+    /**
+     * Creates new <code>Instance</code> with given
+     * binding annotations. 
+     * 
+     * @param bindings
+     * @return new child instance with given binding types.
+     */
+    public Instance<T> select(Annotation... bindings);
+    
+    /**
+     * Returns new child instance with given class and binding types.
+     * 
+     * @param <U> subtype info
+     * @param subtype subtype class
+     * @param bindings binding types
+     * @return new child instance with given class and binding types
+     */
+    public <U extends T> Instance<U> select(Class<U> subtype, Annotation... bindings);
+    
+    /**
+     * Return new child instance with given class info and binding types.
+     * 
+     * @param <U> subtype info
+     * @param subtype subtype class
+     * @param bindings binding types
+     * @return new child instance with given class info and binding types
+     */
+    public <U extends T> Instance<U> select(TypeLiteral<U> subtype, Annotation... bindings);
+    
+    /**
+     * Return true if resulotion is unsatisfied, false otherwise.
+     * 
+     * @return true if resulotion is unsatisfied, false otherwise
+     */
+    public boolean isUnsatisfied();
 
-}
+    /**
+     * Returns true if resolution is ambigious, false otherwise.
+     * 
+     * @return true if resolution is ambigious, false otherwise.
+     */
+    public boolean isAmbiguous();
+
+
+}
\ No newline at end of file