UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

33 lines (32 loc) 1.32 kB
import { Func } from "../Func.js"; import { ExprEvalSuccessObj } from "../../ExprEvalResult.js"; import { StringValue } from "../../../value/StringValue.js"; import { Type } from "../../../type/Types.js"; import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js"; import { FuncArgIfcDateTimeString } from "../arg/FuncArgIfcDateTimeString.js"; import { IfcTimeStampValue } from "../../../value/IfcTimeStampValue.js"; import { FuncArgUnion } from "../arg/FuncArgUnion.js"; import { FuncArgIfcTimeStamp } from "../arg/FuncArgIfcTimeStamp.js"; export class TOIFCDATETIME extends Func { constructor() { super("TOIFCDATETIME", [ FuncArgUnion.of(true, "pointInTime", [ FuncArgIfcDateTimeString, FuncArgIfcTimeStamp, ]), ]); } calculateResult(callingExpr, evaluatedArguments) { const value = evaluatedArguments.get("pointInTime"); if (value instanceof StringValue) { return new ExprEvalSuccessObj(IfcDateTimeValue.of(value.getValue())); } else if (value instanceof IfcTimeStampValue) { return new ExprEvalSuccessObj(value.toIfcDateTimeValue()); } } getReturnType(argumentTypes) { return Type.IFC_DATE_TIME; } } //# sourceMappingURL=TOIFCDATETIME.js.map