/*
* gw2live - GuildWars 2 Dynamic Map
*
* Website: http://gw2map.com
*
* Copyright 2013 zyclonite networx
* http://zyclonite.net
* Developer: Lukas Prettenthaler
*/
package net.zyclonite.gw2live.util;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.List;
import net.zyclonite.gw2live.model.Coordinate;
import net.zyclonite.gw2live.model.KeyValueLanguage;
import net.zyclonite.gw2live.model.WvwObjectiveDetails;
import net.zyclonite.gw2live.service.MongoDB;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* @author zyclonite
*/
public class StaticDataLoader {
private static final Log LOG = LogFactory.getLog(StaticDataLoader.class);
private final String directory;
private final MongoDB db;
private final ObjectMapper mapper;
public StaticDataLoader() {
mapper = new ObjectMapper();
db = MongoDB.getInstance();
final AppConfig config = AppConfig.getInstance();
directory = config.getString("application.staticdata", "./import");
}
public void loadData() {
doWvwObjectiveDetails();
doWvwObjectiveLongNames();
doWvwMapNames();
doWvwCoordinates();
doPveCoordinates();
}
private void doWvwObjectiveDetails() {
try {
final File file = new File(directory + File.separator + "objectivedetails.json");
if (file.exists()) {
final List<WvwObjectiveDetails> objectivedetails = mapper.readValue(file, new TypeReference<List<WvwObjectiveDetails>>() {
});
db.saveWvwObjectiveDetails(objectivedetails);
}
} catch (JsonParseException | JsonMappingException e) {
LOG.error("Could not parse objectivedetails.json " + e);
} catch (IOException ex) {
LOG.error("Coudl load objectivedetails.json " + ex);
}
LOG.debug("objectivedetails.json loaded");
}
private void doWvwObjectiveLongNames() {
try {
final File file = new File(directory + File.separator + "objectivelongnames.json");
if (file.exists()) {
final List<KeyValueLanguage> objectivelongnames = mapper.readValue(file, new TypeReference<List<KeyValueLanguage>>() {
});
db.saveWvwObjectiveLongNames(objectivelongnames);
}
} catch (JsonParseException | JsonMappingException e) {
LOG.error("Could not parse objectivelongnames.json " + e);
} catch (IOException ex) {
LOG.error("Coudl load objectivelongnames.json " + ex);
}
LOG.debug("objectivelongnames.json loaded");
}
private void doWvwMapNames() {
try {
final File file = new File(directory + File.separator + "wvwmapnames.json");
if (file.exists()) {
final List<KeyValueLanguage> wvwmapnames = mapper.readValue(file, new TypeReference<List<KeyValueLanguage>>() {
});
db.saveWvwMapNames(wvwmapnames);
}
} catch (JsonParseException | JsonMappingException e) {
LOG.error("Could not parse wvwmapnames.json " + e);
} catch (IOException ex) {
LOG.error("Coudl load wvwmapnames.json " + ex);
}
LOG.debug("wvwmapnames.json loaded");
}
private void doWvwCoordinates() {
try {
final File file = new File(directory + File.separator + "wvwcoordinates.json");
if (file.exists()) {
final List<Coordinate> wvwcoordinates = mapper.readValue(file, new TypeReference<List<Coordinate>>() {
});
db.saveWvwCoordinates(wvwcoordinates);
}
} catch (JsonParseException | JsonMappingException e) {
LOG.error("Could not parse wvwcoordinates.json " + e);
} catch (IOException ex) {
LOG.error("Coudl load wvwcoordinates.json " + ex);
}
LOG.debug("wvwcoordinates.json loaded");
}
private void doPveCoordinates() {
try {
final File file = new File(directory + File.separator + "pvecoordinates.json");
if (file.exists()) {
final List<Coordinate> pvecoordinates = mapper.readValue(file, new TypeReference<List<Coordinate>>() {
});
db.savePveCoordinates(pvecoordinates);
}
} catch (JsonParseException | JsonMappingException e) {
LOG.error("Could not parse pvecoordinates.json " + e);
} catch (IOException ex) {
LOG.error("Coudl load pvecoordinates.json " + ex);
}
LOG.debug("pvecoordinates.json loaded");
}
}