@@ -57,7 +57,7 @@ private static final class RequestImpl implements Request {
57
57
private InetAddress address ;
58
58
private InetAddress localAddress ;
59
59
private FluentCaseInsensitiveStringsMap headers ;
60
- private Collection <Cookie > cookies ;
60
+ private ArrayList <Cookie > cookies ;
61
61
private byte [] byteData ;
62
62
private String stringData ;
63
63
private InputStream streamData ;
@@ -227,10 +227,7 @@ public boolean hasHeaders() {
227
227
228
228
@ Override
229
229
public Collection <Cookie > getCookies () {
230
- if (cookies == null ) {
231
- cookies = Collections .unmodifiableCollection (Collections .<Cookie > emptyList ());
232
- }
233
- return cookies ;
230
+ return cookies != null ? Collections .unmodifiableCollection (cookies ) : Collections .<Cookie > emptyList ();
234
231
}
235
232
236
233
@ Override
@@ -460,16 +457,14 @@ public T addHeader(String name, String value) {
460
457
}
461
458
462
459
public T setHeaders (FluentCaseInsensitiveStringsMap headers ) {
463
- if (headers != null ) {
460
+ if (headers != null )
464
461
request .headers = new FluentCaseInsensitiveStringsMap (headers );
465
- }
466
462
return derived .cast (this );
467
463
}
468
464
469
465
public T setHeaders (Map <String , Collection <String >> headers ) {
470
- if (headers != null ) {
466
+ if (headers != null )
471
467
request .headers = new FluentCaseInsensitiveStringsMap (headers );
472
- }
473
468
return derived .cast (this );
474
469
}
475
470
@@ -478,20 +473,45 @@ public T setContentLength(int length) {
478
473
return derived .cast (this );
479
474
}
480
475
476
+ private void lazyInitCookies () {
477
+ if (request .cookies == null )
478
+ request .cookies = new ArrayList <Cookie >(3 );
479
+ }
480
+
481
481
public T addCookie (Cookie cookie ) {
482
- if (request .cookies == null ) {
483
- request .cookies = new ArrayList <Cookie >();
484
- }
482
+ lazyInitCookies ();
485
483
request .cookies .add (cookie );
486
484
return derived .cast (this );
487
485
}
488
486
489
- public void resetQueryParameters () {
490
- request .queryParams = null ;
487
+ public void resetCookies () {
488
+ if (request .cookies != null )
489
+ request .cookies .clear ();
491
490
}
492
491
493
- public void resetCookies () {
494
- request .cookies .clear ();
492
+ public T addOrReplaceCookie (Cookie cookie ) {
493
+ String cookieKey = cookie .getName ();
494
+ boolean replace = false ;
495
+ int index = 0 ;
496
+ lazyInitCookies ();
497
+ for (Cookie c : request .cookies ) {
498
+ if (c .getName ().equals (cookieKey )) {
499
+ replace = true ;
500
+ break ;
501
+ }
502
+
503
+ index ++;
504
+ }
505
+ if (replace )
506
+ request .cookies .set (index , cookie );
507
+ else
508
+ request .cookies .add (cookie );
509
+ return derived .cast (this );
510
+ }
511
+
512
+
513
+ public void resetQueryParameters () {
514
+ request .queryParams = null ;
495
515
}
496
516
497
517
public void resetParameters () {
@@ -544,28 +564,22 @@ public T setBody(BodyGenerator bodyGenerator) {
544
564
}
545
565
546
566
public T addQueryParameter (String name , String value ) {
547
- if (request .queryParams == null ) {
567
+ if (request .queryParams == null )
548
568
request .queryParams = new FluentStringsMap ();
549
- }
550
569
request .queryParams .add (name , value );
551
570
return derived .cast (this );
552
571
}
553
572
554
573
public T setQueryParameters (FluentStringsMap parameters ) {
555
- if (parameters == null ) {
556
- request .queryParams = null ;
557
- } else {
558
- request .queryParams = new FluentStringsMap (parameters );
559
- }
574
+ request .queryParams = parameters != null ? new FluentStringsMap (parameters ) : null ;
560
575
return derived .cast (this );
561
576
}
562
577
563
578
public T addParameter (String key , String value ) {
564
579
resetNonMultipartData ();
565
580
resetMultipartData ();
566
- if (request .params == null ) {
581
+ if (request .params == null )
567
582
request .params = new FluentStringsMap ();
568
- }
569
583
request .params .add (key , value );
570
584
return derived .cast (this );
571
585
}
@@ -587,9 +601,8 @@ public T setParameters(Map<String, Collection<String>> parameters) {
587
601
public T addBodyPart (Part part ) {
588
602
resetParameters ();
589
603
resetNonMultipartData ();
590
- if (request .parts == null ) {
604
+ if (request .parts == null )
591
605
request .parts = new ArrayList <Part >();
592
- }
593
606
request .parts .add (part );
594
607
return derived .cast (this );
595
608
}
@@ -686,39 +699,9 @@ private void computeRequestContentLength() {
686
699
}
687
700
688
701
public Request build () {
689
-
690
702
executeSignatureCalculator ();
691
703
computeRequestCharset ();
692
704
computeRequestContentLength ();
693
-
694
- if (request .cookies != null ) {
695
- request .cookies = Collections .unmodifiableCollection (request .cookies );
696
- }
697
705
return request ;
698
706
}
699
-
700
- public T addOrReplaceCookie (Cookie cookie ) {
701
- String cookieKey = cookie .getName ();
702
- boolean replace = false ;
703
- int index = 0 ;
704
- if (request .cookies == null ) {
705
- request .cookies = new ArrayList <Cookie >();
706
- request .cookies .add (cookie );
707
- return derived .cast (this );
708
- }
709
- for (Cookie c : request .cookies ) {
710
- if (c .getName ().equals (cookieKey )) {
711
- replace = true ;
712
- break ;
713
- }
714
-
715
- index ++;
716
- }
717
- if (replace ) {
718
- ((ArrayList <Cookie >) request .cookies ).set (index , cookie );
719
- } else {
720
- request .cookies .add (cookie );
721
- }
722
- return derived .cast (this );
723
- }
724
707
}
0 commit comments