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();
}
}