/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.annotations;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import org.jboss.seam.ScopeType;
/**
* Specifies that a seam component should be outjected from
* the annotated field or getter method of a session bean.
*
* @author Gavin King
*/
@Target({FIELD, METHOD})
@Retention(RUNTIME)
@Documented
public @interface Out
{
/**
* The context variable name. Defaults to the name of
* the annotated field or getter method.
*/
String value() default "";
/**
* Specifies that the outjected value must not be
* null, by default.
*/
boolean required() default true;
/**
* Specifies the scope to outject to. If no scope is
* explicitly specified, the default scope depends
* upon whether the value is an instance of a Seam
* component. If it is, the component scope is
* used. Otherwise, the scope of the component with
* the @Out attribute is used. But if the component
* scope is STATELESS, the EVENT scope is used.
*/
ScopeType scope() default ScopeType.UNSPECIFIED;
}