diff --git a/README.adoc b/README.adoc index 8614fdb..a0beb71 100644 --- a/README.adoc +++ b/README.adoc @@ -1,5 +1,5 @@ = Poiji -:version: v1.11 +:version: v1.12 image:https://travis-ci.org/ozlerhakan/poiji.svg?branch=master["Build Status", link="https://travis-ci.org/ozlerhakan/poiji"] image:https://api.codacy.com/project/badge/Grade/6587e90886184da29a1b7c5634695c9d["Codacy code quality", link="https://www.codacy.com/app/ozlerhakan/poiji?utm_source=github.com&utm_medium=referral&utm_content=ozlerhakan/poiji&utm_campaign=Badge_Grade"] image:https://coveralls.io/repos/github/ozlerhakan/poiji/badge.svg?branch=master["Coverage Status", link="https://coveralls.io/github/ozlerhakan/poiji?branch=master"] image:https://img.shields.io/badge/license-MIT-blue.svg[] @@ -23,7 +23,7 @@ In your Maven/Gradle project, first add the corresponding dependency: [source,groovy] ---- dependencies { - compile 'com.github.ozlerhakan:poiji:1.11' + compile 'com.github.ozlerhakan:poiji:1.12' } ---- @@ -76,7 +76,7 @@ public class Employee { ---- <1> As of 1.10, optionally we can access the index of each row item by using the `ExcelRow` annotation. Annotated variable should be of type `int`, `double`, `float` or `long`. <2> A field must be annotated with `@ExcelCell` along with its property in order to get the value from the right coordinate in the target excel sheet. -<3> An annotated field can be either protected, private or public modifier. The field may be either of `boolean`, `int`, `long`, `float`, `double`, `java.util.Date` or `String`. +<3> An annotated field can be either protected, private or public modifier. The field may be either of `boolean`, `int`, `long`, `float`, `double`, or their wrapper classes. You can add a field of `java.util.Date` or `String`. This is the excel file (`employees.xlsx`) we want to map to a list of `Employee` instance: diff --git a/pom.xml b/pom.xml index e5c1430..fee1f28 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.ozlerhakan poiji - 1.11 + 1.12 jar poiji diff --git a/src/main/java/com/poiji/util/Casting.java b/src/main/java/com/poiji/util/Casting.java index ff84a02..d1625f8 100644 --- a/src/main/java/com/poiji/util/Casting.java +++ b/src/main/java/com/poiji/util/Casting.java @@ -70,23 +70,24 @@ private Date dateValue(String value, PoijiOptions options) { public Object castValue(Class fieldType, String value, PoijiOptions options) { Object o; - if (fieldType.getName().equals("int")) { + if (fieldType.getName().equals("int") || fieldType.getName().equals("java.lang.Integer")) { o = integerValue(Objects.equals(value, "") ? "0" : value); - } else if (fieldType.getName().equals("long")) { + } else if (fieldType.getName().equals("long") || fieldType.getName().equals("java.lang.Long")) { o = longValue(Objects.equals(value, "") ? "0" : value); - } else if (fieldType.getName().equals("double")) { + } else if (fieldType.getName().equals("double") || fieldType.getName().equals("java.lang.Double")) { o = doubleValue(Objects.equals(value, "") ? "0" : value); - } else if (fieldType.getName().equals("float")) { + } else if (fieldType.getName().equals("float") || fieldType.getName().equals("java.lang.Float")) { o = floatValue(Objects.equals(value, "") ? "0" : value); - } else if (fieldType.getName().equals("boolean")) { + } else if (fieldType.getName().equals("boolean") || fieldType.getName().equals("java.lang.Boolean")) { o = Boolean.valueOf(value); - } else if (fieldType.getName().equals("java.util.Date")) { + } else if (fieldType.getName().equals("java.util.Date")) { o = dateValue(value, options); + } else o = value; return o; diff --git a/src/test/java/com/poiji/deserialize/model/byid/Employee.java b/src/test/java/com/poiji/deserialize/model/byid/Employee.java index 439b55a..1879f68 100644 --- a/src/test/java/com/poiji/deserialize/model/byid/Employee.java +++ b/src/test/java/com/poiji/deserialize/model/byid/Employee.java @@ -17,7 +17,7 @@ public class Employee { protected String surname; @ExcelCell(3) - protected int age; + protected Integer age; @ExcelCell(4) protected boolean single; @@ -83,7 +83,7 @@ public String toString() { "employeeId=" + employeeId + ", name='" + name + '\'' + ", surname='" + surname + '\'' + - ", age=" + age + + ", age=" + (age == null ? 0 : age) + ", single=" + single + ", birthday='" + birthday + '\'' + '}';