use of org.openlca.core.database.IDatabase in project olca-modules by GreenDelta.
the class TestSocialAspectImport method testCopySocialAspects.
/**
* Test that social aspects of processes are copied between databases:
* https://github.com/GreenDelta/olca-app/issues/88. We ignore this test by
* default, because creating temporary databases take so long...
*/
@Test
@Ignore
public void testCopySocialAspects() throws Exception {
IDatabase db1 = Derby.createInMemory();
SocialIndicator indicator = new SocialIndicator();
indicator.refId = "si";
SocialIndicatorDao idao = new SocialIndicatorDao(db1);
idao.insert(indicator);
Process process = new Process();
process.refId = "pr";
SocialAspect aspect = new SocialAspect();
aspect.indicator = indicator;
process.socialAspects.add(aspect);
ProcessDao pdao = new ProcessDao(db1);
pdao.insert(process);
IDatabase db2 = Derby.createInMemory();
DatabaseImport imp = new DatabaseImport(db1, db2);
imp.run();
db1.close();
idao = new SocialIndicatorDao(db2);
indicator = idao.getForRefId("si");
assertNotNull(indicator);
pdao = new ProcessDao(db2);
process = pdao.getForRefId("pr");
assertEquals(1, process.socialAspects.size());
aspect = process.socialAspects.get(0);
assertNotNull(aspect.indicator);
assertEquals("si", aspect.indicator.refId);
db2.close();
}
use of org.openlca.core.database.IDatabase in project olca-modules by GreenDelta.
the class CategoriesTest method testFindOrAdd.
@Test
public void testFindOrAdd() {
IDatabase db = Tests.getDb();
String[] path = { "A", "B", "C", "D", "E" };
Category c = null;
for (int i = 0; i < 10; i++) {
Category next = Categories.findOrAdd(db, ModelType.FLOW, path);
if (c != null) {
assertEquals(c.id, next.id);
} else {
c = next;
}
}
checkCat(path, c);
}
use of org.openlca.core.database.IDatabase in project olca-modules by GreenDelta.
the class CategoriesTest method testFindOrAddModel.
@Test
public void testFindOrAddModel() {
IDatabase db = Tests.getDb();
String[] path = { "A", "B", "C", "D", "E" };
Category c = null;
for (int i = 0; i < 10; i++) {
Category next = Categories.findOrAdd(db, ModelType.FLOW, path);
if (c != null) {
assertEquals(c.id, next.id);
} else {
c = next;
}
Flow f = new Flow();
f.category = c;
FlowDao dao = new FlowDao(db);
dao.insert(f);
f = dao.getForId(f.id);
checkCat(path, f.category);
}
}
use of org.openlca.core.database.IDatabase in project olca-modules by GreenDelta.
the class ProductSystemBuilderExample method main.
public static void main(String[] args) {
String dbPath = "C:/Users/Besitzer/openLCA-data-1.4/databases/ecoinvent_2_2_unit";
IDatabase db = new Derby(new File(dbPath));
// load the reference process of the new product system
Process p = new ProcessDao(db).getForRefId("81261285-cc4a-3588-8cce-3aabb786d7aa");
// create and auto-complete the product system
var config = new LinkingConfig().providerLinking(ProviderLinking.PREFER_DEFAULTS).preferredType(ProcessType.UNIT_PROCESS);
var system = new ProductSystemBuilder(MatrixCache.createLazy(db), config).build(p);
// save the product system
new ProductSystemDao(db).insert(system);
}
use of org.openlca.core.database.IDatabase in project olca-modules by GreenDelta.
the class ProductSystemInMemoryCalculationExample method main.
public static void main(String[] args) throws Exception {
// load the database and matrix cache
String workspace = "C:/Users/Besitzer/openLCA-data-1.4";
String dbPath = workspace + "/databases/ecoinvent_2_2_unit";
IDatabase db = new Derby(new File(dbPath));
MatrixCache mcache = MatrixCache.createLazy(db);
// load the reference process and create
// the product system with auto-completion
// the system is not saved in the database
Process p = new ProcessDao(db).getForRefId("7ff672e3-a296-30e8-b1bb-a3173711a28b");
var config = new LinkingConfig().providerLinking(ProviderLinking.PREFER_DEFAULTS).preferredType(ProcessType.UNIT_PROCESS);
var builder = new ProductSystemBuilder(mcache, config);
var system = builder.build(p);
var method = db.get(ImpactMethod.class, "207ffac9-aaa8-401d-ac90-874defd3751a");
// create the calculation setup
var setup = CalculationSetup.simple(system).withImpactMethod(method);
// load the native library and calculate the result
// TODO: load Julia libraries first here
SystemCalculator calc = new SystemCalculator(db);
SimpleResult r = calc.calculateSimple(setup);
// print the LCIA results
for (ImpactDescriptor impact : r.getImpacts()) {
System.out.println(impact.name + "\t" + r.getTotalImpactResult(impact) + "\t" + impact.referenceUnit);
}
// finally, close the database
db.close();
}
Aggregations