code: public String toPigScript(Descriptor msgDescriptor, String loaderClassName, String... params) {
      StringBuffer sb = new StringBuffer();
      final int initialTabOffset = 3;
  
      sb.append("raw_data = load '$INPUT_FILES' using ")
      .append(loaderClassName)
      .append("(");
      String paramString = "";
      if (params.length > 0) {
        paramString = "'" + Joiner.on(",'").join(params) + "'";
      }
      sb.append(paramString).append(")").append("\n");
      sb.append("/**\n");
      sb.append(tabs(initialTabOffset)).append("as (").append("\n");
      sb.append(toPigScriptInternal(msgDescriptor, initialTabOffset));
      sb.append(tabs(initialTabOffset)).append(")").append("\n").append("\n");
      sb.append("**/\n;\n");
      return sb.toString();
    }
docs: Same as toPigScript(Descriptor, String) but allows parameters for the loader.
  
  @param msgDescriptor
  @param loaderClassName
  @param params
  @return a pig script that can load the given message.