Log.debugln("Got Data:["+thisData+"] ("+dataPosition+","+endDataPosition+")");
Log.debugln("Got Formatted DataCell:["+thisData+"]");
    private ArrayList formattedSplitStringIntoStringObjects ( String data ,                                                               FormattedXMLDataIOStyle readObj                                                            )     {        ArrayList stringObjList = new ArrayList();        List commandList = readObj.getCommands();        DataFormat dataFormat[] = CurrentArray.getDataFormatList();        int dataPosition = 0;        int dataLength = data.length();        int currentDataFormat = 0;        int nrofDataFormat = dataFormat.length;        Log.debugln("in formattedSplitString, data :["+data+"]");        // the extraction loop        // whip thru the data string, either ignoring or accepting        // characters in the string as directed by the formatCmdList        while (dataPosition < dataLength) {          Iterator formatIter = commandList.iterator();          while (formatIter.hasNext()) {             FormattedIOCmd thisCommand = (FormattedIOCmd) formatIter.next();             if (thisCommand instanceof ReadCellFormattedIOCmd) // ReadCell ==> read some data             {                 DataFormat formatObj = dataFormat[currentDataFormat];                 int endDataPosition = dataPosition + formatObj.numOfBytes();                 // add in our object                 String thisData = data.substring(dataPosition,endDataPosition);                 // remove leading whitespace from what will be non-string data.                 if (Character.isWhitespace(thisData.charAt(0)) && !(formatObj instanceof StringDataFormat))                     thisData = trimLeadingWhitespace(thisData);                 Log.debugln("Got Data:["+thisData+"] ("+dataPosition+","+endDataPosition+")");                 stringObjList.add(thisData);                 dataPosition = endDataPosition;                          // advance our pointer to the current DataFormat                 if (nrofDataFormat > 1)                     if (currentDataFormat == (nrofDataFormat - 1))                        currentDataFormat = 0;                    else                        currentDataFormat++;             } else if (thisCommand instanceof SkipCharFormattedIOCmd) // SkipChar ==> just adv. dataPointer              {                dataPosition += ((SkipCharFormattedIOCmd) thisCommand).getCount().intValue();             } else {                Log.errorln("Unknown FormattedIOCmd, aborting formatted read."); // needed check ?                 break;             }          }        }        return stringObjList;    }