UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

30 lines (29 loc) 1.21 kB
import { Func } from "../Func.js"; import { ExprEvalSuccessObj } from "../../ExprEvalResult.js"; import { StringValue } from "../../../value/StringValue.js"; import { Type } from "../../../type/Types.js"; import { FuncArgIfcDateString } from "../arg/FuncArgIfcDateString.js"; import { IfcDateValue } from "../../../value/IfcDateValue.js"; import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js"; import { FuncArgUnion } from "../arg/FuncArgUnion.js"; import { FuncArgIfcDateTime } from "../arg/FuncArgIfcDateTime.js"; export class TOIFCDATE extends Func { constructor() { super("TOIFCDATE", [ FuncArgUnion.of(true, "date", [FuncArgIfcDateTime, FuncArgIfcDateString]), ]); } calculateResult(callingExpr, evaluatedArguments) { const input = evaluatedArguments.get("date"); if (input instanceof StringValue) { return new ExprEvalSuccessObj(IfcDateValue.of(input.getValue())); } else if (input instanceof IfcDateTimeValue) { return new ExprEvalSuccessObj(input.toIfcDateValue()); } } getReturnType(argumentTypes) { return Type.IFC_DATE; } } //# sourceMappingURL=TOIFCDATE.js.map