22
33import fj .F ;
44import fj .F2 ;
5+ import fj .data .Stream ;
56import static fj .Function .curry ;
7+ import static fj .function .Booleans .not ;
8+ import static fj .function .Characters .isWhitespace ;
69
710/**
811 * Curried string functions.
@@ -14,8 +17,41 @@ private Strings() {
1417 throw new UnsupportedOperationException ();
1518 }
1619
20+ /**
21+ * This function checks if a given String contains any non-whitespace character
22+ * (according to {@link Character#isWhitespace(char)}) and if it's also not
23+ * <code>null</code> and not empty ("").
24+ *
25+ * @see #isNullOrBlank
26+ * @see Character#isWhitespace(char)
27+ * @see Characters#isWhitespace
28+ */
29+ public static final F <String , Boolean > isNotNullOrBlank = new F <String , Boolean >() {
30+ @ Override
31+ public Boolean f (final String a ) {
32+ return isNotNullOrEmpty .f (a ) && Stream .fromString (a ).find (not (isWhitespace )).isSome ();
33+ }
34+ };
35+
36+ /**
37+ * This function checks if a given String is whitespace (according to {@link Character#isWhitespace(char)}),
38+ * empty ("") or <code>null</code>.
39+ *
40+ * @see #isNotNullOrBlank
41+ * @see Character#isWhitespace(char)
42+ * @see Characters#isWhitespace
43+ */
44+ public static final F <String , Boolean > isNullOrBlank = new F <String , Boolean >() {
45+ @ Override
46+ public Boolean f (final String a ) {
47+ return isNullOrEmpty .f (a ) || Stream .fromString (a ).find (not (isWhitespace )).isNone ();
48+ }
49+ };
50+
1751 /**
1852 * This function checks if a given String is neither <code>null</code> nor empty.
53+ *
54+ * @see #isNullOrEmpty
1955 */
2056 public static final F <String , Boolean > isNotNullOrEmpty = new F <String , Boolean >() {
2157 @ Override
@@ -24,6 +60,18 @@ public Boolean f(final String a) {
2460 }
2561 };
2662
63+ /**
64+ * This function checks if a given String is <code>null</code> or empty ({@link String#isEmpty()}).
65+ *
66+ * @see #isNotNullOrEmpty
67+ */
68+ public static final F <String , Boolean > isNullOrEmpty = new F <String , Boolean >() {
69+ @ Override
70+ public Boolean f (final String a ) {
71+ return a == null || a .length () == 0 ;
72+ }
73+ };
74+
2775 /**
2876 * A curried version of {@link String#isEmpty()}.
2977 */
0 commit comments