You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2017/03/13 10:35:40 UTC

[48/50] [abbrv] polygene-java git commit: POLYGENE-231 arrays default values

POLYGENE-231 arrays default values


Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/a94e4657
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/a94e4657
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/a94e4657

Branch: refs/heads/serialization-3.0
Commit: a94e465767faca965fefb31166e4e160cb5aa178
Parents: 2b5bad8
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Mar 6 17:56:07 2017 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Mar 13 11:24:42 2017 +0100

----------------------------------------------------------------------
 .../polygene/api/property/DefaultValues.java    |  5 +++
 .../runtime/defaults/UseDefaultsTest.java       | 34 +++++++++++++++++++-
 2 files changed, 38 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/a94e4657/core/api/src/main/java/org/apache/polygene/api/property/DefaultValues.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/polygene/api/property/DefaultValues.java b/core/api/src/main/java/org/apache/polygene/api/property/DefaultValues.java
index 00a128e..4207358 100644
--- a/core/api/src/main/java/org/apache/polygene/api/property/DefaultValues.java
+++ b/core/api/src/main/java/org/apache/polygene/api/property/DefaultValues.java
@@ -20,6 +20,7 @@
 
 package org.apache.polygene.api.property;
 
+import java.lang.reflect.Array;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
@@ -82,6 +83,10 @@ public final class DefaultValues
             {
                 return ( (Class) type ).getEnumConstants()[ 0 ];
             }
+            else if( typeAsClass.isArray() )
+            {
+                return Array.newInstance( typeAsClass.getComponentType(), 0 );
+            }
         }
         throw new IllegalArgumentException( "Cannot use @UseDefaults with type " + type.toString() );
     }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/a94e4657/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
index ab1feb9..a2dc6b3 100644
--- a/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
+++ b/core/runtime/src/test/java/org/apache/polygene/runtime/defaults/UseDefaultsTest.java
@@ -20,6 +20,7 @@
 
 package org.apache.polygene.runtime.defaults;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -36,6 +37,7 @@ import org.junit.Test;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 /**
  * JAVADOC
@@ -59,7 +61,14 @@ public class UseDefaultsTest extends AbstractPolygeneTest
         assertThat( "zeroInt is zero", testComposite.defaultInt().get(), equalTo( 0 ) );
         assertThat( "nullString is null", testComposite.nullString().get(), nullValue() );
         assertThat( "defaultString is empty string", testComposite.defaultString().get(), equalTo( "" ) );
-        assertThat( "assemblyString is empty string", testComposite.assemblyString().get(), equalTo( "habba" ) );
+        assertThat( "assemblyString is set string", testComposite.assemblyString().get(), equalTo( "habba" ) );
+
+        assertThat( "nullPrimitiveArray is null", testComposite.nullPrimitiveArray().get(), nullValue() );
+        assertTrue( "emptyPrimitiveArray is empty",
+                    Arrays.equals( testComposite.emptyPrimitiveArray().get(), new int[ 0 ] ) );
+        assertThat( "nullArray is null", testComposite.nullArray().get(), nullValue() );
+        assertTrue( "emptyArray is empty array",
+                    Arrays.equals( testComposite.emptyArray().get(), new Integer[ 0 ] ) );
     }
 
     @Test
@@ -75,6 +84,11 @@ public class UseDefaultsTest extends AbstractPolygeneTest
         assertThat( testComposite.initializedStringListDefultString().get(), equalTo( expectedList ) );
         Map<String, Integer> expectedMap = Collections.singletonMap( "abcd", 345 );
         assertThat( testComposite.initializedMapDefaultValue().get(), equalTo( expectedMap ) );
+
+        assertTrue( "initializedPrimitiveArray is set",
+                    Arrays.equals( testComposite.initializedPrimitiveArray().get(), new int[] { 23, 42 } ) );
+        assertTrue( "initializedArray is set",
+                    Arrays.equals( testComposite.initializedArray().get(), new Integer[] { 23, 42 } ) );
     }
 
     interface TestComposite
@@ -110,5 +124,23 @@ public class UseDefaultsTest extends AbstractPolygeneTest
 
         @UseDefaults( "{\"abcd\": 345}" )
         Property<Map<String, Integer>> initializedMapDefaultValue();
+
+        @Optional
+        Property<int[]> nullPrimitiveArray();
+
+        @UseDefaults
+        Property<int[]> emptyPrimitiveArray();
+
+        @UseDefaults( "[23, 42]" )
+        Property<int[]> initializedPrimitiveArray();
+
+        @Optional
+        Property<Integer[]> nullArray();
+
+        @UseDefaults
+        Property<Integer[]> emptyArray();
+
+        @UseDefaults( "[23, 42]" )
+        Property<Integer[]> initializedArray();
     }
 }