[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Gavin King
gavin.king at jboss.com
Tue Jun 19 15:15:10 EDT 2007
User: gavin
Date: 07/06/19 15:15:10
Added: src/main/org/jboss/seam/util JSF.java
Log:
repackaged built-in components
sorry for breakage, but it had to happen eventually :-(
Revision Changes Path
1.1 date: 2007/06/19 19:15:10; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/util/JSF.java
Index: JSF.java
===================================================================
package org.jboss.seam.util;
import java.lang.reflect.Method;
public class JSF
{
public static final Class PHASE_ID;
public static final Class FACES_EVENT;
public static final Class DATA_MODEL;
public static final Class VALIDATOR_EXCEPTION;
public static final Class CONVERTER_EXCEPTION;
public static final Method GET_WRAPPED_DATA;
public static final Method SET_WRAPPED_DATA;
public static final Method GET_ROW_COUNT;
public static final Object RESTORE_VIEW;
public static final Object UPDATE_MODEL_VALUES;
public static final Object INVOKE_APPLICATION;
public static final Object RENDER_RESPONSE;
public static class Dummy {}
static
{
PHASE_ID = classForName("javax.faces.event.PhaseId");
FACES_EVENT = classForName("javax.faces.event.FacesEvent");
DATA_MODEL = classForName("javax.faces.model.DataModel");
VALIDATOR_EXCEPTION = classForName("javax.faces.validator.ValidatorException");
CONVERTER_EXCEPTION = classForName("javax.faces.convert.ConverterException");
GET_WRAPPED_DATA = methodForName(DATA_MODEL, "getWrappedData");
SET_WRAPPED_DATA = methodForName(DATA_MODEL, "setWrappedData", Object.class);
GET_ROW_COUNT = methodForName(DATA_MODEL, "getRowCount");
RESTORE_VIEW = constantValueForName(PHASE_ID, "RESTORE_VIEW");
UPDATE_MODEL_VALUES = constantValueForName(PHASE_ID, "UPDATE_MODEL_VALUES");
INVOKE_APPLICATION = constantValueForName(PHASE_ID, "INVOKE_APPLICATION");
RENDER_RESPONSE = constantValueForName(PHASE_ID, "RENDER_RESPONSE");
}
private static Class classForName(String name)
{
try
{
return Reflections.classForName(name);
}
catch (ClassNotFoundException cnfe)
{
return Dummy.class;
}
}
private static Method methodForName(Class clazz, String name, Class... paramTypes)
{
if (clazz.equals(Dummy.class)) return null;
try
{
return clazz.getDeclaredMethod(name, paramTypes);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
private static Object constantValueForName(Class clazz, String name)
{
if (clazz.equals(Dummy.class)) return null;
try
{
return clazz.getField(name).get(null);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
public static int getRowCount(Object dataModel)
{
return (Integer) Reflections.invokeAndWrap(GET_ROW_COUNT, dataModel);
}
public static Object getWrappedData(Object dataModel)
{
return Reflections.invokeAndWrap(GET_WRAPPED_DATA, dataModel);
}
public static Object setWrappedData(Object dataModel, Object data)
{
return Reflections.invokeAndWrap(SET_WRAPPED_DATA, dataModel, data);
}
}
More information about the jboss-cvs-commits
mailing list