use of org.openlca.ilcd.models.Model in project olca-modules by GreenDelta.
the class ModelSampleTest method with.
private void with(Consumer<Model> fn) throws Exception {
try (InputStream in = getClass().getResourceAsStream("eilcd_sample_model.xml")) {
Model p = JAXB.unmarshal(in, Model.class);
fn.accept(p);
}
}
use of org.openlca.ilcd.models.Model in project olca-modules by GreenDelta.
the class SystemExport method run.
public Model run(ProductSystem system) {
if (system == null)
return null;
if (config.store.contains(Model.class, system.refId))
return config.store.get(Model.class, system.refId);
this.system = system;
log.trace("Run product system export with {}", system);
loadMaps();
Model model = initModel();
mapLinks(model);
config.store.put(model);
this.system = null;
return model;
}
use of org.openlca.ilcd.models.Model in project olca-modules by GreenDelta.
the class SystemExport method initModel.
private Model initModel() {
Model model = new Model();
Models.setOrigin(model, "openLCA");
model.version = "1.1";
model.locations = "../ILCDLocations.xml";
DataSetInfo info = Models.forceDataSetInfo(model);
info.uuid = system.refId;
ModelName name = Models.forceModelName(model);
name.name.add(LangString.of(system.name, config.lang));
if (system.description != null) {
info.comment.add(LangString.of(system.description, config.lang));
}
CategoryConverter conv = new CategoryConverter();
Classification c = conv.getClassification(system.category);
if (c != null)
Models.forceClassifications(model).add(c);
if (system.referenceProcess != null) {
long refId = system.referenceProcess.id;
QuantitativeReference qRef = Models.forceQuantitativeReference(model);
qRef.refProcess = processIDs.getOrDefault(refId, -1);
}
Models.forcePublication(model).version = Version.asString(system.version);
model.modelling = new Modelling();
return model;
}
use of org.openlca.ilcd.models.Model in project olca-modules by GreenDelta.
the class ModelIOTest method testOrigin.
@Test
public void testOrigin() {
Model m = new Model();
assertEquals(null, Models.getOrigin(m));
Models.setOrigin(m, "openLCA");
StringWriter writer = new StringWriter();
JAXB.marshal(m, writer);
StringReader reader = new StringReader(writer.toString());
m = JAXB.unmarshal(reader, Model.class);
assertEquals("openLCA", Models.getOrigin(m));
}
use of org.openlca.ilcd.models.Model in project olca-modules by GreenDelta.
the class ModelIOTest method testSimpleModel.
@Test
public void testSimpleModel() throws Exception {
Model model = new Model();
Models.forceDataSetInfo(model).uuid = UUID.randomUUID().toString();
Models.forceModelName(model).name.add(LangString.of("Example model", "en"));
Models.forcePublication(model).version = "01.00.000";
Classification classification = new Classification();
Category category = new Category();
category.level = 0;
category.value = "Life cycle models";
classification.categories.add(category);
Models.forceClassifications(model).add(classification);
Models.forceQuantitativeReference(model).refProcess = 42;
Technology tech = Models.forceTechnology(model);
Group group = new Group();
group.id = 42;
group.name.add(LangString.of("Use phase", "en"));
tech.groups.add(group);
ProcessInstance pi = new ProcessInstance();
tech.processes.add(pi);
GroupRef groupRef = new GroupRef();
groupRef.groupID = 42;
pi.groupRefs.add(groupRef);
Parameter param = new Parameter();
param.name = "distance";
param.value = 42.42;
pi.parameters.add(param);
Connection con = new Connection();
con.outputFlow = UUID.randomUUID().toString();
DownstreamLink link = new DownstreamLink();
link.inputFlow = UUID.randomUUID().toString();
link.process = 42;
con.downstreamLinks.add(link);
pi.connections.add(con);
StringWriter writer = new StringWriter();
XmlBinder binder = new XmlBinder();
binder.toWriter(model, writer);
StringReader reader = new StringReader(writer.toString());
model = JAXB.unmarshal(reader, Model.class);
assertEquals(1, model.info.technology.processes.size());
}
Aggregations