/*
* 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.TYPE;
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 the name and scope role for a seam component role.
* If a component has no <tt>@Role</tt> annotation, it has exactly
* one role, defined by <tt>@Name</tt> and <tt>@Scope</tt>. If it has
* one or more <tt>@Role</tt> annotations, the component has one or more
* roles in addition to the default role defined by <tt>@Name</tt> and
* <tt>@Scope</tt>.
*
* @author C�sar Izurieta
*/
@Target(TYPE)
@Retention(RUNTIME)
@Documented
public @interface Role
{
String name();
ScopeType scope() default ScopeType.UNSPECIFIED;
}