use of com.onespatial.jrc.tns.oml_to_rif.api.TranslationException in project hale by halestudio.
the class AlignmentToModelAlignmentDigester method createAttributePath.
/**
* Create an attribute path from an {@link IDetailedAbout}
*
* @param about the about
* @param elements the available elements
* @return the attribute path
* @throws TranslationException if the attribute path cannot be resolved
*/
private static GmlAttributePath createAttributePath(IDetailedAbout about, Map<String, SchemaElement> elements) throws TranslationException {
GmlAttributePath binding = new GmlAttributePath();
// get the parent class for the entity
// $NON-NLS-1$
SchemaElement entityParent = elements.get(about.getNamespace() + "/" + about.getFeatureClass());
if (entityParent == null) {
// $NON-NLS-1$ //$NON-NLS-2$
throw new TranslationException("Element " + about.getFeatureClass() + " not found");
}
TypeDefinition type = entityParent.getType();
List<String> nestedParts = about.getProperties();
for (String attributeName : nestedParts) {
AttributeDefinition attDef = type.getAttribute(attributeName);
if (attDef == null) {
// $NON-NLS-1$ //$NON-NLS-2$
throw new TranslationException("Attribute " + attributeName + " not found");
}
GmlAttribute attribute = new GmlAttribute(attDef);
binding.add(attribute);
type = attDef.getAttributeType();
}
return binding;
}
use of com.onespatial.jrc.tns.oml_to_rif.api.TranslationException in project hale by halestudio.
the class RifBindingToDomTranslator method translate.
/**
* Translates a RIF {@link org.w3._2007.rif.Document} to a DOM
* {@link Document}.
*
* @param rifDoc
* {@link org.w3._2007.rif.Document}
* @return {@link Document}
* @throws TranslationException
* if anything goes wrong during the translation
*/
@Override
public Document translate(org.w3._2007.rif.Document rifDoc) throws TranslationException {
try {
Document domDoc = documentBuilder.newDocument();
marshaller.marshal(rifDoc, domDoc);
return domDoc;
} catch (JAXBException e) {
throw new TranslationException(e);
}
}
use of com.onespatial.jrc.tns.oml_to_rif.api.TranslationException in project hale by halestudio.
the class RifMappingExportProvider method export.
/**
* @see MappingExportProvider#export(Alignment, String, Collection, Collection)
*/
@Override
public MappingExportReport export(Alignment al, String path, Collection<SchemaElement> sourceSchema, Collection<SchemaElement> targetSchema) throws MappingExportException {
MappingExportReport report = new MappingExportReport();
try {
HaleAlignment hal = new HaleAlignment(al, sourceSchema, targetSchema);
Document document = AlignmentToRifTranslator.getInstance(report).translate(hal);
DOMSource source = new DOMSource(document);
File newFile = new File(path);
OutputStream stream = new FileOutputStream(newFile);
StreamResult result = new StreamResult(stream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
// $NON-NLS-1$
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
// $NON-NLS-1$ //$NON-NLS-2$
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(source, result);
} catch (TranslationException e) {
throw new MappingExportException(e.getMessage(), e);
} catch (FileNotFoundException e) {
throw new MappingExportException(e.getMessage(), e);
} catch (TransformerException e) {
throw new MappingExportException(e.getMessage(), e);
}
return report;
}
Aggregations