Search in sources :

Example 1 with Model

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);
    }
}
Also used : InputStream(java.io.InputStream) Model(org.openlca.ilcd.models.Model)

Example 2 with Model

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;
}
Also used : Model(org.openlca.ilcd.models.Model)

Example 3 with 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;
}
Also used : ModelName(org.openlca.ilcd.models.ModelName) Classification(org.openlca.ilcd.commons.Classification) Model(org.openlca.ilcd.models.Model) Modelling(org.openlca.ilcd.models.Modelling) DataSetInfo(org.openlca.ilcd.models.DataSetInfo) QuantitativeReference(org.openlca.ilcd.models.QuantitativeReference)

Example 4 with 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));
}
Also used : StringWriter(java.io.StringWriter) Model(org.openlca.ilcd.models.Model) StringReader(java.io.StringReader) Test(org.junit.Test)

Example 5 with Model

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());
}
Also used : Group(org.openlca.ilcd.models.Group) Category(org.openlca.ilcd.commons.Category) Connection(org.openlca.ilcd.models.Connection) DownstreamLink(org.openlca.ilcd.models.DownstreamLink) StringWriter(java.io.StringWriter) Technology(org.openlca.ilcd.models.Technology) Classification(org.openlca.ilcd.commons.Classification) Model(org.openlca.ilcd.models.Model) StringReader(java.io.StringReader) Parameter(org.openlca.ilcd.models.Parameter) ProcessInstance(org.openlca.ilcd.models.ProcessInstance) GroupRef(org.openlca.ilcd.models.GroupRef) Test(org.junit.Test)

Aggregations

Model (org.openlca.ilcd.models.Model)6 StringReader (java.io.StringReader)2 StringWriter (java.io.StringWriter)2 Test (org.junit.Test)2 Classification (org.openlca.ilcd.commons.Classification)2 Connection (org.openlca.ilcd.models.Connection)2 DownstreamLink (org.openlca.ilcd.models.DownstreamLink)2 Group (org.openlca.ilcd.models.Group)2 GroupRef (org.openlca.ilcd.models.GroupRef)2 ProcessInstance (org.openlca.ilcd.models.ProcessInstance)2 QuantitativeReference (org.openlca.ilcd.models.QuantitativeReference)2 Technology (org.openlca.ilcd.models.Technology)2 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Consumer (java.util.function.Consumer)1 Collectors (java.util.stream.Collectors)1