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 * 022 * 023 * <hr> 024 * <div class=code-example> 025 * <pre><code class='java'>{@code 026 * CompletableFuture<ApiHttpResponse<com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse>> result = apiRoot 027 * .withProjectKey("{projectKey}") 028 * .inStoreKeyWithStoreKeyValue("{storeKey}") 029 * .shoppingLists() 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 ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet extends 037 ApiMethod<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet, com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse> 038 implements ByProjectKeyInStoreKeyByStoreKeyShoppingListsGetMixin, 039 com.commercetools.api.client.ExpandableTrait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet>, 040 com.commercetools.api.client.SortableTrait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet>, 041 com.commercetools.api.client.PagingTrait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet>, 042 com.commercetools.api.client.QueryTrait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet>, 043 com.commercetools.api.client.ErrorableTrait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet>, 044 com.commercetools.api.client.Deprecatable200Trait<ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet> { 045 046 private String projectKey; 047 private String storeKey; 048 049 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet(final ApiHttpClient apiHttpClient, String projectKey, 050 String storeKey) { 051 super(apiHttpClient); 052 this.projectKey = projectKey; 053 this.storeKey = storeKey; 054 } 055 056 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet(ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet t) { 057 super(t); 058 this.projectKey = t.projectKey; 059 this.storeKey = t.storeKey; 060 } 061 062 @Override 063 protected ApiHttpRequest buildHttpRequest() { 064 List<String> params = new ArrayList<>(getQueryParamUriStrings()); 065 String httpRequestPath = String.format("%s/in-store/key=%s/shopping-lists", this.projectKey, this.storeKey); 066 if (!params.isEmpty()) { 067 httpRequestPath += "?" + String.join("&", params); 068 } 069 return new ApiHttpRequest(ApiHttpMethod.GET, URI.create(httpRequestPath), getHeaders(), null); 070 } 071 072 @Override 073 public ApiHttpResponse<com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse> executeBlocking( 074 final ApiHttpClient client, final Duration timeout) { 075 return executeBlocking(client, timeout, 076 com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse.class); 077 } 078 079 @Override 080 public CompletableFuture<ApiHttpResponse<com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse>> execute( 081 final ApiHttpClient client) { 082 return execute(client, com.commercetools.api.models.shopping_list.ShoppingListPagedQueryResponse.class); 083 } 084 085 public String getProjectKey() { 086 return this.projectKey; 087 } 088 089 public String getStoreKey() { 090 return this.storeKey; 091 } 092 093 public List<String> getExpand() { 094 return this.getQueryParam("expand"); 095 } 096 097 public List<String> getSort() { 098 return this.getQueryParam("sort"); 099 } 100 101 public List<String> getLimit() { 102 return this.getQueryParam("limit"); 103 } 104 105 public List<String> getOffset() { 106 return this.getQueryParam("offset"); 107 } 108 109 public List<String> getWithTotal() { 110 return this.getQueryParam("withTotal"); 111 } 112 113 public List<String> getWhere() { 114 return this.getQueryParam("where"); 115 } 116 117 public void setProjectKey(final String projectKey) { 118 this.projectKey = projectKey; 119 } 120 121 public void setStoreKey(final String storeKey) { 122 this.storeKey = storeKey; 123 } 124 125 /** 126 * set expand with the specified value 127 * @param expand value to be set 128 * @param <TValue> value type 129 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 130 */ 131 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withExpand(final TValue expand) { 132 return copy().withQueryParam("expand", expand); 133 } 134 135 /** 136 * add additional expand query parameter 137 * @param expand value to be added 138 * @param <TValue> value type 139 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 140 */ 141 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addExpand(final TValue expand) { 142 return copy().addQueryParam("expand", expand); 143 } 144 145 /** 146 * set expand with the specified value 147 * @param supplier supplier for the value to be set 148 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 149 */ 150 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withExpand(final Supplier<String> supplier) { 151 return copy().withQueryParam("expand", supplier.get()); 152 } 153 154 /** 155 * add additional expand query parameter 156 * @param supplier supplier for the value to be added 157 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 158 */ 159 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addExpand(final Supplier<String> supplier) { 160 return copy().addQueryParam("expand", supplier.get()); 161 } 162 163 /** 164 * set expand with the specified value 165 * @param op builder for the value to be set 166 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 167 */ 168 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withExpand( 169 final Function<StringBuilder, StringBuilder> op) { 170 return copy().withQueryParam("expand", op.apply(new StringBuilder())); 171 } 172 173 /** 174 * add additional expand query parameter 175 * @param op builder for the value to be added 176 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 177 */ 178 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addExpand(final Function<StringBuilder, StringBuilder> op) { 179 return copy().addQueryParam("expand", op.apply(new StringBuilder())); 180 } 181 182 /** 183 * set expand with the specified values 184 * @param expand values to be set 185 * @param <TValue> value type 186 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 187 */ 188 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withExpand(final Collection<TValue> expand) { 189 return copy().withoutQueryParam("expand") 190 .addQueryParams( 191 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 192 } 193 194 /** 195 * add additional expand query parameters 196 * @param expand values to be added 197 * @param <TValue> value type 198 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 199 */ 200 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addExpand(final Collection<TValue> expand) { 201 return copy().addQueryParams( 202 expand.stream().map(s -> new ParamEntry<>("expand", s.toString())).collect(Collectors.toList())); 203 } 204 205 /** 206 * set sort with the specified value 207 * @param sort value to be set 208 * @param <TValue> value type 209 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 210 */ 211 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withSort(final TValue sort) { 212 return copy().withQueryParam("sort", sort); 213 } 214 215 /** 216 * add additional sort query parameter 217 * @param sort value to be added 218 * @param <TValue> value type 219 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 220 */ 221 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addSort(final TValue sort) { 222 return copy().addQueryParam("sort", sort); 223 } 224 225 /** 226 * set sort with the specified value 227 * @param supplier supplier for the value to be set 228 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 229 */ 230 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withSort(final Supplier<String> supplier) { 231 return copy().withQueryParam("sort", supplier.get()); 232 } 233 234 /** 235 * add additional sort query parameter 236 * @param supplier supplier for the value to be added 237 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 238 */ 239 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addSort(final Supplier<String> supplier) { 240 return copy().addQueryParam("sort", supplier.get()); 241 } 242 243 /** 244 * set sort with the specified value 245 * @param op builder for the value to be set 246 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 247 */ 248 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withSort(final Function<StringBuilder, StringBuilder> op) { 249 return copy().withQueryParam("sort", op.apply(new StringBuilder())); 250 } 251 252 /** 253 * add additional sort query parameter 254 * @param op builder for the value to be added 255 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 256 */ 257 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addSort(final Function<StringBuilder, StringBuilder> op) { 258 return copy().addQueryParam("sort", op.apply(new StringBuilder())); 259 } 260 261 /** 262 * set sort with the specified values 263 * @param sort values to be set 264 * @param <TValue> value type 265 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 266 */ 267 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withSort(final Collection<TValue> sort) { 268 return copy().withoutQueryParam("sort") 269 .addQueryParams( 270 sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList())); 271 } 272 273 /** 274 * add additional sort query parameters 275 * @param sort values to be added 276 * @param <TValue> value type 277 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 278 */ 279 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addSort(final Collection<TValue> sort) { 280 return copy().addQueryParams( 281 sort.stream().map(s -> new ParamEntry<>("sort", s.toString())).collect(Collectors.toList())); 282 } 283 284 /** 285 * set limit with the specified value 286 * @param limit value to be set 287 * @param <TValue> value type 288 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 289 */ 290 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withLimit(final TValue limit) { 291 return copy().withQueryParam("limit", limit); 292 } 293 294 /** 295 * add additional limit query parameter 296 * @param limit value to be added 297 * @param <TValue> value type 298 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 299 */ 300 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addLimit(final TValue limit) { 301 return copy().addQueryParam("limit", limit); 302 } 303 304 /** 305 * set limit with the specified value 306 * @param supplier supplier for the value to be set 307 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 308 */ 309 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withLimit(final Supplier<Integer> supplier) { 310 return copy().withQueryParam("limit", supplier.get()); 311 } 312 313 /** 314 * add additional limit query parameter 315 * @param supplier supplier for the value to be added 316 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 317 */ 318 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addLimit(final Supplier<Integer> supplier) { 319 return copy().addQueryParam("limit", supplier.get()); 320 } 321 322 /** 323 * set limit with the specified value 324 * @param op builder for the value to be set 325 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 326 */ 327 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withLimit(final Function<StringBuilder, StringBuilder> op) { 328 return copy().withQueryParam("limit", op.apply(new StringBuilder())); 329 } 330 331 /** 332 * add additional limit query parameter 333 * @param op builder for the value to be added 334 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 335 */ 336 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addLimit(final Function<StringBuilder, StringBuilder> op) { 337 return copy().addQueryParam("limit", op.apply(new StringBuilder())); 338 } 339 340 /** 341 * set limit with the specified values 342 * @param limit values to be set 343 * @param <TValue> value type 344 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 345 */ 346 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withLimit(final Collection<TValue> limit) { 347 return copy().withoutQueryParam("limit") 348 .addQueryParams( 349 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 350 } 351 352 /** 353 * add additional limit query parameters 354 * @param limit values to be added 355 * @param <TValue> value type 356 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 357 */ 358 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addLimit(final Collection<TValue> limit) { 359 return copy().addQueryParams( 360 limit.stream().map(s -> new ParamEntry<>("limit", s.toString())).collect(Collectors.toList())); 361 } 362 363 /** 364 * set offset with the specified value 365 * @param offset value to be set 366 * @param <TValue> value type 367 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 368 */ 369 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withOffset(final TValue offset) { 370 return copy().withQueryParam("offset", offset); 371 } 372 373 /** 374 * add additional offset query parameter 375 * @param offset value to be added 376 * @param <TValue> value type 377 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 378 */ 379 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addOffset(final TValue offset) { 380 return copy().addQueryParam("offset", offset); 381 } 382 383 /** 384 * set offset with the specified value 385 * @param supplier supplier for the value to be set 386 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 387 */ 388 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withOffset(final Supplier<Integer> supplier) { 389 return copy().withQueryParam("offset", supplier.get()); 390 } 391 392 /** 393 * add additional offset query parameter 394 * @param supplier supplier for the value to be added 395 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 396 */ 397 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addOffset(final Supplier<Integer> supplier) { 398 return copy().addQueryParam("offset", supplier.get()); 399 } 400 401 /** 402 * set offset with the specified value 403 * @param op builder for the value to be set 404 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 405 */ 406 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withOffset( 407 final Function<StringBuilder, StringBuilder> op) { 408 return copy().withQueryParam("offset", op.apply(new StringBuilder())); 409 } 410 411 /** 412 * add additional offset query parameter 413 * @param op builder for the value to be added 414 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 415 */ 416 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addOffset(final Function<StringBuilder, StringBuilder> op) { 417 return copy().addQueryParam("offset", op.apply(new StringBuilder())); 418 } 419 420 /** 421 * set offset with the specified values 422 * @param offset values to be set 423 * @param <TValue> value type 424 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 425 */ 426 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withOffset(final Collection<TValue> offset) { 427 return copy().withoutQueryParam("offset") 428 .addQueryParams( 429 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 430 } 431 432 /** 433 * add additional offset query parameters 434 * @param offset values to be added 435 * @param <TValue> value type 436 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 437 */ 438 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addOffset(final Collection<TValue> offset) { 439 return copy().addQueryParams( 440 offset.stream().map(s -> new ParamEntry<>("offset", s.toString())).collect(Collectors.toList())); 441 } 442 443 /** 444 * set withTotal with the specified value 445 * @param withTotal value to be set 446 * @param <TValue> value type 447 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 448 */ 449 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWithTotal(final TValue withTotal) { 450 return copy().withQueryParam("withTotal", withTotal); 451 } 452 453 /** 454 * add additional withTotal query parameter 455 * @param withTotal value to be added 456 * @param <TValue> value type 457 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 458 */ 459 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWithTotal(final TValue withTotal) { 460 return copy().addQueryParam("withTotal", withTotal); 461 } 462 463 /** 464 * set withTotal with the specified value 465 * @param supplier supplier for the value to be set 466 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 467 */ 468 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWithTotal(final Supplier<Boolean> supplier) { 469 return copy().withQueryParam("withTotal", supplier.get()); 470 } 471 472 /** 473 * add additional withTotal query parameter 474 * @param supplier supplier for the value to be added 475 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 476 */ 477 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWithTotal(final Supplier<Boolean> supplier) { 478 return copy().addQueryParam("withTotal", supplier.get()); 479 } 480 481 /** 482 * set withTotal with the specified value 483 * @param op builder for the value to be set 484 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 485 */ 486 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWithTotal( 487 final Function<StringBuilder, StringBuilder> op) { 488 return copy().withQueryParam("withTotal", op.apply(new StringBuilder())); 489 } 490 491 /** 492 * add additional withTotal query parameter 493 * @param op builder for the value to be added 494 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 495 */ 496 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWithTotal( 497 final Function<StringBuilder, StringBuilder> op) { 498 return copy().addQueryParam("withTotal", op.apply(new StringBuilder())); 499 } 500 501 /** 502 * set withTotal with the specified values 503 * @param withTotal values to be set 504 * @param <TValue> value type 505 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 506 */ 507 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWithTotal(final Collection<TValue> withTotal) { 508 return copy().withoutQueryParam("withTotal") 509 .addQueryParams(withTotal.stream() 510 .map(s -> new ParamEntry<>("withTotal", s.toString())) 511 .collect(Collectors.toList())); 512 } 513 514 /** 515 * add additional withTotal query parameters 516 * @param withTotal values to be added 517 * @param <TValue> value type 518 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 519 */ 520 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWithTotal(final Collection<TValue> withTotal) { 521 return copy().addQueryParams( 522 withTotal.stream().map(s -> new ParamEntry<>("withTotal", s.toString())).collect(Collectors.toList())); 523 } 524 525 /** 526 * set where with the specified value 527 * @param where value to be set 528 * @param <TValue> value type 529 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 530 */ 531 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWhere(final TValue where) { 532 return copy().withQueryParam("where", where); 533 } 534 535 /** 536 * add additional where query parameter 537 * @param where value to be added 538 * @param <TValue> value type 539 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 540 */ 541 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWhere(final TValue where) { 542 return copy().addQueryParam("where", where); 543 } 544 545 /** 546 * set where with the specified value 547 * @param supplier supplier for the value to be set 548 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 549 */ 550 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWhere(final Supplier<String> supplier) { 551 return copy().withQueryParam("where", supplier.get()); 552 } 553 554 /** 555 * add additional where query parameter 556 * @param supplier supplier for the value to be added 557 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 558 */ 559 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWhere(final Supplier<String> supplier) { 560 return copy().addQueryParam("where", supplier.get()); 561 } 562 563 /** 564 * set where with the specified value 565 * @param op builder for the value to be set 566 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 567 */ 568 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWhere(final Function<StringBuilder, StringBuilder> op) { 569 return copy().withQueryParam("where", op.apply(new StringBuilder())); 570 } 571 572 /** 573 * add additional where query parameter 574 * @param op builder for the value to be added 575 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 576 */ 577 public ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWhere(final Function<StringBuilder, StringBuilder> op) { 578 return copy().addQueryParam("where", op.apply(new StringBuilder())); 579 } 580 581 /** 582 * set where with the specified values 583 * @param where values to be set 584 * @param <TValue> value type 585 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 586 */ 587 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withWhere(final Collection<TValue> where) { 588 return copy().withoutQueryParam("where") 589 .addQueryParams( 590 where.stream().map(s -> new ParamEntry<>("where", s.toString())).collect(Collectors.toList())); 591 } 592 593 /** 594 * add additional where query parameters 595 * @param where values to be added 596 * @param <TValue> value type 597 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 598 */ 599 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addWhere(final Collection<TValue> where) { 600 return copy().addQueryParams( 601 where.stream().map(s -> new ParamEntry<>("where", s.toString())).collect(Collectors.toList())); 602 } 603 604 /** 605 * set predicateVar with the specificied value 606 * @param <TValue> value type 607 * @param varName parameter name 608 * @param predicateVar parameter value 609 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 610 */ 611 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withPredicateVar(final String varName, 612 final TValue predicateVar) { 613 return copy().withQueryParam(String.format("var.%s", varName), predicateVar); 614 } 615 616 /** 617 * add additional predicateVar query parameter 618 * @param <TValue> value type 619 * @param varName parameter name 620 * @param predicateVar parameter value 621 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 622 */ 623 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addPredicateVar(final String varName, 624 final TValue predicateVar) { 625 return copy().addQueryParam(String.format("var.%s", varName), predicateVar); 626 } 627 628 /** 629 * set predicateVar with the specificied values 630 * @param <TValue> value type 631 * @param varName parameter name 632 * @param predicateVar parameter values 633 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 634 */ 635 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet withPredicateVar(final String varName, 636 final Collection<TValue> predicateVar) { 637 final String placeholderName = String.format("var.%s", varName); 638 return copy().withoutQueryParam(placeholderName) 639 .addQueryParams(predicateVar.stream() 640 .map(s -> new ParamEntry<>(placeholderName, s.toString())) 641 .collect(Collectors.toList())); 642 } 643 644 /** 645 * add additional predicateVar query parameters 646 * @param <TValue> value type 647 * @param varName parameter name 648 * @param predicateVar parameter values 649 * @return ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet 650 */ 651 public <TValue> ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet addPredicateVar(final String varName, 652 final Collection<TValue> predicateVar) { 653 final String placeholderName = String.format("var.%s", varName); 654 return copy().addQueryParams(predicateVar.stream() 655 .map(s -> new ParamEntry<>(placeholderName, s.toString())) 656 .collect(Collectors.toList())); 657 } 658 659 @Override 660 public boolean equals(Object o) { 661 if (this == o) 662 return true; 663 664 if (o == null || getClass() != o.getClass()) 665 return false; 666 667 ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet that = (ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet) o; 668 669 return new EqualsBuilder().append(projectKey, that.projectKey).append(storeKey, that.storeKey).isEquals(); 670 } 671 672 @Override 673 public int hashCode() { 674 return new HashCodeBuilder(17, 37).append(projectKey).append(storeKey).toHashCode(); 675 } 676 677 @Override 678 protected ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet copy() { 679 return new ByProjectKeyInStoreKeyByStoreKeyShoppingListsGet(this); 680 } 681}