package org.openlca.io.ecospold1.output;
import org.openlca.core.model.Category;
import org.openlca.core.model.Flow;
import org.openlca.ecospold.IExchange;
import org.openlca.ecospold.IReferenceFunction;
final class Categories {
private Categories() {
}
static void map(Flow flow, IReferenceFunction refFun, ExportConfig config) {
Category category = flow.getCategory();
if (category != null) {
if (category.getCategory() == null) {
refFun.setCategory(category.getName());
refFun.setLocalCategory(category.getName());
} else {
Category parent = category.getCategory();
refFun.setCategory(parent.getName());
refFun.setLocalCategory(parent.getName());
refFun.setSubCategory(category.getName());
refFun.setLocalSubCategory(category.getName());
}
}
if (config.isCreateDefaults())
createDefaults(refFun);
}
private static void createDefaults(IReferenceFunction refFun) {
if (refFun.getCategory() == null) {
refFun.setCategory("unspecified");
refFun.setLocalCategory("unspecified");
}
if (refFun.getSubCategory() == null) {
refFun.setSubCategory("unspecified");
refFun.setLocalSubCategory("unspecified");
}
}
static void map(Category category, IExchange exchange, ExportConfig config) {
if (category != null) {
if (category.getCategory() == null) {
exchange.setCategory(category.getName());
exchange.setLocalCategory(category.getName());
} else {
Category parent = category.getCategory();
exchange.setCategory(parent.getName());
exchange.setLocalCategory(parent.getName());
exchange.setSubCategory(category.getName());
exchange.setLocalSubCategory(category.getName());
}
}
if (config.isCreateDefaults())
createDefaults(exchange);
}
private static void createDefaults(IExchange exchange) {
if (exchange.getCategory() == null) {
exchange.setCategory("unspecified");
exchange.setLocalCategory("unspecified");
}
if (exchange.getSubCategory() == null) {
exchange.setSubCategory("unspecified");
exchange.setLocalSubCategory("unspecified");
}
}
}