001 002package com.commercetools.api.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 io.vrap.rmf.base.client.*; 015import io.vrap.rmf.base.client.utils.Generated; 016 017import org.apache.commons.lang3.builder.EqualsBuilder; 018import org.apache.commons.lang3.builder.HashCodeBuilder; 019 020/** 021 * <p>Product Projection Search</p> 022 * 023 * <hr> 024 * <div class=code-example> 025 * <pre><code class='java'>{@code 026 * CompletableFuture<ApiHttpResponse<com.commercetools.api.models.product.ProductProjectionPagedSearchResponse>> result = apiRoot 027 * .withProjectKey("{projectKey}") 028 * .productProjections() 029 * .search() 030 * .get() 031 * .execute() 032 * }</code></pre> 033 * </div> 034 */ 035@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 036public class ByProjectKeyProductProjectionsSearchGet extends 037 ApiMethod<ByProjectKeyProductProjectionsSearchGet, com.commercetools.api.models.product.ProductProjectionPagedSearchResponse> 038 implements com.commercetools.api.client.SortableTrait<ByProjectKeyProductProjectionsSearchGet>, 039 com.commercetools.api.client.PagingTrait<ByProjectKeyProductProjectionsSearchGet>, 040 com.commercetools.api.client.ProjectionselectingTrait<ByProjectKeyProductProjectionsSearchGet>, 041 com.commercetools.api.client.PriceselectingTrait<ByProjectKeyProductProjectionsSearchGet>, 042 com.commercetools.api.client.LocaleprojectingTrait<ByProjectKeyProductProjectionsSearchGet>, 043 com.commercetools.api.client.StoreprojectingTrait<ByProjectKeyProductProjectionsSearchGet>, 044 com.commercetools.api.client.ExpandableTrait<ByProjectKeyProductProjectionsSearchGet>, 045 com.commercetools.api.client.ErrorableTrait<ByProjectKeyProductProjectionsSearchGet>, 046 com.commercetools.api.client.Deprecatable200Trait<ByProjectKeyProductProjectionsSearchGet> { 047 048 private String projectKey; 049 050 public ByProjectKeyProductProjectionsSearchGet(final ApiHttpClient apiHttpClient, String projectKey) { 051 super(apiHttpClient); 052 this.projectKey = projectKey; 053 } 054 055 public ByProjectKeyProductProjectionsSearchGet(ByProjectKeyProductProjectionsSearchGet t) { 056 super(t); 057 this.projectKey = t.projectKey; 058 } 059 060 @Override 061 protected ApiHttpRequest buildHttpRequest() { 062 List<String> params = new ArrayList<>(getQueryParamUriStrings()); 063 String httpRequestPath = String.format("%s/product-projections/search", this.projectKey); 064 if (!params.isEmpty()) { 065 httpRequestPath += "?" + String.join("&", params); 066 } 067 return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null); 068 } 069 070 @Override 071 public ApiHttpResponse<com.commercetools.api.models.product.ProductProjectionPagedSearchResponse> executeBlocking( 072 final ApiHttpClient client, final Duration timeout) { 073 return executeBlocking(client, timeout, 074 com.commercetools.api.models.product.ProductProjectionPagedSearchResponse.class); 075 } 076 077 @Override 078 public CompletableFuture<ApiHttpResponse<com.commercetools.api.models.product.ProductProjectionPagedSearchResponse>> execute( 079 final ApiHttpClient client) { 080 return execute(client, com.commercetools.api.models.product.ProductProjectionPagedSearchResponse.class); 081 } 082 083 public String getProjectKey() { 084 return this.projectKey; 085 } 086 087 public List<String> getFuzzy() { 088 return this.getQueryParam("fuzzy"); 089 } 090 091 public List<String> getFuzzyLevel() { 092 return this.getQueryParam("fuzzyLevel"); 093 } 094 095 public List<String> getMarkMatchingVariants() { 096 return this.getQueryParam("markMatchingVariants"); 097 } 098 099 public List<String> getFilter() { 100 return this.getQueryParam("filter"); 101 } 102 103 public List<String> getFilterFacets() { 104 return this.getQueryParam("filter.facets"); 105 } 106 107 public List<String> getFilterQuery() { 108 return this.getQueryParam("filter.query"); 109 } 110 111 public List<String> getFacet() { 112 return this.getQueryParam("facet"); 113 } 114 115 public List<String> getSort() { 116 return this.getQueryParam("sort"); 117 } 118 119 public List<String> getLimit() { 120 return this.getQueryParam("limit"); 121 } 122 123 public List<String> getOffset() { 124 return this.getQueryParam("offset"); 125 } 126 127 public List<String> getWithTotal() { 128 return this.getQueryParam("withTotal"); 129 } 130 131 public List<String> getStaged() { 132 return this.getQueryParam("staged"); 133 } 134 135 public List<String> getPriceCurrency() { 136 return this.getQueryParam("priceCurrency"); 137 } 138 139 public List<String> getPriceCountry() { 140 return this.getQueryParam("priceCountry"); 141 } 142 143 public List<String> getPriceCustomerGroup() { 144 return this.getQueryParam("priceCustomerGroup"); 145 } 146 147 public List<String> getPriceChannel() { 148 return this.getQueryParam("priceChannel"); 149 } 150 151 public List<String> getLocaleProjection() { 152 return this.getQueryParam("localeProjection"); 153 } 154 155 public List<String> getStoreProjection() { 156 return this.getQueryParam("storeProjection"); 157 } 158 159 public List<String> getExpand() { 160 return this.getQueryParam("expand"); 161 } 162 163 public void setProjectKey(final String projectKey) { 164 this.projectKey = projectKey; 165 } 166 167 /** 168 * set fuzzy with the specified value 169 * @param fuzzy value to be set 170 * @param <TValue> value type 171 * @return ByProjectKeyProductProjectionsSearchGet 172 */ 173 public <TValue> ByProjectKeyProductProjectionsSearchGet withFuzzy(final TValue fuzzy) { 174 return copy().withQueryParam("fuzzy", fuzzy); 175 } 176 177 /** 178 * add additional fuzzy query parameter 179 * @param fuzzy value to be added 180 * @param <TValue> value type 181 * @return ByProjectKeyProductProjectionsSearchGet 182 */ 183 public <TValue> ByProjectKeyProductProjectionsSearchGet addFuzzy(final TValue fuzzy) { 184 return copy().addQueryParam("fuzzy", fuzzy); 185 } 186 187 /** 188 * set fuzzy with the specified value 189 * @param supplier supplier for the value to be set 190 * @return ByProjectKeyProductProjectionsSearchGet 191 */ 192 public ByProjectKeyProductProjectionsSearchGet withFuzzy(final Supplier<Boolean> supplier) { 193 return copy().withQueryParam("fuzzy", supplier.get()); 194 } 195 196 /** 197 * add additional fuzzy query parameter 198 * @param supplier supplier for the value to be added 199 * @return ByProjectKeyProductProjectionsSearchGet 200 */ 201 public ByProjectKeyProductProjectionsSearchGet addFuzzy(final Supplier<Boolean> supplier) { 202 return copy().addQueryParam("fuzzy", supplier.get()); 203 } 204 205 /** 206 * set fuzzy with the specified value 207 * @param op builder for the value to be set 208 * @return ByProjectKeyProductProjectionsSearchGet 209 */ 210 public ByProjectKeyProductProjectionsSearchGet withFuzzy(final Function<StringBuilder, StringBuilder> op) { 211 return copy().withQueryParam("fuzzy", op.apply(new StringBuilder())); 212 } 213 214 /** 215 * add additional fuzzy query parameter 216 * @param op builder for the value to be added 217 * @return ByProjectKeyProductProjectionsSearchGet 218 */ 219 public ByProjectKeyProductProjectionsSearchGet addFuzzy(final Function<StringBuilder, StringBuilder> op) { 220 return copy().addQueryParam("fuzzy", op.apply(new StringBuilder())); 221 } 222 223 /** 224 * set fuzzy with the specified values 225 * @param fuzzy values to be set 226 * @param <TValue> value type 227 * @return ByProjectKeyProductProjectionsSearchGet 228 */ 229 public <TValue> ByProjectKeyProductProjectionsSearchGet withFuzzy(final Collection<TValue> fuzzy) { 230 return copy().withoutQueryParam("fuzzy") 231 .addQueryParams( 232 fuzzy.stream().map(s -> new ParamEntry<>("fuzzy", s.toString())).collect(Collectors.toList())); 233 } 234 235 /** 236 * add additional fuzzy query parameters 237 * @param fuzzy values to be added 238 * @param <TValue> value type 239 * @return ByProjectKeyProductProjectionsSearchGet 240 */ 241 public <TValue> ByProjectKeyProductProjectionsSearchGet addFuzzy(final Collection<TValue> fuzzy) { 242 return copy().addQueryParams( 243 fuzzy.stream().map(s -> new ParamEntry<>("fuzzy", s.toString())).collect(Collectors.toList())); 244 } 245 246 /** 247 * set fuzzyLevel with the specified value 248 * @param fuzzyLevel value to be set 249 * @param <TValue> value type 250 * @return ByProjectKeyProductProjectionsSearchGet 251 */ 252 public <TValue> ByProjectKeyProductProjectionsSearchGet withFuzzyLevel(final TValue fuzzyLevel) { 253 return copy().withQueryParam("fuzzyLevel", fuzzyLevel); 254 } 255 256 /** 257 * add additional fuzzyLevel query parameter 258 * @param fuzzyLevel value to be added 259 * @param <TValue> value type 260 * @return ByProjectKeyProductProjectionsSearchGet 261 */ 262 public <TValue> ByProjectKeyProductProjectionsSearchGet addFuzzyLevel(final TValue fuzzyLevel) { 263 return copy().addQueryParam("fuzzyLevel", fuzzyLevel); 264 } 265 266 /** 267 * set fuzzyLevel with the specified value 268 * @param supplier supplier for the value to be set 269 * @return ByProjectKeyProductProjectionsSearchGet 270 */ 271 public ByProjectKeyProductProjectionsSearchGet withFuzzyLevel(final Supplier<Integer> supplier) { 272 return copy().withQueryParam("fuzzyLevel", supplier.get()); 273 } 274 275 /** 276 * add additional fuzzyLevel query parameter 277 * @param supplier supplier for the value to be added 278 * @return ByProjectKeyProductProjectionsSearchGet 279 */ 280 public ByProjectKeyProductProjectionsSearchGet addFuzzyLevel(final Supplier<Integer> supplier) { 281 return copy().addQueryParam("fuzzyLevel", supplier.get()); 282 } 283 284 /** 285 * set fuzzyLevel with the specified value 286 * @param op builder for the value to be set 287 * @return ByProjectKeyProductProjectionsSearchGet 288 */ 289 public ByProjectKeyProductProjectionsSearchGet withFuzzyLevel(final Function<StringBuilder, StringBuilder> op) { 290 return copy().withQueryParam("fuzzyLevel", op.apply(new StringBuilder())); 291 } 292 293 /** 294 * add additional fuzzyLevel query parameter 295 * @param op builder for the value to be added 296 * @return ByProjectKeyProductProjectionsSearchGet 297 */ 298 public ByProjectKeyProductProjectionsSearchGet addFuzzyLevel(final Function<StringBuilder, StringBuilder> op) { 299 return copy().addQueryParam("fuzzyLevel", op.apply(new StringBuilder())); 300 } 301 302 /** 303 * set fuzzyLevel with the specified values 304 * @param fuzzyLevel values to be set 305 * @param <TValue> value type 306 * @return ByProjectKeyProductProjectionsSearchGet 307 */ 308 public <TValue> ByProjectKeyProductProjectionsSearchGet withFuzzyLevel(final Collection<TValue> fuzzyLevel) { 309 return copy().withoutQueryParam("fuzzyLevel") 310 .addQueryParams(fuzzyLevel.stream() 311 .map(s -> new ParamEntry<>("fuzzyLevel", s.toString())) 312 .collect(Collectors.toList())); 313 } 314 315 /** 316 * add additional fuzzyLevel query parameters 317 * @param fuzzyLevel values to be added 318 * @param <TValue> value type 319 * @return ByProjectKeyProductProjectionsSearchGet 320 */ 321 public <TValue> ByProjectKeyProductProjectionsSearchGet addFuzzyLevel(final Collection<TValue> fuzzyLevel) { 322 return copy().addQueryParams( 323 fuzzyLevel.stream().map(s -> new ParamEntry<>("fuzzyLevel", s.toString())).collect(Collectors.toList())); 324 } 325 326 /** 327 * set markMatchingVariants with the specified value 328 * @param markMatchingVariants value to be set 329 * @param <TValue> value type 330 * @return ByProjectKeyProductProjectionsSearchGet 331 */ 332 public <TValue> ByProjectKeyProductProjectionsSearchGet withMarkMatchingVariants( 333 final TValue markMatchingVariants) { 334 return copy().withQueryParam("markMatchingVariants", markMatchingVariants); 335 } 336 337 /** 338 * add additional markMatchingVariants query parameter 339 * @param markMatchingVariants value to be added 340 * @param <TValue> value type 341 * @return ByProjectKeyProductProjectionsSearchGet 342 */ 343 public <TValue> ByProjectKeyProductProjectionsSearchGet addMarkMatchingVariants(final TValue markMatchingVariants) { 344 return copy().addQueryParam("markMatchingVariants", markMatchingVariants); 345 } 346 347 /** 348 * set markMatchingVariants with the specified value 349 * @param supplier supplier for the value to be set 350 * @return ByProjectKeyProductProjectionsSearchGet 351 */ 352 public ByProjectKeyProductProjectionsSearchGet withMarkMatchingVariants(final Supplier<Boolean> supplier) { 353 return copy().withQueryParam("markMatchingVariants", supplier.get()); 354 } 355 356 /** 357 * add additional markMatchingVariants query parameter 358 * @param supplier supplier for the value to be added 359 * @return ByProjectKeyProductProjectionsSearchGet 360 */ 361 public ByProjectKeyProductProjectionsSearchGet addMarkMatchingVariants(final Supplier<Boolean> supplier) { 362 return copy().addQueryParam("markMatchingVariants", supplier.get()); 363 } 364 365 /** 366 * set markMatchingVariants with the specified value 367 * @param op builder for the value to be set 368 * @return ByProjectKeyProductProjectionsSearchGet 369 */ 370 public ByProjectKeyProductProjectionsSearchGet withMarkMatchingVariants( 371 final Function<StringBuilder, StringBuilder> op) { 372 return copy().withQueryParam("markMatchingVariants", op.apply(new StringBuilder())); 373 } 374 375 /** 376 * add additional markMatchingVariants query parameter 377 * @param op builder for the value to be added 378 * @return ByProjectKeyProductProjectionsSearchGet 379 */ 380 public ByProjectKeyProductProjectionsSearchGet addMarkMatchingVariants( 381 final Function<StringBuilder, StringBuilder> op) { 382 return copy().addQueryParam("markMatchingVariants", op.apply(new StringBuilder())); 383 } 384 385 /** 386 * set markMatchingVariants with the specified values 387 * @param markMatchingVariants values to be set 388 * @param <TValue> value type 389 * @return ByProjectKeyProductProjectionsSearchGet 390 */ 391 public <TValue> ByProjectKeyProductProjectionsSearchGet withMarkMatchingVariants( 392 final Collection<TValue> markMatchingVariants) { 393 return copy().withoutQueryParam("markMatchingVariants") 394 .addQueryParams(markMatchingVariants.stream() 395 .map(s -> new ParamEntry<>("markMatchingVariants", s.toString())) 396 .collect(Collectors.toList())); 397 } 398 399 /** 400 * add additional markMatchingVariants query parameters 401 * @param markMatchingVariants values to be added 402 * @param <TValue> value type 403 * @return ByProjectKeyProductProjectionsSearchGet 404 */ 405 public <TValue> ByProjectKeyProductProjectionsSearchGet addMarkMatchingVariants( 406 final Collection<TValue> markMatchingVariants) { 407 return copy().addQueryParams(markMatchingVariants.stream() 408 .map(s -> new ParamEntry<>("markMatchingVariants", s.toString())) 409 .collect(Collectors.toList())); 410 } 411 412 /** 413 * set filter with the specified value 414 * @param filter value to be set 415 * @param <TValue> value type 416 * @return ByProjectKeyProductProjectionsSearchGet 417 */ 418 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilter(final TValue filter) { 419 return copy().withQueryParam("filter", filter); 420 } 421 422 /** 423 * add additional filter query parameter 424 * @param filter value to be added 425 * @param <TValue> value type 426 * @return ByProjectKeyProductProjectionsSearchGet 427 */ 428 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilter(final TValue filter) { 429 return copy().addQueryParam("filter", filter); 430 } 431 432 /** 433 * set filter with the specified value 434 * @param supplier supplier for the value to be set 435 * @return ByProjectKeyProductProjectionsSearchGet 436 */ 437 public ByProjectKeyProductProjectionsSearchGet withFilter(final Supplier<String> supplier) { 438 return copy().withQueryParam("filter", supplier.get()); 439 } 440 441 /** 442 * add additional filter query parameter 443 * @param supplier supplier for the value to be added 444 * @return ByProjectKeyProductProjectionsSearchGet 445 */ 446 public ByProjectKeyProductProjectionsSearchGet addFilter(final Supplier<String> supplier) { 447 return copy().addQueryParam("filter", supplier.get()); 448 } 449 450 /** 451 * set filter with the specified value 452 * @param op builder for the value to be set 453 * @return ByProjectKeyProductProjectionsSearchGet 454 */ 455 public ByProjectKeyProductProjectionsSearchGet withFilter(final Function<StringBuilder, StringBuilder> op) { 456 return copy().withQueryParam("filter", op.apply(new StringBuilder())); 457 } 458 459 /** 460 * add additional filter query parameter 461 * @param op builder for the value to be added 462 * @return ByProjectKeyProductProjectionsSearchGet 463 */ 464 public ByProjectKeyProductProjectionsSearchGet addFilter(final Function<StringBuilder, StringBuilder> op) { 465 return copy().addQueryParam("filter", op.apply(new StringBuilder())); 466 } 467 468 /** 469 * set filter with the specified values 470 * @param filter values to be set 471 * @param <TValue> value type 472 * @return ByProjectKeyProductProjectionsSearchGet 473 */ 474 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilter(final Collection<TValue> filter) { 475 return copy().withoutQueryParam("filter") 476 .addQueryParams( 477 filter.stream().map(s -> new ParamEntry<>("filter", s.toString())).collect(Collectors.toList())); 478 } 479 480 /** 481 * add additional filter query parameters 482 * @param filter values to be added 483 * @param <TValue> value type 484 * @return ByProjectKeyProductProjectionsSearchGet 485 */ 486 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilter(final Collection<TValue> filter) { 487 return copy().addQueryParams( 488 filter.stream().map(s -> new ParamEntry<>("filter", s.toString())).collect(Collectors.toList())); 489 } 490 491 /** 492 * set filterFacets with the specified value 493 * @param filterFacets value to be set 494 * @param <TValue> value type 495 * @return ByProjectKeyProductProjectionsSearchGet 496 */ 497 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilterFacets(final TValue filterFacets) { 498 return copy().withQueryParam("filter.facets", filterFacets); 499 } 500 501 /** 502 * add additional filterFacets query parameter 503 * @param filterFacets value to be added 504 * @param <TValue> value type 505 * @return ByProjectKeyProductProjectionsSearchGet 506 */ 507 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilterFacets(final TValue filterFacets) { 508 return copy().addQueryParam("filter.facets", filterFacets); 509 } 510 511 /** 512 * set filterFacets with the specified value 513 * @param supplier supplier for the value to be set 514 * @return ByProjectKeyProductProjectionsSearchGet 515 */ 516 public ByProjectKeyProductProjectionsSearchGet withFilterFacets(final Supplier<String> supplier) { 517 return copy().withQueryParam("filter.facets", supplier.get()); 518 } 519 520 /** 521 * add additional filterFacets query parameter 522 * @param supplier supplier for the value to be added 523 * @return ByProjectKeyProductProjectionsSearchGet 524 */ 525 public ByProjectKeyProductProjectionsSearchGet addFilterFacets(final Supplier<String> supplier) { 526 return copy().addQueryParam("filter.facets", supplier.get()); 527 } 528 529 /** 530 * set filterFacets with the specified value 531 * @param op builder for the value to be set 532 * @return ByProjectKeyProductProjectionsSearchGet 533 */ 534 public ByProjectKeyProductProjectionsSearchGet withFilterFacets(final Function<StringBuilder, StringBuilder> op) { 535 return copy().withQueryParam("filter.facets", op.apply(new StringBuilder())); 536 } 537 538 /** 539 * add additional filterFacets query parameter 540 * @param op builder for the value to be added 541 * @return ByProjectKeyProductProjectionsSearchGet 542 */ 543 public ByProjectKeyProductProjectionsSearchGet addFilterFacets(final Function<StringBuilder, StringBuilder> op) { 544 return copy().addQueryParam("filter.facets", op.apply(new StringBuilder())); 545 } 546 547 /** 548 * set filterFacets with the specified values 549 * @param filterFacets values to be set 550 * @param <TValue> value type 551 * @return ByProjectKeyProductProjectionsSearchGet 552 */ 553 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilterFacets(final Collection<TValue> filterFacets) { 554 return copy().withoutQueryParam("filter.facets") 555 .addQueryParams(filterFacets.stream() 556 .map(s -> new ParamEntry<>("filter.facets", s.toString())) 557 .collect(Collectors.toList())); 558 } 559 560 /** 561 * add additional filterFacets query parameters 562 * @param filterFacets values to be added 563 * @param <TValue> value type 564 * @return ByProjectKeyProductProjectionsSearchGet 565 */ 566 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilterFacets(final Collection<TValue> filterFacets) { 567 return copy().addQueryParams(filterFacets.stream() 568 .map(s -> new ParamEntry<>("filter.facets", s.toString())) 569 .collect(Collectors.toList())); 570 } 571 572 /** 573 * set filterQuery with the specified value 574 * @param filterQuery value to be set 575 * @param <TValue> value type 576 * @return ByProjectKeyProductProjectionsSearchGet 577 */ 578 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilterQuery(final TValue filterQuery) { 579 return copy().withQueryParam("filter.query", filterQuery); 580 } 581 582 /** 583 * add additional filterQuery query parameter 584 * @param filterQuery value to be added 585 * @param <TValue> value type 586 * @return ByProjectKeyProductProjectionsSearchGet 587 */ 588 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilterQuery(final TValue filterQuery) { 589 return copy().addQueryParam("filter.query", filterQuery); 590 } 591 592 /** 593 * set filterQuery with the specified value 594 * @param supplier supplier for the value to be set 595 * @return ByProjectKeyProductProjectionsSearchGet 596 */ 597 public ByProjectKeyProductProjectionsSearchGet withFilterQuery(final Supplier<String> supplier) { 598 return copy().withQueryParam("filter.query", supplier.get()); 599 } 600 601 /** 602 * add additional filterQuery query parameter 603 * @param supplier supplier for the value to be added 604 * @return ByProjectKeyProductProjectionsSearchGet 605 */ 606 public ByProjectKeyProductProjectionsSearchGet addFilterQuery(final Supplier<String> supplier) { 607 return copy().addQueryParam("filter.query", supplier.get()); 608 } 609 610 /** 611 * set filterQuery with the specified value 612 * @param op builder for the value to be set 613 * @return ByProjectKeyProductProjectionsSearchGet 614 */ 615 public ByProjectKeyProductProjectionsSearchGet withFilterQuery(final Function<StringBuilder, StringBuilder> op) { 616 return copy().withQueryParam("filter.query", op.apply(new StringBuilder())); 617 } 618 619 /** 620 * add additional filterQuery query parameter 621 * @param op builder for the value to be added 622 * @return ByProjectKeyProductProjectionsSearchGet 623 */ 624 public ByProjectKeyProductProjectionsSearchGet addFilterQuery(final Function<StringBuilder, StringBuilder> op) { 625 return copy().addQueryParam("filter.query", op.apply(new StringBuilder())); 626 } 627 628 /** 629 * set filterQuery with the specified values 630 * @param filterQuery values to be set 631 * @param <TValue> value type 632 * @return ByProjectKeyProductProjectionsSearchGet 633 */ 634 public <TValue> ByProjectKeyProductProjectionsSearchGet withFilterQuery(final Collection<TValue> filterQuery) { 635 return copy().withoutQueryParam("filter.query") 636 .addQueryParams(filterQuery.stream() 637 .map(s -> new ParamEntry<>("filter.query", s.toString())) 638 .collect(Collectors.toList())); 639 } 640 641 /** 642 * add additional filterQuery query parameters 643 * @param filterQuery values to be added 644 * @param <TValue> value type 645 * @return ByProjectKeyProductProjectionsSearchGet 646 */ 647 public <TValue> ByProjectKeyProductProjectionsSearchGet addFilterQuery(final Collection<TValue> filterQuery) { 648 return copy().addQueryParams( 649 filterQuery.stream().map(s -> new ParamEntry<>("filter.query", s.toString())).collect(Collectors.toList())); 650 } 651 652 /** 653 * set facet with the specified value 654 * @param facet value to be set 655 * @param <TValue> value type 656 * @return ByProjectKeyProductProjectionsSearchGet 657 */ 658 public <TValue> ByProjectKeyProductProjectionsSearchGet withFacet(final TValue facet) { 659 return copy().withQueryParam("facet", facet); 660 } 661 662 /** 663 * add additional facet query parameter 664 * @param facet value to be added 665 * @param <TValue> value type 666 * @return ByProjectKeyProductProjectionsSearchGet 667 */ 668 public <TValue> ByProjectKeyProductProjectionsSearchGet addFacet(final TValue facet) { 669 return copy().addQueryParam("facet", facet); 670 } 671 672 /** 673 * set facet with the specified value 674 * @param supplier supplier for the value to be set 675 * @return ByProjectKeyProductProjectionsSearchGet 676 */ 677 public ByProjectKeyProductProjectionsSearchGet withFacet(final Supplier<String> supplier) { 678 return copy().withQueryParam("facet", supplier.get()); 679 } 680 681 /** 682 * add additional facet query parameter 683 * @param supplier supplier for the value to be added 684 * @return ByProjectKeyProductProjectionsSearchGet 685 */ 686 public ByProjectKeyProductProjectionsSearchGet addFacet(final Supplier<String> supplier) { 687 return copy().addQueryParam("facet", supplier.get()); 688 } 689 690 /** 691 * set facet with the specified value 692 * @param op builder for the value to be set 693 * @return ByProjectKeyProductProjectionsSearchGet 694 */ 695 public ByProjectKeyProductProjectionsSearchGet withFacet(final Function<StringBuilder, StringBuilder> op) { 696 return copy().withQueryParam("facet", op.apply(new StringBuilder())); 697 } 698 699 /** 700 * add additional facet query parameter 701 * @param op builder for the value to be added 702 * @return ByProjectKeyProductProjectionsSearchGet 703 */ 704 public ByProjectKeyProductProjectionsSearchGet addFacet(final Function<StringBuilder, StringBuilder> op) { 705 return copy().addQueryParam("facet", op.apply(new StringBuilder())); 706 } 707 708 /** 709 * set facet with the specified values 710 * @param facet values to be set 711 * @param <TValue> value type 712 * @return ByProjectKeyProductProjectionsSearchGet 713 */ 714 public <TValue> ByProjectKeyProductProjectionsSearchGet withFacet(final Collection<TValue> facet) { 715 return copy().withoutQueryParam("facet") 716 .addQueryParams( 717 facet.stream().map(s -> new ParamEntry<>("facet", s.toString())).collect(Collectors.toList())); 718 } 719 720 /** 721 * add additional facet query parameters 722 * @param facet values to be added 723 * @param <TValue> value type 724 * @return ByProjectKeyProductProjectionsSearchGet 725 */ 726 public <TValue> ByProjectKeyProductProjectionsSearchGet addFacet(final Collection<TValue> facet) { 727 return copy().addQueryParams( 728 facet.stream().map(s -> new ParamEntry<>("facet", s.toString())).collect(Collectors.toList())); 729 } 730 731 /** 732 * set sort with the specified value 733 * @param sort value to be set 734 * @param <TValue> value type 735 * @return ByProjectKeyProductProjectionsSearchGet 736 */ 737 public <TValue> ByProjectKeyProductProjectionsSearchGet withSort(final TValue sort) { 738 return copy().withQueryParam("sort", sort); 739 } 740 741 /** 742 * add additional sort query parameter 743 * @param sort value to be added 744 * @param <TValue> value type 745 * @return ByProjectKeyProductProjectionsSearchGet 746 */ 747 public <TValue> ByProjectKeyProductProjectionsSearchGet addSort(final TValue sort) { 748 return copy().addQueryParam("sort", sort); 749 } 750 751 /** 752 * set sort with the specified value 753 * @param supplier supplier for the value to be set 754 * @return ByProjectKeyProductProjectionsSearchGet 755 */ 756 public ByProjectKeyProductProjectionsSearchGet withSort(final Supplier<String> supplier) { 757 return copy().withQueryParam("sort", supplier.get()); 758 } 759 760 /** 761 * add additional sort query parameter 762 * @param supplier supplier for the value to be added 763 * @return ByProjectKeyProductProjectionsSearchGet 764 */ 765 public ByProjectKeyProductProjectionsSearchGet addSort(final Supplier<String> supplier) { 766 return copy().addQueryParam("sort", supplier.get()); 767 } 768 769 /** 770 * set sort with the specified value 771 * @param op builder for the value to be set 772 * @return ByProjectKeyProductProjectionsSearchGet 773 */ 774 public ByProjectKeyProductProjectionsSearchGet withSort(final Function<StringBuilder, StringBuilder> op) { 775 return copy().withQueryParam("sort", op.apply(new StringBuilder())); 776 } 777 778 /** 779 * add additional sort query parameter 780 * @param op builder for the value to be added 781 * @return ByProjectKeyProductProjectionsSearchGet 782 */ 783 public ByProjectKeyProductProjectionsSearchGet addSort(final Function<StringBuilder, StringBuilder> op) { 784 return copy().addQueryParam("sort", op.apply(new StringBuilder())); 785 } 786 787 /** 788 * set sort with the specified values 789 * @param sort values to be set 790 * @param <TValue> value type 791 * @return ByProjectKeyProductProjectionsSearchGet 792 */ 793 public <TValue> ByProjectKeyProductProjectionsSearchGet withSort(final Collection<TValue> sort) { 794 return copy().withoutQueryParam("sort") 795 .addQueryParams( 796 sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList())); 797 } 798 799 /** 800 * add additional sort query parameters 801 * @param sort values to be added 802 * @param <TValue> value type 803 * @return ByProjectKeyProductProjectionsSearchGet 804 */ 805 public <TValue> ByProjectKeyProductProjectionsSearchGet addSort(final Collection<TValue> sort) { 806 return copy().addQueryParams( 807 sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList())); 808 } 809 810 /** 811 * set limit with the specified value 812 * @param limit value to be set 813 * @param <TValue> value type 814 * @return ByProjectKeyProductProjectionsSearchGet 815 */ 816 public <TValue> ByProjectKeyProductProjectionsSearchGet withLimit(final TValue limit) { 817 return copy().withQueryParam("limit", limit); 818 } 819 820 /** 821 * add additional limit query parameter 822 * @param limit value to be added 823 * @param <TValue> value type 824 * @return ByProjectKeyProductProjectionsSearchGet 825 */ 826 public <TValue> ByProjectKeyProductProjectionsSearchGet addLimit(final TValue limit) { 827 return copy().addQueryParam("limit", limit); 828 } 829 830 /** 831 * set limit with the specified value 832 * @param supplier supplier for the value to be set 833 * @return ByProjectKeyProductProjectionsSearchGet 834 */ 835 public ByProjectKeyProductProjectionsSearchGet withLimit(final Supplier<Integer> supplier) { 836 return copy().withQueryParam("limit", supplier.get()); 837 } 838 839 /** 840 * add additional limit query parameter 841 * @param supplier supplier for the value to be added 842 * @return ByProjectKeyProductProjectionsSearchGet 843 */ 844 public ByProjectKeyProductProjectionsSearchGet addLimit(final Supplier<Integer> supplier) { 845 return copy().addQueryParam("limit", supplier.get()); 846 } 847 848 /** 849 * set limit with the specified value 850 * @param op builder for the value to be set 851 * @return ByProjectKeyProductProjectionsSearchGet 852 */ 853 public ByProjectKeyProductProjectionsSearchGet withLimit(final Function<StringBuilder, StringBuilder> op) { 854 return copy().withQueryParam("limit", op.apply(new StringBuilder())); 855 } 856 857 /** 858 * add additional limit query parameter 859 * @param op builder for the value to be added 860 * @return ByProjectKeyProductProjectionsSearchGet 861 */ 862 public ByProjectKeyProductProjectionsSearchGet addLimit(final Function<StringBuilder, StringBuilder> op) { 863 return copy().addQueryParam("limit", op.apply(new StringBuilder())); 864 } 865 866 /** 867 * set limit with the specified values 868 * @param limit values to be set 869 * @param <TValue> value type 870 * @return ByProjectKeyProductProjectionsSearchGet 871 */ 872 public <TValue> ByProjectKeyProductProjectionsSearchGet withLimit(final Collection<TValue> limit) { 873 return copy().withoutQueryParam("limit") 874 .addQueryParams( 875 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 876 } 877 878 /** 879 * add additional limit query parameters 880 * @param limit values to be added 881 * @param <TValue> value type 882 * @return ByProjectKeyProductProjectionsSearchGet 883 */ 884 public <TValue> ByProjectKeyProductProjectionsSearchGet addLimit(final Collection<TValue> limit) { 885 return copy().addQueryParams( 886 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 887 } 888 889 /** 890 * set offset with the specified value 891 * @param offset value to be set 892 * @param <TValue> value type 893 * @return ByProjectKeyProductProjectionsSearchGet 894 */ 895 public <TValue> ByProjectKeyProductProjectionsSearchGet withOffset(final TValue offset) { 896 return copy().withQueryParam("offset", offset); 897 } 898 899 /** 900 * add additional offset query parameter 901 * @param offset value to be added 902 * @param <TValue> value type 903 * @return ByProjectKeyProductProjectionsSearchGet 904 */ 905 public <TValue> ByProjectKeyProductProjectionsSearchGet addOffset(final TValue offset) { 906 return copy().addQueryParam("offset", offset); 907 } 908 909 /** 910 * set offset with the specified value 911 * @param supplier supplier for the value to be set 912 * @return ByProjectKeyProductProjectionsSearchGet 913 */ 914 public ByProjectKeyProductProjectionsSearchGet withOffset(final Supplier<Integer> supplier) { 915 return copy().withQueryParam("offset", supplier.get()); 916 } 917 918 /** 919 * add additional offset query parameter 920 * @param supplier supplier for the value to be added 921 * @return ByProjectKeyProductProjectionsSearchGet 922 */ 923 public ByProjectKeyProductProjectionsSearchGet addOffset(final Supplier<Integer> supplier) { 924 return copy().addQueryParam("offset", supplier.get()); 925 } 926 927 /** 928 * set offset with the specified value 929 * @param op builder for the value to be set 930 * @return ByProjectKeyProductProjectionsSearchGet 931 */ 932 public ByProjectKeyProductProjectionsSearchGet withOffset(final Function<StringBuilder, StringBuilder> op) { 933 return copy().withQueryParam("offset", op.apply(new StringBuilder())); 934 } 935 936 /** 937 * add additional offset query parameter 938 * @param op builder for the value to be added 939 * @return ByProjectKeyProductProjectionsSearchGet 940 */ 941 public ByProjectKeyProductProjectionsSearchGet addOffset(final Function<StringBuilder, StringBuilder> op) { 942 return copy().addQueryParam("offset", op.apply(new StringBuilder())); 943 } 944 945 /** 946 * set offset with the specified values 947 * @param offset values to be set 948 * @param <TValue> value type 949 * @return ByProjectKeyProductProjectionsSearchGet 950 */ 951 public <TValue> ByProjectKeyProductProjectionsSearchGet withOffset(final Collection<TValue> offset) { 952 return copy().withoutQueryParam("offset") 953 .addQueryParams( 954 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 955 } 956 957 /** 958 * add additional offset query parameters 959 * @param offset values to be added 960 * @param <TValue> value type 961 * @return ByProjectKeyProductProjectionsSearchGet 962 */ 963 public <TValue> ByProjectKeyProductProjectionsSearchGet addOffset(final Collection<TValue> offset) { 964 return copy().addQueryParams( 965 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 966 } 967 968 /** 969 * set withTotal with the specified value 970 * @param withTotal value to be set 971 * @param <TValue> value type 972 * @return ByProjectKeyProductProjectionsSearchGet 973 */ 974 public <TValue> ByProjectKeyProductProjectionsSearchGet withWithTotal(final TValue withTotal) { 975 return copy().withQueryParam("withTotal", withTotal); 976 } 977 978 /** 979 * add additional withTotal query parameter 980 * @param withTotal value to be added 981 * @param <TValue> value type 982 * @return ByProjectKeyProductProjectionsSearchGet 983 */ 984 public <TValue> ByProjectKeyProductProjectionsSearchGet addWithTotal(final TValue withTotal) { 985 return copy().addQueryParam("withTotal", withTotal); 986 } 987 988 /** 989 * set withTotal with the specified value 990 * @param supplier supplier for the value to be set 991 * @return ByProjectKeyProductProjectionsSearchGet 992 */ 993 public ByProjectKeyProductProjectionsSearchGet withWithTotal(final Supplier<Boolean> supplier) { 994 return copy().withQueryParam("withTotal", supplier.get()); 995 } 996 997 /** 998 * add additional withTotal query parameter 999 * @param supplier supplier for the value to be added 1000 * @return ByProjectKeyProductProjectionsSearchGet 1001 */ 1002 public ByProjectKeyProductProjectionsSearchGet addWithTotal(final Supplier<Boolean> supplier) { 1003 return copy().addQueryParam("withTotal", supplier.get()); 1004 } 1005 1006 /** 1007 * set withTotal with the specified value 1008 * @param op builder for the value to be set 1009 * @return ByProjectKeyProductProjectionsSearchGet 1010 */ 1011 public ByProjectKeyProductProjectionsSearchGet withWithTotal(final Function<StringBuilder, StringBuilder> op) { 1012 return copy().withQueryParam("withTotal", op.apply(new StringBuilder())); 1013 } 1014 1015 /** 1016 * add additional withTotal query parameter 1017 * @param op builder for the value to be added 1018 * @return ByProjectKeyProductProjectionsSearchGet 1019 */ 1020 public ByProjectKeyProductProjectionsSearchGet addWithTotal(final Function<StringBuilder, StringBuilder> op) { 1021 return copy().addQueryParam("withTotal", op.apply(new StringBuilder())); 1022 } 1023 1024 /** 1025 * set withTotal with the specified values 1026 * @param withTotal values to be set 1027 * @param <TValue> value type 1028 * @return ByProjectKeyProductProjectionsSearchGet 1029 */ 1030 public <TValue> ByProjectKeyProductProjectionsSearchGet withWithTotal(final Collection<TValue> withTotal) { 1031 return copy().withoutQueryParam("withTotal") 1032 .addQueryParams(withTotal.stream() 1033 .map(s -> new ParamEntry<>("withTotal", s.toString())) 1034 .collect(Collectors.toList())); 1035 } 1036 1037 /** 1038 * add additional withTotal query parameters 1039 * @param withTotal values to be added 1040 * @param <TValue> value type 1041 * @return ByProjectKeyProductProjectionsSearchGet 1042 */ 1043 public <TValue> ByProjectKeyProductProjectionsSearchGet addWithTotal(final Collection<TValue> withTotal) { 1044 return copy().addQueryParams( 1045 withTotal.stream().map(s -> new ParamEntry<>("withTotal", s.toString())).collect(Collectors.toList())); 1046 } 1047 1048 /** 1049 * set staged with the specified value 1050 * @param staged value to be set 1051 * @param <TValue> value type 1052 * @return ByProjectKeyProductProjectionsSearchGet 1053 */ 1054 public <TValue> ByProjectKeyProductProjectionsSearchGet withStaged(final TValue staged) { 1055 return copy().withQueryParam("staged", staged); 1056 } 1057 1058 /** 1059 * add additional staged query parameter 1060 * @param staged value to be added 1061 * @param <TValue> value type 1062 * @return ByProjectKeyProductProjectionsSearchGet 1063 */ 1064 public <TValue> ByProjectKeyProductProjectionsSearchGet addStaged(final TValue staged) { 1065 return copy().addQueryParam("staged", staged); 1066 } 1067 1068 /** 1069 * set staged with the specified value 1070 * @param supplier supplier for the value to be set 1071 * @return ByProjectKeyProductProjectionsSearchGet 1072 */ 1073 public ByProjectKeyProductProjectionsSearchGet withStaged(final Supplier<Boolean> supplier) { 1074 return copy().withQueryParam("staged", supplier.get()); 1075 } 1076 1077 /** 1078 * add additional staged query parameter 1079 * @param supplier supplier for the value to be added 1080 * @return ByProjectKeyProductProjectionsSearchGet 1081 */ 1082 public ByProjectKeyProductProjectionsSearchGet addStaged(final Supplier<Boolean> supplier) { 1083 return copy().addQueryParam("staged", supplier.get()); 1084 } 1085 1086 /** 1087 * set staged with the specified value 1088 * @param op builder for the value to be set 1089 * @return ByProjectKeyProductProjectionsSearchGet 1090 */ 1091 public ByProjectKeyProductProjectionsSearchGet withStaged(final Function<StringBuilder, StringBuilder> op) { 1092 return copy().withQueryParam("staged", op.apply(new StringBuilder())); 1093 } 1094 1095 /** 1096 * add additional staged query parameter 1097 * @param op builder for the value to be added 1098 * @return ByProjectKeyProductProjectionsSearchGet 1099 */ 1100 public ByProjectKeyProductProjectionsSearchGet addStaged(final Function<StringBuilder, StringBuilder> op) { 1101 return copy().addQueryParam("staged", op.apply(new StringBuilder())); 1102 } 1103 1104 /** 1105 * set staged with the specified values 1106 * @param staged values to be set 1107 * @param <TValue> value type 1108 * @return ByProjectKeyProductProjectionsSearchGet 1109 */ 1110 public <TValue> ByProjectKeyProductProjectionsSearchGet withStaged(final Collection<TValue> staged) { 1111 return copy().withoutQueryParam("staged") 1112 .addQueryParams( 1113 staged.stream().map(s -> new ParamEntry<>("staged", s.toString())).collect(Collectors.toList())); 1114 } 1115 1116 /** 1117 * add additional staged query parameters 1118 * @param staged values to be added 1119 * @param <TValue> value type 1120 * @return ByProjectKeyProductProjectionsSearchGet 1121 */ 1122 public <TValue> ByProjectKeyProductProjectionsSearchGet addStaged(final Collection<TValue> staged) { 1123 return copy().addQueryParams( 1124 staged.stream().map(s -> new ParamEntry<>("staged", s.toString())).collect(Collectors.toList())); 1125 } 1126 1127 /** 1128 * set priceCurrency with the specified value 1129 * @param priceCurrency value to be set 1130 * @param <TValue> value type 1131 * @return ByProjectKeyProductProjectionsSearchGet 1132 */ 1133 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCurrency(final TValue priceCurrency) { 1134 return copy().withQueryParam("priceCurrency", priceCurrency); 1135 } 1136 1137 /** 1138 * add additional priceCurrency query parameter 1139 * @param priceCurrency value to be added 1140 * @param <TValue> value type 1141 * @return ByProjectKeyProductProjectionsSearchGet 1142 */ 1143 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCurrency(final TValue priceCurrency) { 1144 return copy().addQueryParam("priceCurrency", priceCurrency); 1145 } 1146 1147 /** 1148 * set priceCurrency with the specified value 1149 * @param supplier supplier for the value to be set 1150 * @return ByProjectKeyProductProjectionsSearchGet 1151 */ 1152 public ByProjectKeyProductProjectionsSearchGet withPriceCurrency(final Supplier<String> supplier) { 1153 return copy().withQueryParam("priceCurrency", supplier.get()); 1154 } 1155 1156 /** 1157 * add additional priceCurrency query parameter 1158 * @param supplier supplier for the value to be added 1159 * @return ByProjectKeyProductProjectionsSearchGet 1160 */ 1161 public ByProjectKeyProductProjectionsSearchGet addPriceCurrency(final Supplier<String> supplier) { 1162 return copy().addQueryParam("priceCurrency", supplier.get()); 1163 } 1164 1165 /** 1166 * set priceCurrency with the specified value 1167 * @param op builder for the value to be set 1168 * @return ByProjectKeyProductProjectionsSearchGet 1169 */ 1170 public ByProjectKeyProductProjectionsSearchGet withPriceCurrency(final Function<StringBuilder, StringBuilder> op) { 1171 return copy().withQueryParam("priceCurrency", op.apply(new StringBuilder())); 1172 } 1173 1174 /** 1175 * add additional priceCurrency query parameter 1176 * @param op builder for the value to be added 1177 * @return ByProjectKeyProductProjectionsSearchGet 1178 */ 1179 public ByProjectKeyProductProjectionsSearchGet addPriceCurrency(final Function<StringBuilder, StringBuilder> op) { 1180 return copy().addQueryParam("priceCurrency", op.apply(new StringBuilder())); 1181 } 1182 1183 /** 1184 * set priceCurrency with the specified values 1185 * @param priceCurrency values to be set 1186 * @param <TValue> value type 1187 * @return ByProjectKeyProductProjectionsSearchGet 1188 */ 1189 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCurrency(final Collection<TValue> priceCurrency) { 1190 return copy().withoutQueryParam("priceCurrency") 1191 .addQueryParams(priceCurrency.stream() 1192 .map(s -> new ParamEntry<>("priceCurrency", s.toString())) 1193 .collect(Collectors.toList())); 1194 } 1195 1196 /** 1197 * add additional priceCurrency query parameters 1198 * @param priceCurrency values to be added 1199 * @param <TValue> value type 1200 * @return ByProjectKeyProductProjectionsSearchGet 1201 */ 1202 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCurrency(final Collection<TValue> priceCurrency) { 1203 return copy().addQueryParams(priceCurrency.stream() 1204 .map(s -> new ParamEntry<>("priceCurrency", s.toString())) 1205 .collect(Collectors.toList())); 1206 } 1207 1208 /** 1209 * set priceCountry with the specified value 1210 * @param priceCountry value to be set 1211 * @param <TValue> value type 1212 * @return ByProjectKeyProductProjectionsSearchGet 1213 */ 1214 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCountry(final TValue priceCountry) { 1215 return copy().withQueryParam("priceCountry", priceCountry); 1216 } 1217 1218 /** 1219 * add additional priceCountry query parameter 1220 * @param priceCountry value to be added 1221 * @param <TValue> value type 1222 * @return ByProjectKeyProductProjectionsSearchGet 1223 */ 1224 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCountry(final TValue priceCountry) { 1225 return copy().addQueryParam("priceCountry", priceCountry); 1226 } 1227 1228 /** 1229 * set priceCountry with the specified value 1230 * @param supplier supplier for the value to be set 1231 * @return ByProjectKeyProductProjectionsSearchGet 1232 */ 1233 public ByProjectKeyProductProjectionsSearchGet withPriceCountry(final Supplier<String> supplier) { 1234 return copy().withQueryParam("priceCountry", supplier.get()); 1235 } 1236 1237 /** 1238 * add additional priceCountry query parameter 1239 * @param supplier supplier for the value to be added 1240 * @return ByProjectKeyProductProjectionsSearchGet 1241 */ 1242 public ByProjectKeyProductProjectionsSearchGet addPriceCountry(final Supplier<String> supplier) { 1243 return copy().addQueryParam("priceCountry", supplier.get()); 1244 } 1245 1246 /** 1247 * set priceCountry with the specified value 1248 * @param op builder for the value to be set 1249 * @return ByProjectKeyProductProjectionsSearchGet 1250 */ 1251 public ByProjectKeyProductProjectionsSearchGet withPriceCountry(final Function<StringBuilder, StringBuilder> op) { 1252 return copy().withQueryParam("priceCountry", op.apply(new StringBuilder())); 1253 } 1254 1255 /** 1256 * add additional priceCountry query parameter 1257 * @param op builder for the value to be added 1258 * @return ByProjectKeyProductProjectionsSearchGet 1259 */ 1260 public ByProjectKeyProductProjectionsSearchGet addPriceCountry(final Function<StringBuilder, StringBuilder> op) { 1261 return copy().addQueryParam("priceCountry", op.apply(new StringBuilder())); 1262 } 1263 1264 /** 1265 * set priceCountry with the specified values 1266 * @param priceCountry values to be set 1267 * @param <TValue> value type 1268 * @return ByProjectKeyProductProjectionsSearchGet 1269 */ 1270 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCountry(final Collection<TValue> priceCountry) { 1271 return copy().withoutQueryParam("priceCountry") 1272 .addQueryParams(priceCountry.stream() 1273 .map(s -> new ParamEntry<>("priceCountry", s.toString())) 1274 .collect(Collectors.toList())); 1275 } 1276 1277 /** 1278 * add additional priceCountry query parameters 1279 * @param priceCountry values to be added 1280 * @param <TValue> value type 1281 * @return ByProjectKeyProductProjectionsSearchGet 1282 */ 1283 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCountry(final Collection<TValue> priceCountry) { 1284 return copy().addQueryParams(priceCountry.stream() 1285 .map(s -> new ParamEntry<>("priceCountry", s.toString())) 1286 .collect(Collectors.toList())); 1287 } 1288 1289 /** 1290 * set priceCustomerGroup with the specified value 1291 * @param priceCustomerGroup value to be set 1292 * @param <TValue> value type 1293 * @return ByProjectKeyProductProjectionsSearchGet 1294 */ 1295 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCustomerGroup(final TValue priceCustomerGroup) { 1296 return copy().withQueryParam("priceCustomerGroup", priceCustomerGroup); 1297 } 1298 1299 /** 1300 * add additional priceCustomerGroup query parameter 1301 * @param priceCustomerGroup value to be added 1302 * @param <TValue> value type 1303 * @return ByProjectKeyProductProjectionsSearchGet 1304 */ 1305 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCustomerGroup(final TValue priceCustomerGroup) { 1306 return copy().addQueryParam("priceCustomerGroup", priceCustomerGroup); 1307 } 1308 1309 /** 1310 * set priceCustomerGroup with the specified value 1311 * @param supplier supplier for the value to be set 1312 * @return ByProjectKeyProductProjectionsSearchGet 1313 */ 1314 public ByProjectKeyProductProjectionsSearchGet withPriceCustomerGroup(final Supplier<String> supplier) { 1315 return copy().withQueryParam("priceCustomerGroup", supplier.get()); 1316 } 1317 1318 /** 1319 * add additional priceCustomerGroup query parameter 1320 * @param supplier supplier for the value to be added 1321 * @return ByProjectKeyProductProjectionsSearchGet 1322 */ 1323 public ByProjectKeyProductProjectionsSearchGet addPriceCustomerGroup(final Supplier<String> supplier) { 1324 return copy().addQueryParam("priceCustomerGroup", supplier.get()); 1325 } 1326 1327 /** 1328 * set priceCustomerGroup with the specified value 1329 * @param op builder for the value to be set 1330 * @return ByProjectKeyProductProjectionsSearchGet 1331 */ 1332 public ByProjectKeyProductProjectionsSearchGet withPriceCustomerGroup( 1333 final Function<StringBuilder, StringBuilder> op) { 1334 return copy().withQueryParam("priceCustomerGroup", op.apply(new StringBuilder())); 1335 } 1336 1337 /** 1338 * add additional priceCustomerGroup query parameter 1339 * @param op builder for the value to be added 1340 * @return ByProjectKeyProductProjectionsSearchGet 1341 */ 1342 public ByProjectKeyProductProjectionsSearchGet addPriceCustomerGroup( 1343 final Function<StringBuilder, StringBuilder> op) { 1344 return copy().addQueryParam("priceCustomerGroup", op.apply(new StringBuilder())); 1345 } 1346 1347 /** 1348 * set priceCustomerGroup with the specified values 1349 * @param priceCustomerGroup values to be set 1350 * @param <TValue> value type 1351 * @return ByProjectKeyProductProjectionsSearchGet 1352 */ 1353 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceCustomerGroup( 1354 final Collection<TValue> priceCustomerGroup) { 1355 return copy().withoutQueryParam("priceCustomerGroup") 1356 .addQueryParams(priceCustomerGroup.stream() 1357 .map(s -> new ParamEntry<>("priceCustomerGroup", s.toString())) 1358 .collect(Collectors.toList())); 1359 } 1360 1361 /** 1362 * add additional priceCustomerGroup query parameters 1363 * @param priceCustomerGroup values to be added 1364 * @param <TValue> value type 1365 * @return ByProjectKeyProductProjectionsSearchGet 1366 */ 1367 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceCustomerGroup( 1368 final Collection<TValue> priceCustomerGroup) { 1369 return copy().addQueryParams(priceCustomerGroup.stream() 1370 .map(s -> new ParamEntry<>("priceCustomerGroup", s.toString())) 1371 .collect(Collectors.toList())); 1372 } 1373 1374 /** 1375 * set priceChannel with the specified value 1376 * @param priceChannel value to be set 1377 * @param <TValue> value type 1378 * @return ByProjectKeyProductProjectionsSearchGet 1379 */ 1380 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceChannel(final TValue priceChannel) { 1381 return copy().withQueryParam("priceChannel", priceChannel); 1382 } 1383 1384 /** 1385 * add additional priceChannel query parameter 1386 * @param priceChannel value to be added 1387 * @param <TValue> value type 1388 * @return ByProjectKeyProductProjectionsSearchGet 1389 */ 1390 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceChannel(final TValue priceChannel) { 1391 return copy().addQueryParam("priceChannel", priceChannel); 1392 } 1393 1394 /** 1395 * set priceChannel with the specified value 1396 * @param supplier supplier for the value to be set 1397 * @return ByProjectKeyProductProjectionsSearchGet 1398 */ 1399 public ByProjectKeyProductProjectionsSearchGet withPriceChannel(final Supplier<String> supplier) { 1400 return copy().withQueryParam("priceChannel", supplier.get()); 1401 } 1402 1403 /** 1404 * add additional priceChannel query parameter 1405 * @param supplier supplier for the value to be added 1406 * @return ByProjectKeyProductProjectionsSearchGet 1407 */ 1408 public ByProjectKeyProductProjectionsSearchGet addPriceChannel(final Supplier<String> supplier) { 1409 return copy().addQueryParam("priceChannel", supplier.get()); 1410 } 1411 1412 /** 1413 * set priceChannel with the specified value 1414 * @param op builder for the value to be set 1415 * @return ByProjectKeyProductProjectionsSearchGet 1416 */ 1417 public ByProjectKeyProductProjectionsSearchGet withPriceChannel(final Function<StringBuilder, StringBuilder> op) { 1418 return copy().withQueryParam("priceChannel", op.apply(new StringBuilder())); 1419 } 1420 1421 /** 1422 * add additional priceChannel query parameter 1423 * @param op builder for the value to be added 1424 * @return ByProjectKeyProductProjectionsSearchGet 1425 */ 1426 public ByProjectKeyProductProjectionsSearchGet addPriceChannel(final Function<StringBuilder, StringBuilder> op) { 1427 return copy().addQueryParam("priceChannel", op.apply(new StringBuilder())); 1428 } 1429 1430 /** 1431 * set priceChannel with the specified values 1432 * @param priceChannel values to be set 1433 * @param <TValue> value type 1434 * @return ByProjectKeyProductProjectionsSearchGet 1435 */ 1436 public <TValue> ByProjectKeyProductProjectionsSearchGet withPriceChannel(final Collection<TValue> priceChannel) { 1437 return copy().withoutQueryParam("priceChannel") 1438 .addQueryParams(priceChannel.stream() 1439 .map(s -> new ParamEntry<>("priceChannel", s.toString())) 1440 .collect(Collectors.toList())); 1441 } 1442 1443 /** 1444 * add additional priceChannel query parameters 1445 * @param priceChannel values to be added 1446 * @param <TValue> value type 1447 * @return ByProjectKeyProductProjectionsSearchGet 1448 */ 1449 public <TValue> ByProjectKeyProductProjectionsSearchGet addPriceChannel(final Collection<TValue> priceChannel) { 1450 return copy().addQueryParams(priceChannel.stream() 1451 .map(s -> new ParamEntry<>("priceChannel", s.toString())) 1452 .collect(Collectors.toList())); 1453 } 1454 1455 /** 1456 * set localeProjection with the specified value 1457 * @param localeProjection value to be set 1458 * @param <TValue> value type 1459 * @return ByProjectKeyProductProjectionsSearchGet 1460 */ 1461 public <TValue> ByProjectKeyProductProjectionsSearchGet withLocaleProjection(final TValue localeProjection) { 1462 return copy().withQueryParam("localeProjection", localeProjection); 1463 } 1464 1465 /** 1466 * add additional localeProjection query parameter 1467 * @param localeProjection value to be added 1468 * @param <TValue> value type 1469 * @return ByProjectKeyProductProjectionsSearchGet 1470 */ 1471 public <TValue> ByProjectKeyProductProjectionsSearchGet addLocaleProjection(final TValue localeProjection) { 1472 return copy().addQueryParam("localeProjection", localeProjection); 1473 } 1474 1475 /** 1476 * set localeProjection with the specified value 1477 * @param supplier supplier for the value to be set 1478 * @return ByProjectKeyProductProjectionsSearchGet 1479 */ 1480 public ByProjectKeyProductProjectionsSearchGet withLocaleProjection(final Supplier<String> supplier) { 1481 return copy().withQueryParam("localeProjection", supplier.get()); 1482 } 1483 1484 /** 1485 * add additional localeProjection query parameter 1486 * @param supplier supplier for the value to be added 1487 * @return ByProjectKeyProductProjectionsSearchGet 1488 */ 1489 public ByProjectKeyProductProjectionsSearchGet addLocaleProjection(final Supplier<String> supplier) { 1490 return copy().addQueryParam("localeProjection", supplier.get()); 1491 } 1492 1493 /** 1494 * set localeProjection with the specified value 1495 * @param op builder for the value to be set 1496 * @return ByProjectKeyProductProjectionsSearchGet 1497 */ 1498 public ByProjectKeyProductProjectionsSearchGet withLocaleProjection( 1499 final Function<StringBuilder, StringBuilder> op) { 1500 return copy().withQueryParam("localeProjection", op.apply(new StringBuilder())); 1501 } 1502 1503 /** 1504 * add additional localeProjection query parameter 1505 * @param op builder for the value to be added 1506 * @return ByProjectKeyProductProjectionsSearchGet 1507 */ 1508 public ByProjectKeyProductProjectionsSearchGet addLocaleProjection( 1509 final Function<StringBuilder, StringBuilder> op) { 1510 return copy().addQueryParam("localeProjection", op.apply(new StringBuilder())); 1511 } 1512 1513 /** 1514 * set localeProjection with the specified values 1515 * @param localeProjection values to be set 1516 * @param <TValue> value type 1517 * @return ByProjectKeyProductProjectionsSearchGet 1518 */ 1519 public <TValue> ByProjectKeyProductProjectionsSearchGet withLocaleProjection( 1520 final Collection<TValue> localeProjection) { 1521 return copy().withoutQueryParam("localeProjection") 1522 .addQueryParams(localeProjection.stream() 1523 .map(s -> new ParamEntry<>("localeProjection", s.toString())) 1524 .collect(Collectors.toList())); 1525 } 1526 1527 /** 1528 * add additional localeProjection query parameters 1529 * @param localeProjection values to be added 1530 * @param <TValue> value type 1531 * @return ByProjectKeyProductProjectionsSearchGet 1532 */ 1533 public <TValue> ByProjectKeyProductProjectionsSearchGet addLocaleProjection( 1534 final Collection<TValue> localeProjection) { 1535 return copy().addQueryParams(localeProjection.stream() 1536 .map(s -> new ParamEntry<>("localeProjection", s.toString())) 1537 .collect(Collectors.toList())); 1538 } 1539 1540 /** 1541 * set storeProjection with the specified value 1542 * @param storeProjection value to be set 1543 * @param <TValue> value type 1544 * @return ByProjectKeyProductProjectionsSearchGet 1545 */ 1546 public <TValue> ByProjectKeyProductProjectionsSearchGet withStoreProjection(final TValue storeProjection) { 1547 return copy().withQueryParam("storeProjection", storeProjection); 1548 } 1549 1550 /** 1551 * add additional storeProjection query parameter 1552 * @param storeProjection value to be added 1553 * @param <TValue> value type 1554 * @return ByProjectKeyProductProjectionsSearchGet 1555 */ 1556 public <TValue> ByProjectKeyProductProjectionsSearchGet addStoreProjection(final TValue storeProjection) { 1557 return copy().addQueryParam("storeProjection", storeProjection); 1558 } 1559 1560 /** 1561 * set storeProjection with the specified value 1562 * @param supplier supplier for the value to be set 1563 * @return ByProjectKeyProductProjectionsSearchGet 1564 */ 1565 public ByProjectKeyProductProjectionsSearchGet withStoreProjection(final Supplier<String> supplier) { 1566 return copy().withQueryParam("storeProjection", supplier.get()); 1567 } 1568 1569 /** 1570 * add additional storeProjection query parameter 1571 * @param supplier supplier for the value to be added 1572 * @return ByProjectKeyProductProjectionsSearchGet 1573 */ 1574 public ByProjectKeyProductProjectionsSearchGet addStoreProjection(final Supplier<String> supplier) { 1575 return copy().addQueryParam("storeProjection", supplier.get()); 1576 } 1577 1578 /** 1579 * set storeProjection with the specified value 1580 * @param op builder for the value to be set 1581 * @return ByProjectKeyProductProjectionsSearchGet 1582 */ 1583 public ByProjectKeyProductProjectionsSearchGet withStoreProjection( 1584 final Function<StringBuilder, StringBuilder> op) { 1585 return copy().withQueryParam("storeProjection", op.apply(new StringBuilder())); 1586 } 1587 1588 /** 1589 * add additional storeProjection query parameter 1590 * @param op builder for the value to be added 1591 * @return ByProjectKeyProductProjectionsSearchGet 1592 */ 1593 public ByProjectKeyProductProjectionsSearchGet addStoreProjection(final Function<StringBuilder, StringBuilder> op) { 1594 return copy().addQueryParam("storeProjection", op.apply(new StringBuilder())); 1595 } 1596 1597 /** 1598 * set storeProjection with the specified values 1599 * @param storeProjection values to be set 1600 * @param <TValue> value type 1601 * @return ByProjectKeyProductProjectionsSearchGet 1602 */ 1603 public <TValue> ByProjectKeyProductProjectionsSearchGet withStoreProjection( 1604 final Collection<TValue> storeProjection) { 1605 return copy().withoutQueryParam("storeProjection") 1606 .addQueryParams(storeProjection.stream() 1607 .map(s -> new ParamEntry<>("storeProjection", s.toString())) 1608 .collect(Collectors.toList())); 1609 } 1610 1611 /** 1612 * add additional storeProjection query parameters 1613 * @param storeProjection values to be added 1614 * @param <TValue> value type 1615 * @return ByProjectKeyProductProjectionsSearchGet 1616 */ 1617 public <TValue> ByProjectKeyProductProjectionsSearchGet addStoreProjection( 1618 final Collection<TValue> storeProjection) { 1619 return copy().addQueryParams(storeProjection.stream() 1620 .map(s -> new ParamEntry<>("storeProjection", s.toString())) 1621 .collect(Collectors.toList())); 1622 } 1623 1624 /** 1625 * set expand with the specified value 1626 * @param expand value to be set 1627 * @param <TValue> value type 1628 * @return ByProjectKeyProductProjectionsSearchGet 1629 */ 1630 public <TValue> ByProjectKeyProductProjectionsSearchGet withExpand(final TValue expand) { 1631 return copy().withQueryParam("expand", expand); 1632 } 1633 1634 /** 1635 * add additional expand query parameter 1636 * @param expand value to be added 1637 * @param <TValue> value type 1638 * @return ByProjectKeyProductProjectionsSearchGet 1639 */ 1640 public <TValue> ByProjectKeyProductProjectionsSearchGet addExpand(final TValue expand) { 1641 return copy().addQueryParam("expand", expand); 1642 } 1643 1644 /** 1645 * set expand with the specified value 1646 * @param supplier supplier for the value to be set 1647 * @return ByProjectKeyProductProjectionsSearchGet 1648 */ 1649 public ByProjectKeyProductProjectionsSearchGet withExpand(final Supplier<String> supplier) { 1650 return copy().withQueryParam("expand", supplier.get()); 1651 } 1652 1653 /** 1654 * add additional expand query parameter 1655 * @param supplier supplier for the value to be added 1656 * @return ByProjectKeyProductProjectionsSearchGet 1657 */ 1658 public ByProjectKeyProductProjectionsSearchGet addExpand(final Supplier<String> supplier) { 1659 return copy().addQueryParam("expand", supplier.get()); 1660 } 1661 1662 /** 1663 * set expand with the specified value 1664 * @param op builder for the value to be set 1665 * @return ByProjectKeyProductProjectionsSearchGet 1666 */ 1667 public ByProjectKeyProductProjectionsSearchGet withExpand(final Function<StringBuilder, StringBuilder> op) { 1668 return copy().withQueryParam("expand", op.apply(new StringBuilder())); 1669 } 1670 1671 /** 1672 * add additional expand query parameter 1673 * @param op builder for the value to be added 1674 * @return ByProjectKeyProductProjectionsSearchGet 1675 */ 1676 public ByProjectKeyProductProjectionsSearchGet addExpand(final Function<StringBuilder, StringBuilder> op) { 1677 return copy().addQueryParam("expand", op.apply(new StringBuilder())); 1678 } 1679 1680 /** 1681 * set expand with the specified values 1682 * @param expand values to be set 1683 * @param <TValue> value type 1684 * @return ByProjectKeyProductProjectionsSearchGet 1685 */ 1686 public <TValue> ByProjectKeyProductProjectionsSearchGet withExpand(final Collection<TValue> expand) { 1687 return copy().withoutQueryParam("expand") 1688 .addQueryParams( 1689 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 1690 } 1691 1692 /** 1693 * add additional expand query parameters 1694 * @param expand values to be added 1695 * @param <TValue> value type 1696 * @return ByProjectKeyProductProjectionsSearchGet 1697 */ 1698 public <TValue> ByProjectKeyProductProjectionsSearchGet addExpand(final Collection<TValue> expand) { 1699 return copy().addQueryParams( 1700 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 1701 } 1702 1703 /** 1704 * set text with the specificied value 1705 * @param <TValue> value type 1706 * @param locale parameter name 1707 * @param text parameter value 1708 * @return ByProjectKeyProductProjectionsSearchGet 1709 */ 1710 public <TValue> ByProjectKeyProductProjectionsSearchGet withText(final String locale, final TValue text) { 1711 return copy().withQueryParam(String.format("text.%s", locale), text); 1712 } 1713 1714 /** 1715 * add additional text query parameter 1716 * @param <TValue> value type 1717 * @param locale parameter name 1718 * @param text parameter value 1719 * @return ByProjectKeyProductProjectionsSearchGet 1720 */ 1721 public <TValue> ByProjectKeyProductProjectionsSearchGet addText(final String locale, final TValue text) { 1722 return copy().addQueryParam(String.format("text.%s", locale), text); 1723 } 1724 1725 /** 1726 * set text with the specificied values 1727 * @param <TValue> value type 1728 * @param locale parameter name 1729 * @param text parameter values 1730 * @return ByProjectKeyProductProjectionsSearchGet 1731 */ 1732 public <TValue> ByProjectKeyProductProjectionsSearchGet withText(final String locale, 1733 final Collection<TValue> text) { 1734 final String placeholderName = String.format("var.%s", locale); 1735 return copy().withoutQueryParam(placeholderName) 1736 .addQueryParams(text.stream() 1737 .map(s -> new ParamEntry<>(placeholderName, s.toString())) 1738 .collect(Collectors.toList())); 1739 } 1740 1741 /** 1742 * add additional text query parameters 1743 * @param <TValue> value type 1744 * @param locale parameter name 1745 * @param text parameter values 1746 * @return ByProjectKeyProductProjectionsSearchGet 1747 */ 1748 public <TValue> ByProjectKeyProductProjectionsSearchGet addText(final String locale, 1749 final Collection<TValue> text) { 1750 final String placeholderName = String.format("var.%s", locale); 1751 return copy().addQueryParams( 1752 text.stream().map(s -> new ParamEntry<>(placeholderName, s.toString())).collect(Collectors.toList())); 1753 } 1754 1755 @Override 1756 public boolean equals(Object o) { 1757 if (this == o) 1758 return true; 1759 1760 if (o == null || getClass() != o.getClass()) 1761 return false; 1762 1763 ByProjectKeyProductProjectionsSearchGet that = (ByProjectKeyProductProjectionsSearchGet) o; 1764 1765 return new EqualsBuilder().append(projectKey, that.projectKey).isEquals(); 1766 } 1767 1768 @Override 1769 public int hashCode() { 1770 return new HashCodeBuilder(17, 37).append(projectKey).toHashCode(); 1771 } 1772 1773 @Override 1774 protected ByProjectKeyProductProjectionsSearchGet copy() { 1775 return new ByProjectKeyProductProjectionsSearchGet(this); 1776 } 1777}