ifc-expressions
Version:
Parsing and evaluation of IFC expressions
33 lines (32 loc) • 1.33 kB
JavaScript
import { Func } from "../Func.js";
import { ExprEvalSuccessObj } from "../../ExprEvalResult.js";
import { Type } from "../../../type/Types.js";
import { FuncArgIfcTimeStampNumeric } from "../arg/FuncArgIfcTimeStampNumeric.js";
import { IfcTimeStampValue } from "../../../value/IfcTimeStampValue.js";
import { NumericValue } from "../../../IfcExpression.js";
import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js";
import { FuncArgUnion } from "../arg/FuncArgUnion.js";
import { FuncArgIfcDateTime } from "../arg/FuncArgIfcDateTime.js";
export class TOIFCTIMESTAMP extends Func {
constructor() {
super("TOIFCTIMESTAMP", [
FuncArgUnion.of(true, "timeStamp", [
FuncArgIfcTimeStampNumeric,
FuncArgIfcDateTime,
]),
]);
}
calculateResult(callingExpr, evaluatedArguments) {
const input = evaluatedArguments.get("timeStamp");
if (input instanceof NumericValue) {
return new ExprEvalSuccessObj(IfcTimeStampValue.of(input.getValue()));
}
else if (input instanceof IfcDateTimeValue) {
return new ExprEvalSuccessObj(input.toIfcTimeStampValue());
}
}
getReturnType(argumentTypes) {
return Type.IFC_TIME_STAMP;
}
}
//# sourceMappingURL=TOIFCTIMESTAMP.js.map