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 { AnnotatedExpression } from './AnnotatedExpression'; 33import { Expression } from './Expression'; 34import { Decorator } from './Decorator'; 35import { ValidationInfo } from './ValidationInfo'; 36import { TypeNode } from './TypeNode'; 37export class ArrayExpression extends AnnotatedExpression { 38 constructor(pointer: KNativePointer) { 39 super(pointer); 40 } 41 static createArrayExpression(elements: readonly Expression[]): ArrayExpression { 42 return new ArrayExpression( 43 global.generatedEs2panda._CreateArrayExpression(global.context, passNodeArray(elements), elements.length) 44 ); 45 } 46 static updateArrayExpression( 47 original: ArrayExpression | undefined, 48 elements: readonly Expression[] 49 ): ArrayExpression { 50 return new ArrayExpression( 51 global.generatedEs2panda._UpdateArrayExpression( 52 global.context, 53 passNode(original), 54 passNodeArray(elements), 55 elements.length 56 ) 57 ); 58 } 59 get elements(): readonly Expression[] { 60 return unpackNodeArray(global.generatedEs2panda._ArrayExpressionElementsConst(global.context, this.peer)); 61 } 62 /** @deprecated */ 63 setElements(elements: readonly Expression[]): this { 64 global.generatedEs2panda._ArrayExpressionSetElements( 65 global.context, 66 this.peer, 67 passNodeArray(elements), 68 elements.length 69 ); 70 return this; 71 } 72 get isDeclaration(): boolean { 73 return global.generatedEs2panda._ArrayExpressionIsDeclarationConst(global.context, this.peer); 74 } 75 get isOptional(): boolean { 76 return global.generatedEs2panda._ArrayExpressionIsOptionalConst(global.context, this.peer); 77 } 78 /** @deprecated */ 79 setDeclaration(): this { 80 global.generatedEs2panda._ArrayExpressionSetDeclaration(global.context, this.peer); 81 return this; 82 } 83 /** @deprecated */ 84 setOptional(optional_arg: boolean): this { 85 global.generatedEs2panda._ArrayExpressionSetOptional(global.context, this.peer, optional_arg); 86 return this; 87 } 88 get decorators(): readonly Decorator[] { 89 return unpackNodeArray(global.generatedEs2panda._ArrayExpressionDecoratorsConst(global.context, this.peer)); 90 } 91 get typeAnnotation(): TypeNode | undefined { 92 return unpackNode(global.generatedEs2panda._ArrayExpressionTypeAnnotationConst(global.context, this.peer)); 93 } 94 /** @deprecated */ 95 setTsTypeAnnotation(typeAnnotation: TypeNode): this { 96 global.generatedEs2panda._ArrayExpressionSetTsTypeAnnotation( 97 global.context, 98 this.peer, 99 passNode(typeAnnotation) 100 ); 101 return this; 102 } 103} 104export function isArrayExpression(node: AstNode): node is ArrayExpression { 105 return global.es2panda._IsArrayExpression(node.peer); 106} 107