Author: abelevich
Date: 2009-08-10 07:28:57 -0400 (Mon, 10 Aug 2009)
New Revision: 15143
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-10
11:07:17 UTC (rev 15142)
+++
root/framework/trunk/impl/src/main/java/org/ajax4jsf/config/FrameworkConfiguration.java 2009-08-10
11:28:57 UTC (rev 15143)
@@ -25,12 +25,11 @@
private static final Logger logger = RichfacesLogger.CONFIG.getLogger();
-
private Map<InitParam, String> initParams = new EnumMap<InitParam,
String>(InitParam.class);
- private static final Pattern ALLOWABLE_BOOLEANS =
Pattern.compile("true|false");
+ private static final Pattern ALLOWABLE_BOOLEANS =
Pattern.compile("true|false",Pattern.CASE_INSENSITIVE);
- private static final Pattern ALLOWABLE_NUMBER = Pattern.compile("[0-9]");
+ private static final Pattern ALLOWABLE_NUMBER = Pattern.compile("^\\d+$");
private FrameworkConfiguration(ExternalContext externalContext) {
@@ -48,44 +47,52 @@
}
private boolean isBooleanValue(InitParam param, String value) {
- return !ALLOWABLE_BOOLEANS.matcher(value).matches();
+ return ALLOWABLE_BOOLEANS.matcher(value).matches();
}
private boolean isNumberValue(InitParam param, String value) {
- return !ALLOWABLE_NUMBER.matcher(value).matches();
+ return ALLOWABLE_NUMBER.matcher(value).matches();
}
public int getOptionNumber(InitParam param) {
- int intValue = -1;
- String value = getOptionValue(param);
+
+ String value = getOption(param);
+
+ if(ELUtils.isValueReference(value)) {
+ return ((Integer)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.Integer.class)).intValue();
+ }
+
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;
+ return Integer.parseInt(value);
+ }
+ logger.error("option value: " + param.getQualifiedName() + " is not
Integer number set default value: " + param.getDefaultValue());
+ return Integer.parseInt(param.getDefaultValue());
}
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");
+ String value = getOption(param);
+
+ if(ELUtils.isValueReference(value)) {
+ return ((Boolean)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.Boolean.class)).booleanValue();
+ }
+
+ if(isBooleanValue(param, value)) {
+ return Boolean.parseBoolean(value);
+ }
+
+ logger.error("option value: " + param.getQualifiedName() + " is not
boolean value set default value: " + param.getDefaultValue());
+ return Boolean.parseBoolean(param.getDefaultValue());
+ }
+
+ public String getOptionValue(InitParam param) {
+ String value = getOption(param);
+ if(ELUtils.isValueReference(value)) {
+ return (String)resolveELParam(FacesContext.getCurrentInstance(), value,
java.lang.String.class);
}
- return isEnabled;
+ return value;
}
- public String getOptionValue(InitParam param) {
+ public String getOption(InitParam param) {
return initParams.get(param);
}
@@ -95,18 +102,21 @@
String paramValue = externalContext.getInitParameter(paramName);
String value = param.getDefaultValue();
- if (paramValue != null) {
+ if (paramValue != null && !"".equals(paramValue.trim())) {
value = paramValue;
- }
+ }
initParams.put(param, value);
}
}
- private Object resolveELParam(FacesContext context, String value, Class <?>
expectedClass) {
+ public Object resolveELParam(FacesContext context, String value, Class <?>
expectedClass) {
+
ExpressionFactory factory = context.getApplication().getExpressionFactory();
- ValueExpression valueExpression = factory.createValueExpression(value, expectedClass);
- return valueExpression.getValue(context.getELContext());
+ ValueExpression valueExpression = factory.createValueExpression(context.getELContext(),
value, expectedClass);
+ Object returnValue = valueExpression.getValue(context.getELContext());
+
+ return returnValue;
}
public enum InitParam {
Show replies by date