• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Shenzhen Kaihong Digital.
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 
16 package grammar;
17 
18 import utils.TsToken;
19 
20 import java.util.List;
21 import java.util.concurrent.CopyOnWriteArrayList;
22 
23 /**
24  * <h3>类名:该类用于xxx</h3>
25  * description param grammar
26  *
27  * @author Administrator
28  *         date 2025-02-28
29  * @version 1.0
30  * @since 2025-02-28
31  */
32 public class ParamObj extends GBaseObject {
33     /**
34      * 参数约束:constant,abstract
35      */
36     private String qualifier;
37 
38     /**
39      * 参数修饰:可选(optional),必选(required)
40      */
41     private String decorator;
42 
43     /**
44      * 参数类型
45      */
46     private String type;
47 
48     /**
49      * 参数名称
50      */
51     private String name;
52 
53     /**
54      * 参数数组数量
55      */
56     private int arraySize;
57 
58     /**
59      * 参数赋值
60      */
61     private int[] asList;
62 
63     /**
64      * 参数值
65      */
66     private List<String> vList;
67 
68     /**
69      * 结构体初始化
70      */
71     private List<ParamObj> paList;
72 
73     /**
74      * 回调函数定义
75      */
76     private List<FuncObj> foList;
77 
78     /**
79      * 构造函数
80      */
ParamObj()81     public ParamObj() {
82         this.decorator = TsToken.TS_TOKEN_REQUIRED;
83         vList = new CopyOnWriteArrayList<>();
84         paList = new CopyOnWriteArrayList<>();
85         foList = new CopyOnWriteArrayList<>();
86     }
87 
88     /**
89      * 构造函数
90      *
91      * @param tv 类型
92      * @param nv 名称
93      * @param as 数组下标
94      * @param asl 数组下标数组
95      */
ParamObj(String tv, String nv, int as, int[] asl)96     public ParamObj(String tv, String nv, int as, int[] asl) {
97         this();
98         this.type = tv;
99         this.name = nv;
100         this.arraySize = as;
101         this.asList = asl;
102     }
103 
104     /**
105      * 确定参数关键字
106      *
107      * @return 参数关键字
108      */
getQualifier()109     public String getQualifier() {
110         return qualifier;
111     }
112 
113     /**
114      * 设置参数关键字
115      *
116      * @param qualifier 关键字
117      */
setQualifier(String qualifier)118     public void setQualifier(String qualifier) {
119         this.qualifier = qualifier;
120     }
121 
122     /**
123      * 获取修饰
124      *
125      * @return 修饰
126      */
getDecorator()127     public String getDecorator() {
128         return decorator;
129     }
130 
131     /**
132      * 设置 修饰
133      *
134      * @param decorator 修饰
135      */
setDecorator(String decorator)136     public void setDecorator(String decorator) {
137         this.decorator = decorator;
138     }
139 
140     /**
141      * 获取名字
142      *
143      * @return 名称
144      */
getName()145     public String getName() {
146         return name;
147     }
148 
149     /**
150      * 设置名称
151      *
152      * @param name 名称
153      */
setName(String name)154     public void setName(String name) {
155         this.name = name;
156     }
157 
158     /**
159      * 获取类型
160      *
161      * @return 类型
162      */
getType()163     public String getType() {
164         return type;
165     }
166 
167     /**
168      * 设置类型
169      *
170      * @param type 类型
171      */
setType(String type)172     public void setType(String type) {
173         this.type = type;
174     }
175 
176     /**
177      * 获取数组下标
178      *
179      * @return 数组下标
180      */
getArraySize()181     public int getArraySize() {
182         return arraySize;
183     }
184 
185     /**
186      * 获取数组下标
187      *
188      * @return 数组下班
189      */
getAsList()190     public int[] getAsList() {
191         return asList;
192     }
193 
194     /**
195      * 获取值数组
196      *
197      * @return 值数组
198      */
getvList()199     public List<String> getvList() {
200         return vList;
201     }
202 
203     /**
204      * 设置值数据
205      *
206      * @param vList 值数据
207      */
setvList(List<String> vList)208     public void setvList(List<String> vList) {
209         this.vList = vList;
210     }
211 
212     /**
213      * 设置值
214      *
215      * @param value 初始化值
216      */
setStrValue(String value)217     public void setStrValue(String value) {
218         this.vList.add(value);
219     }
220 
221     /**
222      * 获取类参数值
223      *
224      * @param i 下标
225      * @return 返回参数值
226      */
getStrValue(int i)227     public String getStrValue(int i) {
228         return vList.isEmpty() ? "" : vList.get(i);
229     }
230 
231     /**
232      * 获取类参数值
233      *
234      * @param i 下标
235      * @return 返回参数值
236      */
getIntValue(int i)237     public int getIntValue(int i) {
238         return asList[i];
239     }
240 
241     /**
242      * 设置数组下标
243      *
244      * @param arraySize 数组下标
245      */
setArraySize(int arraySize)246     public void setArraySize(int arraySize) {
247         this.arraySize = arraySize;
248     }
249 
250     /**
251      * 设置数组下标
252      *
253      * @param asList 数组下标
254      */
setAsList(int[] asList)255     public void setAsList(int[] asList) {
256         this.asList = asList;
257     }
258 
259     /**
260      * 获取初始化结构
261      *
262      * @return 初始化结构
263      */
getPaList()264     public List<ParamObj> getPaList() {
265         return paList;
266     }
267 
268     /**
269      * 设置初始化结构
270      *
271      * @param paList 初始化结构
272      */
setPaList(List<ParamObj> paList)273     public void setPaList(List<ParamObj> paList) {
274         this.paList = paList;
275     }
276 
277     /**
278      * 增加子参数
279      *
280      * @param pa 子参数
281      */
addParam(ParamObj pa)282     public void addParam(ParamObj pa) {
283         this.paList.add(pa);
284     }
285 
286     /**
287      * 获取回调函数列表
288      *
289      * @return 回调函数列表
290      */
getFoList()291     public List<FuncObj> getFoList() {
292         return foList;
293     }
294 
295     /**
296      * 设置回调函数列表
297      *
298      * @param foList 回调函数列表
299      */
setFoList(List<FuncObj> foList)300     public void setFoList(List<FuncObj> foList) {
301         this.foList = foList;
302     }
303 
304     /**
305      * 增加回调函数方法
306      *
307      * @param fo 回调函数
308      */
addFunc(FuncObj fo)309     public void addFunc(FuncObj fo) {
310         this.foList.add(fo);
311     }
312 }
313