Skip to content

Commit 7676b74

Browse files
committed
Minor renaming, bit more configurability
1 parent 5a11de7 commit 7676b74

File tree

4 files changed

+39
-11
lines changed

4 files changed

+39
-11
lines changed

jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/JacksonJrJavaTimeExtension.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@
44
import com.fasterxml.jackson.jr.ob.api.ExtensionContext;
55

66
public class JacksonJrJavaTimeExtension extends JacksonJrExtension {
7+
final static JavaTimeReaderWriterProvider DEFAULT_RW_PROVIDER = new JavaTimeReaderWriterProvider();
8+
9+
private JavaTimeReaderWriterProvider readerWriterProvider = DEFAULT_RW_PROVIDER;
10+
711
@Override
812
protected void register(ExtensionContext ctxt) {
9-
ctxt.insertProvider(new JavaTimeReaderWriterProvider());
13+
ctxt.insertProvider(readerWriterProvider);
14+
}
15+
16+
public JacksonJrJavaTimeExtension with(JavaTimeReaderWriterProvider p) {
17+
readerWriterProvider = p;
18+
return this;
1019
}
1120
}

jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/JavaTimeReaderWriterProvider.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,40 @@
99
import java.time.LocalDateTime;
1010
import java.time.format.DateTimeFormatter;
1111

12-
public class JavaTimeReaderWriterProvider extends ReaderWriterProvider {
13-
private DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
12+
/**
13+
* Provider for {@link ValueReader}s and {@link ValueWriter}s for Date/Time
14+
* types supported by Java Time Extension.
15+
*/
16+
public class JavaTimeReaderWriterProvider extends ReaderWriterProvider
17+
{
18+
private DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
19+
20+
public JavaTimeReaderWriterProvider() { }
1421

1522
@Override
1623
public ValueReader findValueReader(JSONReader readContext, Class<?> type) {
17-
return type.equals(LocalDateTime.class) ? new JavaTimeValueReader(formatter) : null;
24+
return LocalDateTime.class.isAssignableFrom(type) ? new LocalDateTimeValueReader(dateTimeFormatter) : null;
1825
}
1926

2027
@Override
2128
public ValueWriter findValueWriter(JSONWriter writeContext, Class<?> type) {
22-
return type.equals(LocalDateTime.class) ? new JavaTimeValueWriter(formatter) : null;
29+
return LocalDateTime.class.isAssignableFrom(type) ? new LocalDateTimeValueWriter(dateTimeFormatter) : null;
2330
}
2431

25-
public JavaTimeReaderWriterProvider withFormatter(DateTimeFormatter formatter) {
26-
this.formatter = formatter;
32+
/**
33+
* Method for reconfiguring {@link DateTimeFormatter} used for reading/writing
34+
* following Date/Time value types:
35+
*<ul>
36+
* <li>{@code java.time.LocalDateTime}
37+
* </li>
38+
*</ul>
39+
*
40+
* @param formatter
41+
*
42+
* @return This provider instance for call chaining
43+
*/
44+
public JavaTimeReaderWriterProvider withDateTimeFormatter(DateTimeFormatter formatter) {
45+
dateTimeFormatter = formatter;
2746
return this;
2847
}
2948
}

jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/JavaTimeValueReader.java renamed to jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/LocalDateTimeValueReader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import java.time.LocalDateTime;
99
import java.time.format.DateTimeFormatter;
1010

11-
public class JavaTimeValueReader extends ValueReader {
11+
public class LocalDateTimeValueReader extends ValueReader {
1212
private final DateTimeFormatter formatter;
1313

14-
public JavaTimeValueReader(DateTimeFormatter formatter) {
14+
public LocalDateTimeValueReader(DateTimeFormatter formatter) {
1515
super(LocalDateTime.class);
1616
this.formatter = formatter;
1717
}

jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/JavaTimeValueWriter.java renamed to jr-extension-javatime/src/main/java/com/fasterxml/jackson/jr/extension/javatime/LocalDateTimeValueWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import java.time.LocalDateTime;
99
import java.time.format.DateTimeFormatter;
1010

11-
public class JavaTimeValueWriter implements ValueWriter {
11+
public class LocalDateTimeValueWriter implements ValueWriter {
1212
private final DateTimeFormatter formatter;
1313

14-
public JavaTimeValueWriter(DateTimeFormatter formatter) {
14+
public LocalDateTimeValueWriter(DateTimeFormatter formatter) {
1515
this.formatter = formatter;
1616
}
1717

0 commit comments

Comments
 (0)