diff --git a/mondrian/src/main/java/mondrian/olap/IdBatchResolver.java b/mondrian/src/main/java/mondrian/olap/IdBatchResolver.java index 9cd29ef5a5..de72fd8432 100644 --- a/mondrian/src/main/java/mondrian/olap/IdBatchResolver.java +++ b/mondrian/src/main/java/mondrian/olap/IdBatchResolver.java @@ -15,8 +15,7 @@ import org.apache.log4j.Logger; import java.util.*; - -import static org.apache.commons.collections.CollectionUtils.filter; +import java.util.stream.Collectors; /** * Used to collect and resolve identifiers in groups of children @@ -255,29 +254,12 @@ private List lookupChildrenByNames( private List collectChildrenNameSegments( final Member parentMember, List children) { - filter( - children, new Predicate() { - // remove children we can't support - public boolean evaluate(Object theId) - { - Id id = (Id)theId; - return !Util.matches(parentMember, id.getSegments()) - && supportedIdentifier(id); - } - }); - return new ArrayList( - CollectionUtils.collect( - children, new Transformer() - { - // convert the collection to a list of NameSegments - public Object transform(Object theId) { - Id id = (Id)theId; - return getLastSegment(id); - } - })); + return children.stream().filter(id -> !Util.matches(parentMember, id.getSegments()) && supportedIdentifier(id)) + //supportedIdentifier(i) checks instanceof NameSegment + .map(id -> (Id.NameSegment)getLastSegment(id)).collect(Collectors.toList()); } - private Id.Segment getLastSegment(Id id) { + private static Id.Segment getLastSegment(Id id) { int segSize = id.getSegments().size(); return id.getSegments().get(segSize - 1); } @@ -297,7 +279,7 @@ private boolean supportedIdentifier(Id id) { && !id.getSegments().get(0).matches("Measures"); } - private boolean supportedMember(Member member) { + private static boolean supportedMember(Member member) { return !(member == null || member.equals( member.getHierarchy().getNullMember()) diff --git a/mondrian/src/main/java/mondrian/olap/Util.java b/mondrian/src/main/java/mondrian/olap/Util.java index 0e7c9c43c8..c21624d8af 100644 --- a/mondrian/src/main/java/mondrian/olap/Util.java +++ b/mondrian/src/main/java/mondrian/olap/Util.java @@ -73,7 +73,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.collections.keyvalue.AbstractMapEntry; import org.apache.commons.io.IOUtils; import org.apache.commons.vfs2.FileContent; import org.apache.commons.vfs2.FileObject; @@ -4488,8 +4487,8 @@ public void remove() { } @SuppressWarnings("unchecked") public Entry next() { - return new AbstractMapEntry( - list.get(++pt), null) {}; + return new AbstractMap.SimpleEntry( + list.get(++pt), null); } public boolean hasNext() { return pt < list.size();