Skip to content

Commit 4c90030

Browse files
committed
wip: refactor for package split
1 parent 37f5b49 commit 4c90030

File tree

8 files changed

+62
-0
lines changed

8 files changed

+62
-0
lines changed

commercetools/commercetools-graphql-api/src/main/java/com/commercetools/graphql/api/GraphQLRequestImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,8 @@ public void setDataMapper(Function<GraphQLData, T> dataMapper) {
116116
this.dataMapper = dataMapper;
117117
}
118118

119+
@Override
120+
public com.commercetools.api.models.graph_ql.GraphQLRequest copyDeep() {
121+
return null;
122+
}
119123
}

commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/common/GenericReferenceImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,9 @@ public void setId(String id) {
4040
public T getObj() {
4141
return obj;
4242
}
43+
44+
@Override
45+
public Reference copyDeep() {
46+
return null;
47+
}
4348
}

commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/custom_object/GenericCustomObjectImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import java.time.ZonedDateTime;
55

6+
import com.commercetools.api.models.common.BaseResource;
67
import com.fasterxml.jackson.annotation.JsonCreator;
78
import com.fasterxml.jackson.annotation.JsonProperty;
89

@@ -172,4 +173,8 @@ public int hashCode() {
172173
.toHashCode();
173174
}
174175

176+
@Override
177+
public BaseResource copyDeep() {
178+
return null;
179+
}
175180
}

commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/models/order/OrderResourceIdentifierImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package com.commercetools.api.models.order;
33

44
import com.commercetools.api.models.common.ReferenceTypeId;
5+
import com.commercetools.api.models.common.ResourceIdentifier;
56
import com.fasterxml.jackson.annotation.JsonCreator;
67
import com.fasterxml.jackson.annotation.JsonProperty;
78

@@ -91,4 +92,8 @@ public int hashCode() {
9192
return new HashCodeBuilder(17, 37).append(typeId).append(id).append(key).toHashCode();
9293
}
9394

95+
@Override
96+
public ResourceIdentifier copyDeep() {
97+
return OrderResourceIdentifier.deepCopy(this);
98+
}
9499
}

rmf/rmf-java-base/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ dependencies {
88
api slf4j.api
99
api failsafe.failsafe
1010
api spotify.completableFutures
11+
api "org.reflections:reflections:0.10.2"
1112
}
1213

1314

rmf/rmf-java-base/src/main/java/io/vrap/rmf/base/client/utils/json/JsonUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
1919

2020
import io.vrap.rmf.base.client.utils.json.modules.ModuleOptions;
21+
import io.vrap.rmf.base.client.utils.json.modules.SubTypeModule;
2122
import io.vrap.rmf.base.client.utils.json.modules.ZonedDateTimeDeserializationModule;
2223
import io.vrap.rmf.base.client.utils.json.modules.ZonedDateTimeSerializationModule;
2324
import io.vrap.rmf.base.client.utils.json.modules.deserializers.LocalDateDeserializationModule;
@@ -58,6 +59,7 @@ public static ObjectMapper createObjectMapper(final ModuleOptions options) {
5859
.addModule(new ZonedDateTimeSerializationModule()) //custom serializer for LocalDate, LocalTime and ZonedDateTime
5960
.addModule(new ZonedDateTimeDeserializationModule()) //custom deserializer for ZonedDateTime
6061
.addModule(new LocalDateDeserializationModule()) //custom deserializer for LocalDate
62+
.addModule(new SubTypeModule("com.commercetools"))
6163
.addModules(loader)
6264
.addModules(moduleList)
6365
.serializationInclusion(JsonInclude.Include.NON_NULL) //ignore null fields
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
package io.vrap.rmf.base.client.utils.json;
3+
4+
import java.lang.annotation.ElementType;
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
import java.lang.annotation.Target;
8+
9+
@Retention(RetentionPolicy.RUNTIME)
10+
@Target(ElementType.TYPE)
11+
public @interface SubType {
12+
String value();
13+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
package io.vrap.rmf.base.client.utils.json.modules;
3+
4+
import java.util.Set;
5+
6+
import com.fasterxml.jackson.databind.jsontype.NamedType;
7+
import com.fasterxml.jackson.databind.module.SimpleModule;
8+
9+
import io.vrap.rmf.base.client.utils.json.SubType;
10+
11+
import org.reflections.Reflections;
12+
13+
public class SubTypeModule extends SimpleModule {
14+
public SubTypeModule(final String prefix) {
15+
16+
Reflections reflections = new Reflections(prefix);
17+
Set<Class<?>> subtypes = reflections.getTypesAnnotatedWith(SubType.class);
18+
19+
for (Class<?> subType : subtypes) {
20+
SubType annotation = subType.getAnnotation(SubType.class);
21+
if (annotation != null) {
22+
String typeName = annotation.value();
23+
registerSubtypes(new NamedType(subType, typeName));
24+
}
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)