You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:05:51 UTC
[31/50] [abbrv] zest-qi4j git commit: QI-318 Explicit Character/char
support
QI-318 Explicit Character/char support
Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/85c1ca26
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/85c1ca26
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/85c1ca26
Branch: refs/heads/master
Commit: 85c1ca26a6b2ab58bf5fa31e046127003708236b
Parents: d6dc0c9
Author: Paul Merlin <pa...@nosphere.org>
Authored: Sun Feb 17 01:43:21 2013 +0100
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Sun Feb 17 01:43:21 2013 +0100
----------------------------------------------------------------------
core/api/src/docs/valuecomposite.txt | 1 +
.../org/qi4j/api/value/ValueDeserializer.java | 1 +
.../org/qi4j/api/value/ValueSerializer.java | 1 +
.../spi/value/ValueDeserializerAdapter.java | 9 +++++++++
.../qi4j/spi/value/ValueSerializerAdapter.java | 2 ++
.../AbstractCollectionSerializationTest.java | 21 ++++++++++++++++++++
.../AbstractPlainValueSerializationTest.java | 10 ++++++++++
7 files changed, 45 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/api/src/docs/valuecomposite.txt
----------------------------------------------------------------------
diff --git a/core/api/src/docs/valuecomposite.txt b/core/api/src/docs/valuecomposite.txt
index 7536401..d5a0e05 100644
--- a/core/api/src/docs/valuecomposite.txt
+++ b/core/api/src/docs/valuecomposite.txt
@@ -51,6 +51,7 @@ EntityComposites and EntityReferences are serialized as their identity string.
Plain Values can be one of :
* String,
+ * Character or char,
* Boolean or boolean,
* Integer or int,
* Long or long,
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java b/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
index b40c56a..d17657d 100644
--- a/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
+++ b/core/api/src/main/java/org/qi4j/api/value/ValueDeserializer.java
@@ -42,6 +42,7 @@ import org.qi4j.functional.Function2;
* </p>
* <ul>
* <li>String,</li>
+ * <li>Character or char,</li>
* <li>Boolean or boolean,</li>
* <li>Integer or int,</li>
* <li>Long or long,</li>
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/api/src/main/java/org/qi4j/api/value/ValueSerializer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/value/ValueSerializer.java b/core/api/src/main/java/org/qi4j/api/value/ValueSerializer.java
index a18f4db..3f68ffc 100644
--- a/core/api/src/main/java/org/qi4j/api/value/ValueSerializer.java
+++ b/core/api/src/main/java/org/qi4j/api/value/ValueSerializer.java
@@ -41,6 +41,7 @@ import org.qi4j.functional.Function;
* </p>
* <ul>
* <li>String,</li>
+ * <li>Character or char,</li>
* <li>Boolean or boolean,</li>
* <li>Integer or int,</li>
* <li>Long or long,</li>
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java b/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
index e5285fc..35dfcd8 100644
--- a/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
+++ b/core/spi/src/main/java/org/qi4j/spi/value/ValueDeserializerAdapter.java
@@ -71,6 +71,7 @@ import static org.qi4j.functional.Iterables.*;
* </p>
* <ul>
* <li>String,</li>
+ * <li>Character or char,</li>
* <li>Boolean or boolean,</li>
* <li>Integer or int,</li>
* <li>Long or long,</li>
@@ -136,6 +137,14 @@ public abstract class ValueDeserializerAdapter<InputType, InputNodeType>
return input.toString();
}
} );
+ registerDeserializer( Character.class, new Function<Object, Character>()
+ {
+ @Override
+ public Character map( Object input )
+ {
+ return input.toString().charAt( 0 );
+ }
+ } );
registerDeserializer( Boolean.class, new Function<Object, Boolean>()
{
@Override
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java b/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
index fbefa77..1fb9a91 100644
--- a/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
+++ b/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
@@ -61,6 +61,7 @@ import static org.qi4j.functional.Iterables.*;
* </p>
* <ul>
* <li>String,</li>
+ * <li>Character or char,</li>
* <li>Boolean or boolean,</li>
* <li>Integer or int,</li>
* <li>Long or long,</li>
@@ -97,6 +98,7 @@ public abstract class ValueSerializerAdapter<OutputType>
{
// Primitive Value types
registerSerializer( String.class, Functions.<Object, String>identity() );
+ registerSerializer( Character.class, Functions.<Object, Character>identity() );
registerSerializer( Boolean.class, Functions.<Object, Boolean>identity() );
registerSerializer( Integer.class, Functions.<Object, Integer>identity() );
registerSerializer( Long.class, Functions.<Object, Long>identity() );
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
index 59f44cd..5c58c2a 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractCollectionSerializationTest.java
@@ -133,6 +133,16 @@ public class AbstractCollectionSerializationTest
}
@Test
+ public void givenCollectionTypeWithCharacterAndNullElementWhenSerializingAndDeserializingExpectEquals()
+ throws Exception
+ {
+ String output = valueSerialization.serialize( characterCollection() );
+ CollectionType collectionType = new CollectionType( List.class, new ValueType( Character.class ) );
+ List<Character> list = valueSerialization.deserialize( collectionType, output );
+ assertEquals( characterCollection(), list );
+ }
+
+ @Test
public void givenCollectionTypeWithShortAndNullElementWhenSerializingAndDeserializingExpectEquals()
throws Exception
{
@@ -259,6 +269,17 @@ public class AbstractCollectionSerializationTest
return value;
}
+ private List<Character> characterCollection()
+ {
+ List<Character> value = new ArrayList<Character>();
+ value.add( 'Q' );
+ value.add( 'i' );
+ value.add( null );
+ value.add( '4' );
+ value.add( 'j' );
+ return value;
+ }
+
private Collection<Short> shortCollection()
{
Collection<Short> value = new ArrayList<Short>();
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/85c1ca26/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
index f4aca44..09ceb5a 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
@@ -50,6 +50,16 @@ public abstract class AbstractPlainValueSerializationTest
protected ValueSerialization valueSerialization;
@Test
+ public void givenCharacterValueWhenSerializingAndDeserializingExpectEquals()
+ {
+ String serialized = valueSerialization.serialize( 'q' );
+ assertThat( "Serialized", serialized, equalTo( "q" ) );
+
+ Character deserialized = valueSerialization.deserialize( Character.class, serialized );
+ assertThat( "Deserialized", deserialized, equalTo( 'q' ) );
+ }
+
+ @Test
public void givenEmptyStringValueWhenSerializingAndDeserializingExpectEquals()
{
String serialized = valueSerialization.serialize( "" );