@Override public ArrayList<Mapping> getMappings() { ArrayList<Mapping> mappings = new ArrayList<>(); ArrayList<String> mappingNames = getMappingsNames(); for(String mappingName : mappingNames) { Mapping newMap = getMappingVersion(mappingName); if(newMap != null) { mappings.add(newMap); } } return mappings; }
@Override public void saveMapping(Mapping mapping) { saveMapping(mapping, false); }
private Mapping getMappingVersion(String mappingName) { return getMappingVersion(mappingName, -1); }
@Override public String getMappingAsJSON(String mappingName) { Mapping mapping = getMapping(mappingName); String jsonMap = null; if(mapping != null){ jsonMap = mapping.serialize(); } return jsonMap; }
@Override public void deleteMapping(String mappingName) { Path dir = getMappingDirPath(mappingName); if (dir.toFile().exists()) { try { FileUtils.deleteDirectory(dir.toFile()); } catch (IOException e){ throw new DataHubProjectException("Could not delete mapping for project."); } } }
private List<JsonNode> getModifiedRawMappings(long minimumFileTimestampToLoad) { logger.debug("min modified: " + minimumFileTimestampToLoad); HubModuleManager propsManager = getPropsMgr(); propsManager.setMinimumFileTimestampToLoad(minimumFileTimestampToLoad);
ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.readTree(fileInputStream); Mapping newMap = createMappingFromJSON(node); if(newMap != null && newMap.getName().length() > 0) { return newMap;
@Override public Mapping getMapping(String mappingName, int version) { Mapping foundMap = getMappingVersion(mappingName, version); if(foundMap != null){ return foundMap; } else { throw new DataHubProjectException("Mapping not found in project: " + mappingName); } }
@Override public String getMappingAsJSON(String mappingName, int version) { Mapping mapping = getMapping(mappingName, version); String jsonMap = null; if(mapping != null){ jsonMap = mapping.serialize(); } return jsonMap; }
@Override public void saveMapping(Mapping mapping, boolean autoIncrement) { scaffolding.createMappingDir(mapping.getName()); try { if(autoIncrement){ mapping.incrementVersion();; } String mappingString = mapping.serialize(); Path dir = getMappingDirPath(mapping.getName()); if (!dir.toFile().exists()) { dir.toFile().mkdirs(); } String mappingFileName = mapping.getName() + "-" + mapping.getVersion() + MAPPING_FILE_EXTENSION; File file = Paths.get(dir.toString(), mappingFileName).toFile(); //create the object mapper to pretty print to disk ObjectMapper objectMapper = new ObjectMapper(); objectMapper.enable(SerializationFeature.INDENT_OUTPUT); Object json = objectMapper.readValue(mappingString, Object.class); FileOutputStream fileOutputStream = new FileOutputStream(file); fileOutputStream.write(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(json).getBytes()); fileOutputStream.flush(); fileOutputStream.close(); } catch (JsonProcessingException e) { throw new DataHubProjectException("Could not serialize mapping for project."); } catch (IOException e){ throw new DataHubProjectException("Could not write mapping to disk for project."); } }
@Override public Mapping getMapping(String mappingName) { Mapping foundMap = getMappingVersion(mappingName); if(foundMap != null){ return foundMap; } else { throw new DataHubProjectException("Mapping not found in project: " + mappingName); } }
@Override public Mapping createMapping(String mappingName) { try { getMapping(mappingName); throw new DataHubProjectException("Mapping with that name already exists"); } catch (DataHubProjectException e) { return Mapping.create(mappingName); } }