bool OperationNodeScript::handleTableCases(int index, const NodeValue& vright, const QString &operation, const QString& relation, SymbolTable &symbols, ExecutionContext *ctx) { if ( index >= vright.size()) return false; QString expr; if ( SymbolTable::isNumerical(vright[index]) && SymbolTable::isDataLink(_value[index])){ expr = QString("%1(%2,%3,%4,%5)").arg(operation).arg(_value.toString(index)). arg(additionalInfo(ctx,_value.toString(index))). arg(vright.toDouble(index)).arg(relation); } else if (SymbolTable::isNumerical(_value[index]) && SymbolTable::isDataLink(vright[index])){ expr = QString("%1(%2,%3,%4, %5)").arg(operation).arg(vright.toString(index)). arg(additionalInfo(ctx,vright.toString(index))). arg(_value.toDouble(index)).arg(relation); } else if (SymbolTable::isDataLink(_value[index]) && SymbolTable::isDataLink(vright[index])) { expr = QString("%1(%2,%3,%4,%5)").arg(operation).arg(vright.toString(index)).arg(_value.toString(index)).arg(relation); } else if (SymbolTable::isDataLink(vright[index]) && SymbolTable::isNumerical(_value[index])) { expr = QString("%1(%2,%3,%4,%5)").arg(operation).arg(vright.toString(index)).arg(_value.toDouble(index)).arg(relation); } bool ok = Ilwis::commandhandler()->execute(expr, ctx,symbols); if ( !ok || ctx->_results.size() != 1) return false; _value = {ctx->_results[0], NodeValue::ctID}; return true; }
QString TermNode::getName(const NodeValue& var) const { QString name = var.toString(); if (name != sUNDEF) return name; // QString typeName = var.typeName(); // if ( typeName == "Ilwis::IRasterCoverage") { // Ilwis::IRasterCoverage raster = var.value<Ilwis::IRasterCoverage>(); // name = raster->name(); // } // if ( typeName == "Coordinate") { // name = var.id(); // } // if ( typeName == "Voxel") { // name = var.id(); // } return var.id(); }