All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openlca.io.ecospold2.output.MasterData Maven / Gradle / Ivy

There is a newer version: 2.2.1
Show newest version
package org.openlca.io.ecospold2.output;

import spold2.Activity;
import spold2.ActivityDescription;
import spold2.ActivityIndexEntry;
import spold2.DataSet;
import spold2.ElementaryExchange;
import spold2.Geography;
import spold2.IntermediateExchange;
import spold2.Time;
import spold2.UserMasterData;

/**
 * Adds master data entries to an EcoSpold 02 activity data set. This is not
 * documented in the EcoSpold 02 / EcoEditor specification but can be seen when
 * creating data sets with the EcoEditor. It is possible (and required before
 * opening) to import such master data from an EcoSpold 02 file.
 */
final class MasterData {

	private MasterData() {
	}

	// TODO: handle parameters
	// private void writeParamters(UserMasterData masterData) {
	// for (Parameter parameter : dataSet.getParameters()) {
	// Parameter masterParam = new Parameter();
	// masterData.getParameters().add(masterParam);
	// masterParam.setId(parameter.getId());
	// masterParam.setName(parameter.getName());
	// masterParam.setUnitName(parameter.getUnitName());
	// }
	// }

	public static void writeElemFlow(ElementaryExchange elemFlow,
			UserMasterData masterData) {
		ElementaryExchange masterFlow = new ElementaryExchange();
		masterData.elementaryExchanges.add(masterFlow);
		masterFlow.id = elemFlow.flowId;
		masterFlow.name = elemFlow.name;
		masterFlow.unitId = elemFlow.unitId;
		masterFlow.unit = elemFlow.unit;
		masterFlow.compartment = elemFlow.compartment;
		masterFlow.casNumber = elemFlow.casNumber;
		masterFlow.formula = elemFlow.formula;
	}

	public static void writeTechFlow(IntermediateExchange techFlow,
			UserMasterData masterData) {
		IntermediateExchange masterFlow = new IntermediateExchange();
		masterData.intermediateExchanges.add(masterFlow);
		masterFlow.id = techFlow.flowId; // !
		masterFlow.unitId = techFlow.unitId;
		masterFlow.name = techFlow.name;
		masterFlow.unit = techFlow.unit;
	}

	public static void writeIndexEntry(DataSet ds) {
		if (ds == null || ds.masterData == null)
			return;
		ActivityIndexEntry indexEntry = new ActivityIndexEntry();
		ds.masterData.activityIndexEntries.add(indexEntry);
		indexEntry.systemModelId = "8b738ea0-f89e-4627-8679-433616064e82";
		ActivityDescription d = ds.description;
		if (d == null)
			return;
		Activity activity = d.activity;
		if (activity != null) {
			indexEntry.activityNameId = activity.activityNameId;
			indexEntry.id = activity.id;
		}
		Time timePeriod = d.timePeriod;
		if (timePeriod != null) {
			indexEntry.endDate = timePeriod.end;
			indexEntry.startDate = timePeriod.start;
		}
		Geography geography = d.geography;
		if (geography != null)
			indexEntry.geographyId = geography.id;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy