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 { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js"; import { FuncArgIfcTimeString } from "../arg/FuncArgIfcTimeString.js"; import { IfcTimeValue } from "../../../value/IfcTimeValue.js"; import { FuncArgUnion } from "../arg/FuncArgUnion.js"; import { FuncArgIfcDateTime } from "../arg/FuncArgIfcDateTime.js"; export class TOIFCTIME extends Func { constructor() { super("TOIFCTIME", [ FuncArgUnion.of(true, "time", [FuncArgIfcTimeString, FuncArgIfcDateTime]), ]); } calculateResult(callingExpr, evaluatedArguments) { const input = evaluatedArguments.get("time"); if (input instanceof StringValue) { return new ExprEvalSuccessObj(IfcTimeValue.of(input.getValue())); } else if (input instanceof IfcDateTimeValue) { return new ExprEvalSuccessObj(input.toIfcTimeValue()); } } getReturnType(argumentTypes) { return Type.IFC_TIME; } } //# sourceMappingURL=TOIFCTIME.js.map