ifc-expressions
Version:
Parsing and evaluation of IFC expressions
30 lines (29 loc) • 1.21 kB
JavaScript
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