1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { 17 global, 18 passNode, 19 passNodeArray, 20 unpackNonNullableNode, 21 unpackNode, 22 unpackNodeArray, 23 assertValidPeer, 24 AstNode, 25 Es2pandaAstNodeType, 26 KNativePointer, 27 nodeByType, 28 ArktsObject, 29 unpackString 30} from "../../reexport-for-generated" 31 32import { Expression } from "./Expression" 33import { AnnotatedExpression } from "./AnnotatedExpression" 34import { Identifier } from "./Identifier" 35import { SpreadElement } from "./SpreadElement" 36import { TypeNode } from "./TypeNode" 37import { AnnotationUsage } from "./AnnotationUsage" 38export class ETSParameterExpression extends Expression { 39 constructor(pointer: KNativePointer) { 40 assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION) 41 super(pointer) 42 43 } 44 static createETSParameterExpression(identOrSpread: AnnotatedExpression | undefined, isOptional: boolean): ETSParameterExpression { 45 return new ETSParameterExpression(global.generatedEs2panda._CreateETSParameterExpression(global.context, passNode(identOrSpread), isOptional)) 46 } 47 static updateETSParameterExpression(original: ETSParameterExpression | undefined, identOrSpread: AnnotatedExpression | undefined, isOptional: boolean): ETSParameterExpression { 48 return new ETSParameterExpression(global.generatedEs2panda._UpdateETSParameterExpression(global.context, passNode(original), passNode(identOrSpread), isOptional)) 49 } 50 static create1ETSParameterExpression(identOrSpread?: AnnotatedExpression, initializer?: Expression): ETSParameterExpression { 51 return new ETSParameterExpression(global.generatedEs2panda._CreateETSParameterExpression1(global.context, passNode(identOrSpread), passNode(initializer))) 52 } 53 static update1ETSParameterExpression(original?: ETSParameterExpression, identOrSpread?: AnnotatedExpression, initializer?: Expression): ETSParameterExpression { 54 return new ETSParameterExpression(global.generatedEs2panda._UpdateETSParameterExpression1(global.context, passNode(original), passNode(identOrSpread), passNode(initializer))) 55 } 56 /** @deprecated */ 57 setIdent(ident: Identifier): this { 58 global.generatedEs2panda._ETSParameterExpressionSetIdent(global.context, this.peer, passNode(ident)) 59 return this 60 } 61 /** @deprecated */ 62 setLexerSaved(s: string): this { 63 global.generatedEs2panda._ETSParameterExpressionSetLexerSaved(global.context, this.peer, s) 64 return this 65 } 66 /** @deprecated */ 67 setTypeAnnotation(typeNode: TypeNode): this { 68 global.generatedEs2panda._ETSParameterExpressionSetTypeAnnotation(global.context, this.peer, passNode(typeNode)) 69 return this 70 } 71 get isOptional(): boolean { 72 return global.generatedEs2panda._ETSParameterExpressionIsOptionalConst(global.context, this.peer) 73 } 74 /** @deprecated */ 75 setOptional(value: boolean): this { 76 global.generatedEs2panda._ETSParameterExpressionSetOptional(global.context, this.peer, value) 77 return this 78 } 79 /** @deprecated */ 80 setInitializer(initExpr: Expression): this { 81 global.generatedEs2panda._ETSParameterExpressionSetInitializer(global.context, this.peer, passNode(initExpr)) 82 return this 83 } 84 get isRestParameter(): boolean { 85 return global.generatedEs2panda._ETSParameterExpressionIsRestParameterConst(global.context, this.peer) 86 } 87 get getRequiredParams(): number { 88 return global.generatedEs2panda._ETSParameterExpressionGetRequiredParamsConst(global.context, this.peer) 89 } 90 /** @deprecated */ 91 setRequiredParams(value: number): this { 92 global.generatedEs2panda._ETSParameterExpressionSetRequiredParams(global.context, this.peer, value) 93 return this 94 } 95 get annotations(): readonly AnnotationUsage[] { 96 return unpackNodeArray(global.generatedEs2panda._ETSParameterExpressionAnnotationsConst(global.context, this.peer)) 97 } 98 /** @deprecated */ 99 setAnnotations(annotations: readonly AnnotationUsage[]): this { 100 global.generatedEs2panda._ETSParameterExpressionSetAnnotations(global.context, this.peer, passNodeArray(annotations), annotations.length) 101 return this 102 } 103} 104export function isETSParameterExpression(node: AstNode): node is ETSParameterExpression { 105 return node instanceof ETSParameterExpression 106} 107if (!nodeByType.has(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION)) { 108 nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION, ETSParameterExpression) 109} 110