static <T> C.Sequence<T> of(C.Sequence<? extends T> left, C.Sequence<? extends T> right) { return new CompositeSeq<T>(left, right); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } return CompositeSeq.of(this, C.seq(iterator)); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq.isEmpty()) { return this; } return CompositeSeq.of(this, seq); }
static <T> C.Sequence<T> of(C.Sequence<? extends T> left, C.Sequence<? extends T> right) { return new CompositeSeq<T>(left, right); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq.isEmpty()) { return this; } return CompositeSeq.of(this, seq); }
/** * {@inheritDoc} * This method will NOT change the underline list * * @param seq the sequence to be prepended * @return the prepended sequence */ @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 new CompositeSeq<T>(seq, this); } return unLazyPrepend(seq); }
@Override public C.Sequence<T> append(T t) { return CompositeSeq.of(this, $.val(t)); }
/** * {@inheritDoc} * This method will NOT change the underline list * * @param seq the sequence to be prepended * @return the prepended sequence */ @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 new CompositeSeq<T>(seq, this); } return unLazyPrepend(seq); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (!enumeration.hasMoreElements()) { return this; } return CompositeSeq.of(this, C.seq(enumeration)); }
@Override public C.Sequence<T> prepend(T t) { return CompositeSeq.of(C.singletonList(t), this); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } return CompositeSeq.of(this, C.seq(iterator)); }
@Override public C.Sequence<T> append(Enumeration<? extends T> enumeration) { if (!enumeration.hasMoreElements()) { return this; } return CompositeSeq.of(this, C.seq(enumeration)); }
@Override public C.Sequence<T> append(T t) { return CompositeSeq.of(this, $.val(t)); }
@Override public C.Sequence<T> prepend(T t) { return CompositeSeq.of(C.singletonList(t), this); }
@Override public C.Sequence<T> prepend(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } if (isLazy()) { return CompositeSeq.of(C.seq(iterator), this); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> prepend(Iterator<? extends T> iterator) { if (!iterator.hasNext()) { return this; } if (isLazy()) { return CompositeSeq.of(C.seq(iterator), this); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> prepend(Enumeration<? extends T> enumeration) { if (isLazy()) { return CompositeSeq.of(C.seq(enumeration), this); } return unLazyAppend(enumeration); }
@Override public C.Sequence<T> append(Iterator<? extends T> iterator) { if (isLazy()) { return CompositeSeq.of(this, C.seq(iterator)); } return unLazyAppend(iterator); }
@Override public C.Sequence<T> append(C.Sequence<? extends T> seq) { if (seq instanceof C.List) { return appendList((C.List<T>) seq); } if (isLazy()) { return CompositeSeq.of(this, seq); } return unLazyAppend(seq); }