private void saveMapping(URI dataSourceUri, String mappingId, String sourceQuery, List<Function> targetQuery) { try { OBDAMappingAxiom mapping = dataFactory.getRDBMSMappingAxiom(mappingId, dataFactory.getSQLQuery(sourceQuery), targetQuery); model.addMapping(dataSourceUri, mapping, false); } catch (DuplicateMappingException e) { // NO-OP: Ignore it as duplicates won't be loaded to the model } }
@Override public Object clone() { OBDAModel clone = dfac.getOBDAModel(); for (OBDADataSource source : datasources.values()) { clone.addSource((OBDADataSource) source.clone()); for (ArrayList<OBDAMappingAxiom> mappingList : mappings.values()) { for (OBDAMappingAxiom mapping : mappingList) { try { clone.addMapping(source.getSourceID(), (OBDAMappingAxiom) mapping.clone(), false); } catch (DuplicateMappingException e) { // Does nothing } } } } return clone; }