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 { 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