docs: public static String formatObjectToString(Object objData, Class<?> classData, Object objDefault)
          throws Exception
      {
          objData = DataConverters.convertObjectToDatatype(objData, classData, objDefault);
          if (objData == null)
              return Constant.BLANK;
          if (objData.getClass() != classData)
              return objData.toString();
          DataConverters.initGlobals();
          if ((classData != Object.class) && (classData != String.class)
              && (classData == objData.getClass()))
          {
              try {
                  if (classData == Short.class)
                      synchronized (DataConverters.gIntegerFormat)
                      {
                          return DataConverters.gIntegerFormat.format(((Short)objData).shortValue());
                      }
                  else if (classData == Integer.class)
                      synchronized (DataConverters.gIntegerFormat)
                      {
                          return DataConverters.gIntegerFormat.format(((Integer)objData).intValue());
                      }
                  else if (classData == Float.class)
                      synchronized (DataConverters.gNumberFormat)
                      {
                          return DataConverters.gNumberFormat.format(((Float)objData).floatValue());
                      }
                  else if (classData == Double.class)
                      synchronized (DataConverters.gNumberFormat)
                      {
                          return DataConverters.gNumberFormat.format(((Double)objData).doubleValue());
                      }
                  else if (classData == java.util.Date.class)
                  {
                      synchronized (DataConverters.gCalendar)
                      {
                          DataConverters.gCalendar.setTime((Date)objData);
                          boolean bTime = true;
                          boolean bDate = true;
                          if ((DataConverters.gCalendar.get(Calendar.HOUR_OF_DAY) == 0)
                              && (DataConverters.gCalendar.get(Calendar.MINUTE) == 0)
                              && (DataConverters.gCalendar.get(Calendar.SECOND) == 0)
                              && (DataConverters.gCalendar.get(Calendar.MILLISECOND) == 0))
                                  bTime = false;
                          if ((DataConverters.gCalendar.get(Calendar.MONTH) == Calendar.JANUARY)
                              && (DataConverters.gCalendar.get(Calendar.DATE) == 1)
                              && (DataConverters.gCalendar.get(Calendar.YEAR) == Constant.FIRST_YEAR))
                                  bDate = false;
                          if (((Date)objData).getTime() == 0)
                              {bDate = bTime = false;}
                          if (bTime && bDate)
                              return DataConverters.gDateTimeFormat.format((Date)objData);
                          else if (bDate)
                              return DataConverters.gDateFormat.format((Date)objData);
                          else if (bTime)
                              return DataConverters.gTimeFormat.format((Date)objData);
                          else
                              return Constant.BLANK;
                      }
                  }
                  else if (classData == Boolean.class)
                  {
                      if (((Boolean)objData).booleanValue())
                          return Constant.TRUE;
                      else
                          return Constant.FALSE;
                  }
                  else
                      objData = objData.toString();
              } catch (Exception ex)  {
                  ex.printStackTrace();
                  objData = null;
              }
          }
          else
              objData = objData.toString();
          if (objData == null)
              if (objDefault != null)
                  objData = objDefault.toString();
          if (objData == null)
              objData = Constant.BLANK;
          return (String)objData;
      }