You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/03/01 07:09:23 UTC
[causeway] branch master updated: CAUSEWAY-3304: Blob#unzip: throw if any issue
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 788a92522c CAUSEWAY-3304: Blob#unzip: throw if any issue
788a92522c is described below
commit 788a92522c0d081e5d3427f6252c8ddc9d4537bb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Mar 1 08:09:19 2023 +0100
CAUSEWAY-3304: Blob#unzip: throw if any issue
---
.../org/apache/causeway/applib/value/Blob.java | 2 +-
.../causeway/commons/internal/base/_NullSafe.java | 131 +++++++++++----------
2 files changed, 67 insertions(+), 66 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java b/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
index 0e848fda51..7a338e6ef9 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
@@ -277,7 +277,7 @@ public final class Blob implements NamedWithMimeType {
}
return Blob.of(zipEntry.getName(), resultingMimeType, unzippedBytes);
})
- .orElse(Blob.of("blob_unzip_failed", resultingMimeType, new byte[0]))
+ .orElseThrow()
)
.mapEmptyToFailure()
.valueAsNonNullElseFail();
diff --git a/commons/src/main/java/org/apache/causeway/commons/internal/base/_NullSafe.java b/commons/src/main/java/org/apache/causeway/commons/internal/base/_NullSafe.java
index ec3188e22f..e1fc7c7b09 100644
--- a/commons/src/main/java/org/apache/causeway/commons/internal/base/_NullSafe.java
+++ b/commons/src/main/java/org/apache/causeway/commons/internal/base/_NullSafe.java
@@ -39,8 +39,6 @@ import org.apache.causeway.commons.collections.Can;
import org.apache.causeway.commons.collections.ImmutableCollection;
import org.apache.causeway.commons.collections.ImmutableEnumSet;
-import lombok.experimental.UtilityClass;
-
/**
* <h1>- internal use only -</h1>
* <p>
@@ -55,9 +53,10 @@ import lombok.experimental.UtilityClass;
* @since 2.0
*
*/
-@UtilityClass
public final class _NullSafe {
+ private _NullSafe(){}
+
// -- STREAM CREATION
/**
@@ -66,7 +65,7 @@ public final class _NullSafe {
* @param array
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable T[] array) {
+ public static <T> Stream<T> stream(final @Nullable T[] array) {
return array!=null
? Stream.of(array)
: Stream.empty();
@@ -79,7 +78,7 @@ public final class _NullSafe {
* @param nullable
* @return non-null stream object
*/
- public <T> Stream<T> streamNullable(final @Nullable T nullable) {
+ public static <T> Stream<T> streamNullable(final @Nullable T nullable) {
return nullable != null
? Stream.of(nullable)
: Stream.empty();
@@ -91,7 +90,7 @@ public final class _NullSafe {
* @param can
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Can<T> can){
+ public static <T> Stream<T> stream(final @Nullable Can<T> can){
return can!=null
? can.stream()
: Stream.empty();
@@ -103,7 +102,7 @@ public final class _NullSafe {
* @param coll
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Collection<T> coll){
+ public static <T> Stream<T> stream(final @Nullable Collection<T> coll){
return coll!=null
? coll.stream()
: Stream.empty();
@@ -115,7 +114,7 @@ public final class _NullSafe {
* @param iterable
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Iterable<T> iterable){
+ public static <T> Stream<T> stream(final @Nullable Iterable<T> iterable){
if(iterable instanceof Collection) {
return ((Collection<T>) iterable).stream();
}
@@ -133,7 +132,7 @@ public final class _NullSafe {
* @param iterator
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Iterator<T> iterator){
+ public static <T> Stream<T> stream(final @Nullable Iterator<T> iterator){
return iterator!=null
? StreamSupport.stream(
Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED),
@@ -147,7 +146,7 @@ public final class _NullSafe {
* @param stream
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Stream<T> stream) {
+ public static <T> Stream<T> stream(final @Nullable Stream<T> stream) {
return stream!=null
? stream
: Stream.empty();
@@ -159,14 +158,14 @@ public final class _NullSafe {
* @param enumeration
* @return non-null stream object
*/
- public <T> Stream<T> stream(final @Nullable Enumeration<T> enumeration){
+ public static <T> Stream<T> stream(final @Nullable Enumeration<T> enumeration){
return enumeration!=null
? StreamSupport.stream(toSpliterator(enumeration), /*parallel*/false)
: Stream.empty();
}
// not public, used internally for stream(Enumeration) only
- private <T> Spliterator<T> toSpliterator(final Enumeration<T> e){
+ private static <T> Spliterator<T> toSpliterator(final Enumeration<T> e){
return new Spliterators.AbstractSpliterator<T>(Long.MAX_VALUE, Spliterator.ORDERED) {
@Override
public boolean tryAdvance(final Consumer<? super T> action) {
@@ -185,7 +184,7 @@ public final class _NullSafe {
};
}
- public Stream<?> streamAutodetect(final @Nullable Object pojo) {
+ public static Stream<?> streamAutodetect(final @Nullable Object pojo) {
if(pojo==null) {
return Stream.empty();
}
@@ -218,35 +217,35 @@ public final class _NullSafe {
// not null-safe, but for performance reasons not checked (private anyway) ...
- private Stream<Boolean> primitiveStream(final boolean[] array) {
+ private static Stream<Boolean> primitiveStream(final boolean[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Byte> primitiveStream(final byte[] array) {
+ private static Stream<Byte> primitiveStream(final byte[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Character> primitiveStream(final char[] array) {
+ private static Stream<Character> primitiveStream(final char[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Float> primitiveStream(final float[] array) {
+ private static Stream<Float> primitiveStream(final float[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Double> primitiveStream(final double[] array) {
+ private static Stream<Double> primitiveStream(final double[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Short> primitiveStream(final short[] array) {
+ private static Stream<Short> primitiveStream(final short[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Integer> primitiveStream(final int[] array) {
+ private static Stream<Integer> primitiveStream(final int[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
- private Stream<Long> primitiveStream(final long[] array) {
+ private static Stream<Long> primitiveStream(final long[] array) {
return IntStream.range(0, array.length).mapToObj(s -> array[s]);
}
@@ -260,7 +259,7 @@ public final class _NullSafe {
*
* @apiNote we keep this, arguably provides better code readability than {@code Objects#nonNull}
*/
- public boolean isPresent(final @Nullable Object x) {
+ public static boolean isPresent(final @Nullable Object x) {
return x!=null;
}
@@ -271,61 +270,61 @@ public final class _NullSafe {
*
* @apiNote we keep this, arguably provides better code readability than {@code Objects#isNull}
*/
- public boolean isAbsent(final @Nullable Object x) {
+ public static boolean isAbsent(final @Nullable Object x) {
return x==null;
}
// -- EMTPY CHECKS
- public boolean isEmpty(final @Nullable String x) { return x==null || x.length() == 0; }
- public boolean isEmpty(final @Nullable Can<?> x) { return x==null || x.size() == 0; }
- public boolean isEmpty(final @Nullable Collection<?> x) { return x==null || x.size() == 0; }
- public boolean isEmpty(final @Nullable Map<?,?> x) { return x==null || x.size() == 0; }
- public boolean isEmpty(final @Nullable boolean[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable byte[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable char[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable double[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable float[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable int[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable long[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable short[] array){ return array==null || array.length == 0;}
- public <T> boolean isEmpty(final @Nullable T[] array){ return array==null || array.length == 0;}
- public boolean isEmpty(final @Nullable EnumSet<?> enumSet){ return enumSet==null || enumSet.size() == 0;}
- public boolean isEmpty(final @Nullable ImmutableEnumSet<?> enumSet){ return enumSet==null || enumSet.size() == 0;}
+ public static boolean isEmpty(final @Nullable String x) { return x==null || x.length() == 0; }
+ public static boolean isEmpty(final @Nullable Can<?> x) { return x==null || x.size() == 0; }
+ public static boolean isEmpty(final @Nullable Collection<?> x) { return x==null || x.size() == 0; }
+ public static boolean isEmpty(final @Nullable Map<?,?> x) { return x==null || x.size() == 0; }
+ public static boolean isEmpty(final @Nullable boolean[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable byte[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable char[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable double[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable float[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable int[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable long[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable short[] array){ return array==null || array.length == 0;}
+ public static <T> boolean isEmpty(final @Nullable T[] array){ return array==null || array.length == 0;}
+ public static boolean isEmpty(final @Nullable EnumSet<?> enumSet){ return enumSet==null || enumSet.size() == 0;}
+ public static boolean isEmpty(final @Nullable ImmutableEnumSet<?> enumSet){ return enumSet==null || enumSet.size() == 0;}
// -- SIZE/LENGTH CHECKS
- public int size(final @Nullable String x){ return x!=null ? x.length() : 0; }
- public int size(final @Nullable Collection<?> x){ return x!=null ? x.size() : 0; }
- public int size(final @Nullable Map<?,?> x){ return x!=null ? x.size() : 0; }
- public int size(final @Nullable boolean[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable byte[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable char[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable double[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable float[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable int[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable long[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable short[] array){ return array!=null ? array.length : 0; }
- public <T> int size(final @Nullable T[] array){ return array!=null ? array.length : 0; }
- public int size(final @Nullable EnumSet<?> enumSet){ return enumSet!=null ? enumSet.size() : 0; }
- public int size(final @Nullable ImmutableEnumSet<?> enumSet){ return enumSet!=null ? enumSet.size() : 0; }
+ public static int size(final @Nullable String x){ return x!=null ? x.length() : 0; }
+ public static int size(final @Nullable Collection<?> x){ return x!=null ? x.size() : 0; }
+ public static int size(final @Nullable Map<?,?> x){ return x!=null ? x.size() : 0; }
+ public static int size(final @Nullable boolean[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable byte[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable char[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable double[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable float[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable int[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable long[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable short[] array){ return array!=null ? array.length : 0; }
+ public static <T> int size(final @Nullable T[] array){ return array!=null ? array.length : 0; }
+ public static int size(final @Nullable EnumSet<?> enumSet){ return enumSet!=null ? enumSet.size() : 0; }
+ public static int size(final @Nullable ImmutableEnumSet<?> enumSet){ return enumSet!=null ? enumSet.size() : 0; }
// -- NON-NULL VARIANTS
- public String toNonNull(final @Nullable String x){ return x!=null ? x : ""; }
- public boolean[] toNonNull(final @Nullable boolean[] array){ return array!=null ? array : new boolean[0]; }
- public byte[] toNonNull(final @Nullable byte[] array){ return array!=null ? array : new byte[0]; }
- public char[] toNonNull(final @Nullable char[] array){ return array!=null ? array : new char[0]; }
- public double[] toNonNull(final @Nullable double[] array){ return array!=null ? array : new double[0]; }
- public float[] toNonNull(final @Nullable float[] array){ return array!=null ? array : new float[0]; }
- public int[] toNonNull(final @Nullable int[] array){ return array!=null ? array : new int[0]; }
- public long[] toNonNull(final @Nullable long[] array){ return array!=null ? array : new long[0]; }
- public short[] toNonNull(final @Nullable short[] array){ return array!=null ? array : new short[0]; }
- public <T> T[] toNonNull(final @Nullable T[] array){ return array!=null ? array : _Casts.uncheckedCast(new Object[0]); }
+ public static String toNonNull(final @Nullable String x){ return x!=null ? x : ""; }
+ public static boolean[] toNonNull(final @Nullable boolean[] array){ return array!=null ? array : new boolean[0]; }
+ public static byte[] toNonNull(final @Nullable byte[] array){ return array!=null ? array : new byte[0]; }
+ public static char[] toNonNull(final @Nullable char[] array){ return array!=null ? array : new char[0]; }
+ public static double[] toNonNull(final @Nullable double[] array){ return array!=null ? array : new double[0]; }
+ public static float[] toNonNull(final @Nullable float[] array){ return array!=null ? array : new float[0]; }
+ public static int[] toNonNull(final @Nullable int[] array){ return array!=null ? array : new int[0]; }
+ public static long[] toNonNull(final @Nullable long[] array){ return array!=null ? array : new long[0]; }
+ public static short[] toNonNull(final @Nullable short[] array){ return array!=null ? array : new short[0]; }
+ public static <T> T[] toNonNull(final @Nullable T[] array){ return array!=null ? array : _Casts.uncheckedCast(new Object[0]); }
// -- TO STRING
- public String toString(final @Nullable Object obj) {
+ public static String toString(final @Nullable Object obj) {
return obj!=null
? obj.toString()
: null;
@@ -341,7 +340,7 @@ public final class _NullSafe {
* @return (null-able)
*/
@Nullable
- public final <K,V> V getOrDefault(
+ public static final <K,V> V getOrDefault(
final @Nullable Map<K, V> map,
final @Nullable K key,
final @Nullable V defaultValue) {
@@ -358,10 +357,12 @@ public final class _NullSafe {
* @param <V>
* @param map
*/
- public <K, V> Set<Map.Entry<K, V>> entrySet(final @Nullable Map<K, V> map) {
+ public static <K, V> Set<Map.Entry<K, V>> entrySet(final @Nullable Map<K, V> map) {
return map==null
? Collections.emptySet()
: map.entrySet();
}
+
+
}