@Override public C.List<T> snapshot() { if (isImmutable()) { return this; } return ListBuilder.toList(this); }
/** * Returns an immutable {@link org.osgl.util.C.List} from an iterator * @param iterator the iterator * @param <T> the element type * @return an immutable list contains all elements from the iterator */ public static <T> C.List<T> toList(Iterator<? extends T> iterator) { ListBuilder<T> lb = new ListBuilder<T>(10); lb.append(iterator); return lb.toList(); }
/** * Returns an immutable {@link org.osgl.util.C.List} from an iterator * @param iterator the iterator * @param <T> the element type * @return an immutable list contains all elements from the iterator */ public static <T> C.List<T> toList(Iterator<? extends T> iterator) { ListBuilder<T> lb = new ListBuilder<T>(10); lb.append(iterator); return lb.toList(); }
public static <T> C.List<T> toList(Enumeration<? extends T> enumeration) { ListBuilder<T> lb = new ListBuilder<T>(10); lb.append(enumeration); return lb.toList(); }
public static List<File> filter(List<File> baseDirs, $.F1<String, Boolean> filter) { ListBuilder<File> list = ListBuilder.create(500); filter(baseDirs, filter, C.F.addTo(list)); return list.toList(); }
public static List<File> filter(File baseDir, $.F1<String, Boolean> filter) { ListBuilder<File> list = ListBuilder.create(500); filter(baseDir, filter, C.F.addTo(list)); return list.toList(); }
public static List<File> filter(File baseDir, $.F1<String, Boolean> filter) { ListBuilder<File> list = ListBuilder.create(500); filter(baseDir, filter, C.F.addTo(list)); return list.toList(); }
public static List<File> filter(List<File> baseDirs, $.F1<String, Boolean> filter) { ListBuilder<File> list = ListBuilder.create(500); filter(baseDirs, filter, C.F.addTo(list)); return list.toList(); }
private C.List<T> unLazyPrepend(Enumeration<? extends T> enumeration) { if (isMutable()) { int pos = 0; while (enumeration.hasMoreElements()) { add(pos++, enumeration.nextElement()); } return this; } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(enumeration).append(this); return lb.toList(); }
@Override public <R> C.List<R> flatMap(Function<? super T, ? extends Iterable<? extends R>> mapper) { ListBuilder<R> lb = new ListBuilder<R>(3); forEach($.visitor(f1(mapper).andThen(C.F.addAllTo(lb)))); return lb.toList(); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(iterator); return lb.toList(); }
@Override public C.Sequence<T> prepend(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return prependList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(seq, this); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(seq).append(this); return lb.toList(); }
@Override public <R> C.List<R> flatMap($.Function<? super T, ? extends Iterable<? extends R>> mapper ) { // TODO: handle lazy operation int sz = size(); ListBuilder<R> lb = new ListBuilder<R>(sz * 3); forEach($.visitor($.f1(mapper).andThen(C.F.addAllTo(lb)))); return lb.toList(); }
@Override public C.Sequence<T> prepend(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return prependList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(seq, this); } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(seq).append(this); return lb.toList(); }
private C.List<T> unLazyAppend(Iterator<? extends T> iterator) { if (isMutable()) { C.forEach(iterator, $.visitor(C.F.addTo(this))); return this; } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(iterator); return lb.toList(); }
@Override public <R> C.List<R> map($.Function<? super Character, ? extends R> mapper) { int sz = size(); if (0 == sz) { return Nil.list(); } ListBuilder<R> lb = new ListBuilder<R>(sz); forEach($.visitor($.f1(mapper).andThen(C.F.addTo(lb)))); return lb.toList(); }
private C.List<T> unLazyAppend(Iterator<? extends T> iterator) { if (isMutable()) { C.forEach(iterator, $.visitor(C.F.addTo(this))); return this; } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(iterator); return lb.toList(); }
private C.List<T> unLazyAppend(Enumeration<? extends T> enumeration) { if (isMutable()) { C.forEach(new EnumerationIterator<T>(enumeration), $.visitor(C.F.addTo(this))); return this; } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(enumeration); return lb.toList(); }
private C.List<T> unLazyAppend(Enumeration<? extends T> enumeration) { if (isMutable()) { C.forEach(new EnumerationIterator<T>(enumeration), $.visitor(C.F.addTo(this))); return this; } ListBuilder<T> lb = new ListBuilder<T>(size() * 2); lb.append(this).append(enumeration); return lb.toList(); }
@Override public <R> C.List<R> map($.Function<? super T, ? extends R> mapper) { if (isLazy()) { return MappedList.of(this, mapper); } int sz = size(); ListBuilder<R> lb = new ListBuilder<R>(sz); forEach($.visitor($.f1(mapper).andThen(C.F.addTo(lb)))); return lb.toList(); }