package org.openlca.io.xls.process.output;
import org.apache.poi.ss.usermodel.Sheet;
import org.openlca.core.database.ActorDao;
import org.openlca.core.model.Actor;
import org.openlca.core.model.Version;
import org.openlca.io.CategoryPath;
import org.openlca.io.xls.Excel;
import java.util.Collections;
import java.util.List;
class ActorSheet {
private Config config;
private Sheet sheet;
private int row = 0;
private ActorSheet(Config config) {
this.config = config;
sheet = config.workbook.createSheet("Actors");
}
public static void write(Config config) {
new ActorSheet(config).write();
}
private void write() {
writeHeader();
ActorDao dao = new ActorDao(config.database);
List<Actor> actors = dao.getAll();
Collections.sort(actors, new EntitySorter());
for (Actor actor : actors) {
row++;
write(actor);
}
Excel.autoSize(sheet, 0, 5);
}
private void writeHeader() {
config.header(sheet, row, 0, "UUID");
config.header(sheet, row, 1, "Name");
config.header(sheet, row, 2, "Description");
config.header(sheet, row, 3, "Category");
config.header(sheet, row, 4, "Version");
config.header(sheet, row, 5, "Last change");
config.header(sheet, row, 6, "Address");
config.header(sheet, row, 7, "City");
config.header(sheet, row, 8, "Zip code");
config.header(sheet, row, 9, "Country");
config.header(sheet, row, 10, "E-mail");
config.header(sheet, row, 11, "Telefax");
config.header(sheet, row, 12, "Telephone");
config.header(sheet, row, 13, "Website");
}
private void write(Actor actor) {
Excel.cell(sheet, row, 0, actor.getRefId());
Excel.cell(sheet, row, 1, actor.getName());
Excel.cell(sheet, row, 2, actor.getDescription());
Excel.cell(sheet, row, 3, CategoryPath.getFull(actor.getCategory()));
Excel.cell(sheet, row, 4, Version.asString(actor.getVersion()));
config.date(sheet, row, 5, actor.getLastChange());
Excel.cell(sheet, row, 6, actor.getAddress());
Excel.cell(sheet, row, 7, actor.getCity());
Excel.cell(sheet, row, 8, actor.getZipCode());
Excel.cell(sheet, row, 9, actor.getCountry());
Excel.cell(sheet, row, 10, actor.getEmail());
Excel.cell(sheet, row, 11, actor.getTelefax());
Excel.cell(sheet, row, 12, actor.getTelephone());
Excel.cell(sheet, row, 13, actor.getWebsite());
}
}