16 package emlab.gen.domain.factory;
18 import java.io.InputStreamReader;
19 import java.util.List;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
23 import org.springframework.beans.factory.InitializingBean;
24 import org.springframework.transaction.annotation.Transactional;
26 import com.googlecode.jcsv.CSVStrategy;
27 import com.googlecode.jcsv.reader.CSVReader;
28 import com.googlecode.jcsv.reader.internal.CSVReaderBuilder;
43 static final Logger logger = LoggerFactory.getLogger(PowerPlantCSVFactory.class);
45 private List<EnergyProducer> producers;
47 private List<PowerGeneratingTechnology> technologies;
49 private List<PowerGridNode> powerGridNodes;
53 public void afterPropertiesSet()
throws Exception {
54 logger.warn(
"Reading power plant from CSV file: " + csvFile);
55 InputStreamReader inputStreamReader =
new InputStreamReader(this.getClass().getResourceAsStream(csvFile));
57 CSVReader<PowerPlant> csvPersonReader =
new CSVReaderBuilder<PowerPlant>(inputStreamReader).entryParser(
59 .strategy(
new CSVStrategy(
',',
'\"',
'#',
true,
true))
61 List<PowerPlant> powerplants = csvPersonReader.readAll();
64 public String getCsvFile() {
68 public void setCsvFile(String csvFile) {
69 this.csvFile = csvFile;
72 public List<EnergyProducer> getProducers() {
76 public void setProducers(List<EnergyProducer> producers) {
77 this.producers = producers;
80 public List<PowerGeneratingTechnology> getTechnologies() {
84 public void setTechnologies(List<PowerGeneratingTechnology> technologies) {
85 this.technologies = technologies;
88 public List<PowerGridNode> getPowerGridNodes() {
89 return powerGridNodes;
92 public void setPowerGridNodes(List<PowerGridNode> powerGridNodes) {
93 this.powerGridNodes = powerGridNodes;