package org.openlca.simapro.csv.model.enums;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Allowed types of elementary flows in SimaPro. Elementary flows are written to
* the elementary exchange sections of processes and reference flow sections at
* the end of a SimaPro CSV file. These sections start with an header which
* indicates the elementary flow type. For some of these flow types these
* headers are different in the elementary exchange sections and reference flow
* sections. Thus, this enumeration has two header values for each entry: the
* exchange header and the reference flow header.
*/
public enum ElementaryFlowType {
RESOURCES("Resources", "Raw materials"),
EMISSIONS_TO_AIR("Emissions to air", "Airborne emissions"),
EMISSIONS_TO_WATER("Emissions to water", "Waterborne emissions"),
EMISSIONS_TO_SOIL("Emissions to soil", "Emissions to soil"),
FINAL_WASTE_FLOWS("Final waste flows", "Final waste flows"),
NON_MATERIAL_EMISSIONS("Non material emissions", "Non material emissions"),
SOCIAL_ISSUES("Social issues", "Social issues"),
ECONOMIC_ISSUES("Economic issues", "Economic issues");
private final String exchangeHeader;
private final String referenceHeader;
private ElementaryFlowType(String exchangeHeader, String referenceHeader) {
this.exchangeHeader = exchangeHeader;
this.referenceHeader = referenceHeader;
}
public String getExchangeHeader() {
return exchangeHeader;
}
public String getReferenceHeader() {
return referenceHeader;
}
public static ElementaryFlowType forExchangeHeader(String header) {
for (ElementaryFlowType type : values()) {
if (type.getExchangeHeader().equalsIgnoreCase(header))
return type;
}
Logger log = LoggerFactory.getLogger(ElementaryFlowType.class);
log.warn("unknown exchange header {}; returning NULL for flow type",
header);
return null;
}
public static ElementaryFlowType forReferenceHeader(String header) {
for (ElementaryFlowType type : values()) {
if (type.getReferenceHeader().equalsIgnoreCase(header))
return type;
}
Logger log = LoggerFactory.getLogger(ElementaryFlowType.class);
log.warn("unknown reference header {}; returning NULL for flow type",
header);
return null;
}
}