@Override
 protected JSubroutineParameters constructjSubroutineRequest() {
   JSubroutineParameters jSubroutineRequest = new JSubroutineParameters();
   jSubroutineRequest.add(new JDynArray(""));
   jSubroutineRequest.add(new JDynArray(""));
   return jSubroutineRequest;
 }
 /**
  * method constructs fields of Application from JSubroutineParameters second arguments is OUT
  * param, get the second param and iterate it to get all fields.
  *
  * @param jSubroutineResponse JSubroutineParameters type response coming from T24.
  * @return
  */
 public Fields getApplicationFieldsList(JSubroutineParameters jSubroutineResponse) {
   JDynArray jdynArray = jSubroutineResponse.get(1);
   int itemCount = jdynArray.getNumberOfAttributes();
   Fields fields = new Fields();
   List<Field> listField = new ArrayList<Field>();
   Field field;
   for (int itemNum = 0; itemNum < itemCount; itemNum++) {
     // JSubroutineParameters extends List<jDynArray>, the below line get
     // first dynArray from List, returns all subsequent dynarray.
     field = new ApplicationVersionField();
     field.setFieldName(jdynArray.get(itemNum + 1, 1));
     field.setFieldType(jdynArray.get(itemNum + 1, 2));
     listField.add(field);
   }
   fields.setInputFields(listField);
   return fields;
 }
 /**
  * constructs jSubroutineRequest, which is passed as an argument to jConnection. Two arguments 1)
  * application name - IN param 2) all fields in an application - OUT param
  *
  * @return
  */
 protected JSubroutineParameters constructjSubroutineRequest(String applicationName) {
   JSubroutineParameters jSubroutineRequest = new JSubroutineParameters();
   jSubroutineRequest.add(new JDynArray(applicationName));
   jSubroutineRequest.add(new JDynArray(""));
   return jSubroutineRequest;
 }