001 002package com.commercetools.history.client; 003 004import java.net.URI; 005import java.time.Duration; 006import java.util.ArrayList; 007import java.util.Collection; 008import java.util.List; 009import java.util.concurrent.CompletableFuture; 010import java.util.function.Function; 011import java.util.function.Supplier; 012import java.util.stream.Collectors; 013 014import com.commercetools.history.models.change_history.ChangeHistoryResourceType; 015import com.commercetools.history.models.change_history.PlatformInitiatedChange; 016 017import io.vrap.rmf.base.client.*; 018import io.vrap.rmf.base.client.utils.Generated; 019 020import org.apache.commons.lang3.builder.EqualsBuilder; 021import org.apache.commons.lang3.builder.HashCodeBuilder; 022 023/** 024 * <p>The <code>view_audit_log:{projectKey}</code> scope is required, and depending on the resource type queried, their respective scopes must be granted.</p> 025 * 026 * <hr> 027 * <div class=code-example> 028 * <pre><code class='java'>{@code 029 * CompletableFuture<ApiHttpResponse<com.commercetools.history.models.change_history.RecordPagedQueryResponse>> result = apiRoot 030 * .withProjectKeyValue("{projectKey}") 031 * .get() 032 * .execute() 033 * }</code></pre> 034 * </div> 035 */ 036@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 037public class ByProjectKeyGet 038 extends ApiMethod<ByProjectKeyGet, com.commercetools.history.models.change_history.RecordPagedQueryResponse> { 039 040 private String projectKey; 041 042 public ByProjectKeyGet(final ApiHttpClient apiHttpClient, String projectKey) { 043 super(apiHttpClient); 044 this.projectKey = projectKey; 045 } 046 047 public ByProjectKeyGet(ByProjectKeyGet t) { 048 super(t); 049 this.projectKey = t.projectKey; 050 } 051 052 @Override 053 protected ApiHttpRequest buildHttpRequest() { 054 List<String> params = new ArrayList<>(getQueryParamUriStrings()); 055 String httpRequestPath = String.format("%s", this.projectKey); 056 if (!params.isEmpty()) { 057 httpRequestPath += "?" + String.join("&", params); 058 } 059 return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null); 060 } 061 062 @Override 063 public ApiHttpResponse<com.commercetools.history.models.change_history.RecordPagedQueryResponse> executeBlocking( 064 final ApiHttpClient client, final Duration timeout) { 065 return executeBlocking(client, timeout, 066 com.commercetools.history.models.change_history.RecordPagedQueryResponse.class); 067 } 068 069 @Override 070 public CompletableFuture<ApiHttpResponse<com.commercetools.history.models.change_history.RecordPagedQueryResponse>> execute( 071 final ApiHttpClient client) { 072 return execute(client, com.commercetools.history.models.change_history.RecordPagedQueryResponse.class); 073 } 074 075 public String getProjectKey() { 076 return this.projectKey; 077 } 078 079 public List<String> getResourceTypes() { 080 return this.getQueryParam("resourceTypes"); 081 } 082 083 public List<String> getDateFrom() { 084 return this.getQueryParam("date.from"); 085 } 086 087 public List<String> getDateTo() { 088 return this.getQueryParam("date.to"); 089 } 090 091 public List<String> getLimit() { 092 return this.getQueryParam("limit"); 093 } 094 095 public List<String> getOffset() { 096 return this.getQueryParam("offset"); 097 } 098 099 public List<String> getUserId() { 100 return this.getQueryParam("userId"); 101 } 102 103 public List<String> getType() { 104 return this.getQueryParam("type"); 105 } 106 107 public List<String> getClientId() { 108 return this.getQueryParam("clientId"); 109 } 110 111 public List<String> getResourceId() { 112 return this.getQueryParam("resourceId"); 113 } 114 115 public List<String> getResourceKey() { 116 return this.getQueryParam("resourceKey"); 117 } 118 119 public List<String> getSource() { 120 return this.getQueryParam("source"); 121 } 122 123 public List<String> getChanges() { 124 return this.getQueryParam("changes"); 125 } 126 127 public List<String> getStores() { 128 return this.getQueryParam("stores"); 129 } 130 131 public List<String> getCustomerId() { 132 return this.getQueryParam("customerId"); 133 } 134 135 public List<String> getExcludePlatformInitiatedChanges() { 136 return this.getQueryParam("excludePlatformInitiatedChanges"); 137 } 138 139 public List<String> getExpand() { 140 return this.getQueryParam("expand"); 141 } 142 143 public void setProjectKey(final String projectKey) { 144 this.projectKey = projectKey; 145 } 146 147 /** 148 * set resourceTypes with the specified value 149 * @param resourceTypes value to be set 150 * @param <TValue> value type 151 * @return ByProjectKeyGet 152 */ 153 public <TValue> ByProjectKeyGet withResourceTypes(final TValue resourceTypes) { 154 return copy().withQueryParam("resourceTypes", resourceTypes); 155 } 156 157 /** 158 * add additional resourceTypes query parameter 159 * @param resourceTypes value to be added 160 * @param <TValue> value type 161 * @return ByProjectKeyGet 162 */ 163 public <TValue> ByProjectKeyGet addResourceTypes(final TValue resourceTypes) { 164 return copy().addQueryParam("resourceTypes", resourceTypes); 165 } 166 167 /** 168 * set resourceTypes with the specified value 169 * @param supplier supplier for the value to be set 170 * @return ByProjectKeyGet 171 */ 172 public ByProjectKeyGet withResourceTypes(final Supplier<ChangeHistoryResourceType> supplier) { 173 return copy().withQueryParam("resourceTypes", supplier.get()); 174 } 175 176 /** 177 * add additional resourceTypes query parameter 178 * @param supplier supplier for the value to be added 179 * @return ByProjectKeyGet 180 */ 181 public ByProjectKeyGet addResourceTypes(final Supplier<ChangeHistoryResourceType> supplier) { 182 return copy().addQueryParam("resourceTypes", supplier.get()); 183 } 184 185 /** 186 * set resourceTypes with the specified value 187 * @param op builder for the value to be set 188 * @return ByProjectKeyGet 189 */ 190 public ByProjectKeyGet withResourceTypes(final Function<StringBuilder, StringBuilder> op) { 191 return copy().withQueryParam("resourceTypes", op.apply(new StringBuilder())); 192 } 193 194 /** 195 * add additional resourceTypes query parameter 196 * @param op builder for the value to be added 197 * @return ByProjectKeyGet 198 */ 199 public ByProjectKeyGet addResourceTypes(final Function<StringBuilder, StringBuilder> op) { 200 return copy().addQueryParam("resourceTypes", op.apply(new StringBuilder())); 201 } 202 203 /** 204 * set resourceTypes with the specified values 205 * @param resourceTypes values to be set 206 * @param <TValue> value type 207 * @return ByProjectKeyGet 208 */ 209 public <TValue> ByProjectKeyGet withResourceTypes(final Collection<TValue> resourceTypes) { 210 return copy().withoutQueryParam("resourceTypes") 211 .addQueryParams(resourceTypes.stream() 212 .map(s -> new ParamEntry<>("resourceTypes", s.toString())) 213 .collect(Collectors.toList())); 214 } 215 216 /** 217 * add additional resourceTypes query parameters 218 * @param resourceTypes values to be added 219 * @param <TValue> value type 220 * @return ByProjectKeyGet 221 */ 222 public <TValue> ByProjectKeyGet addResourceTypes(final Collection<TValue> resourceTypes) { 223 return copy().addQueryParams(resourceTypes.stream() 224 .map(s -> new ParamEntry<>("resourceTypes", s.toString())) 225 .collect(Collectors.toList())); 226 } 227 228 /** 229 * set dateFrom with the specified value 230 * @param dateFrom value to be set 231 * @param <TValue> value type 232 * @return ByProjectKeyGet 233 */ 234 public <TValue> ByProjectKeyGet withDateFrom(final TValue dateFrom) { 235 return copy().withQueryParam("date.from", dateFrom); 236 } 237 238 /** 239 * add additional dateFrom query parameter 240 * @param dateFrom value to be added 241 * @param <TValue> value type 242 * @return ByProjectKeyGet 243 */ 244 public <TValue> ByProjectKeyGet addDateFrom(final TValue dateFrom) { 245 return copy().addQueryParam("date.from", dateFrom); 246 } 247 248 /** 249 * set dateFrom with the specified value 250 * @param supplier supplier for the value to be set 251 * @return ByProjectKeyGet 252 */ 253 public ByProjectKeyGet withDateFrom(final Supplier<Object> supplier) { 254 return copy().withQueryParam("date.from", supplier.get()); 255 } 256 257 /** 258 * add additional dateFrom query parameter 259 * @param supplier supplier for the value to be added 260 * @return ByProjectKeyGet 261 */ 262 public ByProjectKeyGet addDateFrom(final Supplier<Object> supplier) { 263 return copy().addQueryParam("date.from", supplier.get()); 264 } 265 266 /** 267 * set dateFrom with the specified value 268 * @param op builder for the value to be set 269 * @return ByProjectKeyGet 270 */ 271 public ByProjectKeyGet withDateFrom(final Function<StringBuilder, StringBuilder> op) { 272 return copy().withQueryParam("date.from", op.apply(new StringBuilder())); 273 } 274 275 /** 276 * add additional dateFrom query parameter 277 * @param op builder for the value to be added 278 * @return ByProjectKeyGet 279 */ 280 public ByProjectKeyGet addDateFrom(final Function<StringBuilder, StringBuilder> op) { 281 return copy().addQueryParam("date.from", op.apply(new StringBuilder())); 282 } 283 284 /** 285 * set dateFrom with the specified values 286 * @param dateFrom values to be set 287 * @param <TValue> value type 288 * @return ByProjectKeyGet 289 */ 290 public <TValue> ByProjectKeyGet withDateFrom(final Collection<TValue> dateFrom) { 291 return copy().withoutQueryParam("date.from") 292 .addQueryParams(dateFrom.stream() 293 .map(s -> new ParamEntry<>("date.from", s.toString())) 294 .collect(Collectors.toList())); 295 } 296 297 /** 298 * add additional dateFrom query parameters 299 * @param dateFrom values to be added 300 * @param <TValue> value type 301 * @return ByProjectKeyGet 302 */ 303 public <TValue> ByProjectKeyGet addDateFrom(final Collection<TValue> dateFrom) { 304 return copy().addQueryParams( 305 dateFrom.stream().map(s -> new ParamEntry<>("date.from", s.toString())).collect(Collectors.toList())); 306 } 307 308 /** 309 * set dateTo with the specified value 310 * @param dateTo value to be set 311 * @param <TValue> value type 312 * @return ByProjectKeyGet 313 */ 314 public <TValue> ByProjectKeyGet withDateTo(final TValue dateTo) { 315 return copy().withQueryParam("date.to", dateTo); 316 } 317 318 /** 319 * add additional dateTo query parameter 320 * @param dateTo value to be added 321 * @param <TValue> value type 322 * @return ByProjectKeyGet 323 */ 324 public <TValue> ByProjectKeyGet addDateTo(final TValue dateTo) { 325 return copy().addQueryParam("date.to", dateTo); 326 } 327 328 /** 329 * set dateTo with the specified value 330 * @param supplier supplier for the value to be set 331 * @return ByProjectKeyGet 332 */ 333 public ByProjectKeyGet withDateTo(final Supplier<Object> supplier) { 334 return copy().withQueryParam("date.to", supplier.get()); 335 } 336 337 /** 338 * add additional dateTo query parameter 339 * @param supplier supplier for the value to be added 340 * @return ByProjectKeyGet 341 */ 342 public ByProjectKeyGet addDateTo(final Supplier<Object> supplier) { 343 return copy().addQueryParam("date.to", supplier.get()); 344 } 345 346 /** 347 * set dateTo with the specified value 348 * @param op builder for the value to be set 349 * @return ByProjectKeyGet 350 */ 351 public ByProjectKeyGet withDateTo(final Function<StringBuilder, StringBuilder> op) { 352 return copy().withQueryParam("date.to", op.apply(new StringBuilder())); 353 } 354 355 /** 356 * add additional dateTo query parameter 357 * @param op builder for the value to be added 358 * @return ByProjectKeyGet 359 */ 360 public ByProjectKeyGet addDateTo(final Function<StringBuilder, StringBuilder> op) { 361 return copy().addQueryParam("date.to", op.apply(new StringBuilder())); 362 } 363 364 /** 365 * set dateTo with the specified values 366 * @param dateTo values to be set 367 * @param <TValue> value type 368 * @return ByProjectKeyGet 369 */ 370 public <TValue> ByProjectKeyGet withDateTo(final Collection<TValue> dateTo) { 371 return copy().withoutQueryParam("date.to") 372 .addQueryParams( 373 dateTo.stream().map(s -> new ParamEntry<>("date.to", s.toString())).collect(Collectors.toList())); 374 } 375 376 /** 377 * add additional dateTo query parameters 378 * @param dateTo values to be added 379 * @param <TValue> value type 380 * @return ByProjectKeyGet 381 */ 382 public <TValue> ByProjectKeyGet addDateTo(final Collection<TValue> dateTo) { 383 return copy().addQueryParams( 384 dateTo.stream().map(s -> new ParamEntry<>("date.to", s.toString())).collect(Collectors.toList())); 385 } 386 387 /** 388 * set limit with the specified value 389 * @param limit value to be set 390 * @param <TValue> value type 391 * @return ByProjectKeyGet 392 */ 393 public <TValue> ByProjectKeyGet withLimit(final TValue limit) { 394 return copy().withQueryParam("limit", limit); 395 } 396 397 /** 398 * add additional limit query parameter 399 * @param limit value to be added 400 * @param <TValue> value type 401 * @return ByProjectKeyGet 402 */ 403 public <TValue> ByProjectKeyGet addLimit(final TValue limit) { 404 return copy().addQueryParam("limit", limit); 405 } 406 407 /** 408 * set limit with the specified value 409 * @param supplier supplier for the value to be set 410 * @return ByProjectKeyGet 411 */ 412 public ByProjectKeyGet withLimit(final Supplier<Integer> supplier) { 413 return copy().withQueryParam("limit", supplier.get()); 414 } 415 416 /** 417 * add additional limit query parameter 418 * @param supplier supplier for the value to be added 419 * @return ByProjectKeyGet 420 */ 421 public ByProjectKeyGet addLimit(final Supplier<Integer> supplier) { 422 return copy().addQueryParam("limit", supplier.get()); 423 } 424 425 /** 426 * set limit with the specified value 427 * @param op builder for the value to be set 428 * @return ByProjectKeyGet 429 */ 430 public ByProjectKeyGet withLimit(final Function<StringBuilder, StringBuilder> op) { 431 return copy().withQueryParam("limit", op.apply(new StringBuilder())); 432 } 433 434 /** 435 * add additional limit query parameter 436 * @param op builder for the value to be added 437 * @return ByProjectKeyGet 438 */ 439 public ByProjectKeyGet addLimit(final Function<StringBuilder, StringBuilder> op) { 440 return copy().addQueryParam("limit", op.apply(new StringBuilder())); 441 } 442 443 /** 444 * set limit with the specified values 445 * @param limit values to be set 446 * @param <TValue> value type 447 * @return ByProjectKeyGet 448 */ 449 public <TValue> ByProjectKeyGet withLimit(final Collection<TValue> limit) { 450 return copy().withoutQueryParam("limit") 451 .addQueryParams( 452 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 453 } 454 455 /** 456 * add additional limit query parameters 457 * @param limit values to be added 458 * @param <TValue> value type 459 * @return ByProjectKeyGet 460 */ 461 public <TValue> ByProjectKeyGet addLimit(final Collection<TValue> limit) { 462 return copy().addQueryParams( 463 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 464 } 465 466 /** 467 * set offset with the specified value 468 * @param offset value to be set 469 * @param <TValue> value type 470 * @return ByProjectKeyGet 471 */ 472 public <TValue> ByProjectKeyGet withOffset(final TValue offset) { 473 return copy().withQueryParam("offset", offset); 474 } 475 476 /** 477 * add additional offset query parameter 478 * @param offset value to be added 479 * @param <TValue> value type 480 * @return ByProjectKeyGet 481 */ 482 public <TValue> ByProjectKeyGet addOffset(final TValue offset) { 483 return copy().addQueryParam("offset", offset); 484 } 485 486 /** 487 * set offset with the specified value 488 * @param supplier supplier for the value to be set 489 * @return ByProjectKeyGet 490 */ 491 public ByProjectKeyGet withOffset(final Supplier<Integer> supplier) { 492 return copy().withQueryParam("offset", supplier.get()); 493 } 494 495 /** 496 * add additional offset query parameter 497 * @param supplier supplier for the value to be added 498 * @return ByProjectKeyGet 499 */ 500 public ByProjectKeyGet addOffset(final Supplier<Integer> supplier) { 501 return copy().addQueryParam("offset", supplier.get()); 502 } 503 504 /** 505 * set offset with the specified value 506 * @param op builder for the value to be set 507 * @return ByProjectKeyGet 508 */ 509 public ByProjectKeyGet withOffset(final Function<StringBuilder, StringBuilder> op) { 510 return copy().withQueryParam("offset", op.apply(new StringBuilder())); 511 } 512 513 /** 514 * add additional offset query parameter 515 * @param op builder for the value to be added 516 * @return ByProjectKeyGet 517 */ 518 public ByProjectKeyGet addOffset(final Function<StringBuilder, StringBuilder> op) { 519 return copy().addQueryParam("offset", op.apply(new StringBuilder())); 520 } 521 522 /** 523 * set offset with the specified values 524 * @param offset values to be set 525 * @param <TValue> value type 526 * @return ByProjectKeyGet 527 */ 528 public <TValue> ByProjectKeyGet withOffset(final Collection<TValue> offset) { 529 return copy().withoutQueryParam("offset") 530 .addQueryParams( 531 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 532 } 533 534 /** 535 * add additional offset query parameters 536 * @param offset values to be added 537 * @param <TValue> value type 538 * @return ByProjectKeyGet 539 */ 540 public <TValue> ByProjectKeyGet addOffset(final Collection<TValue> offset) { 541 return copy().addQueryParams( 542 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 543 } 544 545 /** 546 * set userId with the specified value 547 * @param userId value to be set 548 * @param <TValue> value type 549 * @return ByProjectKeyGet 550 */ 551 public <TValue> ByProjectKeyGet withUserId(final TValue userId) { 552 return copy().withQueryParam("userId", userId); 553 } 554 555 /** 556 * add additional userId query parameter 557 * @param userId value to be added 558 * @param <TValue> value type 559 * @return ByProjectKeyGet 560 */ 561 public <TValue> ByProjectKeyGet addUserId(final TValue userId) { 562 return copy().addQueryParam("userId", userId); 563 } 564 565 /** 566 * set userId with the specified value 567 * @param supplier supplier for the value to be set 568 * @return ByProjectKeyGet 569 */ 570 public ByProjectKeyGet withUserId(final Supplier<String> supplier) { 571 return copy().withQueryParam("userId", supplier.get()); 572 } 573 574 /** 575 * add additional userId query parameter 576 * @param supplier supplier for the value to be added 577 * @return ByProjectKeyGet 578 */ 579 public ByProjectKeyGet addUserId(final Supplier<String> supplier) { 580 return copy().addQueryParam("userId", supplier.get()); 581 } 582 583 /** 584 * set userId with the specified value 585 * @param op builder for the value to be set 586 * @return ByProjectKeyGet 587 */ 588 public ByProjectKeyGet withUserId(final Function<StringBuilder, StringBuilder> op) { 589 return copy().withQueryParam("userId", op.apply(new StringBuilder())); 590 } 591 592 /** 593 * add additional userId query parameter 594 * @param op builder for the value to be added 595 * @return ByProjectKeyGet 596 */ 597 public ByProjectKeyGet addUserId(final Function<StringBuilder, StringBuilder> op) { 598 return copy().addQueryParam("userId", op.apply(new StringBuilder())); 599 } 600 601 /** 602 * set userId with the specified values 603 * @param userId values to be set 604 * @param <TValue> value type 605 * @return ByProjectKeyGet 606 */ 607 public <TValue> ByProjectKeyGet withUserId(final Collection<TValue> userId) { 608 return copy().withoutQueryParam("userId") 609 .addQueryParams( 610 userId.stream().map(s -> new ParamEntry<>("userId", s.toString())).collect(Collectors.toList())); 611 } 612 613 /** 614 * add additional userId query parameters 615 * @param userId values to be added 616 * @param <TValue> value type 617 * @return ByProjectKeyGet 618 */ 619 public <TValue> ByProjectKeyGet addUserId(final Collection<TValue> userId) { 620 return copy().addQueryParams( 621 userId.stream().map(s -> new ParamEntry<>("userId", s.toString())).collect(Collectors.toList())); 622 } 623 624 /** 625 * set type with the specified value 626 * @param type value to be set 627 * @param <TValue> value type 628 * @return ByProjectKeyGet 629 */ 630 public <TValue> ByProjectKeyGet withType(final TValue type) { 631 return copy().withQueryParam("type", type); 632 } 633 634 /** 635 * add additional type query parameter 636 * @param type value to be added 637 * @param <TValue> value type 638 * @return ByProjectKeyGet 639 */ 640 public <TValue> ByProjectKeyGet addType(final TValue type) { 641 return copy().addQueryParam("type", type); 642 } 643 644 /** 645 * set type with the specified value 646 * @param supplier supplier for the value to be set 647 * @return ByProjectKeyGet 648 */ 649 public ByProjectKeyGet withType(final Supplier<String> supplier) { 650 return copy().withQueryParam("type", supplier.get()); 651 } 652 653 /** 654 * add additional type query parameter 655 * @param supplier supplier for the value to be added 656 * @return ByProjectKeyGet 657 */ 658 public ByProjectKeyGet addType(final Supplier<String> supplier) { 659 return copy().addQueryParam("type", supplier.get()); 660 } 661 662 /** 663 * set type with the specified value 664 * @param op builder for the value to be set 665 * @return ByProjectKeyGet 666 */ 667 public ByProjectKeyGet withType(final Function<StringBuilder, StringBuilder> op) { 668 return copy().withQueryParam("type", op.apply(new StringBuilder())); 669 } 670 671 /** 672 * add additional type query parameter 673 * @param op builder for the value to be added 674 * @return ByProjectKeyGet 675 */ 676 public ByProjectKeyGet addType(final Function<StringBuilder, StringBuilder> op) { 677 return copy().addQueryParam("type", op.apply(new StringBuilder())); 678 } 679 680 /** 681 * set type with the specified values 682 * @param type values to be set 683 * @param <TValue> value type 684 * @return ByProjectKeyGet 685 */ 686 public <TValue> ByProjectKeyGet withType(final Collection<TValue> type) { 687 return copy().withoutQueryParam("type") 688 .addQueryParams( 689 type.stream().map(s -> new ParamEntry<>("type", s.toString())).collect(Collectors.toList())); 690 } 691 692 /** 693 * add additional type query parameters 694 * @param type values to be added 695 * @param <TValue> value type 696 * @return ByProjectKeyGet 697 */ 698 public <TValue> ByProjectKeyGet addType(final Collection<TValue> type) { 699 return copy().addQueryParams( 700 type.stream().map(s -> new ParamEntry<>("type", s.toString())).collect(Collectors.toList())); 701 } 702 703 /** 704 * set clientId with the specified value 705 * @param clientId value to be set 706 * @param <TValue> value type 707 * @return ByProjectKeyGet 708 */ 709 public <TValue> ByProjectKeyGet withClientId(final TValue clientId) { 710 return copy().withQueryParam("clientId", clientId); 711 } 712 713 /** 714 * add additional clientId query parameter 715 * @param clientId value to be added 716 * @param <TValue> value type 717 * @return ByProjectKeyGet 718 */ 719 public <TValue> ByProjectKeyGet addClientId(final TValue clientId) { 720 return copy().addQueryParam("clientId", clientId); 721 } 722 723 /** 724 * set clientId with the specified value 725 * @param supplier supplier for the value to be set 726 * @return ByProjectKeyGet 727 */ 728 public ByProjectKeyGet withClientId(final Supplier<String> supplier) { 729 return copy().withQueryParam("clientId", supplier.get()); 730 } 731 732 /** 733 * add additional clientId query parameter 734 * @param supplier supplier for the value to be added 735 * @return ByProjectKeyGet 736 */ 737 public ByProjectKeyGet addClientId(final Supplier<String> supplier) { 738 return copy().addQueryParam("clientId", supplier.get()); 739 } 740 741 /** 742 * set clientId with the specified value 743 * @param op builder for the value to be set 744 * @return ByProjectKeyGet 745 */ 746 public ByProjectKeyGet withClientId(final Function<StringBuilder, StringBuilder> op) { 747 return copy().withQueryParam("clientId", op.apply(new StringBuilder())); 748 } 749 750 /** 751 * add additional clientId query parameter 752 * @param op builder for the value to be added 753 * @return ByProjectKeyGet 754 */ 755 public ByProjectKeyGet addClientId(final Function<StringBuilder, StringBuilder> op) { 756 return copy().addQueryParam("clientId", op.apply(new StringBuilder())); 757 } 758 759 /** 760 * set clientId with the specified values 761 * @param clientId values to be set 762 * @param <TValue> value type 763 * @return ByProjectKeyGet 764 */ 765 public <TValue> ByProjectKeyGet withClientId(final Collection<TValue> clientId) { 766 return copy().withoutQueryParam("clientId") 767 .addQueryParams(clientId.stream() 768 .map(s -> new ParamEntry<>("clientId", s.toString())) 769 .collect(Collectors.toList())); 770 } 771 772 /** 773 * add additional clientId query parameters 774 * @param clientId values to be added 775 * @param <TValue> value type 776 * @return ByProjectKeyGet 777 */ 778 public <TValue> ByProjectKeyGet addClientId(final Collection<TValue> clientId) { 779 return copy().addQueryParams( 780 clientId.stream().map(s -> new ParamEntry<>("clientId", s.toString())).collect(Collectors.toList())); 781 } 782 783 /** 784 * set resourceId with the specified value 785 * @param resourceId value to be set 786 * @param <TValue> value type 787 * @return ByProjectKeyGet 788 */ 789 public <TValue> ByProjectKeyGet withResourceId(final TValue resourceId) { 790 return copy().withQueryParam("resourceId", resourceId); 791 } 792 793 /** 794 * add additional resourceId query parameter 795 * @param resourceId value to be added 796 * @param <TValue> value type 797 * @return ByProjectKeyGet 798 */ 799 public <TValue> ByProjectKeyGet addResourceId(final TValue resourceId) { 800 return copy().addQueryParam("resourceId", resourceId); 801 } 802 803 /** 804 * set resourceId with the specified value 805 * @param supplier supplier for the value to be set 806 * @return ByProjectKeyGet 807 */ 808 public ByProjectKeyGet withResourceId(final Supplier<String> supplier) { 809 return copy().withQueryParam("resourceId", supplier.get()); 810 } 811 812 /** 813 * add additional resourceId query parameter 814 * @param supplier supplier for the value to be added 815 * @return ByProjectKeyGet 816 */ 817 public ByProjectKeyGet addResourceId(final Supplier<String> supplier) { 818 return copy().addQueryParam("resourceId", supplier.get()); 819 } 820 821 /** 822 * set resourceId with the specified value 823 * @param op builder for the value to be set 824 * @return ByProjectKeyGet 825 */ 826 public ByProjectKeyGet withResourceId(final Function<StringBuilder, StringBuilder> op) { 827 return copy().withQueryParam("resourceId", op.apply(new StringBuilder())); 828 } 829 830 /** 831 * add additional resourceId query parameter 832 * @param op builder for the value to be added 833 * @return ByProjectKeyGet 834 */ 835 public ByProjectKeyGet addResourceId(final Function<StringBuilder, StringBuilder> op) { 836 return copy().addQueryParam("resourceId", op.apply(new StringBuilder())); 837 } 838 839 /** 840 * set resourceId with the specified values 841 * @param resourceId values to be set 842 * @param <TValue> value type 843 * @return ByProjectKeyGet 844 */ 845 public <TValue> ByProjectKeyGet withResourceId(final Collection<TValue> resourceId) { 846 return copy().withoutQueryParam("resourceId") 847 .addQueryParams(resourceId.stream() 848 .map(s -> new ParamEntry<>("resourceId", s.toString())) 849 .collect(Collectors.toList())); 850 } 851 852 /** 853 * add additional resourceId query parameters 854 * @param resourceId values to be added 855 * @param <TValue> value type 856 * @return ByProjectKeyGet 857 */ 858 public <TValue> ByProjectKeyGet addResourceId(final Collection<TValue> resourceId) { 859 return copy().addQueryParams( 860 resourceId.stream().map(s -> new ParamEntry<>("resourceId", s.toString())).collect(Collectors.toList())); 861 } 862 863 /** 864 * set resourceKey with the specified value 865 * @param resourceKey value to be set 866 * @param <TValue> value type 867 * @return ByProjectKeyGet 868 */ 869 public <TValue> ByProjectKeyGet withResourceKey(final TValue resourceKey) { 870 return copy().withQueryParam("resourceKey", resourceKey); 871 } 872 873 /** 874 * add additional resourceKey query parameter 875 * @param resourceKey value to be added 876 * @param <TValue> value type 877 * @return ByProjectKeyGet 878 */ 879 public <TValue> ByProjectKeyGet addResourceKey(final TValue resourceKey) { 880 return copy().addQueryParam("resourceKey", resourceKey); 881 } 882 883 /** 884 * set resourceKey with the specified value 885 * @param supplier supplier for the value to be set 886 * @return ByProjectKeyGet 887 */ 888 public ByProjectKeyGet withResourceKey(final Supplier<String> supplier) { 889 return copy().withQueryParam("resourceKey", supplier.get()); 890 } 891 892 /** 893 * add additional resourceKey query parameter 894 * @param supplier supplier for the value to be added 895 * @return ByProjectKeyGet 896 */ 897 public ByProjectKeyGet addResourceKey(final Supplier<String> supplier) { 898 return copy().addQueryParam("resourceKey", supplier.get()); 899 } 900 901 /** 902 * set resourceKey with the specified value 903 * @param op builder for the value to be set 904 * @return ByProjectKeyGet 905 */ 906 public ByProjectKeyGet withResourceKey(final Function<StringBuilder, StringBuilder> op) { 907 return copy().withQueryParam("resourceKey", op.apply(new StringBuilder())); 908 } 909 910 /** 911 * add additional resourceKey query parameter 912 * @param op builder for the value to be added 913 * @return ByProjectKeyGet 914 */ 915 public ByProjectKeyGet addResourceKey(final Function<StringBuilder, StringBuilder> op) { 916 return copy().addQueryParam("resourceKey", op.apply(new StringBuilder())); 917 } 918 919 /** 920 * set resourceKey with the specified values 921 * @param resourceKey values to be set 922 * @param <TValue> value type 923 * @return ByProjectKeyGet 924 */ 925 public <TValue> ByProjectKeyGet withResourceKey(final Collection<TValue> resourceKey) { 926 return copy().withoutQueryParam("resourceKey") 927 .addQueryParams(resourceKey.stream() 928 .map(s -> new ParamEntry<>("resourceKey", s.toString())) 929 .collect(Collectors.toList())); 930 } 931 932 /** 933 * add additional resourceKey query parameters 934 * @param resourceKey values to be added 935 * @param <TValue> value type 936 * @return ByProjectKeyGet 937 */ 938 public <TValue> ByProjectKeyGet addResourceKey(final Collection<TValue> resourceKey) { 939 return copy().addQueryParams( 940 resourceKey.stream().map(s -> new ParamEntry<>("resourceKey", s.toString())).collect(Collectors.toList())); 941 } 942 943 /** 944 * set source with the specified value 945 * @param source value to be set 946 * @param <TValue> value type 947 * @return ByProjectKeyGet 948 */ 949 public <TValue> ByProjectKeyGet withSource(final TValue source) { 950 return copy().withQueryParam("source", source); 951 } 952 953 /** 954 * add additional source query parameter 955 * @param source value to be added 956 * @param <TValue> value type 957 * @return ByProjectKeyGet 958 */ 959 public <TValue> ByProjectKeyGet addSource(final TValue source) { 960 return copy().addQueryParam("source", source); 961 } 962 963 /** 964 * set source with the specified value 965 * @param supplier supplier for the value to be set 966 * @return ByProjectKeyGet 967 */ 968 public ByProjectKeyGet withSource(final Supplier<String> supplier) { 969 return copy().withQueryParam("source", supplier.get()); 970 } 971 972 /** 973 * add additional source query parameter 974 * @param supplier supplier for the value to be added 975 * @return ByProjectKeyGet 976 */ 977 public ByProjectKeyGet addSource(final Supplier<String> supplier) { 978 return copy().addQueryParam("source", supplier.get()); 979 } 980 981 /** 982 * set source with the specified value 983 * @param op builder for the value to be set 984 * @return ByProjectKeyGet 985 */ 986 public ByProjectKeyGet withSource(final Function<StringBuilder, StringBuilder> op) { 987 return copy().withQueryParam("source", op.apply(new StringBuilder())); 988 } 989 990 /** 991 * add additional source query parameter 992 * @param op builder for the value to be added 993 * @return ByProjectKeyGet 994 */ 995 public ByProjectKeyGet addSource(final Function<StringBuilder, StringBuilder> op) { 996 return copy().addQueryParam("source", op.apply(new StringBuilder())); 997 } 998 999 /** 1000 * set source with the specified values 1001 * @param source values to be set 1002 * @param <TValue> value type 1003 * @return ByProjectKeyGet 1004 */ 1005 public <TValue> ByProjectKeyGet withSource(final Collection<TValue> source) { 1006 return copy().withoutQueryParam("source") 1007 .addQueryParams( 1008 source.stream().map(s -> new ParamEntry<>("source", s.toString())).collect(Collectors.toList())); 1009 } 1010 1011 /** 1012 * add additional source query parameters 1013 * @param source values to be added 1014 * @param <TValue> value type 1015 * @return ByProjectKeyGet 1016 */ 1017 public <TValue> ByProjectKeyGet addSource(final Collection<TValue> source) { 1018 return copy().addQueryParams( 1019 source.stream().map(s -> new ParamEntry<>("source", s.toString())).collect(Collectors.toList())); 1020 } 1021 1022 /** 1023 * set changes with the specified value 1024 * @param changes value to be set 1025 * @param <TValue> value type 1026 * @return ByProjectKeyGet 1027 */ 1028 public <TValue> ByProjectKeyGet withChanges(final TValue changes) { 1029 return copy().withQueryParam("changes", changes); 1030 } 1031 1032 /** 1033 * add additional changes query parameter 1034 * @param changes value to be added 1035 * @param <TValue> value type 1036 * @return ByProjectKeyGet 1037 */ 1038 public <TValue> ByProjectKeyGet addChanges(final TValue changes) { 1039 return copy().addQueryParam("changes", changes); 1040 } 1041 1042 /** 1043 * set changes with the specified value 1044 * @param supplier supplier for the value to be set 1045 * @return ByProjectKeyGet 1046 */ 1047 public ByProjectKeyGet withChanges(final Supplier<String> supplier) { 1048 return copy().withQueryParam("changes", supplier.get()); 1049 } 1050 1051 /** 1052 * add additional changes query parameter 1053 * @param supplier supplier for the value to be added 1054 * @return ByProjectKeyGet 1055 */ 1056 public ByProjectKeyGet addChanges(final Supplier<String> supplier) { 1057 return copy().addQueryParam("changes", supplier.get()); 1058 } 1059 1060 /** 1061 * set changes with the specified value 1062 * @param op builder for the value to be set 1063 * @return ByProjectKeyGet 1064 */ 1065 public ByProjectKeyGet withChanges(final Function<StringBuilder, StringBuilder> op) { 1066 return copy().withQueryParam("changes", op.apply(new StringBuilder())); 1067 } 1068 1069 /** 1070 * add additional changes query parameter 1071 * @param op builder for the value to be added 1072 * @return ByProjectKeyGet 1073 */ 1074 public ByProjectKeyGet addChanges(final Function<StringBuilder, StringBuilder> op) { 1075 return copy().addQueryParam("changes", op.apply(new StringBuilder())); 1076 } 1077 1078 /** 1079 * set changes with the specified values 1080 * @param changes values to be set 1081 * @param <TValue> value type 1082 * @return ByProjectKeyGet 1083 */ 1084 public <TValue> ByProjectKeyGet withChanges(final Collection<TValue> changes) { 1085 return copy().withoutQueryParam("changes") 1086 .addQueryParams( 1087 changes.stream().map(s -> new ParamEntry<>("changes", s.toString())).collect(Collectors.toList())); 1088 } 1089 1090 /** 1091 * add additional changes query parameters 1092 * @param changes values to be added 1093 * @param <TValue> value type 1094 * @return ByProjectKeyGet 1095 */ 1096 public <TValue> ByProjectKeyGet addChanges(final Collection<TValue> changes) { 1097 return copy().addQueryParams( 1098 changes.stream().map(s -> new ParamEntry<>("changes", s.toString())).collect(Collectors.toList())); 1099 } 1100 1101 /** 1102 * set stores with the specified value 1103 * @param stores value to be set 1104 * @param <TValue> value type 1105 * @return ByProjectKeyGet 1106 */ 1107 public <TValue> ByProjectKeyGet withStores(final TValue stores) { 1108 return copy().withQueryParam("stores", stores); 1109 } 1110 1111 /** 1112 * add additional stores query parameter 1113 * @param stores value to be added 1114 * @param <TValue> value type 1115 * @return ByProjectKeyGet 1116 */ 1117 public <TValue> ByProjectKeyGet addStores(final TValue stores) { 1118 return copy().addQueryParam("stores", stores); 1119 } 1120 1121 /** 1122 * set stores with the specified value 1123 * @param supplier supplier for the value to be set 1124 * @return ByProjectKeyGet 1125 */ 1126 public ByProjectKeyGet withStores(final Supplier<String> supplier) { 1127 return copy().withQueryParam("stores", supplier.get()); 1128 } 1129 1130 /** 1131 * add additional stores query parameter 1132 * @param supplier supplier for the value to be added 1133 * @return ByProjectKeyGet 1134 */ 1135 public ByProjectKeyGet addStores(final Supplier<String> supplier) { 1136 return copy().addQueryParam("stores", supplier.get()); 1137 } 1138 1139 /** 1140 * set stores with the specified value 1141 * @param op builder for the value to be set 1142 * @return ByProjectKeyGet 1143 */ 1144 public ByProjectKeyGet withStores(final Function<StringBuilder, StringBuilder> op) { 1145 return copy().withQueryParam("stores", op.apply(new StringBuilder())); 1146 } 1147 1148 /** 1149 * add additional stores query parameter 1150 * @param op builder for the value to be added 1151 * @return ByProjectKeyGet 1152 */ 1153 public ByProjectKeyGet addStores(final Function<StringBuilder, StringBuilder> op) { 1154 return copy().addQueryParam("stores", op.apply(new StringBuilder())); 1155 } 1156 1157 /** 1158 * set stores with the specified values 1159 * @param stores values to be set 1160 * @param <TValue> value type 1161 * @return ByProjectKeyGet 1162 */ 1163 public <TValue> ByProjectKeyGet withStores(final Collection<TValue> stores) { 1164 return copy().withoutQueryParam("stores") 1165 .addQueryParams( 1166 stores.stream().map(s -> new ParamEntry<>("stores", s.toString())).collect(Collectors.toList())); 1167 } 1168 1169 /** 1170 * add additional stores query parameters 1171 * @param stores values to be added 1172 * @param <TValue> value type 1173 * @return ByProjectKeyGet 1174 */ 1175 public <TValue> ByProjectKeyGet addStores(final Collection<TValue> stores) { 1176 return copy().addQueryParams( 1177 stores.stream().map(s -> new ParamEntry<>("stores", s.toString())).collect(Collectors.toList())); 1178 } 1179 1180 /** 1181 * set customerId with the specified value 1182 * @param customerId value to be set 1183 * @param <TValue> value type 1184 * @return ByProjectKeyGet 1185 */ 1186 public <TValue> ByProjectKeyGet withCustomerId(final TValue customerId) { 1187 return copy().withQueryParam("customerId", customerId); 1188 } 1189 1190 /** 1191 * add additional customerId query parameter 1192 * @param customerId value to be added 1193 * @param <TValue> value type 1194 * @return ByProjectKeyGet 1195 */ 1196 public <TValue> ByProjectKeyGet addCustomerId(final TValue customerId) { 1197 return copy().addQueryParam("customerId", customerId); 1198 } 1199 1200 /** 1201 * set customerId with the specified value 1202 * @param supplier supplier for the value to be set 1203 * @return ByProjectKeyGet 1204 */ 1205 public ByProjectKeyGet withCustomerId(final Supplier<String> supplier) { 1206 return copy().withQueryParam("customerId", supplier.get()); 1207 } 1208 1209 /** 1210 * add additional customerId query parameter 1211 * @param supplier supplier for the value to be added 1212 * @return ByProjectKeyGet 1213 */ 1214 public ByProjectKeyGet addCustomerId(final Supplier<String> supplier) { 1215 return copy().addQueryParam("customerId", supplier.get()); 1216 } 1217 1218 /** 1219 * set customerId with the specified value 1220 * @param op builder for the value to be set 1221 * @return ByProjectKeyGet 1222 */ 1223 public ByProjectKeyGet withCustomerId(final Function<StringBuilder, StringBuilder> op) { 1224 return copy().withQueryParam("customerId", op.apply(new StringBuilder())); 1225 } 1226 1227 /** 1228 * add additional customerId query parameter 1229 * @param op builder for the value to be added 1230 * @return ByProjectKeyGet 1231 */ 1232 public ByProjectKeyGet addCustomerId(final Function<StringBuilder, StringBuilder> op) { 1233 return copy().addQueryParam("customerId", op.apply(new StringBuilder())); 1234 } 1235 1236 /** 1237 * set customerId with the specified values 1238 * @param customerId values to be set 1239 * @param <TValue> value type 1240 * @return ByProjectKeyGet 1241 */ 1242 public <TValue> ByProjectKeyGet withCustomerId(final Collection<TValue> customerId) { 1243 return copy().withoutQueryParam("customerId") 1244 .addQueryParams(customerId.stream() 1245 .map(s -> new ParamEntry<>("customerId", s.toString())) 1246 .collect(Collectors.toList())); 1247 } 1248 1249 /** 1250 * add additional customerId query parameters 1251 * @param customerId values to be added 1252 * @param <TValue> value type 1253 * @return ByProjectKeyGet 1254 */ 1255 public <TValue> ByProjectKeyGet addCustomerId(final Collection<TValue> customerId) { 1256 return copy().addQueryParams( 1257 customerId.stream().map(s -> new ParamEntry<>("customerId", s.toString())).collect(Collectors.toList())); 1258 } 1259 1260 /** 1261 * set excludePlatformInitiatedChanges with the specified value 1262 * @param excludePlatformInitiatedChanges value to be set 1263 * @param <TValue> value type 1264 * @return ByProjectKeyGet 1265 */ 1266 public <TValue> ByProjectKeyGet withExcludePlatformInitiatedChanges(final TValue excludePlatformInitiatedChanges) { 1267 return copy().withQueryParam("excludePlatformInitiatedChanges", excludePlatformInitiatedChanges); 1268 } 1269 1270 /** 1271 * add additional excludePlatformInitiatedChanges query parameter 1272 * @param excludePlatformInitiatedChanges value to be added 1273 * @param <TValue> value type 1274 * @return ByProjectKeyGet 1275 */ 1276 public <TValue> ByProjectKeyGet addExcludePlatformInitiatedChanges(final TValue excludePlatformInitiatedChanges) { 1277 return copy().addQueryParam("excludePlatformInitiatedChanges", excludePlatformInitiatedChanges); 1278 } 1279 1280 /** 1281 * set excludePlatformInitiatedChanges with the specified value 1282 * @param supplier supplier for the value to be set 1283 * @return ByProjectKeyGet 1284 */ 1285 public ByProjectKeyGet withExcludePlatformInitiatedChanges(final Supplier<PlatformInitiatedChange> supplier) { 1286 return copy().withQueryParam("excludePlatformInitiatedChanges", supplier.get()); 1287 } 1288 1289 /** 1290 * add additional excludePlatformInitiatedChanges query parameter 1291 * @param supplier supplier for the value to be added 1292 * @return ByProjectKeyGet 1293 */ 1294 public ByProjectKeyGet addExcludePlatformInitiatedChanges(final Supplier<PlatformInitiatedChange> supplier) { 1295 return copy().addQueryParam("excludePlatformInitiatedChanges", supplier.get()); 1296 } 1297 1298 /** 1299 * set excludePlatformInitiatedChanges with the specified value 1300 * @param op builder for the value to be set 1301 * @return ByProjectKeyGet 1302 */ 1303 public ByProjectKeyGet withExcludePlatformInitiatedChanges(final Function<StringBuilder, StringBuilder> op) { 1304 return copy().withQueryParam("excludePlatformInitiatedChanges", op.apply(new StringBuilder())); 1305 } 1306 1307 /** 1308 * add additional excludePlatformInitiatedChanges query parameter 1309 * @param op builder for the value to be added 1310 * @return ByProjectKeyGet 1311 */ 1312 public ByProjectKeyGet addExcludePlatformInitiatedChanges(final Function<StringBuilder, StringBuilder> op) { 1313 return copy().addQueryParam("excludePlatformInitiatedChanges", op.apply(new StringBuilder())); 1314 } 1315 1316 /** 1317 * set excludePlatformInitiatedChanges with the specified values 1318 * @param excludePlatformInitiatedChanges values to be set 1319 * @param <TValue> value type 1320 * @return ByProjectKeyGet 1321 */ 1322 public <TValue> ByProjectKeyGet withExcludePlatformInitiatedChanges( 1323 final Collection<TValue> excludePlatformInitiatedChanges) { 1324 return copy().withoutQueryParam("excludePlatformInitiatedChanges") 1325 .addQueryParams(excludePlatformInitiatedChanges.stream() 1326 .map(s -> new ParamEntry<>("excludePlatformInitiatedChanges", s.toString())) 1327 .collect(Collectors.toList())); 1328 } 1329 1330 /** 1331 * add additional excludePlatformInitiatedChanges query parameters 1332 * @param excludePlatformInitiatedChanges values to be added 1333 * @param <TValue> value type 1334 * @return ByProjectKeyGet 1335 */ 1336 public <TValue> ByProjectKeyGet addExcludePlatformInitiatedChanges( 1337 final Collection<TValue> excludePlatformInitiatedChanges) { 1338 return copy().addQueryParams(excludePlatformInitiatedChanges.stream() 1339 .map(s -> new ParamEntry<>("excludePlatformInitiatedChanges", s.toString())) 1340 .collect(Collectors.toList())); 1341 } 1342 1343 /** 1344 * set expand with the specified value 1345 * @param expand value to be set 1346 * @param <TValue> value type 1347 * @return ByProjectKeyGet 1348 */ 1349 public <TValue> ByProjectKeyGet withExpand(final TValue expand) { 1350 return copy().withQueryParam("expand", expand); 1351 } 1352 1353 /** 1354 * add additional expand query parameter 1355 * @param expand value to be added 1356 * @param <TValue> value type 1357 * @return ByProjectKeyGet 1358 */ 1359 public <TValue> ByProjectKeyGet addExpand(final TValue expand) { 1360 return copy().addQueryParam("expand", expand); 1361 } 1362 1363 /** 1364 * set expand with the specified value 1365 * @param supplier supplier for the value to be set 1366 * @return ByProjectKeyGet 1367 */ 1368 public ByProjectKeyGet withExpand(final Supplier<Boolean> supplier) { 1369 return copy().withQueryParam("expand", supplier.get()); 1370 } 1371 1372 /** 1373 * add additional expand query parameter 1374 * @param supplier supplier for the value to be added 1375 * @return ByProjectKeyGet 1376 */ 1377 public ByProjectKeyGet addExpand(final Supplier<Boolean> supplier) { 1378 return copy().addQueryParam("expand", supplier.get()); 1379 } 1380 1381 /** 1382 * set expand with the specified value 1383 * @param op builder for the value to be set 1384 * @return ByProjectKeyGet 1385 */ 1386 public ByProjectKeyGet withExpand(final Function<StringBuilder, StringBuilder> op) { 1387 return copy().withQueryParam("expand", op.apply(new StringBuilder())); 1388 } 1389 1390 /** 1391 * add additional expand query parameter 1392 * @param op builder for the value to be added 1393 * @return ByProjectKeyGet 1394 */ 1395 public ByProjectKeyGet addExpand(final Function<StringBuilder, StringBuilder> op) { 1396 return copy().addQueryParam("expand", op.apply(new StringBuilder())); 1397 } 1398 1399 /** 1400 * set expand with the specified values 1401 * @param expand values to be set 1402 * @param <TValue> value type 1403 * @return ByProjectKeyGet 1404 */ 1405 public <TValue> ByProjectKeyGet withExpand(final Collection<TValue> expand) { 1406 return copy().withoutQueryParam("expand") 1407 .addQueryParams( 1408 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 1409 } 1410 1411 /** 1412 * add additional expand query parameters 1413 * @param expand values to be added 1414 * @param <TValue> value type 1415 * @return ByProjectKeyGet 1416 */ 1417 public <TValue> ByProjectKeyGet addExpand(final Collection<TValue> expand) { 1418 return copy().addQueryParams( 1419 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 1420 } 1421 1422 @Override 1423 public boolean equals(Object o) { 1424 if (this == o) 1425 return true; 1426 1427 if (o == null || getClass() != o.getClass()) 1428 return false; 1429 1430 ByProjectKeyGet that = (ByProjectKeyGet) o; 1431 1432 return new EqualsBuilder().append(projectKey, that.projectKey).isEquals(); 1433 } 1434 1435 @Override 1436 public int hashCode() { 1437 return new HashCodeBuilder(17, 37).append(projectKey).toHashCode(); 1438 } 1439 1440 @Override 1441 protected ByProjectKeyGet copy() { 1442 return new ByProjectKeyGet(this); 1443 } 1444}