docs: public static void printDebug(final Map pMap, final String pMethodName, final PrintStream pPrintStream) {
  
      if (pPrintStream == null) {
        System.err.println(PRINTSTREAM_IS_NULL_ERROR_MESSAGE);
        return;
      }
      if (pMap == null) {
        pPrintStream.println(MAP_IS_NULL_ERROR_MESSAGE);
        return;
      } else if (pMap.isEmpty()) {
        pPrintStream.println(MAP_IS_EMPTY_ERROR_MESSAGE);
        return;
      }
      Object mKeyObject;
      Object mEntryObject;
  
      for (Iterator i = pMap.keySet().iterator(); i.hasNext(); ) {
        mKeyObject   = i.next();
        mEntryObject = pMap.get(mKeyObject);
        if ((mKeyObject instanceof String) && (mEntryObject instanceof String)) {
          pPrintStream.println((String) mKeyObject + ": " + mEntryObject);
        } else if ((mKeyObject instanceof String) && (mEntryObject instanceof List)) {
          printDebug((List) mEntryObject, pPrintStream);
        } else if ((mKeyObject instanceof String) && (mEntryObject instanceof Set)) {
          printDebug((Set) mEntryObject, pPrintStream);
        } else if (mKeyObject instanceof String) {
          if (!StringUtil.isEmpty(pMethodName)) {
            try {
              Method objectMethod = mEntryObject.getClass().getMethod(pMethodName, null);
              Object retVal       = objectMethod.invoke(mEntryObject, null);
  
              if (retVal != null) {
                pPrintStream.println((String) mKeyObject + ": " + retVal.toString());
              } else {  // Default execution
                throw new Exception();
              }
            } catch (Exception e) {
  
              // Default
              pPrintStream.println((String) mKeyObject + ": " + mEntryObject.toString());
            }
          } else {      // Default
            pPrintStream.println((String) mKeyObject + ": " + mEntryObject.toString());
          }
        } else if ((mKeyObject instanceof Integer) && (mEntryObject instanceof String)) {
          pPrintStream.println((Integer) mKeyObject + ": " + mEntryObject);
        } else if ((mKeyObject instanceof Integer) && (mEntryObject instanceof List)) {
          printDebug((List) mEntryObject, pPrintStream);
        } else if ((mKeyObject instanceof String) && (mEntryObject instanceof Set)) {
          printDebug((Set) mEntryObject, pPrintStream);
        } else if (mKeyObject instanceof Integer) {
          if (!StringUtil.isEmpty(pMethodName)) {
            try {
              Method objectMethod = mEntryObject.getClass().getMethod(pMethodName, null);
              Object retVal       = objectMethod.invoke(mEntryObject, null);
  
              if (retVal != null) {
                pPrintStream.println((Integer) mKeyObject + ": " + retVal.toString());
              } else {  // Default execution
                throw new Exception();
              }
            } catch (Exception e) {
  
              // Default
              pPrintStream.println((Integer) mKeyObject + ": " + mEntryObject.toString());
            }
          } else {      // Default
            pPrintStream.println((Integer) mKeyObject + ": " + mEntryObject.toString());
          }
        }
  
        // More..
        //else if
      }
    }