[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