Archived
0
This repository has been archived on 2022-07-30. You can view files and clone it, but cannot push or open issues or pull requests.
Files
trader/client/src/main/java/ru/trader/World.java
2015-07-17 15:57:51 +03:00

67 lines
2.2 KiB
Java

package ru.trader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import ru.trader.analysis.FilteredMarket;
import ru.trader.core.Market;
import ru.trader.core.MarketAnalyzer;
import ru.trader.store.simple.SimpleMarket;
import ru.trader.store.simple.Store;
import ru.trader.store.XSSFImporter;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class World {
private static Market world;
private static final String STORE_FILE="world.xml";
private final static Logger LOG = LoggerFactory.getLogger(World.class);
static {
try {
File file = new File(STORE_FILE);
if (file.exists()) world = Store.loadFromFile(file);
else world = new SimpleMarket();
} catch (ParserConfigurationException | SAXException | IOException e) {
throw new RuntimeException(e);
}
}
public static void save() throws FileNotFoundException, UnsupportedEncodingException, XMLStreamException {
Store.saveToFile(world, new File("world.xml"));
world.commit();
}
public static void saveTo(File file) throws FileNotFoundException, UnsupportedEncodingException, XMLStreamException {
Store.saveToFile(world, file);
world.commit();
}
public static void imp(File file) throws IOException, SAXException {
LOG.info("Import from {}", file.getName());
XSSFImporter xssfImporter = new XSSFImporter(file);
world = xssfImporter.doImport();
}
public static void impXml(File file) throws ParserConfigurationException, SAXException, IOException {
LOG.info("Import from {}", file.getName());
Market market = Store.loadFromFile(file);
world.add(market);
}
public static Market getMarket() {
return world;
}
public static MarketAnalyzer buildAnalyzer(Market market){
FilteredMarket fMarket = new FilteredMarket(market, Main.SETTINGS.getFilter(market));
return new MarketAnalyzer(fMarket, Main.SETTINGS.getProfile());
}
}