Skip to content

Commit dd2cde9

Browse files
committed
Replace InstantAsInteger with InstantAsString and test if this works.
1 parent 485fae9 commit dd2cde9

21 files changed

+974
-829
lines changed

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/AttributeConverter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.time.Instant;
1919
import software.amazon.awssdk.annotations.SdkPublicApi;
2020
import software.amazon.awssdk.annotations.ThreadSafe;
21-
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsIntegerAttributeConverter;
2221
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsStringAttributeConverter;
2322
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter;
2423
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -31,8 +30,6 @@
3130
* <ul>
3231
* <li>The {@link StringAttributeConverter} converts a {@link String} into a DynamoDB string
3332
* ({@link software.amazon.awssdk.services.dynamodb.model.AttributeValue#s()}).</li>
34-
* <li>The {@link InstantAsIntegerAttributeConverter} converts an {@link Instant} into a DynamoDB number
35-
* ({@link software.amazon.awssdk.services.dynamodb.model.AttributeValue#n()}).</li>
3633
* <li>The {@link InstantAsStringAttributeConverter} converts an {@link Instant} into a DynamoDB string
3734
* ({@link software.amazon.awssdk.services.dynamodb.model.AttributeValue#s()}).</li>
3835
* </ul>

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/DefaultAttributeConverterProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.DurationAttributeConverter;
4444
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnumAttributeConverter;
4545
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.FloatAttributeConverter;
46-
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsIntegerAttributeConverter;
46+
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsStringAttributeConverter;
4747
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.IntegerAttributeConverter;
4848
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter;
4949
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.LocalDateAttributeConverter;
@@ -211,7 +211,7 @@ private static Builder getDefaultBuilder() {
211211
.addConverter(DoubleAttributeConverter.create())
212212
.addConverter(DurationAttributeConverter.create())
213213
.addConverter(FloatAttributeConverter.create())
214-
.addConverter(InstantAsIntegerAttributeConverter.create())
214+
.addConverter(InstantAsStringAttributeConverter.create())
215215
.addConverter(IntegerAttributeConverter.create())
216216
.addConverter(LocalDateAttributeConverter.create())
217217
.addConverter(LocalDateTimeAttributeConverter.create())

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/ConverterUtils.java

Lines changed: 5 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515

1616
package software.amazon.awssdk.enhanced.dynamodb.internal.converter;
1717

18+
import java.time.LocalDate;
19+
import java.time.LocalDateTime;
20+
import java.time.LocalTime;
1821
import software.amazon.awssdk.annotations.SdkInternalApi;
1922
import software.amazon.awssdk.enhanced.dynamodb.AttributeConverter;
2023
import software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.DoubleAttributeConverter;
@@ -49,10 +52,6 @@ public static void validateFloat(Float input) {
4952
Validate.isTrue(Float.isFinite(input), "Infinite numbers are not supported by the default converters.");
5053
}
5154

52-
public static String padLeft2(int valueToPad) {
53-
return valueToPad > 10 ? Integer.toString(valueToPad) : "0" + valueToPad;
54-
}
55-
5655
public static String padLeft(int paddingAmount, int valueToPad) {
5756
String value = Integer.toString(valueToPad);
5857
int padding = paddingAmount - value.length();
@@ -64,60 +63,6 @@ public static String padLeft(int paddingAmount, int valueToPad) {
6463
return result.toString();
6564
}
6665

67-
public static String padRight(int paddingAmount, String valueToPad) {
68-
StringBuilder result = new StringBuilder(paddingAmount);
69-
result.append(valueToPad);
70-
for (int i = result.length(); i < paddingAmount; i++) {
71-
result.append('0');
72-
}
73-
return result.toString();
74-
}
75-
76-
public static String trimNumber(String number) {
77-
int startInclusive = findTrimInclusiveStart(number, '0', 0);
78-
79-
if (startInclusive >= number.length()) {
80-
return "0";
81-
}
82-
83-
if (!number.contains(".")) {
84-
return number.substring(startInclusive);
85-
}
86-
87-
int endExclusive = findTrimExclusiveEnd(number, '0', number.length());
88-
endExclusive = findTrimExclusiveEnd(number, '.', endExclusive);
89-
90-
if (startInclusive >= endExclusive) {
91-
return "0";
92-
}
93-
94-
String result = number.substring(startInclusive, endExclusive);
95-
if (result.startsWith(".")) {
96-
return "0" + result;
97-
}
98-
return result;
99-
}
100-
101-
private static int findTrimInclusiveStart(String string, char characterToTrim, int startingIndex) {
102-
int startInclusive = startingIndex;
103-
104-
while (startInclusive < string.length() && string.charAt(startInclusive) == characterToTrim) {
105-
++startInclusive;
106-
}
107-
108-
return startInclusive;
109-
}
110-
111-
private static int findTrimExclusiveEnd(String string, char characterToTrim, int startingIndex) {
112-
int endExclusive = startingIndex;
113-
114-
while (endExclusive > 0 && string.charAt(endExclusive - 1) == characterToTrim) {
115-
--endExclusive;
116-
}
117-
118-
return endExclusive;
119-
}
120-
12166
public static String[] splitNumberOnDecimal(String valueToSplit) {
12267
int i = valueToSplit.indexOf('.');
12368
if (i == -1) {
@@ -128,55 +73,8 @@ public static String[] splitNumberOnDecimal(String valueToSplit) {
12873
}
12974
}
13075

131-
public static String[] chunk(String valueToChunk, int... splitSizes) {
132-
String[] result = new String[splitSizes.length + 1];
133-
int splitStartInclusive = chunkLeft(valueToChunk, result, splitSizes);
134-
135-
Validate.isTrue(splitStartInclusive == valueToChunk.length(), "Value size does not match expected chunking scheme.");
136-
137-
return result;
138-
}
139-
140-
public static String[] chunkWithRightOverflow(String valueToChunk, int... splitSizesFromLeft) {
141-
String[] result = new String[splitSizesFromLeft.length + 1];
142-
int splitStartInclusive = chunkLeft(valueToChunk, result, splitSizesFromLeft);
143-
144-
result[splitSizesFromLeft.length] = valueToChunk.substring(splitStartInclusive);
145-
146-
return result;
76+
public static LocalDateTime convertFromLocalDate(LocalDate localDate) {
77+
return LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
14778
}
14879

149-
public static String[] chunkWithLeftOverflow(String valueToChunk, int... splitSizesFromRight) {
150-
try {
151-
String[] result = new String[splitSizesFromRight.length + 1];
152-
int splitEndExclusive = valueToChunk.length();
153-
154-
for (int i = splitSizesFromRight.length - 1; i >= 0; i--) {
155-
int splitStartInclusive = splitEndExclusive - splitSizesFromRight[i];
156-
result[i + 1] = valueToChunk.substring(splitStartInclusive, splitEndExclusive);
157-
splitEndExclusive = splitStartInclusive;
158-
}
159-
160-
result[0] = valueToChunk.substring(0, splitEndExclusive);
161-
162-
return result;
163-
} catch (StringIndexOutOfBoundsException e) {
164-
throw new IllegalArgumentException("Invalid format for value.", e);
165-
}
166-
}
167-
168-
private static int chunkLeft(String valueToChunk, String[] result, int[] splitSizes) {
169-
try {
170-
int splitStartInclusive = 0;
171-
172-
for (int i = 0; i < splitSizes.length; i++) {
173-
int splitEndExclusive = splitStartInclusive + splitSizes[i];
174-
result[i] = valueToChunk.substring(splitStartInclusive, splitEndExclusive);
175-
splitStartInclusive = splitEndExclusive;
176-
}
177-
return splitStartInclusive;
178-
} catch (StringIndexOutOfBoundsException e) {
179-
throw new IllegalArgumentException("Invalid format for value.", e);
180-
}
181-
}
18280
}

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/converter/TimeConversion.java

Lines changed: 0 additions & 183 deletions
This file was deleted.

0 commit comments

Comments
 (0)