Skip to content

Commit 489aebd

Browse files
committed
Sync with underscore-java.
1 parent 0241a4c commit 489aebd

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,19 @@ public boolean contains(final T elem) {
660660
return contains(iterable, elem);
661661
}
662662

663+
public static <E> boolean containsWith(final Iterable<E> iterable, final E elem) {
664+
return some(iterable, new Predicate<E>() {
665+
@Override
666+
public boolean test(E e) {
667+
return elem == null ? e == null : String.valueOf(e).contains(String.valueOf(elem));
668+
}
669+
});
670+
}
671+
672+
public boolean containsWith(final T elem) {
673+
return containsWith(iterable, elem);
674+
}
675+
663676
public static <E> boolean contains(final Iterable<E> iterable, final E elem, final int fromIndex) {
664677
final List<E> list = newArrayList(iterable);
665678
return contains(list.subList(fromIndex, list.size()), elem);
@@ -2957,6 +2970,10 @@ public Chain<Boolean> contains(final T elem) {
29572970
return new Chain<Boolean>(U.contains(list, elem));
29582971
}
29592972

2973+
public Chain<Boolean> containsWith(final T elem) {
2974+
return new Chain<Boolean>(U.containsWith(list, elem));
2975+
}
2976+
29602977
public Chain<T> invoke(final String methodName, final List<Object> args) {
29612978
return new Chain<T>(U.invoke(list, methodName, args));
29622979
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,10 @@ public Chain<Boolean> contains(final T elem) {
315315
return new Chain<Boolean>(U.contains(value(), elem));
316316
}
317317

318+
public Chain<Boolean> containsWith(final T elem) {
319+
return new Chain<Boolean>(U.containsWith(value(), elem));
320+
}
321+
318322
public Chain<T> invoke(final String methodName, final List<Object> args) {
319323
return new Chain<T>(U.invoke(value(), methodName, args));
320324
}

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,24 @@ public void contains() {
10421042
assertTrue(result4);
10431043
}
10441044

1045+
/*
1046+
_.containsWith(["abc", "bcd", "cde"], "bc");
1047+
=> true
1048+
*/
1049+
@Test
1050+
public void containsWith() {
1051+
final boolean result = U.containsWith(asList(1, 2, 3), 3);
1052+
assertTrue(result);
1053+
final boolean resultObj = new U<Integer>(asList(1, 2, 3)).containsWith(3);
1054+
assertTrue(resultObj);
1055+
final boolean resultChain = U.chain(asList(1, 2, 3)).containsWith(3).item();
1056+
assertTrue(resultChain);
1057+
final boolean result2 = U.containsWith(asList(1, 2, null), null);
1058+
assertTrue(result2);
1059+
final boolean result3 = U.containsWith(asList("abc", "bcd", "cde"), "bc");
1060+
assertTrue(result3);
1061+
}
1062+
10451063
@Test
10461064
public void containsAtLeast() {
10471065
final boolean result = U.containsAtLeast(asList(1, 2, 2), 2, 2);

src/test/java/com/github/underscore/lodash/LodashTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,7 @@ public void accept(String str) {
934934
U.chain(new String[] {""}).count(new Predicate<String>() {
935935
public boolean test(String str) { return true; } });
936936
U.chain(new String[] {""}).contains("");
937+
U.chain(new String[] {""}).containsWith("");
937938
U.chain(new String[] {""}).invoke("toString", Collections.emptyList());
938939
U.chain(new String[] {""}).invoke("toString");
939940
U.chain(new String[] {""}).pluck("toString");

0 commit comments

Comments
 (0)