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