org.apache.myfaces.extensions.cdi.core.impl.projectstage
Class ProjectStageProducer

java.lang.Object
  extended by org.apache.myfaces.extensions.cdi.core.impl.projectstage.ProjectStageProducer
All Implemented Interfaces:
Serializable

@ApplicationScoped
public class ProjectStageProducer
extends Object
implements Serializable

Produces ProjectStage configurations.

The producer will try to detect the currently active ProjectStage on startup and use that for all generated fields.

In case a JSF runtime is not available (e.g. in unit tests) we do all the determining ourself (but in the same way as MyFaces does it!)

Usage:

Simply inject the current ProjectStage into any bean:
 public class MyBean {
   private @Inject ProjectStage projectStage;

   public void fn() {
     if(projectStage == ProjectStage.Production) {
        // do some prodution stuff...
     }
   }
 }
 

See Also:
Serialized Form

Field Summary
protected static Logger LOG
           
 
Constructor Summary
protected ProjectStageProducer()
          ProjectStageProducers must only be created by subclassing producers
 
Method Summary
static ProjectStageProducer getInstance()
          This factory method should only get used if there is absolutly no way to get the current ProjectStage via @Inject.
 ProjectStage getProjectStage()
          We can only produce @Dependent scopes since an enum is final.
protected  void initProjectStage()
           
protected  void reset()
           
protected  ProjectStage resolveProjectStage()
          Resolves the project-stage configured for codi
static void setProjectStage(ProjectStage ps)
          This function can be used to manually set the ProjectStage for the application.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static final Logger LOG
Constructor Detail

ProjectStageProducer

protected ProjectStageProducer()
ProjectStageProducers must only be created by subclassing producers

Method Detail

getProjectStage

@Produces
@Dependent
@Default
public ProjectStage getProjectStage()
We can only produce @Dependent scopes since an enum is final.

Returns:
current ProjectStage

reset

protected void reset()

getInstance

public static ProjectStageProducer getInstance()

This factory method should only get used if there is absolutly no way to get the current ProjectStage via @Inject.

Returns:
the ProjectStageProducer instance.

setProjectStage

public static void setProjectStage(ProjectStage ps)
This function can be used to manually set the ProjectStage for the application. This is e.g. useful in unit tests.

Parameters:
ps - the ProjectStage to set

resolveProjectStage

protected ProjectStage resolveProjectStage()
Resolves the project-stage configured for codi

Returns:
the resolved ProjectStage or null if none defined.

initProjectStage

protected void initProjectStage()


Copyright © 2010-2011 The Apache Software Foundation. All Rights Reserved.