Skip to content

Commit 3c62b29

Browse files
Better handling of null values
1 parent 0388df4 commit 3c62b29

File tree

9 files changed

+23
-1
lines changed

9 files changed

+23
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>io.frictionlessdata</groupId>
55
<artifactId>tableschema-java</artifactId>
6-
<version>0.2.1-SNAPSHOT</version>
6+
<version>0.2.2-SNAPSHOT</version>
77
<packaging>jar</packaging>
88
<issueManagement>
99
<url>https://github.com/frictionlessdata/tableschema-java/issues</url>

src/main/java/io/frictionlessdata/tableschema/field/DateField.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,15 @@ public LocalDate parseValue(String value, String format, Map<String, Object> opt
7878

7979
@Override
8080
public Object formatValueForJson(LocalDate value) throws InvalidCastException, ConstraintsException {
81+
if (null == value)
82+
return null;
8183
return value.toString();
8284
}
8385

8486
@Override
8587
public String formatValueAsString(LocalDate value, String format, Map<String, Object> options) throws InvalidCastException, ConstraintsException {
88+
if (null == value)
89+
return null;
8690
return value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
8791
}
8892

src/main/java/io/frictionlessdata/tableschema/field/DatetimeField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public ZonedDateTime parseValue(String value, String format, Map<String, Object>
5050

5151
@Override
5252
public String formatValueAsString(ZonedDateTime value, String format, Map<String, Object> options) throws InvalidCastException, ConstraintsException {
53+
if (null == value)
54+
return null;
5355
return value.format(formatter);
5456
}
5557

src/main/java/io/frictionlessdata/tableschema/field/DurationField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public Duration parseValue(String value, String format, Map<String, Object> opti
3535

3636
@Override
3737
public String formatValueAsString(Duration value, String format, Map<String, Object> options) throws InvalidCastException, ConstraintsException {
38+
if (null == value)
39+
return null;
3840
return value.toString();
3941
}
4042

src/main/java/io/frictionlessdata/tableschema/field/IntegerField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public BigInteger parseValue(String value, String format, Map<String, Object> op
3333

3434
@Override
3535
public String formatValueAsString(BigInteger value, String format, Map<String, Object> options) throws InvalidCastException, ConstraintsException {
36+
if (null == value)
37+
return null;
3638
return value.toString();
3739
}
3840

src/main/java/io/frictionlessdata/tableschema/field/ObjectField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public Map<String, Object> parseValue(String value, String format, Map<String, O
3333
@Override
3434
public String formatValueAsString(Map<String, Object> value, String format, Map<String, Object> options)
3535
throws InvalidCastException, ConstraintsException {
36+
if (null == value)
37+
return null;
3638
return JsonUtil.getInstance().serialize(value, false).replaceAll("[\n\r]", " ");
3739
}
3840

src/main/java/io/frictionlessdata/tableschema/field/TimeField.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,15 @@ public LocalTime parseValue(String value, String format, Map<String, Object> opt
4444

4545
@Override
4646
public Object formatValueForJson(LocalTime value) throws InvalidCastException, ConstraintsException {
47+
if (null == value)
48+
return null;
4749
return value.format(DateTimeFormatter.ISO_LOCAL_TIME);
4850
}
4951

5052
@Override
5153
public String formatValueAsString(LocalTime value, String format, Map<String, Object> options) throws InvalidCastException, ConstraintsException {
54+
if (null == value)
55+
return null;
5256
return value.format(DateTimeFormatter.ISO_LOCAL_TIME);
5357
}
5458

src/main/java/io/frictionlessdata/tableschema/field/YearField.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@ public Year parseValue(String value, String format, Map<String, Object> options)
4242

4343
@Override
4444
public Object formatValueForJson(Year value) throws InvalidCastException, ConstraintsException {
45+
if (null == value)
46+
return null;
4547
return value.getValue();
4648
}
4749

4850
@Override
4951
public String formatValueAsString(Year value, String format, Map<String, Object> options)
5052
throws InvalidCastException, ConstraintsException {
53+
if (null == value)
54+
return null;
5155
return value.toString();
5256
}
5357

src/main/java/io/frictionlessdata/tableschema/field/YearmonthField.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public YearMonth parseValue(String value, String format, Map<String, Object> opt
4848
@Override
4949
public String formatValueAsString(YearMonth value, String format, Map<String, Object> options)
5050
throws InvalidCastException, ConstraintsException {
51+
if (null == value)
52+
return null;
5153
return value.toString();
5254
}
5355

0 commit comments

Comments
 (0)