public static RequestStatusData parseRequestStatusData(String requestStatusString) {
        RequestStatusData retVal = null;
        if(requestStatusString != null){
            retVal = new RequestStatusData();
            int trackIndex = 0;
            if(!Character.isDigit(requestStatusString.charAt(0))){
                //Handle optional (Language) strings
                for(String arg : requestStatusString.substring(0,requestStatusString.indexOf(":")).split(";")){
                    if(arg.startsWith("LANGUAGE=")){
                        retVal.setLanguage(arg.substring(arg.indexOf("=")+1));
                    }
                }
                trackIndex = requestStatusString.indexOf(":") + 1;
            }
            retVal.setStatCode(requestStatusString.substring(trackIndex, requestStatusString.indexOf(";", trackIndex)));
            trackIndex = requestStatusString.indexOf(";", trackIndex) + 1;

            if(requestStatusString.indexOf(";", trackIndex) == -1){
                retVal.setStatDesc(requestStatusString.substring(trackIndex));
            } else {
                retVal.setStatDesc(requestStatusString.substring(trackIndex,requestStatusString.indexOf(";",trackIndex)));
                trackIndex = requestStatusString.indexOf(";",trackIndex);
                retVal.setExtData(requestStatusString.substring(requestStatusString.indexOf(";", trackIndex) + 1));
            }

        }

        return retVal;
    }