Author: abelevich
Date: 2009-08-06 13:00:45 -0400 (Thu, 06 Aug 2009)
New Revision: 15124
Modified:
root/framework/trunk/impl/src/main/java/org/ajax4jsf/config/FrameworkConfiguration.java
Log:
fix el resolve
Modified:
root/framework/trunk/impl/src/main/java/org/ajax4jsf/config/FrameworkConfiguration.java
===================================================================
---
root/framework/trunk/impl/src/main/java/org/ajax4jsf/config/FrameworkConfiguration.java 2009-08-06
16:51:20 UTC (rev 15123)
+++
root/framework/trunk/impl/src/main/java/org/ajax4jsf/config/FrameworkConfiguration.java 2009-08-06
17:00:45 UTC (rev 15124)
@@ -8,13 +8,13 @@
import javax.el.ValueExpression;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
-import javax.servlet.ServletContext;
import org.ajax4jsf.util.ELUtils;
import org.richfaces.util.RichfacesLogger;
import org.slf4j.Logger;
+
/**
* @author Anton Belevich
* @since 4.0
@@ -26,27 +26,15 @@
private static final Logger logger = RichfacesLogger.CONFIG.getLogger();
-
- private Map<BooleanInitParam, Boolean> booleanInitParams = new
EnumMap<BooleanInitParam, Boolean>(BooleanInitParam.class);
-
private Map<InitParam, String> initParams = new EnumMap<InitParam,
String>(InitParam.class);
-
- private Map<NumberInitParam, Integer> numberInitParams = new
EnumMap<NumberInitParam, Integer>(NumberInitParam.class);
- ServletContext servletContext;
-
- private static final Pattern ALLOWABLE_BOOLEANS =
Pattern.compile("true|false");
+ private static final Pattern ALLOWABLE_BOOLEANS =
Pattern.compile("true|false");
- private static final Pattern ALLOWABLE_NUMBER = Pattern.compile("[0-9]");
+ private static final Pattern ALLOWABLE_NUMBER = Pattern.compile("[0-9]");
-
- private FrameworkConfiguration(ServletContext servletContext) {
-
- this.servletContext = servletContext;
-
- processInitParams(servletContext);
- processBooleanInitParams(servletContext);
- processNumberParams(servletContext);
+
+ private FrameworkConfiguration(ExternalContext externalContext) {
+ processInitParams(externalContext);
}
public static FrameworkConfiguration getInstance() {
@@ -55,162 +43,72 @@
}
- public static FrameworkConfiguration getInstance(ExternalContext extContext) {
- //TODO create instance of FrameworkConfiguration
- return null;
-
+ public static FrameworkConfiguration getInstance(ExternalContext externalContext) {
+ return new FrameworkConfiguration(externalContext);
}
- private boolean isBooleanValueValid(BooleanInitParam param, String value) {
+ private boolean isBooleanValue(InitParam param, String value) {
return !ALLOWABLE_BOOLEANS.matcher(value).matches();
}
- private boolean isNumberValueValid(NumberInitParam param, String value) {
+ private boolean isNumberValue(InitParam param, String value) {
return !ALLOWABLE_NUMBER.matcher(value).matches();
}
- public String getOptionValue(InitParam param) {
- return initParams.get(param);
+ public int getOptionNumber(InitParam param) {
+ int intValue = -1;
+ String value = getOptionValue(param);
+ if(isNumberValue(param, value)) {
+ if(ELUtils.isValueReference(value)) {
+ intValue = ((Integer)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.Integer.class)).intValue();
+ } else {
+ intValue = Integer.parseInt(value);
+ }
+ } else {
+ logger.error("option value is not Integer number");
+ }
+ return intValue;
}
- public int getOptionValue(NumberInitParam param) {
- return ((Integer)numberInitParams.get(param)).intValue();
+ public boolean isOptionEnabled(InitParam param) {
+ boolean isEnabled = false;
+ String value = getOptionValue(param);
+ if(isBooleanValue(param, value)) {
+ if(ELUtils.isValueReference(value)) {
+ isEnabled = ((Boolean)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.Boolean.class)).booleanValue();
+ } else {
+ isEnabled = Boolean.parseBoolean(value);
+ }
+ } else {
+ logger.error("option value is not boolean value");
+ }
+ return isEnabled;
}
- public boolean isOptionEnabled(BooleanInitParam param) {
- return ((Boolean)booleanInitParams.get(param)).booleanValue();
+ public String getOptionValue(InitParam param) {
+ return initParams.get(param);
}
-
-
- private void processBooleanInitParams(ServletContext servletContext){
- for(BooleanInitParam param: BooleanInitParam.values()) {
-
- String paramName = param.qualifiedName;
- String paramValue = servletContext.getInitParameter(paramName);
- Boolean value = param.getDefaultValue();
-
- if(paramValue != null) {
-
- if(isBooleanValueValid(param, paramValue)) {
- value = Boolean.parseBoolean(paramValue);
- } else if(ELUtils.isValueReference(paramValue)) {
- value = (Boolean)resolveELParam(FacesContext.getCurrentInstance(), paramValue,
java.lang.Boolean.class);
- } else {
- //TODO: add log about default value
- }
- }
-
- booleanInitParams.put(param, value);
- }
- }
-
- private void processInitParams(ServletContext context){
+
+ private void processInitParams(ExternalContext externalContext){
for(InitParam param: InitParam.values()) {
-
String paramName = param.qualifiedName;
- String paramValue = servletContext.getInitParameter(paramName);
+ String paramValue = externalContext.getInitParameter(paramName);
String value = param.getDefaultValue();
-
- if(paramValue != null) {
- if(ELUtils.isValueReference(paramValue)) {
- value = (String)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.String.class);
- } else {
- value = paramValue;
- }
+
+ if (paramValue != null) {
+ value = paramValue;
}
initParams.put(param, value);
}
}
-
- private void processNumberParams(ServletContext servletContext){
- for(NumberInitParam param: NumberInitParam.values()) {
-
- String paramName = param.qualifiedName;
- String paramValue = servletContext.getInitParameter(paramName);
- Integer value = Integer.valueOf(param.getDefaultValue());
-
- if(paramValue != null) {
- if(ELUtils.isValueReference(paramValue)) {
- value = (Integer)resolveELParam(FacesContext.getCurrentInstance(), paramValue,
java.lang.Integer.class);
- } else if(isNumberValueValid(param, paramValue)){
- value = Integer.parseInt(paramValue);
- } else {
- //TODO log
- }
- }
-
- numberInitParams.put(param, value);
- }
- }
private Object resolveELParam(FacesContext context, String value, Class <?>
expectedClass) {
ExpressionFactory factory = context.getApplication().getExpressionFactory();
ValueExpression valueExpression = factory.createValueExpression(value, expectedClass);
return valueExpression.getValue(context.getELContext());
}
-
- public enum NumberInitParam {
-
- DEFAULT_EXPIRE (
- "org.ajax4jsf.DEFAULT_EXPIRE",
- 86400
- );
-
- private String qualifiedName;
- private int defaultValue;
-
- NumberInitParam(String qualifiedName, int defaultValue) {
- this.qualifiedName = qualifiedName;
- this.defaultValue = defaultValue;
- }
-
- public int getDefaultValue() {
- return defaultValue;
- }
-
- public String getQualifiedName() {
- return qualifiedName;
- }
- }
-
- public enum BooleanInitParam {
-
- ENCRYPT_RESOURCE_DATA(
- "org.ajax4jsf.ENCRYPT_RESOURCE_DATA",
- false
- ),
-
- COMPRESS_SCRIPT(
- "org.ajax4jsf.COMPRESS_SCRIPT",
- true
- ),
-
- SERIALIZE_SERVER_STATE(
- "org.ajax4jsf.SERIALIZE_SERVER_STATE",
- false
- );
-
-
- private String qualifiedName;
- private boolean defaultValue;
-
- BooleanInitParam(String qualifiedName, boolean defaultValue) {
- this.qualifiedName = qualifiedName;
- this.defaultValue = defaultValue;
- }
-
- public boolean getDefaultValue() {
- return defaultValue;
- }
-
- public String getQualifiedName() {
- return qualifiedName;
- }
-
- }
-
public enum InitParam {
SKIN (
@@ -256,9 +154,29 @@
SESSION_RESOURCE_URI_PREFIX(
"org.ajax4jsf.SESSION_RESOURCE_URI_PREFIX",
"a4j/s"
- );
+ ),
+ ENCRYPT_RESOURCE_DATA(
+ "org.ajax4jsf.ENCRYPT_RESOURCE_DATA",
+ "false"
+ ),
+ COMPRESS_SCRIPT(
+ "org.ajax4jsf.COMPRESS_SCRIPT",
+ "true"
+ ),
+
+ SERIALIZE_SERVER_STATE(
+ "org.ajax4jsf.SERIALIZE_SERVER_STATE",
+ "false"
+ ),
+
+
+ DEFAULT_EXPIRE (
+ "org.ajax4jsf.DEFAULT_EXPIRE",
+ "86400"
+ );
+
private String qualifiedName;
private String defaultValue;