/** * Return a request that either wraps multiple requests, or the single request if only one is supplied. * * @param requests the requests to wrap * @return the requests wrapped in a CompositeRequest, or if only one request is supplied that single request * @throws IllegalArgumentException if there requests are null or empty */ public static Request with( List<? extends Request> requests ) { CheckArg.isNotEmpty(requests, "requests"); if (requests.size() == 1) { return requests.get(0); } boolean readOnly = true; for (Request request : requests) { readOnly = request.isReadOnly(); if (!readOnly) break; } return new CompositeRequest(requests, readOnly); }
/** * Return a request that either wraps multiple requests, or the single request if only one is supplied. * * @param requests the requests to wrap * @return the requests wrapped in a CompositeRequest, or if only one request is supplied that single request * @throws IllegalArgumentException if there requests are null, empty, or contains only nulls */ public static Request with( Iterator<? extends Request> requests ) { CheckArg.isNotNull(requests, "requests"); boolean readOnly = true; List<Request> list = new LinkedList<Request>(); while (requests.hasNext()) { Request request = requests.next(); if (request == null) continue; if (RequestType.COMPOSITE == request.getType()) { CompositeRequest composite = (CompositeRequest)request; list.addAll(composite.getRequests()); if (!composite.isReadOnly()) readOnly = false; } else { list.add(request); if (!request.isReadOnly()) readOnly = false; } } if (list.size() == 1) { return list.get(0); } CheckArg.isNotEmpty(list, "requests"); return new CompositeRequest(list, readOnly); }
/** * Add requests to the supplied composite request. * * @param composite the composite request to which the requests are to be added * @param requests the requests to wrap * @return the requests wrapped in a CompositeRequest, or if only one request is supplied that single request, or null if * there are no request * @throws IllegalArgumentException if the composite request is null */ public static CompositeRequest add( CompositeRequest composite, Iterator<? extends Request> requests ) { CheckArg.isNotNull(composite, "composite"); List<Request> list = new LinkedList<Request>(); boolean readOnly = composite.isReadOnly(); if (composite.size() != 0) list.addAll(composite.getRequests()); while (requests.hasNext()) { Request request = requests.next(); if (request == null) continue; if (RequestType.COMPOSITE == request.getType()) { CompositeRequest compositeRequest = (CompositeRequest)request; list.addAll(compositeRequest.getRequests()); if (!compositeRequest.isReadOnly()) readOnly = false; } else { list.add(request); if (!request.isReadOnly()) readOnly = false; } } return new CompositeRequest(list, readOnly); }
/** * Return a request that either wraps multiple requests, or the single request if only one is supplied. * * @param requests the requests to wrap * @return the requests wrapped in a CompositeRequest, or if only one request is supplied that single request * @throws IllegalArgumentException if there requests are null, empty, or contains only nulls */ public static Request with( Request... requests ) { CheckArg.isNotEmpty(requests, "requests"); if (requests.length == 1) { CheckArg.isNotNull(requests[0], "requests[0]"); return requests[0]; } boolean readOnly = true; List<Request> list = new ArrayList<Request>(requests.length); for (Request request : requests) { if (request == null) continue; if (RequestType.COMPOSITE == request.getType()) { CompositeRequest composite = (CompositeRequest)request; list.addAll(composite.getRequests()); if (!composite.isReadOnly()) readOnly = false; } else { list.add(request); if (!request.isReadOnly()) readOnly = false; } } CheckArg.isNotEmpty(list, "requests"); return new CompositeRequest(list, readOnly); }
/** * Add requests to the supplied composite request. * * @param composite the composite request to which the requests are to be added * @param requests the requests to wrap * @return the requests wrapped in a CompositeRequest, or if only one request is supplied that single request, or null if * there are no request * @throws IllegalArgumentException if the composite request is null */ public static CompositeRequest add( CompositeRequest composite, Request... requests ) { CheckArg.isNotNull(composite, "composite"); if (requests == null || requests.length == 0) return composite; List<Request> list = new ArrayList<Request>(requests.length + composite.size()); boolean readOnly = composite.isReadOnly(); if (composite.size() != 0) list.addAll(composite.getRequests()); for (Request request : requests) { if (request == null) continue; if (RequestType.COMPOSITE == request.getType()) { CompositeRequest compositeRequest = (CompositeRequest)request; list.addAll(compositeRequest.getRequests()); if (!compositeRequest.isReadOnly()) readOnly = false; } else { list.add(request); if (!request.isReadOnly()) readOnly = false; } } return new CompositeRequest(list, readOnly); }