11
22package com .commercetools .sdk ;
33
4- import java .sql .Time ;
54import java .time .LocalDate ;
65import java .time .LocalTime ;
76import java .time .ZonedDateTime ;
87import java .util .*;
98import java .util .stream .Collectors ;
109
1110import com .commercetools .api .models .cart .CartReferenceImpl ;
12- import com .commercetools .api .models .category .CategoryReference ;
1311import com .commercetools .api .models .category .CategoryReferenceImpl ;
14- import com .commercetools .api .models .common .CentPrecisionMoney ;
1512import com .commercetools .api .models .common .LocalizedString ;
1613import com .commercetools .api .models .common .Money ;
17- import com .commercetools .api .models .common .Price ;
1814import com .commercetools .api .models .product .ProductPriceModeEnum ;
1915import com .commercetools .api .models .product .ProductProjection ;
2016import com .commercetools .api .models .product .ProductReferenceImpl ;
2117import com .commercetools .api .models .product .ProductVariant ;
2218import com .commercetools .api .models .product_type .*;
23- import com .commercetools .api .models .state .State ;
24- import com .commercetools .api .models .state .StateReference ;
25- import com .commercetools .api .models .tax_category .TaxCategory ;
26- import com .commercetools .api .models .tax_category .TaxCategoryReference ;
2719import com .commercetools .importapi .models .common .*;
2820import com .commercetools .importapi .models .productdrafts .PriceDraftImport ;
2921import com .commercetools .importapi .models .productdrafts .ProductDraftImport ;
3022import com .commercetools .importapi .models .productdrafts .ProductVariantDraftImport ;
3123import com .commercetools .importapi .models .productvariants .Attribute ;
32- import com .commercetools .importapi .models .productvariants .BooleanAttribute ;
33- import com .commercetools .importapi .models .productvariants .DateTimeAttribute ;
34- import com .commercetools .importapi .models .productvariants .NumberAttribute ;
24+
3525import io .vrap .rmf .base .client .Builder ;
3626
3727public final class ProductUtil {
38- private static KeyResolverService keyResolverService = new ExpandObjResolverService ();
28+ private static KeyResolverService keyResolverService = new ExpandObjResolverService ();
3929
4030 public static ProductDraftImport toProductDraftImport (ProductProjection product ) {
4131 var draft = ProductDraftImport .builder ()
@@ -134,14 +124,14 @@ private static List<PriceDraftImport> mapPricesToImportApi(ProductVariant varian
134124 .collect (Collectors .toList ());
135125 }
136126
137- private static Builder <? extends TypedMoney > importApiTypedMoney (
138- com . commercetools . api . models . common . TypedMoney p , TypedMoneyBuilder v ) {
139- return (p instanceof HighPrecisionMoney ) ?
140- v .highPrecisionBuilder ()
127+ private static Builder <? extends TypedMoney > importApiTypedMoney (com . commercetools . api . models . common . TypedMoney p ,
128+ TypedMoneyBuilder v ) {
129+ return (p instanceof HighPrecisionMoney )
130+ ? v .highPrecisionBuilder ()
141131 .centAmount (p .getCentAmount ())
142132 .currencyCode (p .getCurrencyCode ())
143- .preciseAmount (((com .commercetools .api .models .common .HighPrecisionMoney )p ).getPreciseAmount ()) :
144- v .centPrecisionBuilder ()
133+ .preciseAmount (((com .commercetools .api .models .common .HighPrecisionMoney ) p ).getPreciseAmount ())
134+ : v .centPrecisionBuilder ()
145135 .centAmount (p .getCentAmount ())
146136 .currencyCode (p .getCurrencyCode ())
147137 .fractionDigits (p .getFractionDigits ());
@@ -204,8 +194,10 @@ private static Attribute mapAttribute(com.commercetools.api.models.product.Attri
204194 .build ();
205195 }
206196 if (value instanceof Money ) {
207- return Attribute .moneyBuilder ().name (attribute .getName ()).value ((v -> importApiTypedMoney (
208- (com .commercetools .api .models .common .TypedMoney ) value , v ))).build ();
197+ return Attribute .moneyBuilder ()
198+ .name (attribute .getName ())
199+ .value ((v -> importApiTypedMoney ((com .commercetools .api .models .common .TypedMoney ) value , v )))
200+ .build ();
209201 }
210202 if (value instanceof LocalDate ) {
211203 return Attribute .dateBuilder ().name (attribute .getName ()).value ((LocalDate ) value ).build ();
@@ -231,7 +223,10 @@ private static Attribute mapAttribute(com.commercetools.api.models.product.Attri
231223 return Attribute .dateSetBuilder ().name (attribute .getName ()).value ((ArrayList <LocalDate >) list ).build ();
232224 }
233225 if (list .get (0 ) instanceof ZonedDateTime ) {
234- return Attribute .datetimeSetBuilder ().name (attribute .getName ()).value ((ArrayList <ZonedDateTime >) list ).build ();
226+ return Attribute .datetimeSetBuilder ()
227+ .name (attribute .getName ())
228+ .value ((ArrayList <ZonedDateTime >) list )
229+ .build ();
235230 }
236231 if (list .get (0 ) instanceof LocalTime ) {
237232 return Attribute .timeSetBuilder ().name (attribute .getName ()).value ((ArrayList <LocalTime >) list ).build ();
@@ -254,74 +249,126 @@ private static Attribute mapAttribute(com.commercetools.api.models.product.Attri
254249 if (list .get (0 ) instanceof LocalizedString ) {
255250 return Attribute .ltextSetBuilder ()
256251 .name (attribute .getName ())
257- .value (list .stream ().map (v -> getLocalizedStringBuilder (((LocalizedString ) v )).build ()).collect (
258- Collectors .toList ()))
252+ .value (list .stream ()
253+ .map (v -> getLocalizedStringBuilder (((LocalizedString ) v )).build ())
254+ .collect (Collectors .toList ()))
259255 .build ();
260256 }
261257 if (list .get (0 ) instanceof AttributePlainEnumValue ) {
262258 return Attribute .enumSetBuilder ()
263259 .name (attribute .getName ())
264- .value (((ArrayList <AttributePlainEnumValue >) list ).stream ().map (AttributePlainEnumValue ::getKey ).collect (
265- Collectors .toList ()))
260+ .value (((ArrayList <AttributePlainEnumValue >) list ).stream ()
261+ .map (AttributePlainEnumValue ::getKey )
262+ .collect (Collectors .toList ()))
266263 .build ();
267264 }
268265 if (list .get (0 ) instanceof AttributeLocalizedEnumValue ) {
269266 return Attribute .enumSetBuilder ()
270267 .name (attribute .getName ())
271- .value (((ArrayList <AttributeLocalizedEnumValue >) list ).stream ().map (AttributeLocalizedEnumValue ::getKey ).collect (
272- Collectors .toList ()))
268+ .value (((ArrayList <AttributeLocalizedEnumValue >) list ).stream ()
269+ .map (AttributeLocalizedEnumValue ::getKey )
270+ .collect (Collectors .toList ()))
273271 .build ();
274272 }
275273 if (list .get (0 ) instanceof Money ) {
276- return Attribute .moneySetBuilder ().name (attribute .getName ()).value (
277- list .stream ().map (v -> importApiTypedMoney ((
278- com .commercetools .api .models .common .TypedMoney )v , new TypedMoneyBuilder ()).build ()).collect (Collectors .toList ())).build ();
274+ return Attribute .moneySetBuilder ()
275+ .name (attribute .getName ())
276+ .value (list .stream ()
277+ .map (v -> importApiTypedMoney ((com .commercetools .api .models .common .TypedMoney ) v ,
278+ new TypedMoneyBuilder ()).build ())
279+ .collect (Collectors .toList ()))
280+ .build ();
279281 }
280282 }
281283 if (value instanceof ProductReferenceImpl ) {
282- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .productBuilder ().key (((ProductReferenceImpl ) value ).getObj ().getKey ())).build ();
284+ return Attribute .referenceBuilder ()
285+ .name (attribute .getName ())
286+ .value (r -> r .productBuilder ().key (((ProductReferenceImpl ) value ).getObj ().getKey ()))
287+ .build ();
283288 }
284289 if (value instanceof ProductTypeReferenceImpl ) {
285- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .productTypeBuilder ().key (((ProductTypeReferenceImpl ) value ).getObj ().getKey ())).build ();
290+ return Attribute .referenceBuilder ()
291+ .name (attribute .getName ())
292+ .value (r -> r .productTypeBuilder ().key (((ProductTypeReferenceImpl ) value ).getObj ().getKey ()))
293+ .build ();
286294 }
287295 if (value instanceof CartReferenceImpl ) {
288- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .cartBuilder ().key (((CartReferenceImpl ) value ).getObj ().getKey ())).build ();
296+ return Attribute .referenceBuilder ()
297+ .name (attribute .getName ())
298+ .value (r -> r .cartBuilder ().key (((CartReferenceImpl ) value ).getObj ().getKey ()))
299+ .build ();
289300 }
290301 if (value instanceof BusinessUnitKeyReferenceImpl ) {
291- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .businessUnitBuilder ().key (((BusinessUnitKeyReferenceImpl ) value ).getKey ())).build ();
302+ return Attribute .referenceBuilder ()
303+ .name (attribute .getName ())
304+ .value (r -> r .businessUnitBuilder ().key (((BusinessUnitKeyReferenceImpl ) value ).getKey ()))
305+ .build ();
292306 }
293307 if (value instanceof CategoryReferenceImpl ) {
294- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .categoryBuilder ().key (((CategoryReferenceImpl ) value ).getObj ().getKey ())).build ();
308+ return Attribute .referenceBuilder ()
309+ .name (attribute .getName ())
310+ .value (r -> r .categoryBuilder ().key (((CategoryReferenceImpl ) value ).getObj ().getKey ()))
311+ .build ();
295312 }
296313 if (value instanceof ChannelKeyReferenceImpl ) {
297- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .channelBuilder ().key (((ChannelKeyReferenceImpl ) value ).getKey ())).build ();
314+ return Attribute .referenceBuilder ()
315+ .name (attribute .getName ())
316+ .value (r -> r .channelBuilder ().key (((ChannelKeyReferenceImpl ) value ).getKey ()))
317+ .build ();
298318 }
299319 if (value instanceof CustomerKeyReferenceImpl ) {
300- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .customerBuilder ().key (((CustomerKeyReferenceImpl ) value ).getKey ())).build ();
320+ return Attribute .referenceBuilder ()
321+ .name (attribute .getName ())
322+ .value (r -> r .customerBuilder ().key (((CustomerKeyReferenceImpl ) value ).getKey ()))
323+ .build ();
301324 }
302325 if (value instanceof AssociateRoleKeyReferenceImpl ) {
303- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .associateRoleBuilder ().key (((AssociateRoleKeyReferenceImpl ) value ).getKey ())).build ();
326+ return Attribute .referenceBuilder ()
327+ .name (attribute .getName ())
328+ .value (r -> r .associateRoleBuilder ().key (((AssociateRoleKeyReferenceImpl ) value ).getKey ()))
329+ .build ();
304330 }
305331 if (value instanceof DiscountCodeKeyReferenceImpl ) {
306- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .discountCodeBuilder ().key (((DiscountCodeKeyReferenceImpl ) value ).getKey ())).build ();
332+ return Attribute .referenceBuilder ()
333+ .name (attribute .getName ())
334+ .value (r -> r .discountCodeBuilder ().key (((DiscountCodeKeyReferenceImpl ) value ).getKey ()))
335+ .build ();
307336 }
308337 if (value instanceof CustomerGroupKeyReferenceImpl ) {
309- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .customerGroupBuilder ().key (((CustomerGroupKeyReferenceImpl ) value ).getKey ())).build ();
338+ return Attribute .referenceBuilder ()
339+ .name (attribute .getName ())
340+ .value (r -> r .customerGroupBuilder ().key (((CustomerGroupKeyReferenceImpl ) value ).getKey ()))
341+ .build ();
310342 }
311343 if (value instanceof OrderKeyReferenceImpl ) {
312- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .orderBuilder ().key (((OrderKeyReferenceImpl ) value ).getKey ())).build ();
344+ return Attribute .referenceBuilder ()
345+ .name (attribute .getName ())
346+ .value (r -> r .orderBuilder ().key (((OrderKeyReferenceImpl ) value ).getKey ()))
347+ .build ();
313348 }
314349 if (value instanceof ShippingMethodKeyReferenceImpl ) {
315- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .shippingMethodBuilder ().key (((ShippingMethodKeyReferenceImpl ) value ).getKey ())).build ();
350+ return Attribute .referenceBuilder ()
351+ .name (attribute .getName ())
352+ .value (r -> r .shippingMethodBuilder ().key (((ShippingMethodKeyReferenceImpl ) value ).getKey ()))
353+ .build ();
316354 }
317355 if (value instanceof StateKeyReferenceImpl ) {
318- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .stateBuilder ().key (((StateKeyReferenceImpl ) value ).getKey ())).build ();
356+ return Attribute .referenceBuilder ()
357+ .name (attribute .getName ())
358+ .value (r -> r .stateBuilder ().key (((StateKeyReferenceImpl ) value ).getKey ()))
359+ .build ();
319360 }
320361 if (value instanceof TaxCategoryKeyReferenceImpl ) {
321- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .taxCategoryBuilder ().key (((TaxCategoryKeyReferenceImpl ) value ).getKey ())).build ();
362+ return Attribute .referenceBuilder ()
363+ .name (attribute .getName ())
364+ .value (r -> r .taxCategoryBuilder ().key (((TaxCategoryKeyReferenceImpl ) value ).getKey ()))
365+ .build ();
322366 }
323- if (value instanceof CustomObjectKeyReferenceImpl ) {
324- return Attribute .referenceBuilder ().name (attribute .getName ()).value (r -> r .keyValueDocumentBuilder ().key (((CustomObjectKeyReferenceImpl ) value ).getKey ())).build ();
367+ if (value instanceof CustomObjectKeyReferenceImpl ) {
368+ return Attribute .referenceBuilder ()
369+ .name (attribute .getName ())
370+ .value (r -> r .keyValueDocumentBuilder ().key (((CustomObjectKeyReferenceImpl ) value ).getKey ()))
371+ .build ();
325372 }
326373 /* TODO: AttributeNestedType is not supported yet */
327374 throw new IllegalArgumentException ("Unsupported type: " + value .getClass ());
0 commit comments