변환 대상이 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.DataSetRowTypeAccessor;
import com.nexacro.spring.data.DataSetSavedDataAccessor; import com.nexacro.spring.data.DataSetSavedDataAccessor;
import com.nexacro.spring.data.convert.ConvertDefinition;
import com.nexacro.spring.data.convert.NexacroConvertException; import com.nexacro.spring.data.convert.NexacroConvertException;
import com.nexacro.spring.util.ReflectionUtil; import com.nexacro.spring.util.ReflectionUtil;
import com.nexacro.xapi.data.DataSet; import com.nexacro.xapi.data.DataSet;
@@ -377,4 +378,13 @@ public class AbstractDataSetConverter extends AbstractListenerHandler {
return false; 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."); throw new IllegalArgumentException(ConvertDefinition.class.getSimpleName()+" must not be null.");
} }
if(source == null) { if(source == null) {
return new DataSet(definition.getName()); return createDataSet(definition);
} }
// check first value // check first value
Object availableFirstData = checkAvailable(source); Object availableFirstData = checkAvailable(source);
if(availableFirstData == null) { if(availableFirstData == null) {
return new DataSet(definition.getName()); return createDataSet(definition);
} }
// DataSet SavedType은 처리 하지 않는다. (UI 처리 불필요) // DataSet SavedType은 처리 하지 않는다. (UI 처리 불필요)
@@ -92,9 +92,9 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
if(definition.getSchemaDataSet() != null) { if(definition.getSchemaDataSet() != null) {
// set schema dataSet // set schema dataSet
ds = definition.getSchemaDataSet(); ds = createDataSet(definition);
} else { } else {
ds = new DataSet(definition.getName()); ds = createDataSet(definition);
addColumnIntoDataSet(ds, availableFirstData); addColumnIntoDataSet(ds, availableFirstData);
} }
@@ -120,7 +120,7 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
DataSet ds = null; DataSet ds = null;
if(definition.getSchemaDataSet() != null) { if(definition.getSchemaDataSet() != null) {
// set schema dataSet // set schema dataSet
ds = definition.getSchemaDataSet(); ds = createDataSet(definition);
// map과 달리 bean은 이미 정의가 되어 있기 때문에 row를 추가할때 컬럼을 추가하지 않고, 미리 설정한다. // map과 달리 bean은 이미 정의가 되어 있기 때문에 row를 추가할때 컬럼을 추가하지 않고, 미리 설정한다.
if(!definition.isDisallowChangeStructure()) { if(!definition.isDisallowChangeStructure()) {
@@ -128,7 +128,7 @@ public class ListToDataSetConverter extends AbstractDataSetConverter implements
} }
} else { } else {
ds = new DataSet(definition.getName()); ds = createDataSet(definition);
addColumnIntoDataSet(ds, availableFirstData); addColumnIntoDataSet(ds, availableFirstData);
} }

View File

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