use of eu.esdihumboldt.hale.common.core.io.report.IOReport in project hale by halestudio.
the class ProjectReference method loadProjectInfo.
/**
* Load project information.
*
* @param projectFile the project file
* @param reportHandler the report handler
* @return the project info or <code>null</code> if the project file could
* not be loaded
*/
protected Project loadProjectInfo(File projectFile, ReportHandler reportHandler) {
FileIOSupplier in = new FileIOSupplier(projectFile);
ProjectReader reader = HaleIO.findIOProvider(ProjectReader.class, in, projectFile.getName());
reader.setSource(in);
try {
IOReport report = reader.execute(null);
reportHandler.publishReport(report);
} catch (Exception e) {
log.error("Failed to load project information for project at " + projectFile.getAbsolutePath(), e);
return null;
}
return reader.getProject();
}
use of eu.esdihumboldt.hale.common.core.io.report.IOReport in project hale by halestudio.
the class PropertyResolverTest method testComplexInstances.
/**
* Test with complex instances.
*
* @throws Exception if an error occurs
*/
@Ignore
public void testComplexInstances() throws Exception {
SchemaReader reader = new XmlSchemaReader();
reader.setSharedTypes(null);
reader.setSource(new DefaultInputSupplier((getClass().getResource("/data/erm/inspire3/HydroPhysicalWaters.xsd").toURI())));
IOReport report = reader.execute(null);
assertTrue(report.isSuccess());
Schema schema = reader.getSchema();
StreamGmlReader instanceReader = new GmlInstanceReader();
instanceReader.setSource(new DefaultInputSupplier(getClass().getResource("/data/out/transformWrite_ERM_HPW.gml").toURI()));
instanceReader.setSourceSchema(schema);
instanceReader.validate();
report = instanceReader.execute(null);
assertTrue(report.isSuccess());
InstanceCollection instances = instanceReader.getInstances();
assertFalse(instances.isEmpty());
ResourceIterator<Instance> ri = instances.iterator();
try {
Instance instance = ri.next();
assertTrue(PropertyResolver.hasProperty(instance, "description"));
assertTrue(PropertyResolver.hasProperty(instance, "{http://www.opengis.net/gml/3.2}description"));
assertTrue(PropertyResolver.hasProperty(instance, "boundedBy.Envelope.coordinates"));
assertTrue(PropertyResolver.hasProperty(instance, "boundedBy.Envelope.{http://www.opengis.net/gml/3.2}coordinates"));
assertTrue(PropertyResolver.hasProperty(instance, "{http://www.opengis.net/gml/3.2}boundedBy.{http://www.opengis.net/gml/3.2}Envelope.{http://www.opengis.net/gml/3.2}coordinates"));
assertFalse(PropertyResolver.hasProperty(instance, "boundedBy.Envelope.{http://www.opengis.net/gml/3.2}coordinates.description"));
assertTrue(PropertyResolver.hasProperty(instance, "location.AbstractSolid.id"));
assertTrue(PropertyResolver.hasProperty(instance, "location.CompositeCurve.curveMember.CompositeCurve.curveMember.type"));
assertTrue(PropertyResolver.hasProperty(instance, "{http://www.opengis.net/gml/3.2}location.{http://www.opengis.net/gml/3.2}CompositeCurve.{http://www.opengis.net/gml/3.2}curveMember.{http://www.opengis.net/gml/3.2}CompositeCurve.{http://www.opengis.net/gml/3.2}curveMember.type"));
assertTrue(PropertyResolver.hasProperty(instance, "{http://www.opengis.net/gml/3.2}location.CompositeCurve.{http://www.opengis.net/gml/3.2}curveMember.{http://www.opengis.net/gml/3.2}CompositeCurve.curveMember.type"));
assertEquals("EPSG:4326", PropertyResolver.getValues(instance, "geometry.Polygon.srsName").iterator().next().toString());
// TODO
} finally {
ri.close();
}
}
use of eu.esdihumboldt.hale.common.core.io.report.IOReport in project hale by halestudio.
the class PropertyResolverTest method loadXMLInstances.
private InstanceCollection loadXMLInstances(URI schemaLocation, URI xmlLocation) throws IOException, IOProviderConfigurationException {
SchemaReader reader = new XmlSchemaReader();
reader.setSharedTypes(null);
reader.setSource(new DefaultInputSupplier(schemaLocation));
IOReport schemaReport = reader.execute(null);
assertTrue(schemaReport.isSuccess());
Schema sourceSchema = reader.getSchema();
//
InstanceReader instanceReader = new XmlInstanceReader();
instanceReader.setParameter(XmlInstanceReader.PARAM_IGNORE_ROOT, Value.of(false));
instanceReader.setSource(new DefaultInputSupplier(xmlLocation));
instanceReader.setSourceSchema(sourceSchema);
IOReport instanceReport = instanceReader.execute(null);
assertTrue(instanceReport.isSuccess());
return instanceReader.getInstances();
}
use of eu.esdihumboldt.hale.common.core.io.report.IOReport in project hale by halestudio.
the class ReportIOSummary method refresh.
/**
* @see AbstractPropertySection#refresh()
*/
@Override
public void refresh() {
super.refresh();
if (linktext == null || link == null) {
// not yet initialized
return;
}
if (report != null && report instanceof IOReport) {
IOReport ioReport = (IOReport) report;
if (ioReport.getTarget() != null && ioReport.getTarget().getLocation() != null) {
this.link.refresh(ioReport.getTarget().getLocation());
this.linktext.setText(ioReport.getTarget().getLocation().toString());
this.displayLink = link.getLink();
displayLink.setEnabled(true);
return;
}
}
displayLink.setEnabled(false);
linktext.setText("");
}
use of eu.esdihumboldt.hale.common.core.io.report.IOReport in project hale by halestudio.
the class IOWizard method execute.
/**
* Execute the given provider
*
* @param provider the I/O provider
* @param defaultReporter the default reporter that is used if the provider
* doesn't supply a report
* @return the execution report, if null it will not give feedback to the
* user and the advisor's handleResult method won't be called either
*/
protected IOReport execute(final IOProvider provider, final IOReporter defaultReporter) {
// execute provider
final AtomicReference<IOReport> report = new AtomicReference<IOReport>(defaultReporter);
defaultReporter.setSuccess(false);
try {
getContainer().run(true, provider.isCancelable(), new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
ATransaction trans = log.begin(defaultReporter.getTaskName());
try {
IOReport result = provider.execute(new ProgressMonitorIndicator(monitor));
if (result != null) {
report.set(result);
} else {
defaultReporter.setSuccess(true);
}
} catch (Throwable e) {
defaultReporter.error(new IOMessageImpl(e.getLocalizedMessage(), e));
} finally {
trans.end();
}
}
});
} catch (Throwable e) {
defaultReporter.error(new IOMessageImpl(e.getLocalizedMessage(), e));
}
return report.get();
}
Aggregations