변환 대상이 null 이거나, empty 인 경우에 대한 오류 처리 (스키마 데이터셋 처리) 추가

This commit is contained in:
ParkSeongMin
2017-06-01 13:30:44 +09:00
parent bc34e78968
commit b5973555c9
3 changed files with 21 additions and 12 deletions

View File

@@ -10,6 +10,7 @@ import org.springframework.beans.PropertyAccessException;
import com.nexacro.spring.data.DataSetRowTypeAccessor;
import com.nexacro.spring.data.DataSetSavedDataAccessor;
import com.nexacro.spring.data.convert.ConvertDefinition;
import com.nexacro.spring.data.convert.NexacroConvertException;
import com.nexacro.spring.util.ReflectionUtil;
import com.nexacro.xapi.data.DataSet;
@@ -377,4 +378,13 @@ public class AbstractDataSetConverter extends AbstractListenerHandler {
return false;
}
protected DataSet createDataSet(ConvertDefinition definition) {
DataSet schemaDataSet = definition.getSchemaDataSet();
if(schemaDataSet != null) {
return schemaDataSet;
} else {
return new DataSet(definition.getName());
}
}
}

View File

@@ -46,13 +46,13 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
throw new IllegalArgumentException(ConvertDefinition.class.getSimpleName()+" must not be null.");
}
if(source == null) {
return new DataSet(definition.getName());
return createDataSet(definition);
}
// check first value
Object availableFirstData = checkAvailable(source);
if(availableFirstData == null) {
return new DataSet(definition.getName());
return createDataSet(definition);
}
// DataSet SavedType은 처리 하지 않는다. (UI 처리 불필요)
@@ -92,9 +92,9 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
if(definition.getSchemaDataSet() != null) {
// set schema dataSet
ds = definition.getSchemaDataSet();
ds = createDataSet(definition);
} else {
ds = new DataSet(definition.getName());
ds = createDataSet(definition);
addColumnIntoDataSet(ds, availableFirstData);
}
@@ -120,7 +120,7 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
DataSet ds = null;
if(definition.getSchemaDataSet() != null) {
// set schema dataSet
ds = definition.getSchemaDataSet();
ds = createDataSet(definition);
// map과 달리 bean은 이미 정의가 되어 있기 때문에 row를 추가할때 컬럼을 추가하지 않고, 미리 설정한다.
if(!definition.isDisallowChangeStructure()) {
@@ -128,7 +128,7 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
}
} else {
ds = new DataSet(definition.getName());
ds = createDataSet(definition);
addColumnIntoDataSet(ds, availableFirstData);
}

View File

@@ -41,7 +41,7 @@ public class ObjectToDataSetConverter extends AbstractDataSetConverter implement
}
if(source == null) {
return new DataSet(definition.getName());
return createDataSet(definition);
}
// DataSet SavedType은 처리 하지 않는다. (UI 처리 불필요)
@@ -65,7 +65,7 @@ public class ObjectToDataSetConverter extends AbstractDataSetConverter implement
DataSet ds = null;
if(definition.getSchemaDataSet() != null) {
// set schema dataSet
ds = definition.getSchemaDataSet();
ds = createDataSet(definition);
// map과 달리 bean은 이미 정의가 되어 있기 때문에 row를 추가할때 컬럼을 추가하지 않고, 미리 설정한다.
if(!definition.isDisallowChangeStructure()) {
@@ -73,7 +73,7 @@ public class ObjectToDataSetConverter extends AbstractDataSetConverter implement
}
} else {
ds = new DataSet(definition.getName());
ds = createDataSet(definition);
addColumnIntoDataSet(ds, source);
}
@@ -84,10 +84,9 @@ public class ObjectToDataSetConverter extends AbstractDataSetConverter implement
private DataSet convertMapToDataSet(Map source, ConvertDefinition definition) throws NexacroConvertException {
DataSet ds = null;
if(definition.getSchemaDataSet() != null) {
// set schema dataSet
ds = definition.getSchemaDataSet();
ds = createDataSet(definition);
} else {
ds = new DataSet(definition.getName());
ds = createDataSet(definition);
addColumnIntoDataSet(ds, source);
}