Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2010, Red Hat, Inc., and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
  * http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package javax.enterprise.inject;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 

Specifies that an annotation type is a stereotype.

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.

A bean may declare zero, one or multiple stereotypes, by applying the stereotype annotation to the bean class or producer method or field.

A stereotype encapsulates any combination of:

  • a default scope, and
  • a set of interceptor bindings.

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.

 @RequestScoped
 @Stereotype
 @Target(TYPE)
 @Retention(RUNTIME)
 public 

Author(s):
Pete Muir
Gavin King
See also:
Model the built-in stereotype &.064;Model
Interface:
Action { }

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.

 @RequestScoped
 @Secure
 @Transactional
 @Stereotype
 @Target(TYPE)
 @Retention(RUNTIME)
 public @interface Action {
 }
 

A stereotype may also specify that:

  • all beans with the stereotype have defaulted bean EL names, or that
  • all beans with the stereotype are alternatives.

A stereotype may declare an empty &.064;Named annotation, which specifies that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean.

 @RequestScoped
 @Named
 @Secure
 @Transactional
 @Stereotype
 @Target(TYPE)
 @Retention(RUNTIME)
 public @interface Action {
 }
 

A stereotype may declare an &.064;Alternative annotation, which specifies that every bean with the stereotype is an alternative.

 @Alternative
 @Stereotype
 @Target(TYPE)
 @Retention(RUNTIME)
 public @interface Mock {
 }
 

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.

public @interface Stereotype {
New to GrepCode? Check out our FAQ X