diff --git a/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java b/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java index 5aeab0f..0544ebb 100644 --- a/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java +++ b/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java @@ -112,7 +112,7 @@ final class BasicMapN extends BasicConstMap { if (Objects.equals(value, values[index])) { return this; } - return new BasicMapN<>(keys, replace(values, index, value)); + return new BasicMapN<>(keys, BasicTools.replace(values, index, value)); } final int length = keys.length; return new BasicMapN<>(insert(keys, length, key), insert(values, length, value)); diff --git a/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java b/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java index 64a7eea..ebaefc1 100644 --- a/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java +++ b/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java @@ -130,7 +130,7 @@ private int indexOf(Object o) { if (Objects.equals(value, values[index])) { return this; } - return new BasicSortedMapN<>(comparator, keys, replace(values, index, value)); + return new BasicSortedMapN<>(comparator, keys, BasicTools.replace(values, index, value)); } index = flip(index); return new BasicSortedMapN<>(comparator, insert(keys, index, key), insert(values, index, value)); diff --git a/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java b/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java index db1c096..cf654c8 100644 --- a/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java +++ b/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java @@ -18,6 +18,7 @@ import net.nullschool.util.ArrayTools; +import java.lang.annotation.Annotation; import java.lang.reflect.*; import static java.util.Objects.requireNonNull; @@ -152,4 +153,24 @@ private boolean equals(TypeVariable that) { @Override public String toString() { return name; } + + @Override + public AnnotatedType[] getAnnotatedBounds() { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public T getAnnotation(Class annotationClass) { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public Annotation[] getAnnotations() { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public Annotation[] getDeclaredAnnotations() { + throw new UnsupportedOperationException("not yet implemented"); + } } diff --git a/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java b/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java index 7a074f9..c4288bb 100644 --- a/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java +++ b/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java @@ -18,7 +18,6 @@ import java.util.*; -import static java.util.Collections.reverseOrder; import static org.junit.Assert.*; @@ -44,7 +43,7 @@ public static final class NullSafeReverseComparator implements Comparator if (left == null) { return right == null ? 0 : 1; } - return right == null ? -1 : reverseOrder().compare(left, right); + return right == null ? -1 : Collections.reverseOrder().compare(left, right); } @Override public boolean equals(Object obj) { return obj instanceof NullSafeReverseComparator; } @Override public int hashCode() { return 1; } @@ -402,8 +401,8 @@ private static void compare_ranges(SortedSet expected, SortedSet actua } @SafeVarargs - public static void compare_sorted_sets(SortedSet expectedSet, SortedSet actual, E... rangePoints) { - @SuppressWarnings("unchecked") SortedSet expected = (SortedSet)expectedSet; + public static void compare_sorted_sets(SortedSet expectedSet, SortedSet actual, X... rangePoints) { + SortedSet expected = expectedSet; compare_sets(expected, actual); assertEquals(expected.comparator(), actual.comparator()); @@ -422,7 +421,7 @@ public static void compare_sorted_sets(SortedSet expectedSet, SortedSe if (expected.size() > 1) { // Compare the tail sets of everything from the second item onwards. - E from = nth(expected, 1); + X from = nth(expected, 1); compare_sorted_sets(expected.tailSet(from), actual.tailSet(from)); } } @@ -548,9 +547,8 @@ private static void compare_ranges(SortedMap expected, SortedMap void compare_sorted_maps( - SortedMap expectedMap, + public static void compare_sorted_maps( + SortedMap expectedMap, SortedMap actual, K... rangePoints) { diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java index a2dee0a..d1750c8 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java @@ -16,6 +16,7 @@ package net.nullschool.collect.basic; +import net.nullschool.collect.CollectionTestingTools; import net.nullschool.collect.ConstSortedMap; import net.nullschool.reflect.PublicInterfaceRef; import org.junit.Test; @@ -126,27 +127,27 @@ public void test_construction_permutations_reverse() { @Test public void test_sortedMapOf() { - compare_sorted_maps(newSortedMap(null, "a", 1), sortedMapOf(null, "a", 1)); - compare_sorted_maps(newSortedMap(null, "a", 1, "b", 2), sortedMapOf(null, "a", 1, "b", 2)); - compare_sorted_maps(newSortedMap(null, "a", 1, "b", 2, "c", 3), sortedMapOf(null, "a", 1, "b", 2, "c", 3)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1), BasicCollections.sortedMapOf(null, "a", 1)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1, "b", 2), sortedMapOf(null, "a", 1, "b", 2)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1, "b", 2, "c", 3), sortedMapOf(null, "a", 1, "b", 2, "c", 3)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, "a", 1, "b", 2, "c", 3, "d", 4), sortedMapOf(null, "a", 1, "b", 2, "c", 3, "d", 4)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5), sortedMapOf(null, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5)); Comparator reverse = new NullSafeReverseComparator<>(); - compare_sorted_maps(newSortedMap(reverse, "a", 1), sortedMapOf(reverse, "a", 1)); - compare_sorted_maps(newSortedMap(reverse, "a", 1, "b", 2), sortedMapOf(reverse, "a", 1, "b", 2)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, "a", 1), sortedMapOf(reverse, "a", 1)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, "a", 1, "b", 2), sortedMapOf(reverse, "a", 1, "b", 2)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3, "d", 4), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3, "d", 4)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5)); @@ -178,48 +179,48 @@ public void test_sortedMapOf_types() { public void test_asSortedMap_array() { Integer[] a; assertSame(emptySortedMap(null), asSortedMap(null, a = new Integer[] {}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1), asSortedMap(null, a = new Integer[] {1}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, a = new Integer[] {1, 2}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1, 2, 2, 3, 3), asSortedMap(null, a = new Integer[] {1, 2, 3}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1), asSortedMap(null, a = new Integer[] {1}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, a = new Integer[] {1, 2}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1, 2, 2, 3, 3), asSortedMap(null, a = new Integer[] {1, 2, 3}, a)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4), asSortedMap(null, a = new Integer[] {1, 2, 3, 4}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5), asSortedMap(null, a = new Integer[] {1, 2, 3, 4, 5}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6), asSortedMap(null, a = new Integer[] {1, 2, 3, 4, 5, 6}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, new Integer[] {1, 2}, new Integer[] {1, 2, 3})); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, new Integer[] {1, 2, 3}, new Integer[] {1, 2})); Comparator reverse = reverseOrder(); - compare_sorted_maps(emptySortedMap(reverse), asSortedMap(reverse, a = new Integer[] {}, a)); - compare_sorted_maps(newSortedMap(reverse, 1, 1), asSortedMap(reverse, a = new Integer[] {1}, a)); - compare_sorted_maps(newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, a = new Integer[] {1, 2}, a)); - compare_sorted_maps( + compare_sorted_maps(BasicCollections.emptySortedMap(reverse), BasicCollections.asSortedMap(reverse, a = new Integer[]{}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, 1, 1), asSortedMap(reverse, a = new Integer[] {1}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, a = new Integer[] {1, 2}, a)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3), asSortedMap(reverse, a = new Integer[] {1, 2, 3}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4, 5}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4, 5, 6}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, new Integer[] {1, 2}, new Integer[] {1, 2, 3})); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, new Integer[] {1, 2, 3}, new Integer[] {1, 2})); } @@ -326,10 +327,10 @@ public void test_asSortedMap_comparator_map() { // Calling asSortedMap with a sorted map but different comparator should change the order, and even the size. ConstSortedMap names = sortedMapOf(reverse, "a", 1, "B", 2, "b", 3, "c", 4, "C", 5); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "c", 4, "b", 3, "a", 1, "C", 5, "B", 2), // before names); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(CASE_INSENSITIVE_ORDER, "a", 1, "b", 2, "c", 5), // after asSortedMap(CASE_INSENSITIVE_ORDER, names)); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java index d79194d..d64bf91 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java @@ -186,7 +186,7 @@ public void test_asSortedSet_array() { Comparator reverse = reverseOrder(); - compare_sorted_sets(emptySortedSet(reverse), asSortedSet(reverse, new Integer[] {})); + compare_sorted_sets(BasicCollections.emptySortedSet(reverse), asSortedSet(reverse, new Integer[] {})); compare_sorted_sets(newSortedSet(reverse, 1), asSortedSet(reverse, new Integer[] {1})); compare_sorted_sets(newSortedSet(reverse, 1, 2), asSortedSet(reverse, new Integer[] {1, 2})); compare_sorted_sets(newSortedSet(reverse, 1, 2, 3), asSortedSet(reverse, new Integer[] {1, 2, 3})); diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java index e1da836..10937de 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java @@ -129,7 +129,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java index a331f28..85ac85e 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java @@ -138,7 +138,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } @@ -159,7 +159,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java index 7f2516b..cc9261f 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java @@ -167,7 +167,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } @@ -189,7 +189,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java index 6723ece..1788fa3 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java @@ -16,6 +16,7 @@ package net.nullschool.collect.basic; +import net.nullschool.collect.CollectionTestingTools; import net.nullschool.collect.ConstSortedSet; import org.junit.Test; @@ -39,7 +40,7 @@ public class BasicSortedSet0Test { @Test public void test_comparison() { - compare_sorted_sets(newSortedSet(null), BasicSortedSet0.instance(null), -1, 0, 1, 0); + compare_sorted_sets(CollectionTestingTools.newSortedSet(null), BasicSortedSet0.instance(null), -1, 0, 1, 0); compare_sorted_sets(newSortedSet(reverseOrder()), BasicSortedSet0.instance(reverseOrder()), 1, 0, -1, 0); } @@ -50,8 +51,8 @@ public void test_immutable() { @Test public void test_with() { - compare_sorted_sets(newSortedSet(null, 1), BasicSortedSet0.instance(null).with(1)); - compare_sorted_sets(newSortedSet(reverseOrder(), 1), BasicSortedSet0.instance(reverseOrder()).with(1)); + compare_sorted_sets(newSortedSet(null, 1), BasicSortedSet0.instance(null).with(1)); + compare_sorted_sets(newSortedSet(reverseOrder(), 1), BasicSortedSet0.instance(reverseOrder()).with(1)); } @Test @@ -128,7 +129,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java index a1bdf1f..f192abe 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java @@ -26,9 +26,9 @@ import java.util.Arrays; import java.util.Collections; -import static org.junit.Assert.*; +import static java.util.Collections.reverseOrder; import static net.nullschool.collect.CollectionTestingTools.*; -import static java.util.Collections.*; +import static org.junit.Assert.*; /** * 2013-04-25

@@ -39,8 +39,8 @@ public class BasicSortedSet1Test { @Test public void test_comparison() { - compare_sorted_sets(newSortedSet(null, 1), new BasicSortedSet1<>(null, 1), 0, 1, 1, 2, 0); - compare_sorted_sets(newSortedSet(reverseOrder(), 1), new BasicSortedSet1<>(reverseOrder(), 1), 2, 1, 1, 0, 2); + compare_sorted_sets(newSortedSet(null, 1), new BasicSortedSet1(null, 1), 0, 1, 1, 2, 0); + compare_sorted_sets(newSortedSet(reverseOrder(), 1), new BasicSortedSet1(reverseOrder(), 1), 2, 1, 1, 0, 2); } @Test @@ -86,11 +86,11 @@ public void test_without() { ConstSortedSet set; set = new BasicSortedSet1<>(null, 1); - compare_sorted_sets(BasicSortedSet0.instance(null), set.without(1)); + compare_sorted_sets(BasicSortedSet0.instance(null), set.without(1)); assertSame(set, set.without(2)); set = new BasicSortedSet1<>(reverseOrder(), 1); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.without(1)); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.without(1)); assertSame(set, set.without(2)); } @@ -99,14 +99,14 @@ public void test_withoutAll() { ConstSortedSet set; set = new BasicSortedSet1<>(null, 1); - compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(1))); - compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(2, 1))); + compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(1))); + compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(2, 1))); assertSame(set, set.withoutAll(Arrays.asList(2))); assertSame(set, set.withoutAll(Arrays.asList())); set = new BasicSortedSet1<>(reverseOrder(), 1); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(1))); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(2, 1))); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(1))); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(2, 1))); assertSame(set, set.withoutAll(Arrays.asList(2))); assertSame(set, set.withoutAll(Arrays.asList())); } @@ -131,7 +131,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } @@ -152,7 +152,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java index ef4c8c0..eef3062 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java @@ -26,9 +26,9 @@ import java.util.Arrays; import java.util.Collections; -import static org.junit.Assert.*; +import static java.util.Collections.reverseOrder; import static net.nullschool.collect.CollectionTestingTools.*; -import static java.util.Collections.*; +import static org.junit.Assert.*; /** @@ -42,11 +42,11 @@ public class BasicSortedSetNTest { public void test_comparison() { compare_sorted_sets( newSortedSet(null, 1, 2, 3, 5, 6, 7), - new BasicSortedSetN<>(null, new Object[] {1, 2, 3, 5, 6, 7}), + new BasicSortedSetN(null, new Object[] {1, 2, 3, 5, 6, 7}), 0, 2, 4, 6, 8, 1, 7); compare_sorted_sets( newSortedSet(reverseOrder(), 7, 6, 5, 3, 2, 1), - new BasicSortedSetN<>(reverseOrder(), new Object[] {7, 6, 5, 3, 2, 1}), + new BasicSortedSetN(reverseOrder(), new Object[] {7, 6, 5, 3, 2, 1}), 8, 6, 4, 2, 0, 7, 1); } @@ -154,7 +154,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } @@ -175,7 +175,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java b/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java index c013787..f115f95 100644 --- a/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java +++ b/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java @@ -83,14 +83,14 @@ public void test_inner_class_comparison_with_standard_reflection() { new JavaToken.Inner0>(){}.asParameterizedType(), new LateParameterizedType( Outer.Inner0.class, - new LateParameterizedType(Outer.class, null, Byte.class))); + new LateParameterizedType(Outer.class, null, Byte.class)), IgnoreFlag.ToString); compare( new JavaToken.Inner1>(){}.asParameterizedType(), new LateParameterizedType( Outer.Inner1.class, new LateParameterizedType(Outer.class, null, Byte.class), - Long.class)); + Long.class), IgnoreFlag.ToString); } @Test diff --git a/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java b/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java index 843d136..2466c9e 100644 --- a/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java +++ b/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java @@ -69,7 +69,7 @@ private static void compare(TypeVariable expected, TypeVariable actual) { assertEquals(expected.getName(), tv.getName()); assertEquals(expected.getGenericDeclaration(), tv.getGenericDeclaration()); assertArrayEquals(expected.getBounds(), tv.getBounds()); - assertTrue(expected.equals(tv)); + // assertTrue(expected.equals(tv)); this can never be true because the default Sun/Oracle implementation of TypeVariable.equals() checks .class() assertTrue(tv.equals(expected)); assertEquals(expected.hashCode(), tv.hashCode()); assertEquals(expected.toString(), tv.toString()); diff --git a/jackson/pom.xml b/jackson/pom.xml index e686596..fbc1cac 100644 --- a/jackson/pom.xml +++ b/jackson/pom.xml @@ -65,7 +65,7 @@ com.fasterxml.jackson.core jackson-databind - 2.2.2 + 2.10.3 @@ -91,19 +91,19 @@ com.fasterxml.jackson.dataformat jackson-dataformat-smile - 2.2.2 + 2.10.3 test com.fasterxml.jackson.dataformat jackson-dataformat-xml - 2.2.2 + 2.5.1 test com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.2.2 + 2.10.3 test diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java index 5b08dd5..79fe4c6 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java @@ -65,7 +65,7 @@ private GrainDeserializer(GrainFactory factory) { @Override public void resolve(DeserializationContext ctxt) throws JsonMappingException { for (GrainProperty gp : factory.getBasisProperties().values()) { - JacksonGrainProperty prop = new JacksonGrainProperty(gp, ctxt.getTypeFactory(), getValueClass()); + JacksonGrainProperty prop = new JacksonGrainProperty(gp, ctxt.getTypeFactory(), getValueClass(), ctxt.getConfig()); JsonDeserializer deserializer = ctxt.findContextualValueDeserializer(prop.getType(), prop); readers.put(prop.getName(), new PropertyReader(deserializer)); diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java index 5c87620..7c4831b 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java @@ -72,7 +72,7 @@ private GrainSerializer(GrainFactory factory) { } List writers = new ArrayList<>(); for (GrainProperty gp : factory.getBasisProperties().values()) { - JacksonGrainProperty prop = new JacksonGrainProperty(gp, provider.getTypeFactory(), handledType()); + JacksonGrainProperty prop = new JacksonGrainProperty(gp, provider.getTypeFactory(), handledType(), provider.getConfig()); JsonSerializer serializer = provider.findValueSerializer(prop.getType(), prop); writers.add(new PropertyWriter(prop.getName(), serializer)); diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java index 3fb7e77..ddd77ea 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java @@ -1,7 +1,16 @@ package net.nullschool.grains.jackson.datatype; -import com.fasterxml.jackson.databind.*; -import com.fasterxml.jackson.databind.introspect.*; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.PropertyMetadata; +import com.fasterxml.jackson.databind.PropertyName; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.cfg.MapperConfig; +import com.fasterxml.jackson.databind.introspect.AnnotatedClass; +import com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver; +import com.fasterxml.jackson.databind.introspect.AnnotatedMember; +import com.fasterxml.jackson.databind.introspect.AnnotatedMethod; +import com.fasterxml.jackson.databind.introspect.AnnotationMap; +import com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor; import com.fasterxml.jackson.databind.type.TypeFactory; import net.nullschool.grains.GrainProperty; @@ -17,7 +26,7 @@ * * @author Cameron Beccario */ -final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializable +final class JacksonGrainProperty extends ConcreteBeanPropertyBase { // UNDONE: Serializable private static final AnnotationMap[] EMPTY = new AnnotationMap[0]; @@ -26,13 +35,16 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa private final JavaType type; private final AnnotatedMember member; - JacksonGrainProperty(GrainProperty prop, TypeFactory typeFactory, Class grainClass) { + JacksonGrainProperty(GrainProperty prop, TypeFactory typeFactory, Class grainClass, MapperConfig config) { + super(PropertyMetadata.STD_REQUIRED_OR_OPTIONAL); + this.name = prop.getName(); this.type = typeFactory.constructType(prop.getType()); try { String getterName = (prop.getFlags().contains(IS_PROPERTY) ? "is" : "get") + capitalize(prop.getName()); // UNDONE: annotations - this.member = new AnnotatedMethod(grainClass.getMethod(getterName), new AnnotationMap(), EMPTY); + AnnotatedClass annotatedClass = AnnotatedClassResolver.resolve(config, typeFactory.constructType(grainClass), null); + this.member = new AnnotatedMethod(annotatedClass, grainClass.getMethod(getterName), new AnnotationMap(), EMPTY); } catch (NoSuchMethodException e) { throw new IllegalArgumentException(e); @@ -43,6 +55,11 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa return name; } + @Override + public PropertyName getFullName() { + return new PropertyName(name); + } + @Override public JavaType getType() { return type; } @@ -67,7 +84,8 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa return member; } - @Override public void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor) throws JsonMappingException { + @Override + public void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) { // UNDONE throw new UnsupportedOperationException("NYI"); } diff --git a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java index f435646..11714e8 100644 --- a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java +++ b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() throws IOException { for (int i = 0; i < 10; i++) { ObjectMapper mapper = newGrainsObjectMapper(); byte[] data = mapper.writeValueAsBytes(set); - ConstSortedSet actual = mapper.readValue(data, new TypeReference>(){}); + ConstSortedSet actual = mapper.readValue(data, new TypeReference>(){}); CollectionTestingTools.compare_sorted_sets(set, actual); set = set.with(i); } @@ -88,7 +88,7 @@ public void test_basicConstSortedMap() throws IOException { for (int i = 0; i < 5; i++) { ObjectMapper mapper = newGrainsObjectMapper(); byte[] data = mapper.writeValueAsBytes(map); - ConstSortedMap actual = + ConstSortedMap actual = mapper.readValue(data, new TypeReference>(){}); CollectionTestingTools.compare_sorted_maps(map, actual); map = map.with(String.valueOf(i), i); diff --git a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java index 1e39679..9abe4f7 100644 --- a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java +++ b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java @@ -58,11 +58,7 @@ public void test_complete_serialization_smile() throws IOException { byte[] data = mapper.writeValueAsBytes(expected); assertEquals( - ":)a1fa80a#80bc280cc480dc480ec680f&810180g(3|00080h)1?x000000080i*80815080j@a80kDhello80lc1bd31d6" + - "6-eda2-4395-a2a7-510bd581e3ab80mThttp://nullschool.net80oDgreen80pfa81idc2fb80qf8c2c4f980rf8" + - "faOc2fbfaOc4fbf980sf8c4c6f980tf8faOc4fbfaOc6fbf980uf8@a@bf980vf8faOc8fbfaOcafbf980wfa@c2Ac4f" + - "b80xfa@faOccfbAfaOcefbfb80yf8@x@yf980zfa801faOd0fb802faOd2fbfb81zafa@f8f8faOc2fbfaOc4fbf9f9f" + - "b81zbf8f8@a@bf9f8@c@df9f9fb", + ":)a1fa80a#80bc280cc480dc480ec680f&810180g(3|00080h)1?x000000080i*80815080j@a80kDhello80le890dtcV76DCJhTu8/+1qj380mThttp://nullschool.net80oDgreen80pfa81idc2fb80qf8c2c4f980rf8faOc2fbfaOc4fbf980sf8c4c6f980tf8faOc4fbfaOc6fbf980uf8@a@bf980vf8faOc8fbfaOcafbf980wfa@c2Ac4fb80xfa@faOccfbAfaOcefbfb80yf8@x@yf980zfa801faOd0fb802faOd2fbfb81zafa@f8f8faOc2fbfaOc4fbf9f9fb81zbf8f8@a@bf9f8@c@df9f9fb", BasicToolsTest.asReadableString(data)); CompleteGrain actual = mapper.readValue(data, CompleteGrain.class); diff --git a/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java b/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java index 724f2ae..51b546f 100644 --- a/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java +++ b/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java @@ -53,7 +53,7 @@ public void test_basicConstSortedSet() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(set, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedSet); - CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); + CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); set = set.with(i); } @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(set, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedSet); - CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); + CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); set = set.with(i); } } @@ -90,7 +90,7 @@ public void test_basicConstSortedMap() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(map, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedMap); - CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); + CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); map = map.with(i, i); } @@ -101,7 +101,7 @@ public void test_basicConstSortedMap() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(map, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedMap); - CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); + CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); map = map.with(i, i); } } diff --git a/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java b/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java index bf0867b..db7b134 100644 --- a/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java +++ b/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() throws IOException { for (int i = 0; i < 10; i++) { MessagePack msgpack = newGrainsMessagePack(); byte[] data = msgpack.write(set); - ConstSortedSet actual = msgpack.read(data, ConstSortedSet.class); + ConstSortedSet actual = msgpack.read(data, ConstSortedSet.class); CollectionTestingTools.compare_sorted_sets(set, actual); set = set.with(i); } @@ -88,7 +88,7 @@ public void test_basicConstSortedMap() throws IOException { for (int i = 0; i < 5; i++) { MessagePack msgpack = newGrainsMessagePack(); byte[] data = msgpack.write(map); - ConstSortedMap actual = msgpack.read(data, ConstSortedMap.class); + ConstSortedMap actual = msgpack.read(data, ConstSortedMap.class); CollectionTestingTools.compare_sorted_maps(map, actual); map = map.with(i, i); } diff --git a/pom.xml b/pom.xml index 6778053..c8bac90 100644 --- a/pom.xml +++ b/pom.xml @@ -71,4 +71,18 @@ sample + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + +