Skip to content

Commit a53f688

Browse files
authored
Substituted the customized Optional with java.util.Optional
1 parent cf4324a commit a53f688

File tree

8 files changed

+40
-171
lines changed

8 files changed

+40
-171
lines changed

src/main/java/com/github/underscore/Optional.java

Lines changed: 0 additions & 143 deletions
This file was deleted.

src/main/java/com/github/underscore/U.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import java.util.List;
4848
import java.util.Locale;
4949
import java.util.Map;
50+
import java.util.Optional;
5051
import java.util.Set;
5152
import java.util.function.BiConsumer;
5253
import java.util.function.BiFunction;
@@ -63,6 +64,7 @@
6364
@SuppressWarnings({
6465
"java:S135",
6566
"java:S1168",
67+
"java:S3655",
6668
"java:S3740",
6769
"java:S3776",
6870
"java:S4423",

src/main/java/com/github/underscore/Underscore.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.util.ListIterator;
4242
import java.util.Map;
4343
import java.util.Objects;
44+
import java.util.Optional;
4445
import java.util.Set;
4546
import java.util.UUID;
4647
import java.util.function.BiConsumer;
@@ -57,7 +58,14 @@
5758
*
5859
* @author Valentyn Kolesnikov
5960
*/
60-
@SuppressWarnings({"java:S106", "java:S2189", "java:S2272", "java:S3740", "java:S5852"})
61+
@SuppressWarnings({
62+
"java:S106",
63+
"java:S2189",
64+
"java:S2272",
65+
"java:S2789",
66+
"java:S3740",
67+
"java:S5852"
68+
})
6169
public class Underscore<T> {
6270
private static final Map<String, Function<String, String>> FUNCTIONS = newLinkedHashMap();
6371
private static final Map<String, String> TEMPLATE_SETTINGS = new HashMap<>();
@@ -531,7 +539,7 @@ public static <T, E> E foldr(
531539
public static <E> Optional<E> find(final Iterable<E> iterable, final Predicate<E> pred) {
532540
for (E element : iterable) {
533541
if (pred.test(element)) {
534-
return Optional.of(element);
542+
return isNull(element) ? null : Optional.of(element);
535543
}
536544
}
537545
return Optional.empty();
@@ -664,7 +672,8 @@ public boolean all(final Predicate<T> pred) {
664672
}
665673

666674
public static <E> boolean some(final Iterable<E> iterable, final Predicate<E> pred) {
667-
return find(iterable, pred).isPresent();
675+
Optional<E> optional = find(iterable, pred);
676+
return optional == null || optional.isPresent();
668677
}
669678

670679
public boolean some(final Predicate<T> pred) {

src/main/java/com/github/underscore/Xml.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,7 @@
3838
import java.util.function.BiFunction;
3939
import java.util.function.Function;
4040

41-
@SuppressWarnings({
42-
"java:S107",
43-
"java:S1119",
44-
"java:S3740",
45-
"java:S3776",
46-
"java:S4276"
47-
})
41+
@SuppressWarnings({"java:S107", "java:S1119", "java:S3740", "java:S3776", "java:S4276"})
4842
public final class Xml {
4943
private Xml() {}
5044

src/test/java/com/github/underscore/CollectionsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.util.LinkedHashSet;
4040
import java.util.List;
4141
import java.util.Map;
42+
import java.util.Optional;
4243
import java.util.Set;
4344
import java.util.function.BiConsumer;
4445
import java.util.function.BinaryOperator;

src/test/java/com/github/underscore/FunctionsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.LinkedHashMap;
3434
import java.util.List;
3535
import java.util.Map;
36+
import java.util.Optional;
3637
import java.util.concurrent.TimeUnit;
3738
import java.util.function.Function;
3839
import java.util.function.Predicate;

src/test/java/com/github/underscore/UnderscoreTest.java

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
import java.util.LinkedHashMap;
3838
import java.util.List;
3939
import java.util.Map;
40+
import java.util.NoSuchElementException;
4041
import java.util.Objects;
42+
import java.util.Optional;
4143
import java.util.function.Predicate;
4244
import org.junit.jupiter.api.Test;
4345

@@ -488,46 +490,45 @@ void optional() {
488490
assertTrue(one.equals(one));
489491
assertFalse(Optional.of(1L).equals(Optional.of(1)));
490492
assertFalse(Optional.of(1L).equals(null));
491-
assertTrue(Optional.of(null).equals(Optional.of(null)));
493+
assertTrue(Optional.ofNullable(null).equals(Optional.ofNullable(null)));
492494
assertFalse(Optional.empty().equals(Optional.of(1)));
493-
assertFalse(Optional.of(null).equals(Optional.of(1)));
494-
assertFalse(Optional.of(1).equals(Optional.of(null)));
495+
assertFalse(Optional.ofNullable(null).equals(Optional.of(1)));
496+
assertFalse(Optional.of(1).equals(Optional.ofNullable(null)));
495497
assertFalse(Optional.of(1).equals(Optional.empty()));
496498
assertFalse(Optional.of(1).equals(Optional.of(2)));
497499
assertFalse(Optional.of(1).equals("test"));
498-
assertEquals(1, Optional.empty().hashCode());
500+
assertEquals(0, Optional.empty().hashCode());
499501
assertEquals(Optional.of("123").hashCode(), Optional.of("123").hashCode());
500502
assertEquals("Optional.empty", Optional.empty().toString());
501503
assertEquals("Optional[1]", Optional.of(1).toString());
502-
assertEquals("Optional.empty", Optional.fromNullable(null).toString());
503-
assertEquals("Optional[1]", Optional.fromNullable(1).toString());
504-
assertEquals("1", Optional.empty().or(1).toString());
505-
assertEquals("1", Optional.of(1).or(2).toString());
506-
assertEquals(null, Optional.empty().orNull());
507-
assertEquals("1", Optional.of(1).orNull().toString());
504+
assertEquals("Optional.empty", Optional.ofNullable(null).toString());
505+
assertEquals("Optional[1]", Optional.ofNullable(1).toString());
506+
assertEquals("1", Optional.<Integer>empty().orElse(1).toString());
507+
assertEquals("1", Optional.of(1).orElse(2).toString());
508+
assertEquals(null, Optional.empty().orElse(null));
509+
assertEquals("1", Optional.of(1).orElse(null).toString());
508510
assertFalse(Optional.<Integer>empty().map(arg -> "" + arg).isPresent());
509511
assertTrue(Optional.<Integer>empty().map(arg -> "" + arg).isEmpty());
510512
assertEquals("1", Optional.of(1).map(arg -> "" + arg).get().toString());
511513
try {
512514
Optional.empty().get();
513515
fail("IllegalStateException expected");
514-
} catch (IllegalStateException ignored) {
516+
} catch (NoSuchElementException ignored) {
515517
}
516518
assertFalse(Optional.<Integer>empty().filter(arg -> true).isPresent());
517519
assertTrue(Optional.<Integer>empty().filter(arg -> false).isEmpty());
518520
assertEquals("1", Optional.of(1).filter(arg -> true).get().toString());
519521
assertTrue(Optional.of(1).filter(arg -> false).isEmpty());
520-
assertEquals("Optional[1]", Optional.of(1).toJavaOptional().toString());
521522
}
522523

523524
@Test
524525
void optionalOrThrow() throws RuntimeException {
525-
assertThrows(Exception.class, () -> Optional.empty().orThrow(RuntimeException::new));
526+
assertThrows(Exception.class, () -> Optional.empty().orElseThrow(RuntimeException::new));
526527
}
527528

528529
@Test
529530
void optionalOrThrowWithValue() {
530-
assertEquals("1", Optional.of(1).orThrow(RuntimeException::new).toString());
531+
assertEquals("1", Optional.of(1).orElseThrow(RuntimeException::new).toString());
531532
}
532533

533534
@Test

src/test/java/com/github/underscore/UtilityTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ void unescape() {
229229
*/
230230
@Test
231231
void template() {
232-
Underscore.Template<Map<String, Object>> compiled = Underscore.template("hello: <%= name %>");
232+
Underscore.Template<Map<String, Object>> compiled =
233+
Underscore.template("hello: <%= name %>");
233234
assertEquals(
234235
"hello: moe",
235236
compiled.apply(
@@ -283,7 +284,8 @@ void template4() {
283284
put("interpolate", "\\{\\{=([\\s\\S]+?)\\}\\}");
284285
}
285286
});
286-
Underscore.Template<Map<String, Object>> compiled = Underscore.template("hello: {{= name }}");
287+
Underscore.Template<Map<String, Object>> compiled =
288+
Underscore.template("hello: {{= name }}");
287289
assertEquals(
288290
"hello: moe",
289291
compiled.apply(
@@ -307,7 +309,8 @@ void template4() {
307309
*/
308310
@Test
309311
void templateValue() {
310-
Underscore.Template<Map<String, Object>> template = Underscore.template("<b><%- value %></b>");
312+
Underscore.Template<Map<String, Object>> template =
313+
Underscore.template("<b><%- value %></b>");
311314
assertEquals(
312315
"<b>&lt;script&gt;</b>",
313316
template.apply(
@@ -365,7 +368,8 @@ void templateValue4() {
365368

366369
@Test
367370
void templateCheck() {
368-
Underscore.Template<Map<String, Object>> compiled = Underscore.template("hello: <%= name %>");
371+
Underscore.Template<Map<String, Object>> compiled =
372+
Underscore.template("hello: <%= name %>");
369373
assertTrue(
370374
compiled.check(
371375
new LinkedHashMap<String, Object>() {

0 commit comments

Comments
 (0)