View Javadoc

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    // Logic starts here.
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++) {  // for all callParams
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++) {  // for all callParams
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++) {  // for all callParams
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