1 package pl.aislib.tools.mapping.structure;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class CallParams {
7
8 private List callParamList = new ArrayList();
9
10 public List getCallParamList() {
11 return callParamList;
12 }
13 public void addCallParam(CallParam object) {
14 callParamList.add(object);
15 }
16
17
18
19 /***
20 * Returns the first CallParam with accessType='out|inout' or null if not found.
21 */
22 public CallParam findOutOrInoutParam() {
23 for (int i = 0, size = callParamList.size() ; i < size ; i++) {
24 CallParam callParam = (CallParam) callParamList.get(i);
25 if (callParam.isOutOrInoutParam()) {
26 return callParam;
27 }
28 }
29 return null;
30 }
31
32 /***
33 * Returns index of the first CallParam with accessType='out|inout' or -1 if not found.
34 * Index starts with 0.
35 */
36 public int getIndexOfOutOrInoutParam() {
37 for (int i = 0, size = callParamList.size() ; i < size ; i++) {
38 CallParam callParam = (CallParam) callParamList.get(i);
39 if (callParam.isOutOrInoutParam()) {
40 return i;
41 }
42 }
43 return -1;
44 }
45
46 /***
47 * Assures that at most one CallParam has accessType of 'out' or 'inout'.
48 */
49 public void checkOutParamCardinality() {
50 int outCount = 0;
51 for (int i = 0, size = callParamList.size() ; i < size ; i++) {
52 CallParam callParam = (CallParam) callParamList.get(i);
53 if (callParam.isOutOrInoutParam()) {
54 outCount++;
55 }
56 }
57 if (outCount > 1) {
58 throw new IllegalArgumentException("<call-params>: only one <call-param> with access-type=\"out|inout\" is allowed.");
59 }
60 }
61 }
62
63 /***
64 * $Log: CallParams.java,v $
65 * Revision 1.1 2003/09/09 13:13:45 milosz
66 * Initial commit
67 *
68 */
69