Weld SVN: r4271 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 19:00:54 -0400 (Sat, 24 Oct 2009)
New Revision: 4271
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java
Log:
minor fixes
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java 2009-10-24 22:56:44 UTC (rev 4270)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java 2009-10-24 23:00:54 UTC (rev 4271)
@@ -93,8 +93,8 @@
*
* <pre>for (PaymentProcessor pp: anyPaymentProcessor) pp.test();</pre>
*
- * @see {@link javax.inject.Provider#get()}
- * @see {@link java.lang.Iterable#iterator()}
+ * @see javax.inject.Provider#get()
+ * @see java.lang.Iterable#iterator()
* @see javax.enterprise.inject.AnnotationLiteral
* @see javax.enterprise.inject.TypeLiteral
*
@@ -141,6 +141,10 @@
public <U extends T> Instance<U> select(TypeLiteral<U> subtype, Annotation... qualifiers);
/**
+ * <p>Determines if there is no bean that matches the required type and
+ * qualifiers and is eligible for injection into the class into which the parent
+ * <tt>Instance</tt> was injected.</p>
+ *
* @return <tt>true</tt> if there is no bean that matches the required type and
* qualifiers and is eligible for injection into the class into which the parent
* <tt>Instance</tt> was injected, or <tt>false</tt> otherwise.
@@ -148,6 +152,10 @@
public boolean isUnsatisfied();
/**
+ * <p>Determines if there is more than one bean that matches the required type and
+ * qualifiers and is eligible for injection into the class into which the parent
+ * <tt>Instance</tt> was injected.</p>
+ *
* @return <tt>true</tt> if there is more than one bean that matches the required
* type and qualifiers and is eligible for injection into the class into which the
* parent <tt>Instance</tt> was injected, or <tt>false</tt> otherwise.
15 years, 2 months
Weld SVN: r4270 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 18:56:44 -0400 (Sat, 24 Oct 2009)
New Revision: 4270
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java
Log:
javadoc for Instance
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java 2009-10-24 16:44:14 UTC (rev 4269)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Instance.java 2009-10-24 22:56:44 UTC (rev 4270)
@@ -23,41 +23,135 @@
/**
- * An interface for looking up beans of a particular type.
+ * <p>Allows the application to dynamically obtain instances of
+ * beans with a specified combination of required type and
+ * qualifiers.</p>
*
+ * <p>In certain situations, injection is not the most convenient
+ * way to obtain a contextual reference. For example, it may not
+ * be used when:</p>
+ *
+ * <ul>
+ * <li>the bean type or qualifiers vary dynamically at runtime, or</li>
+ * <li>depending upon the deployment, there may be no bean which
+ * satisfies the type and qualifiers, or</li>
+ * <li>we would like to iterate over all beans of a certain type.</li>
+ * </ul>
+ *
+ * <p>In these situations, an instance of the <tt>Instance</tt> may
+ * be injected:</p>
+ *
+ * <pre>
+ * @Inject Instance<PaymentProcessor> paymentProcessor;
+ * </pre>
+ *
+ * <p>Any combination of qualifiers may be specified at the injection
+ * point:</p>
+ *
+ * <pre>
+ * @Inject @PayBy(CHEQUE) Instance<PaymentProcessor> chequePaymentProcessor;
+ * </pre>
+ *
+ * <p>Or, the {@link javax.enterprise.inject.Any @Any} qualifier may
+ * be used, allowing the application to specify qualifiers dynamically:</p>
+ *
+ * <pre>
+ * @Inject @Any Instance<PaymentProcessor> anyPaymentProcessor;
+ * </pre>
+ *
+ * <p>Finally, the {@link javax.enterprise.inject.New @New} qualifier
+ * may be used, allowing the application to obtain a
+ * {@link javax.enterprise.inject.New @New} qualified bean:</p>
+ *
+ * <pre>
+ * @Inject @New(ChequePaymentProcessor.class)
+ * Instance<PaymentProcessor> chequePaymentProcessor;
+ * </pre>
+ *
+ * <p>For an injected <tt>Instance</tt>:</p>
+ *
+ * <ul>
+ * <li>the <em>required type</em> is the type parameter specified at the
+ * injection point, and</li>
+ * <li>the <em>required qualifiers</em> are the qualifiers specified at
+ * the injection point.</li>
+ * </ul>
+ *
+ * <p>The inherited {@link javax.inject.Provider#get()} method returns a
+ * contextual references for the unique bean that matches the required
+ * type and required qualifiers and is eligible for injection into the class
+ * into which the parent <tt>Instance</tt> was injected, or throws an
+ * {@link javax.enterprise.inject.UnsatisfiedResolutionException} or
+ * {@link javax.enterprise.inject.AmbiguousResolutionException}.</p>
+ *
+ * <pre>PaymentProcessor pp = chequePaymentProcessor.get();</pre>
+ *
+ * <p>The inherited {@link java.lang.Iterable#iterator()} method returns
+ * an iterator over contextual references for beans that match the required
+ * type and required qualifiers and are eligible for injection into the class
+ * into which the parent <tt>Instance</tt> was injected.</p>
+ *
+ * <pre>for (PaymentProcessor pp: anyPaymentProcessor) pp.test();</pre>
+ *
+ * @see {@link javax.inject.Provider#get()}
+ * @see {@link java.lang.Iterable#iterator()}
+ * @see javax.enterprise.inject.AnnotationLiteral
+ * @see javax.enterprise.inject.TypeLiteral
+ *
* @author Gavin King
*
- * @param <T>
- * the type of the event object
+ * @param <T> the required bean type
*/
public interface Instance<T> extends Iterable<T>, Provider<T>
{
+
/**
- * Get an instance of a bean of the specified type.
+ * <p>Obtains a child <tt>Instance</tt> for a given required type and additional
+ * required qualifiers. If no required type is given, the required type is the
+ * same as the parent.
*
- * Additional binding annotations may be specified at the injection point.
+ * @param qualifiers the additional required qualifiers
+ * @return the child <tt>Instance</tt>
+ */
+ public Instance<T> select(Annotation... qualifiers);
+
+ /**
+ * <p>Obtains a child <tt>Instance</tt> for a given required type and additional
+ * required qualifiers. If no required type is given, the required type is the
+ * same as the parent.
*
- * @param bindings
- * Additional binding types
- * @return an instance of a bean of the specified type
- * @throws IllegalArgumentException
- * if two instances of the same binding type are passed
- * @throws IllegalArgumentException
- * if an instance of an annotation that is not a binding type is
- * passed
+ * @param <U> the required type
+ * @param subtype a {@link java.lang.Class} representing the required type
+ * @param qualifiers the additional required qualifiers
+ * @return the child <tt>Instance</tt>
+ */
+ public <U extends T> Instance<U> select(Class<U> subtype, Annotation... qualifiers);
+
+ /**
+ * <p>Obtains a child <tt>Instance</tt> for a given required type and additional
+ * required qualifiers. If no required type is given, the required type is the
+ * same as the parent.
*
+ * @param <U> the required type
+ * @param subtype a {@link javax.enterprise.inject.TypeLiteral} representing the required type
+ * @param qualifiers the additional required qualifiers
+ * @return the child <tt>Instance</tt>
*/
- public T get(Annotation... bindings);
+ public <U extends T> Instance<U> select(TypeLiteral<U> subtype, Annotation... qualifiers);
- public Instance<T> select(Annotation... bindings);
-
- public <U extends T> Instance<U> select(Class<U> subtype, Annotation... bindings);
-
- public <U extends T> Instance<U> select(TypeLiteral<U> subtype, Annotation... bindings);
-
+ /**
+ * @return <tt>true</tt> if there is no bean that matches the required type and
+ * qualifiers and is eligible for injection into the class into which the parent
+ * <tt>Instance</tt> was injected, or <tt>false</tt> otherwise.
+ */
public boolean isUnsatisfied();
+ /**
+ * @return <tt>true</tt> if there is more than one bean that matches the required
+ * type and qualifiers and is eligible for injection into the class into which the
+ * parent <tt>Instance</tt> was injected, or <tt>false</tt> otherwise.
+ */
public boolean isAmbiguous();
}
15 years, 2 months
Weld SVN: r4269 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 12:44:14 -0400 (Sat, 24 Oct 2009)
New Revision: 4269
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java
Log:
move
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java 2009-10-24 16:42:54 UTC (rev 4268)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java 2009-10-24 16:44:14 UTC (rev 4269)
@@ -32,6 +32,10 @@
* developer to identify such a role and declare some common metadata
* for beans with that role in a central place.</p>
*
+ * <p>A bean may declare zero, one or multiple stereotypes, by
+ * applying the stereotype annotation to the bean class or producer
+ * method or field.</p>
+ *
* <p>A stereotype encapsulates any combination of:</p>
*
* <ul>
@@ -110,10 +114,6 @@
* stereotype is inherited by all beans and other stereotypes that
* declare the second stereotype.</p>
*
- * <p>A bean may declare zero, one or multiple stereotypes, by
- * applying the stereotype annotation to the bean class or producer
- * method or field.</p>
- *
* @see javax.enterprise.inject.Model the built-in stereotype <tt>@Model</tt>
*
* @author Pete Muir
15 years, 2 months
Weld SVN: r4268 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 12:42:54 -0400 (Sat, 24 Oct 2009)
New Revision: 4268
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java
Log:
doc @Stereotype
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java 2009-10-24 16:42:34 UTC (rev 4267)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Stereotype.java 2009-10-24 16:42:54 UTC (rev 4268)
@@ -25,8 +25,97 @@
import java.lang.annotation.Target;
/**
- * Specifies that an annotation type is a stereotype.
+ * <p>Specifies that an annotation type is a stereotype.</p>
*
+ * <p>In many systems, use of architectural patterns produces
+ * a set of recurring bean roles. A stereotype allows a framework
+ * developer to identify such a role and declare some common metadata
+ * for beans with that role in a central place.</p>
+ *
+ * <p>A stereotype encapsulates any combination of:</p>
+ *
+ * <ul>
+ * <li>a default scope, and</li>
+ * <li>a set of interceptor bindings.</li>
+ * </ul>
+ *
+ * <p>The default scope of a stereotype is defined by annotating the
+ * stereotype with a scope type. A stereotype may declare at most one
+ * scope. If a bean explicitly declares a scope, any default scopes
+ * declared by its stereotypes are ignored.</p>
+ *
+ * <pre>
+ * @RequestScoped
+ * @Stereotype
+ * @Target(TYPE)
+ * @Retention(RUNTIME)
+ * public @interface Action {}
+ * </pre>
+ *
+ * <p>The interceptor bindings of a stereotype are defined by annotating
+ * the stereotype with the interceptor binding types. A stereotype may
+ * declare zero, one or multiple interceptor bindings. An interceptor binding
+ * declared by a stereotype is inherited by any bean that declares that
+ * stereotype.</p>
+ *
+ * <pre>
+ * @RequestScoped
+ * @Secure
+ * @Transactional
+ * @Stereotype
+ * @Target(TYPE)
+ * @Retention(RUNTIME)
+ * public @interface Action {}
+ * </pre>
+ *
+ * <p>A stereotype may also specify that:</p>
+ *
+ * <ul>
+ * <li>all beans with the stereotype have defaulted bean EL names, or
+ * that</li>
+ * <li>all beans with the stereotype are alternatives.</li>
+ * </ul>
+ *
+ * <p>A stereotype may declare an empty
+ * {@link javax.inject.Named @Named} annotation, which specifies
+ * that every bean with the stereotype has a defaulted name when a
+ * name is not explicitly specified by the bean.</p>
+ *
+ * <pre>
+ * @RequestScoped
+ * @Named
+ * @Secure
+ * @Transactional
+ * @Stereotype
+ * @Target(TYPE)
+ * @Retention(RUNTIME)
+ * public @interface Action {}
+ * </pre>
+ *
+ * <p>A stereotype may declare an
+ * {@link javax.enterprise.inject.Alternative @Alternative}
+ * annotation, which specifies that every bean with the stereotype is
+ * an alternative.</p>
+ *
+ * <pre>
+ * @Alternative
+ * @Stereotype
+ * @Target(TYPE)
+ * @Retention(RUNTIME)
+ * public @interface Mock {}
+ * </pre>
+ *
+ * <p>A stereotype may declare other stereotypes. Stereotype
+ * declarations are transitive. A stereotype declared by a second
+ * stereotype is inherited by all beans and other stereotypes that
+ * declare the second stereotype.</p>
+ *
+ * <p>A bean may declare zero, one or multiple stereotypes, by
+ * applying the stereotype annotation to the bean class or producer
+ * method or field.</p>
+ *
+ * @see javax.enterprise.inject.Model the built-in stereotype <tt>@Model</tt>
+ *
* @author Pete Muir
* @author Gavin King
*/
15 years, 2 months
Weld SVN: r4267 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 12:42:34 -0400 (Sat, 24 Oct 2009)
New Revision: 4267
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
Log:
ups
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 16:42:24 UTC (rev 4266)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 16:42:34 UTC (rev 4267)
@@ -53,7 +53,7 @@
*
* <h3>Qualifiers</h3>
*
- * <p>A {@linkplain javax.inject.Qualfiier qualifier} represents some
+ * <p>A {@linkplain javax.inject.Qualifier qualifier} represents some
* client-visible semantic associated with a type that is satisfied
* by some implementations of the type (and not by others). Qualifiers
* are applied to injection points to distinguish which implementation
15 years, 2 months
Weld SVN: r4266 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 12:42:24 -0400 (Sat, 24 Oct 2009)
New Revision: 4266
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Model.java
Log:
doc @Model
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Model.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Model.java 2009-10-24 16:07:18 UTC (rev 4265)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Model.java 2009-10-24 16:42:24 UTC (rev 4266)
@@ -12,8 +12,11 @@
import javax.inject.Named;
/**
- * A stereotype for MVC model objects
+ * <p>The built-in stereotype intended for use with beans
+ * that define the model layer of an MVC web application
+ * architecture such as JSF.</p>
*
+ * @see javax.enterprise.inject.Stereotype
* @author Gavin King
*/
15 years, 2 months
Weld SVN: r4265 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 12:07:18 -0400 (Sat, 24 Oct 2009)
New Revision: 4265
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Nonbinding.java
Log:
javadoc for @Nonbinding
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Nonbinding.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Nonbinding.java 2009-10-24 15:46:55 UTC (rev 4264)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Nonbinding.java 2009-10-24 16:07:18 UTC (rev 4265)
@@ -24,9 +24,22 @@
import java.lang.annotation.Target;
/**
- * Specifies that a member of a binding type or interceptor binding type is to
- * be ignored for the purposes of resolution.
+ * <p>Excludes a member of a qualifier type or interceptor binding type
+ * from consideration by the resolution algorithms.</p>
*
+ * <pre>
+ * @Qualifier
+ * @Retention(RUNTIME)
+ * @Target({METHOD, FIELD, PARAMETER, TYPE})
+ * public @interface PayBy {
+ * PaymentMethod value();
+ * @Nonbinding String comment();
+ * }
+ * </pre>
+ *
+ * <p>Array-valued or annotation-valued members of a qualifier type should be
+ * annotated <tt>@Nonbinding</tt> in a portable application.</p>
+ *
* @author Gavin King
*
*/
15 years, 2 months
Weld SVN: r4264 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-24 11:46:55 -0400 (Sat, 24 Oct 2009)
New Revision: 4264
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/Specializes.java
api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
Log:
doc for specializes and enabled
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/Specializes.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/Specializes.java 2009-10-24 03:23:23 UTC (rev 4263)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/Specializes.java 2009-10-24 15:46:55 UTC (rev 4264)
@@ -26,9 +26,37 @@
import java.lang.annotation.Target;
/**
- * Specifies that an implementation class directly specializes its superclass,
- * of that a producer method directly specializes the method it overrides.
+ * <p>Indicates that a bean directly specializes another bean.
+ * May be applied to a bean class or producer method.</p>
*
+ * <p>If a bean directly specializes a second bean, it
+ * inherits all qualifiers of the second bean, and has the
+ * same name as the second bean. If the second bean has
+ * a name, the bean may not declare a name using
+ * {@link javax.inject.Named @Named}. Furthermore,
+ * the bean must have all the bean types of the second
+ * bean.</p>
+ *
+ * <ul>
+ * <li>If a bean class of a managed bean is annotated
+ * <tt>@Specializes</tt>, then the bean class must
+ * directly extend the bean class of a second managed bean.
+ * Then the first managed bean directly specializes the
+ * second managed bean.</li>
+ *
+ * <li>If a bean class of a session bean is annotated
+ * <tt>@Specializes</tt>, then the bean class must
+ * directly extend the bean class of a second session bean.
+ * Then the first session bean directly specializes the
+ * second session bean.</li>
+ *
+ * <li>If a producer method is annotated
+ * <tt>@Specializes</tt>, then it must be non-static
+ * and directly override another producer method. Then the
+ * first producer method directly specializes the second
+ * producer method.</li>
+ * </ul>
+ *
* @author Gavin King
* @author Pete Muir
*/
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 03:23:23 UTC (rev 4263)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 15:46:55 UTC (rev 4264)
@@ -252,6 +252,24 @@
*
* <p>A resource may not have an EL name.</p>
*
+ * <h3>Enabled and disabled beans</h3>
+ *
+ * <p>A bean is said to be enabled if:</p>
+ *
+ * <ul>
+ * <li>it is deployed in a bean deployment archive (a module with a <tt>beans.xml</tt>
+ * file), and</li>
+ * <li>it is not a
+ * {@linkplain javax.enterprise.inject.Produces producer method or field}
+ * of a disabled bean, and</li>
+ * <li>it is not {@linkplain javax.enterprise.inject.Specializes specialized}
+ * by any other enabled bean, and either</li>
+ * <li>it is not an {@linkplain javax.enterprise.inject.Alternative alternative},
+ * or it is a selected alternative of at least one bean deployment archive.</li>
+ * </ul>
+ *
+ * <p>Otherwise, the bean is said to be disabled.</p>
+ *
* @see javax.enterprise.inject.Produces
* @see javax.inject.Scope
* @see javax.inject.Named
15 years, 2 months
Weld SVN: r4263 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-23 23:23:23 -0400 (Fri, 23 Oct 2009)
New Revision: 4263
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
Log:
minor improvs
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 03:17:10 UTC (rev 4262)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 03:23:23 UTC (rev 4263)
@@ -84,9 +84,9 @@
*
* <h3>Scope</h3>
*
- * <p>All beans have a scope. The scope of a bean determines the lifecycle
- * of its instances, and which instances of the bean are visible to instances
- * of other beans.</p>
+ * <p>All beans have a {@linkplain javax.enterprise.context scope}. The
+ * scope of a bean determines the lifecycle of its instances, and which
+ * instances of the bean are visible to instances of other beans.</p>
*
* <p>The scope of a bean is defined by annotating the bean class or producer
* method or field with a scope type or stereotype that declares a default
@@ -97,6 +97,9 @@
* public class Order { ... }
* </pre>
*
+ * <p>A bean class or producer method or field may specify at most one
+ * scope type annotation.</p>
+ *
* <h3>Bean EL name</h3>
*
* <p>A bean may have a bean EL name. A bean with an EL name may be referred
15 years, 2 months
Weld SVN: r4262 - api/trunk/cdi/src/main/java/javax/enterprise/inject.
by weld-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-10-23 23:17:10 -0400 (Fri, 23 Oct 2009)
New Revision: 4262
Modified:
api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
Log:
improve
Modified: api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java
===================================================================
--- api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 03:15:50 UTC (rev 4261)
+++ api/trunk/cdi/src/main/java/javax/enterprise/inject/package-info.java 2009-10-24 03:17:10 UTC (rev 4262)
@@ -29,8 +29,6 @@
* }
* </pre>
*
- * <p>The bean types of a bean are determined automatically.</p>
- *
* <p>Almost any Java type may be a bean type of a bean:</tt>
*
* <ul>
@@ -49,7 +47,8 @@
* <p>A type variable is not a legal bean type. A parameterized type
* that contains a wildcard type parameter is not a legal bean type.</p>
*
- * <p>The bean types of a bean may be resticted using the
+ * <p>The bean types of a bean are determined automatically. However,
+ * the set of bean types may be resticted using the
* {@link javax.enterprise.inject.Typed @Typed} annotation.</p>
*
* <h3>Qualifiers</h3>
15 years, 2 months