code: private DbDatum[] stringArray2DbDatum(String[] strprop) {
          //	And format result as DbDatum array
          //---------------------------------------
          DbDatum[] properties;
          int nb_prop = Integer.parseInt(strprop[1]);
          properties = new DbDatum[nb_prop];
  
          //	Skip obj name, nb prop found and name of first property.
          //-----------------------------------------------------------
          for (int i = 2, pnum = 0 ; i<strprop.length - 1 ; ) {
              int nb = Integer.parseInt(strprop[i + 1]);
  
              //	if property exist, create Datnum object.
              //---------------------------------------------------
              int start_val = i + 2;
              int end_val = i + 2 + nb;
              if (nb>0)
                  properties[pnum++] = new DbDatum(strprop[i],
                          strprop, start_val, end_val);
              else {
                  //	no property  --> fields do not exist
                  properties[pnum++] = new DbDatum(strprop[i]);
  
                  //	If nb property is zero there is a property
                  //	set to space char (!!!)
                  //	if Object is device it is true but false for a class !!!
                  //----------------------------------------------------------
                  if (start_val + 1<strprop.length) {
                      String s = strprop[start_val];
                      if (s.length()==0 || s.equals(" "))
                          end_val = start_val + 1;
                  }
              }
              i = end_val;
          }
          return properties;
      }
docs: ==========================================================================