UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

33 lines (32 loc) 1.33 kB
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