use of eu.esdihumboldt.hale.common.instance.model.InstanceCollection in project hale by halestudio.
the class SpatiaLiteTestSuite method instanceWriterTest.
/**
* Test - reads data from a source SpatiaLite database, writes them to a
* target SpatiaLite database and checks the results.
*
* @throws Exception if an error occurs
*/
public void instanceWriterTest() throws Exception {
if (!isSpatiaLiteExtensionAvailable()) {
log.info("Skipping test because SpatiaLite extension is not available");
return;
}
Map<String, Object> propertyMap = new HashMap<String, Object>();
for (int i = 0; i < SOUURCE_TYPE_PROPERTY_NAMES.length; i++) {
String key = SOUURCE_TYPE_PROPERTY_NAMES[i];
Object value = SOUURCE_TYPE_PROPERTY_VALUES[i];
propertyMap.put(key, value);
}
// ****** read Schema ******//
Schema schema = readSchema(getSourceTempFilePath());
assertNotNull(schema);
assertEquals(1, schema.getMappingRelevantTypes().size());
// Test properties
TypeDefinition schemaType = schema.getMappingRelevantTypes().iterator().next();
// Check every property for their existence
checkType(schemaType, SOUURCE_TYPE_LOCAL_NAME, propertyMap.keySet());
// ****** read Instances ******//
InstanceCollection instances = readInstances(schema, getSourceTempFilePath());
assertTrue(instances.hasSize());
assertEquals(SOURCE_INSTANCES_COUNT, instances.size());
checkInstances(instances, propertyMap);
// ****** write Instances ******//
// check target DB is empty
InstanceCollection targetInstances = readInstances(schema, getTargetTempFilePath());
assertTrue(targetInstances.hasSize());
assertEquals(0, targetInstances.size());
writeInstances(schema, getTargetTempFilePath(), instances);
// re-read instances to check they were written correctly
targetInstances = readInstances(schema, getTargetTempFilePath());
assertTrue(targetInstances.hasSize());
assertEquals(SOURCE_INSTANCES_COUNT, targetInstances.size());
checkInstances(targetInstances, propertyMap);
}
use of eu.esdihumboldt.hale.common.instance.model.InstanceCollection in project hale by halestudio.
the class JDBCInstanceWriter method execute.
@Override
protected IOReport execute(ProgressIndicator progress, IOReporter reporter) throws IOProviderConfigurationException, IOException {
InstanceCollection instances = getInstances();
Connection connection = null;
try {
// connect to the database
try {
connection = getConnection();
} catch (Exception e) {
reporter.error(new IOMessageImpl(e.getLocalizedMessage(), e));
reporter.setSuccess(false);
reporter.setSummary("Failed to connect to database.");
return reporter;
}
if (isWriteUnordered()) {
// write instances as they come in
writeInstances(connection, instances, progress, reporter);
} else {
// write instances based on type order needed for insert
// (to avoid violating constraints)
Set<TypeDefinition> sortedSet = getSortedSchemas(getTargetSchema().getMappingRelevantTypes());
for (TypeDefinition td : sortedSet) {
writeInstances(connection, instances.select(new TypeFilter(td)), progress, reporter);
}
}
reporter.setSuccess(true);
} catch (Exception e) {
reporter.error(new IOMessageImpl(e.getLocalizedMessage(), e));
reporter.setSuccess(false);
reporter.setSummary("Saving instances to database failed.");
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
// ignore
}
}
progress.end();
}
return reporter;
}
use of eu.esdihumboldt.hale.common.instance.model.InstanceCollection in project hale by halestudio.
the class PointHandlerTest method testPointGml32_Grid.
/**
* Test point geometries read from a GML 3.2 file.
*
* @throws Exception if an error occurs
*/
@Test
public void testPointGml32_Grid() throws Exception {
InstanceCollection instances = loadXMLInstances(getClass().getResource("/data/gml/geom-gml32.xsd").toURI(), getClass().getResource("/data/point/sample-point-gml32.xml").toURI(), gridConfig);
// three instances expected
ResourceIterator<Instance> it = instances.iterator();
try {
// 1. PointProperty with Point defined through coordinates
assertTrue("First sample feature missing", it.hasNext());
Instance instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 2. GeometryProperty with Point defined through coordinates
assertTrue("Second sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 3. PointProperty with Point defined through pos
assertTrue("Third sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 4. GeometryProperty with Point defined through pos
assertTrue("Fourth sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
} finally {
it.close();
}
}
use of eu.esdihumboldt.hale.common.instance.model.InstanceCollection in project hale by halestudio.
the class PointHandlerTest method testPointGml31_Grid.
/**
* Test point geometries read from a GML 3.1 file.
*
* @throws Exception if an error occurs
*/
@Test
public void testPointGml31_Grid() throws Exception {
InstanceCollection instances = loadXMLInstances(getClass().getResource("/data/gml/geom-gml31.xsd").toURI(), getClass().getResource("/data/point/sample-point-gml31.xml").toURI(), gridConfig);
// three instances expected
ResourceIterator<Instance> it = instances.iterator();
try {
// 1. PointProperty with Point defined through coordinates
assertTrue("First sample feature missing", it.hasNext());
Instance instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 2. PointProperty with Point defined through coord
assertTrue("Second sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 3. GeometryProperty with Point defined through coord
assertTrue("Third sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 4. PointProperty with Point defined through pos
assertTrue("Fourth sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
// 5. GeometryProperty with Point defined through pos
assertTrue("Fifth sample feature missing", it.hasNext());
instance = it.next();
checkSingleGeometry(instance, gridChecker);
} finally {
it.close();
}
}
use of eu.esdihumboldt.hale.common.instance.model.InstanceCollection in project hale by halestudio.
the class PolygonHandlerTest method testPolygonGml31.
/**
* Test polygon geometries read from a GML 3.1 file
*
* @throws Exception if an error occurs
*/
@Test
public void testPolygonGml31() throws Exception {
InstanceCollection instances = AbstractHandlerTest.loadXMLInstances(getClass().getResource("/data/gml/geom-gml31.xsd").toURI(), getClass().getResource("/data/polygon/sample-polygon-gml31.xml").toURI());
// one instance expected
ResourceIterator<Instance> it = instances.iterator();
try {
// PolygonProperty with LinearRing defined through coordinates
assertTrue("First sample feature missing", it.hasNext());
Instance instance = it.next();
checkSingleGeometry(instance, checker);
} finally {
it.close();
}
}
Aggregations