[seam-commits] Seam SVN: r7585 - in trunk/ui/src: main/java/org/jboss/seam/ui/converter and 1 other directories.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Fri Mar 14 18:03:45 EDT 2008
Author: pete.muir at jboss.org
Date: 2008-03-14 18:03:45 -0400 (Fri, 14 Mar 2008)
New Revision: 7585
Added:
trunk/ui/src/main/config/component/atomicBooleanConverter.xml
trunk/ui/src/main/config/component/atomicIntegerConverter.xml
trunk/ui/src/main/config/component/atomicLongConverter.xml
trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicBooleanConverter.java
trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicIntegerConverter.java
trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicLongConverter.java
trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicBooleanConverterTest.java
trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicIntegerConverterTest.java
trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicLongConverterTest.java
Log:
JBSEAM-2171
Added: trunk/ui/src/main/config/component/atomicBooleanConverter.xml
===================================================================
--- trunk/ui/src/main/config/component/atomicBooleanConverter.xml (rev 0)
+++ trunk/ui/src/main/config/component/atomicBooleanConverter.xml 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <converter generate="false">
+ <id>org.jboss.seam.ui.AtomicBooleanConverter</id>
+ <family>org.jboss.seam.ui.AtomicBooleanConverter</family>
+ <classname>org.jboss.seam.ui.converter.AtomicBooleanConverter</classname>
+ <description>
+ <![CDATA[Converter for java.util.concurrent.atomic.AtomicBoolean]]>
+ </description>
+ <tag>
+ <name>convertAtomicBoolean</name>
+ <classname>org.jboss.seam.ui.taglib.AtomicBooleanTag</classname>
+ <superclass>
+ javax.faces.webapp.ConverterELTag
+ </superclass>
+ </tag>
+ </converter>
+</components>
Property changes on: trunk/ui/src/main/config/component/atomicBooleanConverter.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/main/config/component/atomicIntegerConverter.xml
===================================================================
--- trunk/ui/src/main/config/component/atomicIntegerConverter.xml (rev 0)
+++ trunk/ui/src/main/config/component/atomicIntegerConverter.xml 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <converter generate="false">
+ <id>org.jboss.seam.ui.AtomicIntegerConverter</id>
+ <family>org.jboss.seam.ui.AtomicIntegerConverter</family>
+ <classname>org.jboss.seam.ui.converter.AtomicIntegerConverter</classname>
+ <description>
+ <![CDATA[Converter for java.util.concurrent.atomic.AtomicInteger]]>
+ </description>
+ <tag>
+ <name>convertAtomicInteger</name>
+ <classname>org.jboss.seam.ui.taglib.AtomicIntegerTag</classname>
+ <superclass>
+ javax.faces.webapp.ConverterELTag
+ </superclass>
+ </tag>
+ </converter>
+</components>
Property changes on: trunk/ui/src/main/config/component/atomicIntegerConverter.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/main/config/component/atomicLongConverter.xml
===================================================================
--- trunk/ui/src/main/config/component/atomicLongConverter.xml (rev 0)
+++ trunk/ui/src/main/config/component/atomicLongConverter.xml 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <converter generate="false">
+ <id>org.jboss.seam.ui.AtomicLongConverter</id>
+ <family>org.jboss.seam.ui.AtomicLongConverter</family>
+ <classname>org.jboss.seam.ui.converter.AtomicLongConverter</classname>
+ <description>
+ <![CDATA[Converter for java.util.concurrent.atomic.AtomicLong]]>
+ </description>
+ <tag>
+ <name>convertAtomicLong</name>
+ <classname>org.jboss.seam.ui.taglib.AtomicLongTag</classname>
+ <superclass>
+ javax.faces.webapp.ConverterELTag
+ </superclass>
+ </tag>
+ </converter>
+</components>
Property changes on: trunk/ui/src/main/config/component/atomicLongConverter.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicBooleanConverter.java
===================================================================
--- trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicBooleanConverter.java (rev 0)
+++ trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicBooleanConverter.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,44 @@
+package org.jboss.seam.ui.converter;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicBooleanConverter implements Converter
+{
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String string)
+ {
+ return string != null && string.trim().length() > 0 ? new AtomicBoolean(Boolean.parseBoolean(string.trim())) : null;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object)
+ {
+ String string = "";
+ if (object != null)
+ {
+ if (object instanceof String)
+ {
+ string = (String) object;
+ }
+ else if (object instanceof AtomicBoolean)
+ {
+ string = ((AtomicBoolean) object).toString();
+ }
+ else
+ {
+ throw new ConverterException("Received an instance of " + object.getClass().getName() + ", but was expecting an instance of " + AtomicInteger.class.getName());
+ }
+ }
+ return string;
+ }
+
+}
Property changes on: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicBooleanConverter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicIntegerConverter.java
===================================================================
--- trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicIntegerConverter.java (rev 0)
+++ trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicIntegerConverter.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,55 @@
+package org.jboss.seam.ui.converter;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicIntegerConverter implements Converter
+{
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String value)
+ {
+ Object object = null;
+ if (value != null && value.trim().length() > 0)
+ {
+ try
+ {
+ object = new AtomicInteger(Integer.parseInt(value.trim()));
+ }
+ catch (NumberFormatException nfe)
+ {
+ throw new ConverterException(nfe);
+ }
+ }
+ return object;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object)
+ {
+ String string = "";
+ if (object != null)
+ {
+ if (object instanceof String)
+ {
+ string = (String) object;
+ }
+ else if (object instanceof AtomicInteger)
+ {
+ string = ((AtomicInteger) object).toString();
+ }
+ else
+ {
+ throw new ConverterException("Received an instance of " + object.getClass().getName() + ", but was expecting an instance of " + AtomicInteger.class.getName());
+ }
+ }
+ return string;
+ }
+
+}
Property changes on: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicIntegerConverter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicLongConverter.java
===================================================================
--- trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicLongConverter.java (rev 0)
+++ trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicLongConverter.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,54 @@
+package org.jboss.seam.ui.converter;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicLongConverter implements Converter
+{
+
+ public Object getAsObject(FacesContext ctx, UIComponent ui, String value)
+ {
+ Object object = null;
+ if (value != null && value.trim().length() > 0)
+ {
+ try
+ {
+ object = new AtomicLong(Long.parseLong(value.trim()));
+ }
+ catch (NumberFormatException nfe)
+ {
+ throw new ConverterException(nfe);
+ }
+ }
+ return object;
+ }
+
+ public String getAsString(FacesContext ctx, UIComponent ui, Object object)
+ {
+ String string = "";
+ if (object != null)
+ {
+ if (object instanceof String)
+ {
+ string = (String) object;
+ }
+ else if (object instanceof AtomicLong)
+ {
+ string = ((AtomicLong) object).toString();
+ }
+ else
+ {
+ throw new ConverterException("Received an instance of " + object.getClass().getName() + ", but was expecting an instance of " + AtomicLong.class.getName());
+ }
+ }
+ return string;
+ }
+}
Property changes on: trunk/ui/src/main/java/org/jboss/seam/ui/converter/AtomicLongConverter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicBooleanConverterTest.java
===================================================================
--- trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicBooleanConverterTest.java (rev 0)
+++ trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicBooleanConverterTest.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,57 @@
+package org.jboss.seam.ui.test;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.seam.ui.converter.AtomicBooleanConverter;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicBooleanConverterTest
+{
+
+ @Test
+ public void testGetAsObject()
+ {
+ Converter converter = new AtomicBooleanConverter();
+ assertNull(converter.getAsObject(null, null, null));
+ assertNull(converter.getAsObject(null, null, ""));
+ assertNull(converter.getAsObject(null, null, " "));
+ assertTrue(((AtomicBoolean) converter.getAsObject(null, null, "true")).get());
+ assertTrue(((AtomicBoolean) converter.getAsObject(null, null, "true ")).get());
+ assertTrue(((AtomicBoolean) converter.getAsObject(null, null, " true")).get());
+ assertFalse(((AtomicBoolean) converter.getAsObject(null, null, "false")).get());
+ assertFalse(((AtomicBoolean) converter.getAsObject(null, null, "false ")).get());
+ assertFalse(((AtomicBoolean) converter.getAsObject(null, null, " false")).get());
+ assertFalse(((AtomicBoolean) converter.getAsObject(null, null, " boom ")).get());
+
+ }
+
+ @Test
+ public void testGetAsString()
+ {
+ Converter converter = new AtomicBooleanConverter();
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals("true", converter.getAsString(null, null, new AtomicBoolean(true)));
+ assertEquals("false", converter.getAsString(null, null, new AtomicBoolean(false)));
+ try
+ {
+ converter.getAsString(null, null, new Boolean(true));
+ fail();
+ }
+ catch (ConverterException c) {}
+
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicBooleanConverterTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicIntegerConverterTest.java
===================================================================
--- trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicIntegerConverterTest.java (rev 0)
+++ trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicIntegerConverterTest.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,61 @@
+package org.jboss.seam.ui.test;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.seam.ui.converter.AtomicIntegerConverter;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+import static org.testng.Assert.assertEquals;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicIntegerConverterTest
+{
+
+ @Test
+ public void testGetAsObject()
+ {
+ Converter converter = new AtomicIntegerConverter();
+ assertNull(converter.getAsObject(null, null, null));
+ assertNull(converter.getAsObject(null, null, ""));
+ assertNull(converter.getAsObject(null, null, " "));
+ assertTrue(8 == ((AtomicInteger) converter.getAsObject(null, null, " 8")).intValue());
+ assertTrue(8 == ((AtomicInteger) converter.getAsObject(null, null, "8 ")).intValue());
+ assertTrue(8 == ((AtomicInteger) converter.getAsObject(null, null, "8")).intValue());
+ int over = Integer.MAX_VALUE + 1;
+ assertTrue(over == ((AtomicInteger) converter.getAsObject(null, null, over + "")).intValue());
+ int under = Integer.MIN_VALUE - 1;
+ assertTrue(under == ((AtomicInteger) converter.getAsObject(null, null, under + "")).intValue());
+
+ try
+ {
+ converter.getAsObject(null, null, "NaN");
+ fail("should only take numbers");
+ }
+ catch (ConverterException c) { }
+ }
+
+ @Test
+ public void testGetAsString()
+ {
+ Converter converter = new AtomicIntegerConverter();
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals(" ", converter.getAsString(null, null, " "));
+ assertEquals("-1", converter.getAsString(null, null, new AtomicInteger(-1)));
+ try
+ {
+ converter.getAsString(null, null, new Integer(0));
+ fail("should only take atomic ints");
+ }
+ catch (ConverterException c) { }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicIntegerConverterTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicLongConverterTest.java
===================================================================
--- trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicLongConverterTest.java (rev 0)
+++ trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicLongConverterTest.java 2008-03-14 22:03:45 UTC (rev 7585)
@@ -0,0 +1,61 @@
+package org.jboss.seam.ui.test;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+import org.jboss.seam.ui.converter.AtomicLongConverter;
+import org.testng.annotations.Test;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
+
+/**
+ * @author Dennis Byrne
+ */
+
+public class AtomicLongConverterTest
+{
+
+ @Test
+ public void testGetAsObject()
+ {
+ Converter converter = new AtomicLongConverter();
+ assertNull(converter.getAsObject(null, null, null));
+ assertNull(converter.getAsObject(null, null, ""));
+ assertNull(converter.getAsObject(null, null, " "));
+ assertTrue(8 == ((AtomicLong) converter.getAsObject(null, null, " 8")).longValue());
+ assertTrue(8 == ((AtomicLong) converter.getAsObject(null, null, "8 ")).longValue());
+ assertTrue(8 == ((AtomicLong) converter.getAsObject(null, null, "8")).longValue());
+ long over = Long.MAX_VALUE + 1;
+ assertTrue(over == ((AtomicLong) converter.getAsObject(null, null, over + "")).longValue());
+ long under = Long.MIN_VALUE - 1;
+ assertTrue(under == ((AtomicLong) converter.getAsObject(null, null, under + "")).longValue());
+ try
+ {
+ converter.getAsObject(null, null, "NaN");
+ fail("should only take numbers");
+ }
+ catch (ConverterException c) { }
+
+ }
+
+ @Test
+ public void testGetAsString()
+ {
+ Converter converter = new AtomicLongConverter();
+ assertEquals("", converter.getAsString(null, null, null));
+ assertEquals("", converter.getAsString(null, null, ""));
+ assertEquals(" ", converter.getAsString(null, null, " "));
+ assertEquals("-1", converter.getAsString(null, null, new AtomicLong(-1)));
+ try
+ {
+ converter.getAsString(null, null, new Long(0));
+ fail("should only take atomic ints");
+ }
+ catch (ConverterException c) { }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/ui/src/test/java/org/jboss/seam/ui/test/AtomicLongConverterTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the seam-commits
mailing list