Skip to content

Commit 406f0b9

Browse files
committed
DEVX-640: refactoring resolveKey
1 parent 45f674d commit 406f0b9

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

commercetools/commercetools-importapi-utils/src/main/java/com/commercetools/sdk/ExpandObjResolverService.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33

44
import com.commercetools.api.models.IdentifiableObjHolder;
55
import com.commercetools.api.models.WithKey;
6+
import com.commercetools.api.models.common.Reference;
67

7-
public class ExpandObjResolverService<T extends IdentifiableObjHolder<TResource>, TResource extends WithKey>
8-
implements KeyResolverService<T> {
8+
import java.util.Optional;
99

10-
public String resolveKey(T identifiable) {
11-
return identifiable.getObj().getKey();
10+
public class ExpandObjResolverService implements KeyResolverService {
11+
12+
@Override public <T extends IdentifiableObjHolder<TRes> & Reference, TRes extends WithKey> String resolveKey(T identifiable) {
13+
return Optional.ofNullable(identifiable).map(T::getObj).map(TRes::getKey).orElse(null);
1214
}
1315
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11

22
package com.commercetools.sdk;
33

4-
public interface KeyResolverService<T> {
5-
public String resolveKey(T identifiable);
4+
import com.commercetools.api.models.IdentifiableObjHolder;
5+
import com.commercetools.api.models.WithKey;
6+
import com.commercetools.api.models.common.Reference;
7+
8+
public interface KeyResolverService {
9+
public <T extends IdentifiableObjHolder<TRes> & Reference, TRes extends WithKey> String resolveKey(T identifiable);
610
}

commercetools/commercetools-importapi-utils/src/main/java/com/commercetools/sdk/ProductUtil.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@
3535
import io.vrap.rmf.base.client.Builder;
3636

3737
public final class ProductUtil {
38-
private static KeyResolverService<CategoryReference> catKeyResolverService;
38+
private static KeyResolverService keyResolverService;
3939

4040
public ProductUtil() {
41-
catKeyResolverService = new ExpandObjResolverService<>();
41+
keyResolverService = new ExpandObjResolverService();
4242
}
4343

4444
public static ProductDraftImport toProductDraftImport(ProductProjection product) {
4545
var draft = ProductDraftImport.builder()
4646
.key(product.getKey())
47-
.productType(p -> p.key(product.getProductType().getObj().getKey()))
47+
.productType(p -> p.key(keyResolverService.resolveKey(product.getProductType())))
4848
.name(l -> getLocalizedStringBuilder(product.getName()))
4949
.slug(l -> getLocalizedStringBuilder(product.getSlug()))
5050
.description(Optional.ofNullable(product.getDescription())
@@ -85,18 +85,15 @@ private static com.commercetools.importapi.models.common.ProductPriceModeEnum ma
8585
}
8686

8787
private static StateKeyReference getStateKeyReference(ProductProjection product) {
88-
var key = Optional.ofNullable(product.getState()).map(StateReference::getObj).map(State::getKey).orElse(null);
88+
var key = keyResolverService.resolveKey(product.getState());
8989
if (key != null) {
9090
return StateKeyReference.builder().key(key).build();
9191
}
9292
return null;
9393
}
9494

9595
private static TaxCategoryKeyReference getTaxCategoryKeyReference(ProductProjection product) {
96-
var key = Optional.ofNullable(product.getTaxCategory())
97-
.map(TaxCategoryReference::getObj)
98-
.map(TaxCategory::getKey)
99-
.orElse(null);
96+
var key = keyResolverService.resolveKey(product.getTaxCategory());
10097
if (key != null) {
10198
return TaxCategoryKeyReference.builder().key(key).build();
10299
}
@@ -170,7 +167,7 @@ private static List<com.commercetools.importapi.models.common.Asset> importAsset
170167
private static List<CategoryKeyReference> extractCategoryKeyReference(ProductProjection product) {
171168
return product.getCategories()
172169
.stream()
173-
.map(c -> CategoryKeyReference.builder().key(catKeyResolverService.resolveKey(c)).build())
170+
.map(c -> CategoryKeyReference.builder().key(keyResolverService.resolveKey(c)).build())
174171
.collect(Collectors.toList());
175172
}
176173

0 commit comments

Comments
 (0)