public void convertStatesAndMerge(StateTraverser tasks) throws NoCountryFoundException { Integer numberOfCountriesWithoutStates = 0; for (Map.Entry<Place, List<Place>> entry : tasks.getWorkflowHelperWrapper().getGeoPlanetStates().entrySet()) { Place country = entry.getKey(); List<Place> states = entry.getValue(); List<Country> results = countryDtoService.query("name = '" + country.getName() + "'"); if (results.isEmpty()) { throw new NoCountryFoundException(country); } Country countryDto = results.get(0); if ((states.isEmpty() && countryDto.getHasStates()) || (!states.isEmpty() && !countryDto.getHasStates())) { countryDto.setHasStates(!states.isEmpty()); countryDto = countryDtoService.merge(countryDto); } if (states.isEmpty()) { numberOfCountriesWithoutStates++; } for (Place state : states) { State stateDto = new State(); List<State> queryCheck = query("name = '" + state.getName().replaceAll("'", "''") + "'"); if (queryCheck.isEmpty()) { stateDto.setName(state.getName()); stateDto.setCountry(countryDto); add(stateDto); tasks.getWorkflowHelperWrapper().getAllEntities().add(stateDto); continue; } stateDto = queryCheck.get(0); stateDto.setCountry(countryDto); stateDto.setDateLastModified(new Date()); stateDto.setIsDeleted(false); stateDto = merge(stateDto); tasks.getWorkflowHelperWrapper().getAllEntities().add(stateDto); } } log.info("numberOfCountriesWithoutStates: " + numberOfCountriesWithoutStates); }
public void replicateToMongoDB(StateTraverser tasks) { List<State> states = tasks.getWorkflowHelperWrapper().getAllEntities(); for (State state : states) { MongoState mongoState = new MongoState(); mongoState.setName(state.getName()); mongoState.setId(state.getPk()); MongoCountry country = countryMongoDao.find(state.getCountry().getPk()); mongoState.setCountry(country); mongoState.setId(state.getPk()); stateMongoDao.merge(mongoState); } }