public ListBuilder<T> append(T t) { add(t); return this; }
@Override public C.List<T> append(T t) { if (isMutable()) { add(t); return this; } // Immutable if (isImmutable()) { ListBuilder<T> lb = new ListBuilder<T>(size() + 1); lb.addAll(this); lb.add(t); return lb.toList(); } // mutable but readonly C.List<T> l = C.newSizedList(size() + 1); l.addAll(this); l.add(t); return l; }
public ListBuilder<T> append(T t) { add(t); return this; }
@Override public C.List<T> append(T t) { if (isMutable()) { add(t); return this; } // Immutable if (isImmutable()) { ListBuilder<T> lb = new ListBuilder<T>(size() + 1); lb.addAll(this); lb.add(t); return lb.toList(); } // mutable but readonly C.List<T> l = C.newSizedList(size() + 1); l.addAll(this); l.add(t); return l; }
@Override public void visit(String name, Object value) { strings.add(value.toString()); super.visit(name, value); } }
/** * {@inheritDoc} * For mutable list, this method will insert the * element at {@code 0} position. */ @Override public C.List<T> prepend(T t) { if (isMutable()) { add(0, t); return this; } // immutable if (isImmutable()) { ListBuilder<T> lb = new ListBuilder<T>(size() + 1); lb.add(t); lb.addAll(this); return lb.toList(); } // readonly but mutable C.List<T> l = C.newSizedList(size() + 1); l.add(t); l.addAll(this); return l; }
@Override public void visit(String name, Object value) { strings.add(value.toString()); super.visit(name, value); } }
void setWaiveList(List<String> list) { if (list.isEmpty()) return; ListBuilder<Pattern> lb = ListBuilder.create(); for (String s: list) { if (S.blank(s)) continue; s = s.trim().toLowerCase(); lb.add(Pattern.compile(s, Pattern.CASE_INSENSITIVE)); } waiveList = lb.toList(); }
@Override public C.List<T> without(Collection<? super T> col) { int sz = size(); T[] data = data_; ListBuilder<T> lb = new ListBuilder<T>(sz); for (int i = 0; i < sz; ++i) { T t = data[i]; if (!col.contains(t)) { lb.add(t); } } return lb.toList(); }
@Override public C.List<T> without(Collection<? super T> col) { int sz = size(); T[] data = data_; ListBuilder<T> lb = new ListBuilder<T>(sz); for (int i = 0; i < sz; ++i) { T t = data[i]; if (!col.contains(t)) { lb.add(t); } } return lb.toList(); }
/** * Returns an immutable {@link C.List} from iterable * @param iterable the iterable * @param <T> the element type * @return an immutable list contains all elements from the iterable */ public static <T> C.List<T> toList(Iterable<? extends T> iterable) { if (iterable instanceof Collection) { return toList((Collection<T>) iterable); } ListBuilder<T> lb = new ListBuilder<T>(10); for (T t : iterable) { lb.add(t); } return lb.toList(); }
/** * Returns an immutable {@link C.List} from iterable * @param iterable the iterable * @param <T> the element type * @return an immutable list contains all elements from the iterable */ public static <T> C.List<T> toList(Iterable<? extends T> iterable) { if (iterable instanceof Collection) { return toList((Collection<T>) iterable); } ListBuilder<T> lb = new ListBuilder<T>(10); for (T t : iterable) { lb.add(t); } return lb.toList(); }
@Override public C.List<T> without(T element) { int sz = size(); T[] data = data_; ListBuilder<T> lb = new ListBuilder<T>(sz); for (int i = 0; i < sz; ++i) { T t = data[i]; if ($.ne(t, element)) { lb.add(t); } } return lb.toList(); }
@Override public C.List<T> without(T element) { int sz = size(); T[] data = data_; ListBuilder<T> lb = new ListBuilder<T>(sz); for (int i = 0; i < sz; ++i) { T t = data[i]; if ($.ne(t, element)) { lb.add(t); } } return lb.toList(); }
@Override public C.List<T> takeWhile($.Function<? super T, Boolean> predicate) { int sz = size(); ListBuilder<T> lb = new ListBuilder<T>(sz); for (T t : this) { if (predicate.apply(t)) { lb.add(t); } else { break; } } return lb.toList(); }
@Override public C.List<T> takeWhile($.Function<? super T, Boolean> predicate) { int sz = size(); ListBuilder<T> lb = new ListBuilder<T>(sz); for (T t : this) { if (predicate.apply(t)) { lb.add(t); } else { break; } } return lb.toList(); }
@Override public void visitEnd() { List<Router> routers = routers(); if (strings.isEmpty()) { strings.add(""); } /* * Note we need to schedule route registration after all app code scanned because we need the * parent context information be set on class meta info, which is done after controller scanning */ app().jobManager().on(SysEventId.APP_CODE_SCANNED, "WsEndpointAnnotationVisitor:registerRoute - " + registerRouteTaskCounter.getAndIncrement(), new RouteRegister(envMatches, C.list(H.Method.GET), strings, WsEndpoint.PSEUDO_METHOD, routers, classInfo, false, $.var(false))); super.visitEnd(); } };
@Override public void visitEnd() { List<Router> routers = routers(); if (strings.isEmpty()) { strings.add(""); } /* * Note we need to schedule route registration after all app code scanned because we need the * parent context information be set on class meta info, which is done after controller scanning */ app().jobManager().on(SysEventId.APP_CODE_SCANNED, "WsEndpointAnnotationVisitor:registerRoute - " + registerRouteTaskCounter.getAndIncrement(), new RouteRegister(envMatches, C.list(H.Method.GET), strings, WsEndpoint.PSEUDO_METHOD, routers, classInfo, false, $.var(false))); super.visitEnd(); } };
@Override public <R> C.List<R> collect(String path) { boolean immutable = isImmutable(); int sz = size(); if (0 == sz) { return immutable ? Nil.<R>list() : C.<R>newList(); } if (immutable) { ListBuilder<R> lb = new ListBuilder<>(sz); for (T t : this) { lb.add((R) $.getProperty(t, path)); } return lb.toList(); } else { C.List<R> list = C.newSizedList(sz); for (T t : this) { list.add((R) $.getProperty(t, path)); } return list; } }
@Override public <R> C.List<R> collect(String path) { boolean immutable = isImmutable(); int sz = size(); if (0 == sz) { return immutable ? Nil.<R>list() : C.<R>newList(); } if (immutable) { ListBuilder<R> lb = new ListBuilder<>(sz); for (T t : this) { lb.add((R) $.getProperty(t, path)); } return lb.toList(); } else { C.List<R> list = C.newSizedList(sz); for (T t : this) { list.add((R) $.getProperty(t, path)); } return list; } }