Author: craigmcc
Date: Mon Jan 16 23:07:46 2006
New Revision: 369703
URL: http://svn.apache.org/viewcvs?rev=369703&view=rev
Log:
Implement support for by-type converters (as well as by-id).
Preregister all the standard by-type and by-id converters that a standard
JSF implementation does.
Modified:
struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockApplication.java
Modified:
struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockApplication.java
URL:
http://svn.apache.org/viewcvs/struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockApplication.java?rev=369703&r1=369702&r2=369703&view=diff
==============================================================================
---
struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockApplication.java
(original)
+++
struts/shale/trunk/test-framework/src/java/org/apache/shale/test/mock/MockApplication.java
Mon Jan 16 23:07:46 2006
@@ -58,6 +58,7 @@
setActionListener(new MockActionListener());
components = new HashMap();
converters = new HashMap();
+ converters1 = new HashMap();
setDefaultLocale(Locale.getDefault());
setDefaultRenderKitId(RenderKitFactory.HTML_BASIC_RENDER_KIT);
setNavigationHandler(new MockNavigationHandler());
@@ -68,6 +69,37 @@
setVariableResolver(new MockVariableResolver());
setViewHandler(new MockViewHandler());
+ // Register the standard by-id converters
+ addConverter("javax.faces.BigDecimal",
"javax.faces.convert.BigDecimalConverter");
+ addConverter("javax.faces.BigInteger",
"javax.faces.convert.BigIntegerConverter");
+ addConverter("javax.faces.Boolean",
"javax.faces.convert.BooleanConverter");
+ addConverter("javax.faces.Byte",
"javax.faces.convert.ByteConverter");
+ addConverter("javax.faces.Character",
"javax.faces.convert.CharacterConverter");
+ addConverter("javax.faces.DateTime",
"javax.faces.convert.DateTimeConverter");
+ addConverter("javax.faces.Double",
"javax.faces.convert.DoubleConverter");
+ addConverter("javax.faces.Float",
"javax.faces.convert.FloatConverter");
+ addConverter("javax.faces.Integer",
"javax.faces.Convert.IntegerConverter");
+ addConverter("javax.faces.Long",
"javax.faces.convert.LongConverter");
+ addConverter("javax.faces.Number",
"javax.faces.convert.NumberConverter");
+ addConverter("javax.faces.Short",
"javax.faces.convert.ShortConverter");
+
+ // Register the standard by-type converters
+ addConverter(Boolean.class,
"javax.faces.convert.BooleanConverter");
+ addConverter(Boolean.TYPE,
"javax.faces.convert.BooleanConverter");
+ addConverter(Byte.class,
"javax.faces.convert.ByteConverter");
+ addConverter(Byte.TYPE,
"javax.faces.convert.ByteConverter");
+ addConverter(Character.class,
"javax.faces.convert.CharacterConverter");
+ addConverter(Character.TYPE,
"javax.faces.convert.CharacterConverter");
+ addConverter(Double.class,
"javax.faces.convert.DoubleConverter");
+ addConverter(Double.TYPE,
"javax.faces.convert.DoubleConverter");
+ addConverter(Float.class,
"javax.faces.convert.FloatConverter");
+ addConverter(Float.TYPE,
"javax.faces.convert.FloatConverter");
+ addConverter(Integer.class,
"javax.faces.convert.IntegerConverter");
+ addConverter(Integer.TYPE,
"javax.faces.convert.IntegerConverter");
+ addConverter(Long.class,
"javax.faces.convert.LongConverter");
+ addConverter(Long.TYPE,
"javax.faces.convert.LongConverter");
+ addConverter(Short.class,
"javax.faces.convert.ShortConverter");
+ addConverter(Short.TYPE,
"javax.faces.convert.ShortConverter");
}
@@ -79,7 +111,8 @@
private ActionListener actionListener = null;
private Map components = null;
- private Map converters = null;
+ private Map converters = null; // By id
+ private Map converters1 = null; // By type
private Locale defaultLocale = null;
private String defaultRenderKitId = null;
private String messageBundle = null;
@@ -275,7 +308,7 @@
public void addConverter(Class targetClass, String converterClass) {
- throw new UnsupportedOperationException();
+ converters1.put(targetClass, converterClass);
}
@@ -295,7 +328,13 @@
public Converter createConverter(Class targetClass) {
- throw new UnsupportedOperationException();
+ String converterClass = (String) converters1.get(targetClass);
+ try {
+ Class clazz = Class.forName(converterClass);
+ return ((Converter) clazz.newInstance());
+ } catch (Exception e) {
+ throw new FacesException(e);
+ }
}
@@ -309,7 +348,7 @@
public Iterator getConverterTypes() {
- throw new UnsupportedOperationException();
+ return (converters1.keySet().iterator());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]