org.jboss.seam.solder.bean
Class ImmutableBean<T>

java.lang.Object
  extended by org.jboss.seam.solder.bean.AbstractImmutableBean<T>
      extended by org.jboss.seam.solder.bean.ImmutableBean<T>
All Implemented Interfaces:
Contextual<T>, Bean<T>
Direct Known Subclasses:
ImmutablePassivationCapableBean

public class ImmutableBean<T>
extends AbstractImmutableBean<T>
implements Bean<T>

A base class for implementing Bean. The attributes are immutable, and collections are defensively copied on instantiation. It uses the defaults from the specification for properties if not specified.

This bean delegates it's lifecycle to the callbacks on the provided ContextualLifecycle.

Author:
Stuart Douglas, Pete Muir
See Also:
AbstractImmutableBean, BeanBuilder, ImmutablePassivationCapableBean

Constructor Summary
ImmutableBean(Class<?> beanClass, String name, Set<Annotation> qualifiers, Class<? extends Annotation> scope, Set<Class<? extends Annotation>> stereotypes, Set<Type> types, boolean alternative, boolean nullable, Set<InjectionPoint> injectionPoints, ContextualLifecycle<T> contextualLifecycle, String toString)
          Create a new, immutable bean.
 
Method Summary
 T create(CreationalContext<T> arg0)
           
 void destroy(T arg0, CreationalContext<T> arg1)
           
 
Methods inherited from class org.jboss.seam.solder.bean.AbstractImmutableBean
getBeanClass, getInjectionPoints, getName, getQualifiers, getScope, getStereotypes, getTypes, isAlternative, isNullable, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.enterprise.inject.spi.Bean
getBeanClass, getInjectionPoints, getName, getQualifiers, getScope, getStereotypes, getTypes, isAlternative, isNullable
 

Constructor Detail

ImmutableBean

public ImmutableBean(Class<?> beanClass,
                     String name,
                     Set<Annotation> qualifiers,
                     Class<? extends Annotation> scope,
                     Set<Class<? extends Annotation>> stereotypes,
                     Set<Type> types,
                     boolean alternative,
                     boolean nullable,
                     Set<InjectionPoint> injectionPoints,
                     ContextualLifecycle<T> contextualLifecycle,
                     String toString)
Create a new, immutable bean. All arguments passed as collections are defensively copied.

Parameters:
beanClass - The Bean class, may not be null
name - The bean name
qualifiers - The bean's qualifiers, if null, a singleton set of Default is used
scope - The bean's scope, if null, the default scope of Dependent is used
stereotypes - The bean's stereotypes, if null, an empty set is used
types - The bean's types, if null, the beanClass and Object will be used
alternative - True if the bean is an alternative
nullable - True if the bean is nullable
injectionPoints - the bean's injection points, if null an empty set is used
contextualLifecycle - Handler for create(CreationalContext) and destroy(Object, CreationalContext)
toString - the string representation of the bean, if null the built in representation is used, which states the bean class and qualifiers
Throws:
IllegalArgumentException - if the beanClass is null
Method Detail

create

public T create(CreationalContext<T> arg0)
Specified by:
create in interface Contextual<T>

destroy

public void destroy(T arg0,
                    CreationalContext<T> arg1)
Specified by:
destroy in interface Contextual<T>


Copyright © 2008-2010 Seam Framework. All Rights Reserved.