当前位置: 首页>>代码示例>>Java>>正文


Java FormulaInterpreter类代码示例

本文整理汇总了Java中org.openlca.expressions.FormulaInterpreter的典型用法代码示例。如果您正苦于以下问题:Java FormulaInterpreter类的具体用法?Java FormulaInterpreter怎么用?Java FormulaInterpreter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FormulaInterpreter类属于org.openlca.expressions包,在下文中一共展示了FormulaInterpreter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: create

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
private Parameter create(CalculatedParameterRow row,
		FormulaInterpreter interpreter) {
	Parameter p = new Parameter();
	p.setRefId(UUID.randomUUID().toString());
	p.setName(row.getName());
	p.setScope(ParameterScope.GLOBAL);
	p.setDescription(row.getComment());
	p.setInputParameter(false);
	try {
		String expr = row.getExpression();
		double val = interpreter.eval(expr);
		p.setValue(val);
		p.setFormula(expr);
	} catch (Exception e) {
		log.error("failed to evaluate formula for global parameter "
				+ row.getName() + ": set value to 1.0", e);
		p.setInputParameter(true);
		p.setValue(1.0);
	}
	dao.insert(p);
	return p;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:23,代码来源:GlobalParameterSync.java

示例2: eachKml

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
private void eachKml(RegionalizationSetup regioSetup, ImpactTable table,
		FormulaInterpreter interpreter, BiConsumer<LocationKml, IMatrix> fn) {
	Scope scope = interpreter.getScope(setup.impactMethod.getId());
	for (LocationKml kml : regioSetup.kmlData) {
		Map<String, Double> params = regioSetup.parameterSet.get(
				kml.locationId);
		for (String param : params.keySet()) {
			Double val = params.get(param);
			if (val == null)
				continue;
			scope.bind(param, val.toString());
		}
		IMatrix factors = table.createMatrix(solver, interpreter).factorMatrix;
		fn.accept(kml, factors);
	}
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:17,代码来源:RegionalizedCalculator.java

示例3: nextRun

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
/**
 * Generates random numbers and calculates the product system. Returns true
 * if the calculation was successfully done, otherwise false (this is the
 * case when the resulting matrix is singular).
 */
public boolean nextRun() {
	if (inventory == null || inventoryMatrix == null)
		setUp();
	try {
		log.trace("next simulation run");
		FormulaInterpreter interpreter = parameterTable.simulate();
		inventory.simulate(inventoryMatrix, interpreter);
		LcaCalculator solver = new LcaCalculator(matrixSolver,
				inventoryMatrix);
		if (impactMatrix != null) {
			impactTable.simulate(impactMatrix, interpreter);
			solver.setImpactMatrix(impactMatrix);
		}
		SimpleResult result = solver.calculateSimple();
		appendResults(result);
		return true;
	} catch (Throwable e) {
		log.trace("simulation run failed", e);
		return false;
	}
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:27,代码来源:Simulator.java

示例4: isValidName

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
/**
 * Returns true if the given name is a valid identifier for a parameter. We
 * allow the same rules as for Java identifiers.
 */
public static boolean isValidName(String paramaterName) {
	if (paramaterName == null)
		return false;
	String id = paramaterName.trim();
	if (id.isEmpty())
		return false;
	for (int i = 0; i < id.length(); i++) {
		char c = id.charAt(i);
		if (i == 0 && !Character.isLetter(c))
			return false;
		if (i > 0 && !Character.isJavaIdentifierPart(c))
			return false;
	}
	FormulaInterpreter interpreter = new FormulaInterpreter();
	interpreter.bind(paramaterName, "1");
	try {
		interpreter.eval(paramaterName);
	} catch (InterpreterException e) {
		return false;
	}
	return true;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:27,代码来源:Parameter.java

示例5: initInterpreter

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
private FormulaInterpreter initInterpreter(ParameterDao dao) {
	FormulaInterpreter interpreter = new FormulaInterpreter();
	for (Parameter parameter : dao.getGlobalParameters()) {
		interpreter.bind(parameter.getName(),
				Double.toString(parameter.getValue()));
	}
	return interpreter;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:9,代码来源:ProcessParameterMapper.java

示例6: createInterpreter

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
private FormulaInterpreter createInterpreter(List<Parameter> globals) {
	FormulaInterpreter interpreter = new FormulaInterpreter();
	for (Parameter global : globals) {
		String name = global.getName();
		String val = Double.toString(global.getValue());
		interpreter.bind(name, val);
	}
	return interpreter;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:10,代码来源:GlobalParameterSync.java

示例7: createMatrix

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
public ImpactMatrix createMatrix(IMatrixSolver solver,
		FormulaInterpreter interpreter) {
	evalFormulas(interpreter);
	ImpactMatrix matrix = new ImpactMatrix();
	matrix.categoryIndex = categoryIndex;
	if (factorMatrix != null)
		matrix.factorMatrix = (IMatrix) factorMatrix.createRealMatrix(solver);
	matrix.flowIndex = flowIndex;
	return matrix;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:11,代码来源:ImpactTable.java

示例8: eval

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
void eval(FormulaInterpreter interpreter) {
	if (interpreter == null)
		return;
	try {
		Scope scope = interpreter.getScope(exchange.processId);
		if (scope == null)
			scope = interpreter.getGlobalScope();
		tryEval(scope);
	} catch (Exception e) {
		Logger log = LoggerFactory.getLogger(getClass());
		log.error("Formula evaluation failed, exchange "
				+ exchange.exchangeId, e);
	}
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:15,代码来源:ExchangeCell.java

示例9: eval

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
void eval(FormulaInterpreter interpreter) {
	if (interpreter == null)
		return;
	try {
		Scope scope = interpreter.getScope(methodId);
		if (scope == null)
			scope = interpreter.getGlobalScope();
		tryEval(scope);
	} catch (Exception e) {
		Logger log = LoggerFactory.getLogger(getClass());
		log.error("Formula evaluation failed, impact factor " + factor, e);
	}
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:14,代码来源:ImpactFactorCell.java

示例10: eval

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
void eval(final FormulaInterpreter interpreter) {
	iterate(new Fn() {
		@Override
		public void apply(int row, int col, ImpactFactorCell cell) {
			cell.eval(interpreter);
		}
	});
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:9,代码来源:ImpactFactorMatrix.java

示例11: createInterpreter

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
/**
 * Creates a new formula interpreter for the parameter values in this table.
 */
public FormulaInterpreter createInterpreter() {
	FormulaInterpreter interpreter = new FormulaInterpreter();
	TLongObjectIterator<Map<String, ParameterCell>> it = entries.iterator();
	while (it.hasNext()) {
		it.advance();
		Map<String, ParameterCell> map = it.value();
		for (ParameterCell cell : map.values())
			cell.bindTo(interpreter);
	}
	return interpreter;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:15,代码来源:ParameterTable.java

示例12: simulate

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
/**
 * Calculates new random values for the parameters in this table that have
 * an uncertainty distribution assigned. The method creates a formula
 * interpreter that is used for the evaluation of the uncertainty parameters
 * and returned with the new values bound. Thus, the returned interpreter
 * can be used in calculations.
 */
public FormulaInterpreter simulate() {
	FormulaInterpreter interpreter = createInterpreter();
	TLongObjectIterator<Map<String, ParameterCell>> it = entries.iterator();
	while (it.hasNext()) {
		it.advance();
		Map<String, ParameterCell> map = it.value();
		for (ParameterCell cell : map.values()) {
			cell.eval(interpreter);
			cell.simulate();
			cell.bindTo(interpreter);
		}
	}
	return interpreter;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:22,代码来源:ParameterTable.java

示例13: findScope

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
private Scope findScope(FormulaInterpreter interpreter) {
	if (param.getScope() == ParameterScope.GLOBAL)
		return interpreter.getGlobalScope();
	Scope scope = interpreter.getScope(param.getOwner());
	if (scope == null)
		scope = interpreter.createScope(param.getOwner());
	return scope;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:9,代码来源:ParameterTable.java

示例14: eval

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
void eval(FormulaInterpreter interpreter) {
	if (interpreter == null)
		return;
	try {
		Scope scope = findScope(interpreter);
		tryEval(scope);
	} catch (Exception e) {
		Logger log = LoggerFactory.getLogger(getClass());
		log.error(
				"Formula evaluation failed; parameter: "
						+ param.getName(), e);
	}
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:14,代码来源:ParameterTable.java

示例15: createMatrix

import org.openlca.expressions.FormulaInterpreter; //导入依赖的package包/类
public InventoryMatrix createMatrix(IMatrixSolver solver,
		FormulaInterpreter interpreter) {
	evalFormulas(interpreter);
	InventoryMatrix matrix = new InventoryMatrix();
	matrix.flowIndex = flowIndex;
	matrix.productIndex = productIndex;
	IMatrix enviMatrix = interventionMatrix.createRealMatrix(solver);
	matrix.interventionMatrix = enviMatrix;
	IMatrix techMatrix = technologyMatrix.createRealMatrix(solver);
	matrix.technologyMatrix = techMatrix;
	return matrix;
}
 
开发者ID:GreenDelta,项目名称:olca-modules,代码行数:13,代码来源:Inventory.java


注:本文中的org.openlca.expressions.FormulaInterpreter类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。