code: public String toPigScript(Descriptor msgDescriptor, String loaderClassName) {
      StringBuffer sb = new StringBuffer();
      final int initialTabOffset = 3;
  
      sb.append("raw_data = load '$INPUT_FILES' using " + loaderClassName + "()").append("\n");
      sb.append(tabs(initialTabOffset)).append("as (").append("\n");
      sb.append(toPigScriptInternal(msgDescriptor, initialTabOffset));
      sb.append(tabs(initialTabOffset)).append(");").append("\n").append("\n");
  
      return sb.toString();
    }
docs: Turn a generic message descriptor into a loading schema for a pig script.
  @param msgDescriptor the descriptor for the given message type.
  @param loaderClassName the fully qualified classname of the pig loader to use.  Not
  passed a <code>Class<? extends LoadFunc></code> because in many situations that class
  is being generated as well, and so doesn't exist in compiled form.
  @return a pig script that can load the given message.