src/main/java/org/embulk/parser/poi_excel/visitor/AbstractPoiExcelCellAttributeVisitor.java in embulk-parser-poi_excel-0.1.1 vs src/main/java/org/embulk/parser/poi_excel/visitor/AbstractPoiExcelCellAttributeVisitor.java in embulk-parser-poi_excel-0.1.2
- old
+ new
@@ -8,19 +8,18 @@
import java.util.TreeMap;
import java.util.TreeSet;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Color;
-import org.embulk.parser.poi_excel.PoiExcelParserPlugin.ColumnOptionTask;
+import org.embulk.parser.poi_excel.bean.PoiExcelColumnBean;
import org.embulk.parser.poi_excel.visitor.embulk.CellVisitor;
import org.embulk.spi.Column;
import org.embulk.spi.PageBuilder;
import org.embulk.spi.type.StringType;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.base.Optional;
public abstract class AbstractPoiExcelCellAttributeVisitor<A> {
protected final PoiExcelVisitorValue visitorValue;
protected final PageBuilder pageBuilder;
@@ -28,28 +27,30 @@
public AbstractPoiExcelCellAttributeVisitor(PoiExcelVisitorValue visitorValue) {
this.visitorValue = visitorValue;
this.pageBuilder = visitorValue.getPageBuilder();
}
- public void visit(Column column, ColumnOptionTask option, Cell cell, CellVisitor visitor) {
- A source = getAttributeSource(column, option, cell);
+ public void visit(PoiExcelColumnBean bean, Cell cell, CellVisitor visitor) {
+ A source = getAttributeSource(bean, cell);
if (source == null) {
+ Column column = bean.getColumn();
pageBuilder.setNull(column);
return;
}
- String suffix = option.getValueTypeSuffix();
+ String suffix = bean.getValueTypeSuffix();
if (suffix != null) {
- visitKey(column, option, suffix, cell, source, visitor);
+ visitKey(bean, suffix, cell, source, visitor);
} else {
- visitJson(column, option, cell, source, visitor);
+ visitJson(bean, cell, source, visitor);
}
}
- protected abstract A getAttributeSource(Column column, ColumnOptionTask option, Cell cell);
+ protected abstract A getAttributeSource(PoiExcelColumnBean bean, Cell cell);
- private void visitKey(Column column, ColumnOptionTask option, String key, Cell cell, A source, CellVisitor visitor) {
+ private void visitKey(PoiExcelColumnBean bean, String key, Cell cell, A source, CellVisitor visitor) {
+ Column column = bean.getColumn();
Object value = getAttributeValue(column, cell, source, key);
if (value == null) {
pageBuilder.setNull(column);
} else if (value instanceof String) {
visitor.visitCellValueString(column, source, (String) value);
@@ -65,15 +66,16 @@
throw new IllegalStateException(MessageFormat.format("unsupported conversion. type={0}, value={1}", value
.getClass().getName(), value));
}
}
- private void visitJson(Column column, ColumnOptionTask option, Cell cell, A source, CellVisitor visitor) {
+ private void visitJson(PoiExcelColumnBean bean, Cell cell, A source, CellVisitor visitor) {
+ Column column = bean.getColumn();
+
Map<String, Object> result;
- Optional<List<String>> nameOption = option.getAttributeName();
- if (nameOption.isPresent()) {
- List<String> list = nameOption.get();
+ List<String> list = bean.getAttributeName();
+ if (!list.isEmpty()) {
result = getSpecifiedValues(column, cell, source, list);
} else {
result = getAllValues(column, cell, source);
}