use of eu.esdihumboldt.hale.common.align.io.impl.internal.AlignmentBean in project hale by halestudio.
the class OmlReader method loadAlignment.
@Override
protected MutableAlignment loadAlignment(ProgressIndicator progress, IOReporter reporter) throws IOProviderConfigurationException, IOException {
try {
progress.begin("Load ontology mapping file", ProgressIndicator.UNKNOWN);
OmlRdfReader reader = new OmlRdfReader();
Alignment alignment = reader.read(getSource().getLocation().toURL());
AlignmentBean align = new AlignmentBean();
List<CellBean> cells = new ArrayList<CellBean>();
List<ICell> map = alignment.getMap();
for (ICell cell : map) {
// create a new CellBean for each ICell
CellBean cellBean = new CellBean();
IEntity entity = cell.getEntity1();
IEntity entity2 = cell.getEntity2();
// temporary list to be copied into the CellBean
List<NamedEntityBean> temp_source = new ArrayList<NamedEntityBean>();
List<NamedEntityBean> temp_target = new ArrayList<NamedEntityBean>();
setBeanLists(entity, temp_source, getSourceSchema());
setBeanLists(entity2, temp_target, getTargetSchema());
// set source/target lists of the CellBean
cellBean.setSource(temp_source);
cellBean.setTarget(temp_target);
// check if one of the entities has a transformation
if (entity.getTransformation() != null || entity2.getTransformation() != null) {
// entity 1 if it has the transformation
if (entity.getTransformation() != null) {
setParameters(cellBean, entity, reporter, cell);
setTransformationId(cellBean, entity);
} else {
// else set parameters and transformation id from entity
// 2
setParameters(cellBean, entity2, reporter, cell);
setTransformationId(cellBean, entity2);
}
}
// add the CellBean to a list of CellBeans
cells.add(cellBean);
}
// set the cells for the alignment after the all iterations
align.setCells(cells);
MutableAlignment mutableAlignment = align.createAlignment(reporter, getSourceSchema(), getTargetSchema(), new PathUpdate(null, null));
reporter.setSuccess(true);
return mutableAlignment;
} finally {
progress.end();
}
}
use of eu.esdihumboldt.hale.common.align.io.impl.internal.AlignmentBean in project hale by halestudio.
the class CastorAlignmentIO method save.
/**
* Save a default alignment to an output stream.
*
* @param alignment the alignment to save
* @param out the output stream
* @param pathUpdate to update relative paths in case of a path change
* @throws MappingException if the mapping could not be loaded
* @throws ValidationException if the mapping is no valid XML
* @throws MarshalException if the alignment could not be marshaled
* @throws IOException if the output could not be written
*/
public static void save(Alignment alignment, OutputStream out, PathUpdate pathUpdate) throws MappingException, MarshalException, ValidationException, IOException {
AlignmentBean bean = new AlignmentBean(alignment, pathUpdate);
Mapping mapping = new Mapping(AlignmentBean.class.getClassLoader());
mapping.loadMapping(new InputSource(AlignmentBean.class.getResourceAsStream("AlignmentBean.xml")));
XMLContext context = new XMLContext();
// enable
context.setProperty("org.exolab.castor.indent", true);
// indentation
// for
// marshaling as
// project files
// should be
// very small
context.addMapping(mapping);
Marshaller marshaller = context.createMarshaller();
// marshaller.setEncoding("UTF-8"); XXX not possible using the XMLContext but UTF-8 seems to be default, see http://jira.codehaus.org/browse/CASTOR-2846
Writer writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
try {
marshaller.setWriter(writer);
marshaller.marshal(bean);
} finally {
try {
writer.close();
} catch (IOException e) {
// ignore
}
}
}
Aggregations