code: public static String wrapIfMissing(final String str, final String prefix, final String suffix) {
          N.checkArgNotNull(prefix);
          N.checkArgNotNull(suffix);
  
          if (N.isNullOrEmpty(str)) {
              return prefix + suffix;
          } else if (str.startsWith(prefix)) {
              return (str.length() - prefix.length() >= suffix.length() && str.endsWith(suffix)) ? str : str + suffix;
          } else if (str.endsWith(suffix)) {
              return prefix + str;
          } else {
              return concat(prefix, str, suffix);
          }
      }
docs: <pre>
  N.wrapIfMissing(null, "[", "]") -> "[]"
  N.wrapIfMissing("", "[", "]") -> "[]"
  N.wrapIfMissing("[", "[", "]") -> "[]"
  N.wrapIfMissing("]", "[", "]") -> "[]"
  N.wrapIfMissing("abc", "[", "]") -> "[abc]"
  N.wrapIfMissing("a", "aa", "aa") -> "aaaaa"
  N.wrapIfMissing("aa", "aa", "aa") -> "aaaa"
  N.wrapIfMissing("aaa", "aa", "aa") -> "aaaaa"
  N.wrapIfMissing("aaaa", "aa", "aa") -> "aaaa"
  </pre>
  
  @param str
  @param prefix
  @param suffix
  @return