FinderPath implements Iterable<FinderSegment> { FinderPath reversed() { return new FinderPath(Lists.reverse(segments)); } FinderPath();  FinderPath(List<FinderSegment> segments); static FinderPath from(String path); FinderPath append(String columnId, String itemId); FinderPath append(String columnId, String itemId, String columnTitle, String itemTitle); FinderPath append(FinderColumn<T> finderColumn); @Override Iterator<FinderSegment> iterator(); boolean isEmpty(); int size(); void clear(); FinderPath copy(); FinderSegment findColumn(String columnId); FinderSegment findColumn(Predicate<String> condition); FinderSegment findItem(String itemId); FinderSegment findItem(Predicate<String> condition); @Override String toString();  }
@Test public void reversed() { FinderPath path = new FinderPath().append("1", "one").append("2", "two").reversed(); assertFalse(path.isEmpty()); assertEquals(2, path.size()); Iterator<FinderSegment> iterator = path.iterator(); assertSegment(iterator.next(), "2", "two"); assertSegment(iterator.next(), "1", "one"); }