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

java.lang.Object
  extended by org.apache.myfaces.extensions.cdi.core.impl.projectstage.ProjectStageProducer

@Typed
public class ProjectStageProducer
extends Object

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...
     }
   }
 }
 
TODO move jsf specific parts


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  ProjectStage resolveProjectStage()
           
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
 

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

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()


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