<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<!-- on Wed Jun 08 12:55:46 PDT 2016 -->

<api
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:noNamespaceSchemaLocation='api.xsd'
  name="pig 0.16.0"
  jdversion="1.0.9">

<!--  Command line arguments =  -doclet jdiff.JDiff -docletpath /Users/daijy/pig16/build/ivy/lib/Pig/jdiff-1.0.9.jar:/Users/daijy/pig16/build/ivy/lib/Pig/xercesImpl-2.10.0.jar -classpath /Users/daijy/.ivy2/cache/xmlenc/xmlenc/jars/xmlenc-0.52.jar:/Users/daijy/.ivy2/cache/com.sun.jersey/jersey-bundle/jars/jersey-bundle-1.8.jar:/Users/daijy/.ivy2/cache/com.sun.jersey/jersey-server/bundles/jersey-server-1.8.jar:/Users/daijy/.ivy2/cache/com.sun.jersey.contribs/jersey-guice/jars/jersey-guice-1.8.jar:/Users/daijy/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.4.jar:/Users/daijy/.ivy2/cache/commons-httpclient/commons-httpclient/jars/commons-httpclient-3.1.jar:/Users/daijy/.ivy2/cache/commons-configuration/commons-configuration/jars/commons-configuration-1.6.jar:/Users/daijy/.ivy2/cache/commons-collections/commons-collections/jars/commons-collections-3.2.1.jar:/Users/daijy/.ivy2/cache/javax.servlet/servlet-api/jars/servlet-api-2.5.jar:/Users/daijy/.ivy2/cache/javax.ws.rs/jsr311-api/jars/jsr311-api-1.1.1.jar:/Users/daijy/.ivy2/cache/com.google.protobuf/protobuf-java/bundles/protobuf-java-2.5.0.jar:/Users/daijy/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:/Users/daijy/.ivy2/cache/javax.xml.bind/jaxb-api/jars/jaxb-api-2.2.2.jar:/Users/daijy/.ivy2/cache/com.sun.xml.bind/jaxb-impl/jars/jaxb-impl-2.2.3-1.jar:/Users/daijy/.ivy2/cache/com.google.inject/guice/jars/guice-3.0.jar:/Users/daijy/.ivy2/cache/com.google.inject.extensions/guice-servlet/jars/guice-servlet-3.0.jar:/Users/daijy/.ivy2/cache/aopalliance/aopalliance/jars/aopalliance-1.0.jar:/Users/daijy/.ivy2/cache/org.mortbay.jetty/jsp-2.1/jars/jsp-2.1-6.1.14.jar:/Users/daijy/.ivy2/cache/org.mortbay.jetty/jsp-api-2.1/jars/jsp-api-2.1-6.1.14.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-annotations/jars/hadoop-annotations-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-auth/jars/hadoop-auth-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-common/jars/hadoop-common-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-common/testss/hadoop-common-2.6.0-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-hdfs/testss/hadoop-hdfs-2.6.0-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-hdfs/jars/hadoop-hdfs-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-core/jars/hadoop-mapreduce-client-core-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-jobclient/jars/hadoop-mapreduce-client-jobclient-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-jobclient/testss/hadoop-mapreduce-client-jobclient-2.6.0-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-tests/jars/hadoop-yarn-server-tests-2.6.0-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-app/jars/hadoop-mapreduce-client-app-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-shuffle/jars/hadoop-mapreduce-client-shuffle-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-common/jars/hadoop-mapreduce-client-common-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-api/jars/hadoop-yarn-api-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-common/jars/hadoop-yarn-common-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-web-proxy/jars/hadoop-yarn-server-web-proxy-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-common/jars/hadoop-yarn-server-common-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-nodemanager/jars/hadoop-yarn-server-nodemanager-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-resourcemanager/jars/hadoop-yarn-server-resourcemanager-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-client/jars/hadoop-yarn-client-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice/jars/hadoop-yarn-server-applicationhistoryservice-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-hs/jars/hadoop-mapreduce-client-hs-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.avro/avro-mapred/jars/avro-mapred-1.7.5-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.avro/avro-ipc/jars/avro-ipc-1.7.5-tests.jar:/Users/daijy/.ivy2/cache/org.apache.avro/avro/jars/avro-1.7.5.jar:/Users/daijy/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.3.jar:/Users/daijy/.ivy2/cache/org.apache.commons/commons-compress/jars/commons-compress-1.4.1.jar:/Users/daijy/.ivy2/cache/org.tukaani/xz/jars/xz-1.0.jar:/Users/daijy/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/Users/daijy/.ivy2/cache/org.mortbay.jetty/jetty/jars/jetty-6.1.26.jar:/Users/daijy/.ivy2/cache/org.mortbay.jetty/jetty-util/jars/jetty-util-6.1.26.jar:/Users/daijy/.ivy2/cache/org.mortbay.jetty/servlet-api/jars/servlet-api-2.5-20081211.jar:/Users/daijy/.ivy2/cache/org.apache.velocity/velocity/jars/velocity-1.7.jar:/Users/daijy/.ivy2/cache/commons-lang/commons-lang/jars/commons-lang-2.4.jar:/Users/daijy/.ivy2/cache/org.htrace/htrace-core/jars/htrace-core-3.0.4.jar:/Users/daijy/.ivy2/cache/org.apache.htrace/htrace-core/jars/htrace-core-3.1.0-incubating.jar:/Users/daijy/.ivy2/cache/org.fusesource.leveldbjni/leveldbjni-all/bundles/leveldbjni-all-1.8.jar:/Users/daijy/.ivy2/cache/org.apache.hive.shims/hive-shims-0.23/jars/hive-shims-0.23-1.2.1.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-common/jars/tez-common-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-api/jars/tez-api-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-dag/jars/tez-dag-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-runtime-internals/jars/tez-runtime-internals-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-runtime-library/jars/tez-runtime-library-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-mapreduce/jars/tez-mapreduce-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.tez/tez-yarn-timeline-history-with-acls/jars/tez-yarn-timeline-history-with-acls-0.7.0.jar:/Users/daijy/.ivy2/cache/org.apache.commons/commons-collections4/jars/commons-collections4-4.0.jar:/Users/daijy/.ivy2/cache/org.codehaus.jettison/jettison/bundles/jettison-1.3.4.jar:/Users/daijy/.ivy2/cache/org.apache.commons/commons-math3/jars/commons-math3-3.1.1.jar:/Users/daijy/.ivy2/cache/org.apache.curator/curator-framework/bundles/curator-framework-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.curator/curator-client/bundles/curator-client-2.6.0.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-client/jars/hbase-client-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-client/test-jars/hbase-client-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-common/jars/hbase-common-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-common/test-jars/hbase-common-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-server/jars/hbase-server-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-server/test-jars/hbase-server-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-protocol/jars/hbase-protocol-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-protocol/test-jars/hbase-protocol-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-hadoop-compat/test-jars/hbase-hadoop-compat-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-hadoop-compat/jars/hbase-hadoop-compat-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-hadoop2-compat/jars/hbase-hadoop2-compat-0.98.12-hadoop2.jar:/Users/daijy/.ivy2/cache/org.apache.hbase/hbase-hadoop2-compat/test-jars/hbase-hadoop2-compat-0.98.12-hadoop2-tests.jar:/Users/daijy/.ivy2/cache/org.cloudera.htrace/htrace-core/jars/htrace-core-2.00.jar:/Users/daijy/.ivy2/cache/com.lmax/disruptor/jars/disruptor-3.3.0.jar:/Users/daijy/.ivy2/cache/commons-el/commons-el/jars/commons-el-1.0.jar:/Users/daijy/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.3.jar:/Users/daijy/.ivy2/cache/nl.basjes.parse.httpdlog/httpdlog-pigloader/jars/httpdlog-pigloader-2.4.jar:/Users/daijy/.ivy2/cache/nl.basjes.parse.httpdlog/httpdlog-inputformat/jars/httpdlog-inputformat-2.4.jar:/Users/daijy/.ivy2/cache/nl.basjes.parse.httpdlog/httpdlog-parser/jars/httpdlog-parser-2.4.jar:/Users/daijy/.ivy2/cache/nl.basjes.parse/parser-core/jars/parser-core-2.4.jar:/Users/daijy/.ivy2/cache/log4j/log4j/bundles/log4j-1.2.16.jar:/Users/daijy/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar:/Users/daijy/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:/Users/daijy/.ivy2/cache/commons-cli/commons-cli/jars/commons-cli-1.2.jar:/Users/daijy/.ivy2/cache/org.apache.avro/trevni-core/test-jars/trevni-core-1.7.5-tests.jar:/Users/daijy/.ivy2/cache/org.apache.avro/trevni-core/jars/trevni-core-1.7.5.jar:/Users/daijy/.ivy2/cache/org.apache.avro/trevni-avro/jars/trevni-avro-1.7.5.jar:/Users/daijy/.ivy2/cache/org.apache.avro/trevni-avro/test-jars/trevni-avro-1.7.5-tests.jar:/Users/daijy/.ivy2/cache/org.xerial.snappy/snappy-java/bundles/snappy-java-1.1.0.1.jar:/Users/daijy/.ivy2/cache/com.googlecode.json-simple/json-simple/jars/json-simple-1.1.jar:/Users/daijy/.ivy2/cache/jline/jline/jars/jline-1.0.jar:/Users/daijy/.ivy2/cache/net.java.dev.javacc/javacc/jars/javacc-4.2.jar:/Users/daijy/.ivy2/cache/org.codehaus.groovy/groovy-all/jars/groovy-all-2.4.5.jar:/Users/daijy/.ivy2/cache/org.apache.ivy/ivy/jars/ivy-2.2.0.jar:/Users/daijy/.ivy2/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.9.13.jar:/Users/daijy/.ivy2/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.9.13.jar:/Users/daijy/.ivy2/cache/org.fusesource.jansi/jansi/jars/jansi-1.9.jar:/Users/daijy/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.9.3.jar:/Users/daijy/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.jar:/Users/daijy/.ivy2/cache/org.python/jython-standalone/jars/jython-standalone-2.7.0.jar:/Users/daijy/.ivy2/cache/rhino/js/jars/js-1.7R2.jar:/Users/daijy/.ivy2/cache/org.antlr/antlr/jars/antlr-3.4.jar:/Users/daijy/.ivy2/cache/org.antlr/antlr-runtime/jars/antlr-runtime-3.4.jar:/Users/daijy/.ivy2/cache/org.antlr/stringtemplate/jars/stringtemplate-3.2.1.jar:/Users/daijy/.ivy2/cache/antlr/antlr/jars/antlr-2.7.7.jar:/Users/daijy/.ivy2/cache/org.antlr/ST4/jars/ST4-4.0.4.jar:/Users/daijy/.ivy2/cache/org.apache.zookeeper/zookeeper/jars/zookeeper-3.4.5.jar:/Users/daijy/.ivy2/cache/dk.brics.automaton/automaton/jars/automaton-1.11-8.jar:/Users/daijy/.ivy2/cache/org.jruby/jruby-complete/jars/jruby-complete-1.6.7.jar:/Users/daijy/.ivy2/cache/asm/asm/jars/asm-3.3.1.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-core/jars/accumulo-core-1.5.0.jar:/Users/daijy/.ivy2/cache/com.beust/jcommander/jars/jcommander-1.30.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-fate/jars/accumulo-fate-1.5.0.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-start/jars/accumulo-start-1.5.0.jar:/Users/daijy/.ivy2/cache/org.apache.commons/commons-vfs2/jars/commons-vfs2-2.0.jar:/Users/daijy/.ivy2/cache/org.apache.maven.scm/maven-scm-api/jars/maven-scm-api-1.4.jar:/Users/daijy/.ivy2/cache/org.codehaus.plexus/plexus-utils/jars/plexus-utils-1.5.6.jar:/Users/daijy/.ivy2/cache/org.apache.maven.scm/maven-scm-provider-svnexe/jars/maven-scm-provider-svnexe-1.4.jar:/Users/daijy/.ivy2/cache/org.apache.maven.scm/maven-scm-provider-svn-commons/jars/maven-scm-provider-svn-commons-1.4.jar:/Users/daijy/.ivy2/cache/regexp/regexp/jars/regexp-1.3.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-trace/jars/accumulo-trace-1.5.0.jar:/Users/daijy/.ivy2/cache/org.apache.thrift/libthrift/jars/libthrift-0.9.0.jar:/Users/daijy/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.1.3.jar:/Users/daijy/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.1.3.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-minicluster/jars/accumulo-minicluster-1.5.0.jar:/Users/daijy/.ivy2/cache/org.apache.accumulo/accumulo-server/jars/accumulo-server-1.5.0.jar:/Users/daijy/.ivy2/cache/com.google.code.gson/gson/jars/gson-2.2.2.jar:/Users/daijy/.ivy2/cache/org.apache.hive/hive-exec/jars/hive-exec-1.2.1-core.jar:/Users/daijy/.ivy2/cache/org.apache.hive/hive-serde/jars/hive-serde-1.2.1.jar:/Users/daijy/.ivy2/cache/org.apache.hive/hive-common/jars/hive-common-1.2.1.jar:/Users/daijy/.ivy2/cache/org.apache.hive.shims/hive-shims-common/jars/hive-shims-common-1.2.1.jar:/Users/daijy/.ivy2/cache/com.esotericsoftware.kryo/kryo/bundles/kryo-2.22.jar:/Users/daijy/.ivy2/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.1.jar:/Users/daijy/.ivy2/cache/org.vafer/jdeb/maven-plugins/jdeb-0.8.jar:/Users/daijy/.ivy2/cache/org.mockito/mockito-all/jars/mockito-all-1.8.4.jar:/Users/daijy/.ivy2/cache/com.twitter/parquet-pig-bundle/jars/parquet-pig-bundle-1.2.3.jar:/Users/daijy/.ivy2/cache/org.apache.avro/avro-tools/jars/avro-tools-1.7.5-nodeps.jar:/Users/daijy/.ivy2/cache/net.sf.jopt-simple/jopt-simple/jars/jopt-simple-4.1.jar:/Users/daijy/.ivy2/cache/xalan/xalan/jars/xalan-2.7.1.jar:/Users/daijy/.ivy2/cache/xalan/serializer/jars/serializer-2.7.1.jar:/Users/daijy/.ivy2/cache/xerces/xercesImpl/jars/xercesImpl-2.10.0.jar:/Users/daijy/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.4.01.jar:/Users/daijy/.ivy2/cache/junit/junit/jars/junit-4.11.jar:/Users/daijy/.ivy2/cache/io.netty/netty/bundles/netty-3.6.6.Final.jar:/Users/daijy/.ivy2/cache/com.github.stephenc.high-scale-lib/high-scale-lib/jars/high-scale-lib-1.1.1.jar:/Users/daijy/.ivy2/cache/com.yammer.metrics/metrics-core/jars/metrics-core-2.1.2.jar:/Users/daijy/.ivy2/cache/hsqldb/hsqldb/jars/hsqldb-1.8.0.10.jar:/Users/daijy/.ivy2/cache/org.iq80.snappy/snappy/jars/snappy-0.2.jar:/Users/daijy/pig16/build/pig-0.16.0.jar -sourcepath /Users/daijy/pig16/src -apidir /Users/daijy/pig16/src/docs/jdiff -apiname pig 0.16.0 -->
<package name="org.apache.hadoop.hive.serde2.objectinspector.primitive">
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantBooleanObjectInspector -->
  <class name="JavaConstantBooleanObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaBooleanObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantBooleanObjectInspector" type="java.lang.Boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class will be in Hive code base begin 1.2.0 (HIVE-9766).
 Will remove once we switch to use Hive 1.2.0]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantBooleanObjectInspector -->
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantDoubleObjectInspector -->
  <class name="JavaConstantDoubleObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaDoubleObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantDoubleObjectInspector" type="java.lang.Double"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class will be in Hive code base begin 1.2.0 (HIVE-9766).
 Will remove once we switch to use Hive 1.2.0]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantDoubleObjectInspector -->
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantFloatObjectInspector -->
  <class name="JavaConstantFloatObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaFloatObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantFloatObjectInspector" type="java.lang.Float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class will be in Hive code base begin 1.2.0 (HIVE-9766).
 Will remove once we switch to use Hive 1.2.0]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantFloatObjectInspector -->
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantIntObjectInspector -->
  <class name="JavaConstantIntObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaIntObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantIntObjectInspector" type="java.lang.Integer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class will be in Hive code base begin 1.2.0 (HIVE-9766).
 Will remove once we switch to use Hive 1.2.0]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantIntObjectInspector -->
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantLongObjectInspector -->
  <class name="JavaConstantLongObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaLongObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantLongObjectInspector" type="java.lang.Long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class will be in Hive code base begin 1.2.0 (HIVE-9766).
 Will remove once we switch to use Hive 1.2.0]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantLongObjectInspector -->
  <!-- start class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantStringObjectInspector -->
  <class name="JavaConstantStringObjectInspector" extends="org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaStringObjectInspector"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"/>
    <constructor name="JavaConstantStringObjectInspector" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableConstantValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.hive.serde2.objectinspector.primitive.JavaConstantStringObjectInspector -->
</package>
<package name="org.apache.pig">
  <!-- start interface org.apache.pig.Accumulator -->
  <interface name="Accumulator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Pass tuples to the UDF.
 @param b A tuple containing a single field, which is a bag.  The bag will contain the set
 of tuples being passed to the UDF in this iteration.]]>
      </doc>
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Called when all tuples from current key have been passed to accumulate.
 @return the value for the UDF for this key.]]>
      </doc>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Called after getValue() to prepare processing for next key.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface that allows UDFs that take a bag to accumulate tuples in chunks rather than take
 the whole set at once.  This is intended for UDFs that do not need to see all of the tuples
 together but cannot be used with the combiner.  This lowers the memory needs, avoiding the need
 to spill large bags, and thus speeds up the query.  An example is something like session analysis.
 It cannot be used with the combiner because all it's inputs must first be ordered.  But it does
 not need to see all the tuples at once.  UDF implementors might also choose to implement this
 interface so that if other UDFs in the FOREACH implement it it can be used.
 @since Pig 0.6]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.Accumulator -->
  <!-- start class org.apache.pig.AccumulatorEvalFunc -->
  <class name="AccumulatorEvalFunc" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AccumulatorEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accumulate"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class is used to provide a free implementation of the EvalFunc exec function given
 implementation of the Accumulator interface. Instead of having to provide a redundant
 implementation, this provides the base exec function for free, given that the methods
 associated with the Accumulator interface are implemented. For information on how to
 implement Accumulator, see {@link Accumulator}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.AccumulatorEvalFunc -->
  <!-- start interface org.apache.pig.Algebraic -->
  <interface name="Algebraic"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the initial function. 
 @return A function name of f_init. f_init should be an eval func.
 The return type of f_init.exec() has to be Tuple]]>
      </doc>
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the intermediate function. 
 @return A function name of f_intermed. f_intermed should be an eval func.
 The return type of f_intermed.exec() has to be Tuple]]>
      </doc>
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the final function. 
 @return A function name of f_final. f_final should be an eval func parametrized by
 the same datum as the eval func implementing this interface.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface to declare that an EvalFunc's 
 calculation can be decomposed into intitial, intermediate, and final steps.
 More formally, suppose we have to compute an function f over a bag X. In general, we need to know the entire X
 before we can make any progress on f. However, some functions are <i>algebraic</i> e.g. SUM. In
 these cases, you can apply some initital function f_init on subsets of X to get partial results. 
 You can then combine partial results from different subsets of X using an intermediate function
 f_intermed. To get the final answers, several partial results can be combined by invoking a final
 f_final function. For the function SUM, f_init, f_intermed, and f_final are all SUM. 
 
 See the code for builtin AVG to get a better idea of how algebraic works.
 
 When eval functions implement this interface, Pig will attempt to use MapReduce's combiner.
 The initial funciton will be called in the map phase and be passed a single tuple.  The
 intermediate function will be called 0 or more times in the combiner phase.  And the final
 function will be called once in the reduce phase.  It is important that the results be the same
 whether the intermediate function is called 0, 1, or more times.  Hadoop makes no guarantees
 about how many times the combiner will be called in a job.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.Algebraic -->
  <!-- start class org.apache.pig.AlgebraicEvalFunc -->
  <class name="AlgebraicEvalFunc" extends="org.apache.pig.AccumulatorEvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="AlgebraicEvalFunc" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[It is key that if a subclass has a constructor, that it calls super(args...) or else
 this class will not instantiate properly.]]>
      </doc>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This must be implement as per a normal Algebraic interface. See {@link Algebraic} for
 more information.]]>
      </doc>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This must be implement as per a normal Algebraic interface. See {@link Algebraic} for
 more information.]]>
      </doc>
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This must be implement as per a normal Algebraic interface. See {@link Algebraic} for
 more information.]]>
      </doc>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This is the free accumulate implementation based on the static classes provided
 by the Algebraic static classes. This implemention works by leveraging the
 initial, intermediate, and final classes provided by the algebraic interface.
 The exec function of the Initial EvalFunc will be called on every Tuple of the input
 and the output will be collected in an intermediate state. Periodically, this intermediate
 state will have the Intermediate EvalFunc called on it 1 or more times. The Final EvalFunc
 is not called until getValue() is called.]]>
      </doc>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Per the Accumulator interface, this clears all of the variables used in the implementation.]]>
      </doc>
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This function returns the ultimate result. It is when getValue() is called that
 the Final EvalFunc's exec function is called on the accumulated data.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class is used to provide a free implementation of the Accumulator interface
 and EvalFunc class in the case of an Algebraic function. Instead of having to provide
 redundant implementations for Accumulator and EvalFunc, implementing the
 getInitial, getIntermed, and getFinal methods (which implies implementing the static classes
 they reference) will give you an implementation of each of those for free. <br><br>
 One key thing to note is that if a subclass of AlgebraicEvalFunc wishes to use any constructor
 arguments, it MUST call super(args).
 <br><br>
 IMPORTANT: the implementation of the Accumulator interface that this class provides is good,
 but it is simulated. For maximum efficiency, it is important to manually implement the accumulator
 interface. See {@link Accumulator} for more information on how to do so.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.AlgebraicEvalFunc -->
  <!-- start interface org.apache.pig.CollectableLoadFunc -->
  <interface name="CollectableLoadFunc"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="ensureAllKeyInstancesInSameSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[When this method is called, Pig is communicating to the Loader that it must
 load data such that all instances of a key are in same split. Pig will
 make no further checks at runtime to ensure whether the contract is honored
 or not.
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface implemented by a {@link LoadFunc} implementations indicates to 
 Pig that it has the capability to load data such that all instances of a key 
 will occur in same split.
 @since Pig 0.7]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.CollectableLoadFunc -->
  <!-- start class org.apache.pig.ComparisonFunc -->
  <class name="ComparisonFunc" extends="org.apache.hadoop.io.WritableComparator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ComparisonFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="b" type="org.apache.hadoop.io.WritableComparable"/>
      <doc>
      <![CDATA[Compare two tuples.  Note that even though both args are given type of
 WritableComparable to match the WritableComparable interface, they
 must both be tuples.
 @param a first tuple
 @param b tuple to compare a to
 @return -1 if a &lt; b, 1 if a &gt; b, 0 if a = b]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="org.apache.pig.data.Tuple"/>
      <param name="t2" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[This callback method must be implemented by all subclasses. Compares 
 its two arguments for order.  The order of elements of the tuples correspond 
 to the fields specified in the order by clause. 
 Same semantics as {@link java.util.Comparator}.
 
 @param t1 the first Tuple to be compared.
 @param t2 the second Tuple to be compared.
 @return  Returns a negative integer, zero, or a positive integer as the first
 argument is less than, equal to, or greater than the second. 
 @throws IOException
 @see java.util.Comparator]]>
      </doc>
    </method>
    <method name="setReporter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reporter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"/>
      <doc>
      <![CDATA[Set the reporter.  If the comparison takes a long time the
 reporter should be called occasionally to avoid Hadoop timing out
 underneath.  The default Hadoop timeout is 600 seconds.
 @param reporter Progress reporter]]>
      </doc>
    </method>
    <field name="reporter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[An interface for custom order by comparator function.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.ComparisonFunc -->
  <!-- start class org.apache.pig.CounterBasedErrorHandler -->
  <class name="CounterBasedErrorHandler" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.ErrorHandler"/>
    <constructor name="CounterBasedErrorHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="onSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uniqueSignature" type="java.lang.String"/>
    </method>
    <method name="onError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uniqueSignature" type="java.lang.String"/>
      <param name="e" type="java.lang.Exception"/>
      <param name="inputTuple" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getRecordCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="storeSignature" type="java.lang.String"/>
    </method>
    <field name="STORER_ERROR_HANDLER_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STORER_ERROR_COUNT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STORER_RECORD_COUNT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.CounterBasedErrorHandler -->
  <!-- start interface org.apache.pig.ErrorHandler -->
  <interface name="ErrorHandler"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="onSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uniqueSignature" type="java.lang.String"/>
      <doc>
      <![CDATA[Method invoked on success processing of tuple
 
 @param uniqueSignature
            a unique signature to identify the operator]]>
      </doc>
    </method>
    <method name="onError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uniqueSignature" type="java.lang.String"/>
      <param name="e" type="java.lang.Exception"/>
      <param name="inputTuple" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Method invoked when an error occurs processing of tuple
 
 @param uniqueSignature
            a unique signature to identify the operator
 @param e
            Exception encountered while processing input
 @param inputTuple
            the tuple to store.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The interface that handles errors thrown by the
 {@link StoreFuncInterface#putNext(Tuple)}]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.ErrorHandler -->
  <!-- start interface org.apache.pig.ErrorHandling -->
  <interface name="ErrorHandling"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getErrorHandler" return="org.apache.pig.ErrorHandler"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method is called to determine the ErrorHandler implementation that
 to handle errors in {@code StoreFunc#putNext(Tuple)}
 
 @return OutputErrorHandler implementation for store func]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A {@link StoreFunc} should implement this interface to enable handling errors
 during {@code StoreFunc#putNext(Tuple)}]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.ErrorHandling -->
  <!-- start class org.apache.pig.EvalFunc -->
  <class name="EvalFunc" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchemaName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getReturnType" return="java.lang.reflect.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the Type that this EvalFunc returns.
 @return Type]]>
      </doc>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Utility method to allow UDF to report progress.  If exec will take more than a
 a few seconds {@link PigProgressable#progress} should be called
 occasionally to avoid timeouts.  Default Hadoop timeout is 600 seconds.]]>
      </doc>
    </method>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
      <doc>
      <![CDATA[Issue a warning.  Warning messages are aggregated and reported to
 the user.
 @param msg String message of the warning
 @param warningEnum type of warning]]>
      </doc>
    </method>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Placeholder for cleanup to be performed at the end. User defined functions can override.
 Default implementation is a no-op.]]>
      </doc>
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This callback method must be implemented by all subclasses. This
 is the method that will be invoked on every Tuple of a given dataset.
 Since the dataset may be divided up in a variety of ways the programmer
 should not make assumptions about state that is maintained between
 invocations of this method.

 @param input the Tuple to be processed.
 @return result, of type T.
 @throws IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[Report the schema of the output of this UDF.  Pig will make use of
 this in error checking, optimization, and planning.  The schema
 of input data to this UDF is provided.
 <p>
 The default implementation interprets the {@link OutputSchema} annotation,
 if one is present. Otherwise, it returns <code>null</code> (no known output schema).

 @param input Schema of the input
 @return Schema of the output]]>
      </doc>
    </method>
    <method name="isAsynchronous" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This function should be overriden to return true for functions that return their values
 asynchronously.  Currently pig never attempts to execute a function
 asynchronously.
 @return true if the function can be executed asynchronously.]]>
      </doc>
    </method>
    <method name="getReporter" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setReporter"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="reporter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"/>
      <doc>
      <![CDATA[Set the reporter.  Called by Pig to provide a reference of
 the reporter to the UDF.
 @param reporter Hadoop reporter]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Allow a UDF to specify type specific implementations of itself.  For example,
 an implementation of arithmetic sum might have int and float implementations,
 since integer arithmetic performs much better than floating point arithmetic.  Pig's
 typechecker will call this method and using the returned list plus the schema
 of the function's input data, decide which implementation of the UDF to use.
 @return A List containing FuncSpec objects representing the EvalFunc class
 which can handle the inputs corresponding to the schema in the objects.  Each
 FuncSpec should be constructed with a schema that describes the input for that
 implementation.  For example, the sum function above would return two elements in its
 list:
 <ol>
 <li>FuncSpec(this.getClass().getName(), new Schema(new Schema.FieldSchema(null, DataType.DOUBLE)))
 <li>FuncSpec(IntSum.getClass().getName(), new Schema(new Schema.FieldSchema(null, DataType.INTEGER)))
 </ol>
 This would indicate that the main implementation is used for doubles, and the special
 implementation IntSum is used for ints.]]>
      </doc>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a UDF to specify a list of hdfs files it would like placed in the distributed
 cache.  These files will be put in the cache for every job the UDF is used in.
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a UDF to specify a list of local files it would like placed in the distributed
 cache. These files will be put in the cache for every job the UDF is used in. Check for
 {@link FuncUtils} for utility function to facilitate it
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <method name="getPigLogger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPigLogger"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="pigLogger" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"/>
      <doc>
      <![CDATA[Set the PigLogger object.  Called by Pig to provide a reference
 to the UDF.
 @param pigLogger PigLogger object.]]>
      </doc>
    </method>
    <method name="getLogger" return="org.apache.commons.logging.Log"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[This method will be called by Pig both in the front end and back end to
 pass a unique signature to the {@link EvalFunc}. The signature can be used
 to store into the {@link UDFContext} any information which the
 {@link EvalFunc} needs to store between various method invocations in the
 front end and back end.
 @param signature a unique signature to identify this EvalFunc]]>
      </doc>
    </method>
    <method name="setInputSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This method is for internal use. It is called by Pig core in both front-end
 and back-end to setup the right input schema for EvalFunc]]>
      </doc>
    </method>
    <method name="getInputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method is intended to be called by the user in {@link EvalFunc} to get the input
 schema of the EvalFunc]]>
      </doc>
    </method>
    <method name="getSchemaType" return="org.apache.pig.EvalFunc.SchemaType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the {@link SchemaType} of the EvalFunc. User defined functions can override
 this method to return {@link SchemaType#VARARG}. In this case the last FieldSchema
 added to the Schema in {@link #getArgToFuncMapping()} will be considered as a vararg field.
 
 @return the schema type of the UDF]]>
      </doc>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Whether the UDF should be evaluated at compile time if all inputs are constant.
 This is applicable for most UDF, however, if a UDF will access hdfs file which
 is not available at compile time, it has to be false
 @return Whether or not compile time calculation is allowed, default to false
 to ensure legacy UDF will get the right behavior]]>
      </doc>
    </method>
    <method name="needEndOfAllInputProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setEndOfAllInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endOfAllInput" type="boolean"/>
    </method>
    <field name="reporter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reporter to send heartbeats to Hadoop.  If exec will take more than a
 a few seconds {@link PigProgressable#progress} should be called
 occasionally to avoid timeouts.  Default Hadoop timeout is 600 seconds.]]>
      </doc>
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Logging object.  Log calls made on the front end will be sent to
 pig's log on the client.  Log calls made on the backend will be
 sent to stdout and can be seen in the Hadoop logs.]]>
      </doc>
    </field>
    <field name="pigLogger" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Logger for aggregating warnings.  Any warnings to be sent to the user
 should be logged to this via {@link PigLogger#warn}.]]>
      </doc>
    </field>
    <field name="returnType" type="java.lang.reflect.Type"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return type of this instance of EvalFunc.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[The class is used to implement functions to be applied to
 fields in a dataset. The function is applied to each Tuple in the set.
 The programmer should not make assumptions about state maintained
 between invocations of the exec() method since the Pig runtime
 will schedule and localize invocations based on information provided
 at runtime.  The programmer also should not make assumptions about when or
 how many times the class will be instantiated, since it may be instantiated
 multiple times in both the front and back end.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.EvalFunc -->
  <!-- start class org.apache.pig.EvalFunc.SchemaType -->
  <class name="EvalFunc.SchemaType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.EvalFunc.SchemaType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.EvalFunc.SchemaType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="NORMAL" type="org.apache.pig.EvalFunc.SchemaType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="VARARG" type="org.apache.pig.EvalFunc.SchemaType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[EvalFunc's schema type.
 @see {@link EvalFunc#getSchemaType()}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.EvalFunc.SchemaType -->
  <!-- start interface org.apache.pig.ExceptionalFunction -->
  <interface name="ExceptionalFunction"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="apply" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="item" type="java.lang.Object"/>
      <exception name="Exception" type="java.lang.Exception"/>
      <doc>
      <![CDATA[Performs a unit of work on item, possibly throwing {@code E} in the process.

 @param item The item to perform work against.
 @return The result of the computation.
 @throws E if there was a problem performing the work.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface that captures a unit of work against an item where an exception might be thrown.

 @param <S> The argument type for the function.
 @param <T> The return type for the function.
 @param <E> The exception type that the function throws.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.ExceptionalFunction -->
  <!-- start interface org.apache.pig.ExecType -->
  <interface name="ExecType"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <doc>
      <![CDATA[An ExecType is selected based off the Properties for the given script.
 There may be multiple settings that trigger the selection of a given
 ExecType. For example, distributed MR mode is currently triggered if the
 user specifies "mapred" or "mapreduce". It is desirable to override the
 toString method of the given ExecType to uniquely identify the ExecType.
 
 The initialize method should return true if it accepts the properties or
 false if it does not. The Java ServiceLoader framework will be used to
 iterate through and select the correct ExecType.]]>
      </doc>
    </method>
    <method name="getExecutionEngine" return="org.apache.pig.backend.executionengine.ExecutionEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[Returns the Execution Engine that this ExecType is associated with. Once
 the ExecType the script is running in is determined by the PigServer, it
 will then call this method to get an instance of the ExecutionEngine
 associated with this ExecType to delegate all further execution to on the
 backend.]]>
      </doc>
    </method>
    <method name="getExecutionEngineClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the Execution Engine class that this ExecType is associated with.
 This method simply returns the class of the ExecutionEngine associated
 with this ExecType, and not an instance of it.]]>
      </doc>
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[An ExecType is classified as local if it runs in-process and through the
 local filesystem. While an ExecutionEngine may have a more nuanced notion
 of local mode, these are the qualifications Pig requires.
 ExecutionEngines can extend the ExecType interface to additionally
 differentiate between ExecTypes as necessary.]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the canonical name for this ExecType.
 @return]]>
      </doc>
    </method>
    <field name="LOCAL" type="org.apache.pig.ExecType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAPREDUCE" type="org.apache.pig.ExecType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The type of query execution. Pig will cycle through all implementations
 of ExecType and choose the first one that matches the Properties passed in.
 This ExecType then dictates the ExecutionEngine used for processing and 
 other behaviour throughout Pig. Any implementing classes should be noted in
 the META-INF/services folder titled org.apache.pig.ExecType as per the 
 Java ServiceLoader specification.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.ExecType -->
  <!-- start class org.apache.pig.ExecTypeProvider -->
  <class name="ExecTypeProvider" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExecTypeProvider"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectExecType" return="org.apache.pig.ExecType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <exception name="PigException" type="org.apache.pig.PigException"/>
    </method>
    <method name="fromString" return="org.apache.pig.ExecType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="execType" type="java.lang.String"/>
      <exception name="PigException" type="org.apache.pig.PigException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.ExecTypeProvider -->
  <!-- start class org.apache.pig.Expression -->
  <class name="Expression" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOpType" return="org.apache.pig.Expression.OpType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the opType]]>
      </doc>
    </method>
    <field name="opType" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A class to communicate Filter expressions to LoadFuncs.
 @since Pig 0.7]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.Expression -->
  <!-- start class org.apache.pig.Expression.BetweenExpression -->
  <class name="Expression.BetweenExpression" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.BetweenExpression" type="java.lang.Object, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLower" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUpper" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.BetweenExpression -->
  <!-- start class org.apache.pig.Expression.BinaryExpression -->
  <class name="Expression.BinaryExpression" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.BinaryExpression" type="org.apache.pig.Expression, org.apache.pig.Expression, org.apache.pig.Expression.OpType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param lhs
 @param rhs]]>
      </doc>
    </constructor>
    <method name="getLhs" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the left hand operand]]>
      </doc>
    </method>
    <method name="getRhs" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the right hand operand]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.BinaryExpression -->
  <!-- start class org.apache.pig.Expression.Column -->
  <class name="Expression.Column" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.Column" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param name]]>
      </doc>
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the name]]>
      </doc>
    </method>
    <method name="setName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[@param name the name to set]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.Column -->
  <!-- start class org.apache.pig.Expression.Const -->
  <class name="Expression.Const" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.Const" type="java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the value]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.Const -->
  <!-- start class org.apache.pig.Expression.InExpression -->
  <class name="Expression.InExpression" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.InExpression" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValues" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.InExpression -->
  <!-- start class org.apache.pig.Expression.OpType -->
  <class name="Expression.OpType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.Expression.OpType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.Expression.OpType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="OP_PLUS" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_MINUS" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_TIMES" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_DIV" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_MOD" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_EQ" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_NE" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_GT" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_GE" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_LT" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_LE" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_MATCH" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_IN" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_BETWEEN" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_NULL" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_NOT" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_AND" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OP_OR" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TERM_COL" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TERM_CONST" type="org.apache.pig.Expression.OpType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.Expression.OpType -->
  <!-- start class org.apache.pig.Expression.UnaryExpression -->
  <class name="Expression.UnaryExpression" extends="org.apache.pig.Expression"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Expression.UnaryExpression" type="org.apache.pig.Expression, org.apache.pig.Expression.OpType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getExpression" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.Expression.UnaryExpression -->
  <!-- start class org.apache.pig.FileInputLoadFunc -->
  <class name="FileInputLoadFunc" extends="org.apache.pig.LoadFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.OrderedLoadFunc"/>
    <constructor name="FileInputLoadFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSplitComparable" return="org.apache.hadoop.io.WritableComparable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class provides an implementation of OrderedLoadFunc interface
 which can be optionally re-used by LoadFuncs that use FileInputFormat, by
 having this as a super class
 @since Pig 0.7]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.FileInputLoadFunc -->
  <!-- start class org.apache.pig.FileSplitComparable -->
  <class name="FileSplitComparable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <implements name="java.io.Serializable"/>
    <constructor name="FileSplitComparable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FileSplitComparable" type="java.lang.String, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.FileSplitComparable"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <field name="filename" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="offset" type="java.lang.Long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class represents a relative position in a file.  It records a filename
 and an offset.  This allows Pig to order FileSplits.
 @since Pig 0.7]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.FileSplitComparable -->
  <!-- start class org.apache.pig.FilterFunc -->
  <class name="FilterFunc" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FilterFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Placeholder for cleanup to be performed at the end. User defined functions can override.
 Default implementation is a no-op.]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.FilterFunc -->
  <!-- start class org.apache.pig.FuncSpec -->
  <class name="FuncSpec" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="FuncSpec" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param className the name of the class for the udf
 @param ctorArg the argument to pass the constructor for the above class.
 Constructors can only take strings.]]>
      </doc>
    </constructor>
    <constructor name="FuncSpec" type="java.lang.String, java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param className the name of the class for the udf
 @param ctorArgs the arguments to pass to the constructor for the above class.
 Constructors can only take strings.]]>
      </doc>
    </constructor>
    <constructor name="FuncSpec" type="java.lang.String, java.lang.String[], org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param className the name of the class for the udf
 @param ctorArgs the arguments to pass to the constructor for the above class.
 Constructors can only take strings.
 @param inputArgsSchema schema for input args taken by this Function]]>
      </doc>
    </constructor>
    <constructor name="FuncSpec" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param funcSpec the name of the function and any arguments.
 It should have the form: classname('arg1', 'arg2', ...)]]>
      </doc>
    </constructor>
    <constructor name="FuncSpec" type="java.lang.String, org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param funcSpec funcSpec the name of the function and any arguments.
 It should have the form: classname('arg1', 'arg2', ...)
 @param inputArgsSchema schema for input args taken by this Function]]>
      </doc>
    </constructor>
    <method name="getClassNameFromSpec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="java.lang.String"/>
      <doc>
      <![CDATA[Parse the class name out of a function specification string.
 @return name of the class.]]>
      </doc>
    </method>
    <method name="getArgStringFromSpec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="java.lang.String"/>
      <doc>
      <![CDATA[Get the argument values passed to the func spec.
 @return argument values.  Format will be arg1, arg2, ... )]]>
      </doc>
    </method>
    <method name="parseArguments" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="argString" type="java.lang.String"/>
      <doc>
      <![CDATA[Parse the argument values out of a function specification string.
 @param argString should be of the form "'arg1', 'arg2', ..."
 @return List of the different argument strings]]>
      </doc>
    </method>
    <method name="getClassName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the className]]>
      </doc>
    </method>
    <method name="setClassName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="className" type="java.lang.String"/>
      <doc>
      <![CDATA[@param className the className to set]]>
      </doc>
    </method>
    <method name="getCtorArgs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the ctorArgs]]>
      </doc>
    </method>
    <method name="setCtorArgs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ctorArgs" type="java.lang.String[]"/>
      <doc>
      <![CDATA[@param ctorArgs the ctorArgs to set]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputArgsSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the inputArgsSchema]]>
      </doc>
    </method>
    <method name="setInputArgsSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputArgsSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[@param inputArgsSchema the inputArgsSchema to set]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Class to represent a UDF specification.
 Encapsulates the class name and the arguments to the constructor.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.FuncSpec -->
  <!-- start interface org.apache.pig.Function -->
  <interface name="Function"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.ExceptionalFunction"/>
    <implements name="com.google.common.base.Function"/>
    <method name="apply" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="item" type="java.lang.Object"/>
    </method>
    <doc>
    <![CDATA[A convenience typedef that ties into both google's {@code Function} and
 {@code ExceptionalFunction}.

 @param <S> The argument type for the function.
 @param <T> The return type for the function.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.Function -->
  <!-- start interface org.apache.pig.IndexableLoadFunc -->
  <interface name="IndexableLoadFunc"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called by Pig run time to allow the
 IndexableLoadFunc to perform any initialization actions
 @param conf The job configuration object
 @throws IOException]]>
      </doc>
    </method>
    <method name="seekNear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keys" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called by the Pig runtime to indicate
 to the LoadFunc to position its underlying input stream
 near the keys supplied as the argument. Specifically:
 1) if the keys are present in the input stream, the loadfunc
 implementation should position its read position to 
 a record where the key(s) is/are the biggest key(s) less than
 the key(s) supplied in the argument OR to the record with the
 first occurrence of the keys(s) supplied.
 2) if the key(s) are absent in the input stream, the implementation
 should position its read position to a record where the key(s)
 is/are the biggest key(s) less than the key(s) supplied OR to the
 first record where the key(s) is/are the smallest key(s) greater
 than the keys(s) supplied. 
 The description above holds for descending order data in 
 a similar manner with "biggest" and "less than" replaced with
 "smallest" and "greater than" and vice versa.
  
 @param keys Tuple with join keys (which are a prefix of the sort
 keys of the input data). For example if the data is sorted on
 columns in position 2,4,5 any of the following Tuples are
 valid as an argument value:
 (fieldAt(2))
 (fieldAt(2), fieldAt(4))
 (fieldAt(2), fieldAt(4), fieldAt(5))
 
 The following are some invalid cases:
 (fieldAt(4))
 (fieldAt(2), fieldAt(5))
 (fieldAt(4), fieldAt(5))
 
 @throws IOException When the loadFunc is unable to position
 to the required point in its input stream]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[A method called by the Pig runtime to give an opportunity
 for implementations to perform cleanup actions like closing
 the underlying input stream. This is necessary since while
 performing a join the Pig run time may determine than no further
 join is possible with remaining records and may indicate to the
 IndexableLoader to cleanup by calling this method.
 
 @throws IOException if the loadfunc is unable to perform
 its close actions.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class is intended for use by LoadFunc implementations
 which have an internal index for sorted data and can use the index
 to support merge join in Pig. Interaction with the index 
 is abstracted away by the methods in this interface which the Pig
 runtime will call in a particular sequence to get the records it
 needs to perform the merge based join.
 
 The sequence of calls made from the Pig runtime are:
 <ol>
 <li>{@link LoadFunc#setUDFContextSignature(String)}
 <li>{@link IndexableLoadFunc#initialize(Configuration)}
 <li>{@link LoadFunc#setLocation(String, org.apache.hadoop.mapreduce.Job)}
 <li>{@link IndexableLoadFunc#seekNear(Tuple)}
 <li>{@link LoadFunc#getNext} called multiple times to retrieve data and perform the join
 <li>{@link IndexableLoadFunc#close}
 </ol>
 @since Pig 0.6]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.IndexableLoadFunc -->
  <!-- start class org.apache.pig.IteratingAccumulatorEvalFunc -->
  <class name="IteratingAccumulatorEvalFunc" extends="org.apache.pig.AccumulatorEvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.TerminatingAccumulator"/>
    <constructor name="IteratingAccumulatorEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isFinished" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="iter" type="java.util.Iterator"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class provides a much more intuitive way to write Accumulator UDFs.<br>
 For example, you could express IsEmpty as follows:
 <pre><code>public class IsEmpty extends IteratingAccumulatorEvalFunc<Boolean> {
     public Boolean exec(Iterator<Tuple> iter) throws IOException {
         return !iter.hashNext();
     }
 }</code></pre>
 Count could be implemented as follows:
 <pre><code>public class Count extends IteratingAccumulatorEvalFunc<Long> {
     public Long exec(Iterator<Tuple> iter) throws IOException {
         long ct = 0;
         for (; iter.hasNext(); iter.next()) {
             ct++;
         }
         return ct;
     }
 }</code></pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.IteratingAccumulatorEvalFunc -->
  <!-- start class org.apache.pig.JVMReuseImpl -->
  <class name="JVMReuseImpl" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JVMReuseImpl"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="cleanupStaticData"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.JVMReuseImpl -->
  <!-- start class org.apache.pig.JVMReuseManager -->
  <class name="JVMReuseManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getInstance" return="org.apache.pig.JVMReuseManager"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="registerForStaticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="clazz" type="java.lang.Class"/>
    </method>
    <doc>
    <![CDATA[This class is used to manage JVM Reuse in case of execution engines like Tez
 and Spark.

 Static data members of a UDF, LoadFunc or StoreFunc class
 need to be reset or object references made null or reinitialized
 when the jvm container is reused for new tasks.

 Example usage to perform static data cleanup in a UDF as follows.

 public class MyUDF extends EvalFunc<Tuple> {
   private static int numInvocations = 0;
   private static Reporter reporter;

   static {
      // Register this class for static data cleanup
      JVMReuseManager.getInstance().registerForStaticDataCleanup(MyUDF.class);
   }

   // Write a public static method that performs the cleanup
   // and annotate it with @StaticDataCleanup
   @StaticDataCleanup
   public static void staticDataCleanup() {
      numInvocations = 0;
      reporter = null;
   }
   #### UDF Code goes here ######
 }

 @since Pig 0.14]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.JVMReuseManager -->
  <!-- start interface org.apache.pig.LoadCaster -->
  <interface name="LoadCaster"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="bytesToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to boolean value.
 @param b bytearray to be cast.
 @return Boolean value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to long value.
 @param b bytearray to be cast.
 @return Long value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to float value.
 @param b bytearray to be cast.
 @return Float value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to double value.
 @param b bytearray to be cast.
 @return Double value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to datetime value.
 @param b bytearray to be cast.
 @return datetime value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to integer value.
 @param b bytearray to be cast.
 @return Double value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to chararray value.
 @param b bytearray to be cast.
 @return String value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to map value.
 @param b bytearray to be cast.
 @param fieldSchema field schema for the output map
 @return Map value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to tuple value.
 @param b bytearray to be cast.
 @param fieldSchema field schema for the output tuple
 @return Tuple value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to bag value.
 @param b bytearray to be cast.
 @param fieldSchema field schema for the output bag
 @return Bag value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to BigInteger value.
 @param b bytearray to be cast.
 @param fieldSchema field schema for the output bag
 @return BigInteger value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytearray to BigDecimal value.
 @param b bytearray to be cast.
 @param fieldSchema field schema for the output bag
 @return BigInteger value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface that provides cast implementations for load functions.  For casts between
 bytearray objects and internal types, Pig relies on the load function that loaded the data to
 provide the cast.  This is because Pig does not understand the binary representation of the
 data and thus cannot cast it.  This interface provides functions to cast from bytearray to each
 of Pig's internal types.
 @since Pig 0.7]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.LoadCaster -->
  <!-- start class org.apache.pig.LoadFunc -->
  <class name="LoadFunc" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LoadFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called by the Pig runtime in the front end to convert the
 input location to an absolute path if the location is relative. The
 loadFunc implementation is free to choose how it converts a relative 
 location to an absolute location since this may depend on what the location
 string represent (hdfs path or some other data source)
 
 @param location location as provided in the "load" statement of the script
 @param curDir the current working direction based on any "cd" statements
 in the script before the "load" statement. If there are no "cd" statements
 in the script, this would be the home directory - 
 <pre>/user/<username> </pre>
 @return the absolute location based on the arguments passed
 @throws IOException if the conversion is not possible]]>
      </doc>
    </method>
    <method name="setLocation"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Communicate to the loader the location of the object(s) being loaded.  
 The location string passed to the LoadFunc here is the return value of 
 {@link LoadFunc#relativeToAbsolutePath(String, Path)}. Implementations
 should use this method to communicate the location (and any other information)
 to its underlying InputFormat through the Job object.
 
 This method will be called in the frontend and backend multiple times. Implementations
 should bear in mind that this method is called multiple times and should
 ensure there are no inconsistent side effects due to the multiple calls.
 
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, Path)}
 @param job the {@link Job} object
 store or retrieve earlier stored information from the {@link UDFContext}
 @throws IOException if the location is not valid.]]>
      </doc>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This will be called during planning on the front end. This is the
 instance of InputFormat (rather than the class name) because the 
 load function may need to instantiate the InputFormat in order 
 to control how it is constructed.
 @return the InputFormat associated with this loader.
 @throws IOException if there is an exception during InputFormat 
 construction]]>
      </doc>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This will be called on the front end during planning and not on the back 
 end during execution.
 @return the {@link LoadCaster} associated with this loader. Returning null 
 indicates that casts from byte array are not supported for this loader. 
 construction
 @throws IOException if there is an exception during LoadCaster]]>
      </doc>
    </method>
    <method name="prepareToRead"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Initializes LoadFunc for reading data.  This will be called during execution
 before any calls to getNext.  The RecordReader needs to be passed here because
 it has been instantiated for a particular InputSplit.
 @param reader {@link RecordReader} to be used by this instance of the LoadFunc
 @param split The input {@link PigSplit} to process
 @throws IOException if there is an exception during initialization]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Retrieves the next tuple to be processed. Implementations should NOT reuse
 tuple objects (or inner member objects) they return across calls and 
 should return a different tuple object in each call.
 @return the next tuple to be processed or null if there are no more tuples
 to be processed.
 @throws IOException if there is an exception while retrieving the next
 tuple]]>
      </doc>
    </method>
    <method name="join" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.util.AbstractCollection"/>
      <param name="delimiter" type="java.lang.String"/>
      <doc>
      <![CDATA[Join multiple strings into a string delimited by the given delimiter.
 
 @param s a collection of strings
 @param delimiter the delimiter 
 @return a 'delimiter' separated string]]>
      </doc>
    </method>
    <method name="getPathStrings" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="commaSeparatedPaths" type="java.lang.String"/>
      <doc>
      <![CDATA[Parse comma separated path strings into a string array. This method 
 escapes commas in the Hadoop glob pattern of the given paths. 
 
 This method is borrowed from 
 {@link org.apache.hadoop.mapreduce.lib.input.FileInputFormat}. A jira
 (MAPREDUCE-1205) is opened to make the same name method there 
 accessible. We'll use that method directly when the jira is fixed.
 
 @param commaSeparatedPaths a comma separated string
 @return an array of path strings]]>
      </doc>
    </method>
    <method name="getAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Construct the absolute path from the file location and the current
 directory. The current directory is either of the form 
 {code}hdfs://<nodename>:<nodeport>/<directory>{code} in Hadoop 
 MapReduce mode, or of the form 
 {code}file:///<directory>{code} in Hadoop local mode.
 
 @param location the location string specified in the load statement
 @param curDir the current file system directory
 @return the absolute path of file in the file system
 @throws FrontendException if the scheme of the location is incompatible
         with the scheme of the file system]]>
      </doc>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[This method will be called by Pig both in the front end and back end to
 pass a unique signature to the {@link LoadFunc}. The signature can be used
 to store into the {@link UDFContext} any information which the 
 {@link LoadFunc} needs to store between various method invocations in the
 front end and back end. A use case is to store {@link RequiredFieldList} 
 passed to it in {@link LoadPushDown#pushProjection(RequiredFieldList)} for
 use in the back end before returning tuples in {@link LoadFunc#getNext()}.
 This method will be call before other methods in {@link LoadFunc}
 @param signature a unique signature to identify this LoadFunc]]>
      </doc>
    </method>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
      <doc>
      <![CDATA[Issue a warning.  Warning messages are aggregated and reported to
 the user.
 @param msg String message of the warning
 @param warningEnum type of warning]]>
      </doc>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a LoadFunc to specify a list of files it would like placed in the distributed 
 cache.
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a LoadFunc to specify a list of files located locally and would like to ship to backend 
 (through distributed cache). Check for {@link FuncUtils} for utility function to facilitate it
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A LoadFunc loads data into Pig.  It can read from an HDFS file or other source.
 LoadFunc is tightly coupled to Hadoop's {@link org.apache.hadoop.mapreduce.InputFormat}.
 LoadFunc's sit atop an InputFormat and translate from the keys and values of Hadoop
 to Pig's tuples.  
 <p>
 LoadFunc contains the basic features needed by the majority of load functions.  For
 more advanced functionality there are separate interfaces that a load function
 can implement.  See {@link LoadCaster}, {@link LoadMetadata}, {@link LoadPushDown}, 
 {@link OrderedLoadFunc}, {@link CollectableLoadFunc}, and {@link IndexableLoadFunc}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadFunc -->
  <!-- start class org.apache.pig.LoadFuncMetadataWrapper -->
  <class name="LoadFuncMetadataWrapper" extends="org.apache.pig.LoadFuncWrapper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="LoadFuncMetadataWrapper"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="setLoadFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="loadFunc" type="org.apache.pig.LoadMetadata"/>
      <doc>
      <![CDATA[The wrapped LoadMetadata object must be set before method calls are made on this object.
 Typically, this is done with via constructor, but often times the wrapped object can
 not be properly initialized until later in the lifecycle of the wrapper object.
 @param loadFunc]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Convenience class to extend when decorating a class that extends LoadFunc and
 implements LoadMetadata.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadFuncMetadataWrapper -->
  <!-- start class org.apache.pig.LoadFuncWrapper -->
  <class name="LoadFuncWrapper" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LoadFuncWrapper"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="setLoadFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="loadFunc" type="org.apache.pig.LoadFunc"/>
      <doc>
      <![CDATA[The wrapped LoadFunc object must be set before method calls are made on this object.
 Typically, this is done with via constructor, but often times the wrapped object can
 not be properly initialized until later in the lifecycle of the wrapper object.
 @param loadFunc]]>
      </doc>
    </method>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="loadFunc" return="org.apache.pig.LoadFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getMethodName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="depth" type="int"/>
      <doc>
      <![CDATA[Returns a method in the call stack at the given depth. Depth 0 will return the method that
 called this getMethodName, depth 1 the method that called it, etc...
 @param depth
 @return method name as String]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Convenience class to extend when decorating a LoadFunc. Subclasses must call the setLoadFunc
 with an instance of LoadFunc before other methods can be called. Not doing so will
 result in an IllegalArgumentException when the method is called.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadFuncWrapper -->
  <!-- start interface org.apache.pig.LoadMetadata -->
  <interface name="LoadMetadata"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get a schema for the data to be loaded.  
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.  
 @return schema for the data to be loaded. This schema should represent
 all tuples of the returned data.  If the schema is unknown or it is
 not possible to return a schema that represents all returned data,
 then null should be returned. The schema should not be affected by pushProjection, ie.
 getSchema should always return the original schema even after pushProjection
 @throws IOException if an exception occurs while determining the schema]]>
      </doc>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get statistics about the data to be loaded.  If no statistics are
 available, then null should be returned. If the implementing class also extends
 {@link LoadFunc}, then {@link LoadFunc#setLocation(String, org.apache.hadoop.mapreduce.Job)}
 is guaranteed to be called before this method.
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.  
 @return statistics about the data to be loaded.  If no statistics are
 available, then null should be returned.
 @throws IOException if an exception occurs while retrieving statistics]]>
      </doc>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Find what columns are partition keys for this input.
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.  
 @return array of field names of the partition keys. Implementations 
 should return null to indicate that there are no partition keys
 @throws IOException if an exception occurs while retrieving partition keys]]>
      </doc>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set the filter for partitioning.  It is assumed that this filter
 will only contain references to fields given as partition keys in
 getPartitionKeys. So if the implementation returns null in 
 {@link #getPartitionKeys(String, Job)}, then this method is not
 called by Pig runtime. This method is also not called by the Pig runtime
 if there are no partition filter conditions. 
 @param partitionFilter that describes filter for partitioning
 @throws IOException if the filter is not compatible with the storage
 mechanism or contains non-partition fields.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface defines how to retrieve metadata related to data to be loaded.
 If a given loader does not implement this interface, it will be assumed that it
 is unable to provide metadata about the associated data.
 @since Pig 0.7]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.LoadMetadata -->
  <!-- start interface org.apache.pig.LoadPredicatePushdown -->
  <interface name="LoadPredicatePushdown"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getPredicateFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Find what fields of the data can support predicate pushdown.
 @param location Location as returned by
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}

 @param job The {@link Job} object - this should be used only to obtain
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.

 @return list of field names that can be pushed down. Implementations
 should return null to indicate that there are no fields that support predicate pushdown

 @throws IOException if an exception occurs while retrieving predicate fields]]>
      </doc>
    </method>
    <method name="getSupportedExpressionTypes" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Indicate operations on fields supported by the loader for predicate pushdown

 @return List of operations supported by the predicate pushdown loader]]>
      </doc>
    </method>
    <method name="setPushdownPredicate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="predicate" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Push down expression to the loader

 @param predicate expression to be filtered by the loader.
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface defines how a loader can support predicate pushdown.
 If a given loader implements this interface, pig will pushdown predicates based on
 type of operations supported by the loader on given set of fields.

 This interface is private in Pig 0.14 and will be made public in Pig 0.15 after PIG-4093.
 It is to be used only by builtin LoadFunc implementations till it is made public
 as PIG-4093 will cause API changes to this interface and make it backward incompatible.

 @since Pig 0.14]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.LoadPredicatePushdown -->
  <!-- start interface org.apache.pig.LoadPushDown -->
  <interface name="LoadPushDown"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Determine the operators that can be pushed to the loader.  
 Note that by indicating a loader can accept a certain operator
 (such as selection) the loader is not promising that it can handle
 all selections.  When it is passed the actual operators to 
 push down it will still have a chance to reject them.
 @return list of all features that the loader can support]]>
      </doc>
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Indicate to the loader fields that will be needed.  This can be useful for
 loaders that access data that is stored in a columnar format where indicating
 columns to be accessed a head of time will save scans.  This method will
 not be invoked by the Pig runtime if all fields are required. So implementations
 should assume that if this method is not invoked, then all fields from 
 the input are required. If the loader function cannot make use of this 
 information, it is free to ignore it by returning an appropriate Response
 @param requiredFieldList RequiredFieldList indicating which columns will be needed.
 This structure is read only. User cannot make change to it inside pushProjection.
 @return Indicates which fields will be returned
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface defines how to communicate to Pig what functionality can
 be pushed into the loader.  If a given loader does not implement this interface
 it will be assumed that it is unable to accept any functionality for push down.
 @since Pig 0.7]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.LoadPushDown -->
  <!-- start class org.apache.pig.LoadPushDown.OperatorSet -->
  <class name="LoadPushDown.OperatorSet" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.LoadPushDown.OperatorSet[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.LoadPushDown.OperatorSet"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="PROJECTION" type="org.apache.pig.LoadPushDown.OperatorSet"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Set of possible operations that Pig can push down to a loader.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadPushDown.OperatorSet -->
  <!-- start class org.apache.pig.LoadPushDown.RequiredField -->
  <class name="LoadPushDown.RequiredField" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="LoadPushDown.RequiredField"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LoadPushDown.RequiredField" type="java.lang.String, int, java.util.List, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param alias
 @param index
 @param subFields
 @param type]]>
      </doc>
    </constructor>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the alias]]>
      </doc>
    </method>
    <method name="getIndex" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the index]]>
      </doc>
    </method>
    <method name="getSubFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the required sub fields. The return value is null if all
         subfields are required]]>
      </doc>
    </method>
    <method name="setSubFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="subFields" type="java.util.List"/>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the type]]>
      </doc>
    </method>
    <method name="setType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="byte"/>
    </method>
    <method name="setIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="setAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Describes a field that is required to execute a scripts.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadPushDown.RequiredField -->
  <!-- start class org.apache.pig.LoadPushDown.RequiredFieldList -->
  <class name="LoadPushDown.RequiredFieldList" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="LoadPushDown.RequiredFieldList" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Set the list of required fields.
 @param fields]]>
      </doc>
    </constructor>
    <constructor name="LoadPushDown.RequiredFieldList"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Geta ll required fields as a list.
 @return the required fields - this will be null if all fields are
         required]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rf" type="org.apache.pig.LoadPushDown.RequiredField"/>
      <doc>
      <![CDATA[Add a field to the list of required fields.
 @param rf required field to add to the list.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[List of fields that Pig knows to be required to executed a script.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadPushDown.RequiredFieldList -->
  <!-- start class org.apache.pig.LoadPushDown.RequiredFieldResponse -->
  <class name="LoadPushDown.RequiredFieldResponse" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LoadPushDown.RequiredFieldResponse" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRequiredFieldResponse" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Indicates whether the loader will return only the requested fields or all fields.
 @return true if only requested fields will be returned, false if all fields will be
 returned.]]>
      </doc>
    </method>
    <method name="setRequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="honored" type="boolean"/>
      <doc>
      <![CDATA[Set whether the loader will return only the requesetd fields or all fields.
 @param honored if true only requested fields will be returned, else all fields will be
 returned.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Indicates whether the loader will return the requested fields or all fields.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.LoadPushDown.RequiredFieldResponse -->
  <!-- start interface org.apache.pig.LoadStoreCaster -->
  <interface name="LoadStoreCaster"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadCaster"/>
    <implements name="org.apache.pig.StoreCaster"/>
    <doc>
    <![CDATA[This is just a union interface of LoadCaster and StoreCaster, 
 made available for simplicity.
 @since Pig 0.8]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.LoadStoreCaster -->
  <!-- start class org.apache.pig.Main -->
  <class name="Main" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Main"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="main"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="java.lang.String[]"/>
      <doc>
      <![CDATA[The Main-Class for the Pig Jar that will provide a shell and setup a classpath appropriate
 for executing Jar files.  Warning, this method calls System.exit().

 @param args
            -jar can be used to add additional jar files (colon separated). - will start a
            shell. -e will execute the rest of the command line as if it was input to the
            shell.
 @throws IOException]]>
      </doc>
    </method>
    <method name="makeListener" return="org.apache.pig.tools.pigstats.PigProgressNotificationListener"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="dryrun" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptFile" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="RecognitionException" type="org.antlr.runtime.RecognitionException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getMajorVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the major version of Pig being run.]]>
      </doc>
    </method>
    <method name="getMinorVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the major version of the Pig build being run.]]>
      </doc>
    </method>
    <method name="getPatchVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the patch version of the Pig build being run.]]>
      </doc>
    </method>
    <method name="getSvnRevision" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the svn revision number of the Pig build being run.]]>
      </doc>
    </method>
    <method name="getBuildTime" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the built time of the Pig build being run.]]>
      </doc>
    </method>
    <method name="getVersionString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns a version string formatted similarly to that of svn.
 <pre>
 Apache Pig version 0.11.0-SNAPSHOT (r1202387)
 compiled Nov 15 2011, 15:22:09
 </pre>]]>
      </doc>
    </method>
    <method name="usage"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Print usage string.]]>
      </doc>
    </method>
    <method name="printProperties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="PROGRESS_NOTIFICATION_LISTENER_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="PROGRESS_NOTIFICATION_LISTENER_ARG_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Main class for Pig engine.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.Main -->
  <!-- start interface org.apache.pig.OrderedLoadFunc -->
  <interface name="OrderedLoadFunc"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getSplitComparable" return="org.apache.hadoop.io.WritableComparable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[The WritableComparable object returned will be used to compare
 the position of different splits in an ordered stream
 @param split An InputSplit from the InputFormat underlying this loader.
 @return WritableComparable representing the position of the split in input
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Implementing this interface indicates to Pig that a given loader
 can be used for MergeJoin. It does not mean the data itself is ordered,
 but rather that the splits returned by the underlying InputFormat
 can be ordered to match the order of the data they are loading.  For 
 example, files splits have a natural order (that of the file they are
 from) while splits of RDBMS does not (since tables have no inherent order).
 The position as represented by the
 WritableComparable object is stored in the index created by
 a MergeJoin sampling MapReduce job to get an ordered sequence of splits.
 It is necessary to read splits in order during a merge join to assure 
 data is being read according to the sort order.
 @since Pig 0.7]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.OrderedLoadFunc -->
  <!-- start interface org.apache.pig.OverwritableStoreFunc -->
  <interface name="OverwritableStoreFunc"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="shouldOverwrite" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method is called by the Pig runtime to determine whether to ignore output validation problems
 (see {@link PigOutputFormat#checkOutputSpecs} and {@link InputOutputFileValidator#validate}) and to delete the existing output.
 @return whether to overwrite the store/output location of this {@link StoreFunc}.]]>
      </doc>
    </method>
    <method name="cleanupOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called to cleanup the store/output location of this {@link StoreFunc}.
 
 @param store The {@link POStore} object to get info about the store
 operator for this store function.
 @param job The {@link Job} object to get job related information.
 @throws IOException if an exception occurs during the cleanup.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A {@link StoreFunc} should implement this interface to enable overwriting its
 store/output location if it already exists.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.OverwritableStoreFunc -->
  <!-- start class org.apache.pig.PigConfiguration -->
  <class name="PigConfiguration" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <field name="PIG_AUTO_LOCAL_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is to turn on auto local mode feature]]>
      </doc>
    </field>
    <field name="PIG_AUTO_LOCAL_INPUT_MAXBYTES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls the max threshold size to convert jobs to run in local mode]]>
      </doc>
    </field>
    <field name="PIG_OPT_FETCH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value used to enable or disable fetching without a mapreduce job for DUMP. True by default]]>
      </doc>
    </field>
    <field name="PIG_OPT_MULTIQUERY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value used to enable or disable multiquery optimization. True by default]]>
      </doc>
    </field>
    <field name="PIG_OPT_ACCUMULATOR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value used to enable or disable accumulator optimization. True by default]]>
      </doc>
    </field>
    <field name="PIG_ACCUMULATIVE_BATCHSIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_TEZ_OPT_UNION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to enable or disable union optimization in tez. True by default]]>
      </doc>
    </field>
    <field name="PIG_TEZ_OPT_UNION_SUPPORTED_STOREFUNCS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[These keys are used to enable or disable tez union optimization for
 specific StoreFuncs. Optimization should be turned off for those
 StoreFuncs that hard code part file names and do not prefix file names
 with mapreduce.output.basename configuration.

 If the StoreFuncs implement
 {@link StoreFunc#supportsParallelWriteToStoreLocation()} and return true
 or false then that is is used to turn on or off union optimization
 respectively. These settings can be used for StoreFuncs that have not
 implemented the API yet.]]>
      </doc>
    </field>
    <field name="PIG_TEZ_OPT_UNION_UNSUPPORTED_STOREFUNCS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SORT_READONCE_LOADFUNCS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Pig only reads once from datasource for LoadFuncs specified here during sort instead of
 loading once for sampling and loading again for partitioning.
 Used to avoid hitting external non-filesystem datasources like HBase and Accumulo twice.
 Honored only by Pig on Tez now.]]>
      </doc>
    </field>
    <field name="PIG_EXEC_MAP_PARTAGG" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value to enable or disable partial aggregation in map. Disabled by default]]>
      </doc>
    </field>
    <field name="PIG_EXEC_MAP_PARTAGG_MINREDUCTION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls the minimum reduction in-mapper Partial Aggregation should achieve in order
 to stay on. If after a period of observation this reduction is not achieved,
 in-mapper aggregation will be turned off and a message logged to that effect.]]>
      </doc>
    </field>
    <field name="PIG_EXEC_NO_COMBINER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value to enable or disable use of combiners in MapReduce jobs. Enabled by default]]>
      </doc>
    </field>
    <field name="PIG_EXEC_NO_COMBINER_REDUCER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Enable or disable use of combiners in reducer shuffle-merge phase in Tez.
 Valid values are auto, true or false.
 Default is auto which turns off combiner if bags are present in the combine plan]]>
      </doc>
    </field>
    <field name="PIG_EXEC_NO_SECONDARY_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key controls whether secondary sort key is used for optimization in case
 of nested distinct or sort]]>
      </doc>
    </field>
    <field name="PIG_CACHEDBAG_MEMUSAGE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls the fraction of total memory that is allowed to be used by
 cached bags. Default is 0.2.]]>
      </doc>
    </field>
    <field name="PIG_SKEWEDJOIN_REDUCE_MEMUSAGE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[% of memory available for the input data. This is currently equal to the
 memory available for the skewed join]]>
      </doc>
    </field>
    <field name="PIG_SKEWEDJOIN_REDUCE_MEM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Memory available (in bytes) in reduce when calculating memory available for skewed join.
 By default, it is set to Runtime.getRuntime().maxMemory(). Override it only
 for debug purpose]]>
      </doc>
    </field>
    <field name="PIG_JOIN_REPLICATED_MAX_BYTES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key used to control the maximum size loaded into
 the distributed cache when doing fragment-replicated join]]>
      </doc>
    </field>
    <field name="PIG_CACHEDBAG_TYPE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Configurations for specifying alternate implementations for cached bags. Rarely used]]>
      </doc>
    </field>
    <field name="PIG_CACHEDBAG_DISTINCT_TYPE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_CACHEDBAG_SORT_TYPE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_EXEC_REDUCER_ESTIMATOR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_EXEC_REDUCER_ESTIMATOR_CONSTRUCTOR_ARG_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_TEZ_AUTO_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to configure auto parallelism in tez. Default is true.]]>
      </doc>
    </field>
    <field name="PIG_TEZ_GRACE_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to configure grace parallelism in tez. Default is true.]]>
      </doc>
    </field>
    <field name="PIG_COMPRESS_INPUT_SPLITS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to configure compression for the pig input splits which
 are not FileSplit. Default is false]]>
      </doc>
    </field>
    <field name="PIG_COMPRESS_INPUT_SPLITS_DEFAULT" type="boolean"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_TEZ_INPUT_SPLITS_MEM_THRESHOLD" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Serialize input splits to disk if the input splits size exceeds a
 threshold to avoid hitting default RPC transfer size limit of 64MB.
 Default is 33554432 (32MB)]]>
      </doc>
    </field>
    <field name="PIG_TEZ_INPUT_SPLITS_MEM_THRESHOLD_DEFAULT" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_UDF_PROFILE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls whether execution time of Pig UDFs should be tracked.
 This feature uses counters; use judiciously.]]>
      </doc>
    </field>
    <field name="PIG_UDF_PROFILE_FREQUENCY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SCHEMA_TUPLE_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key must be set to true by the user for code generation to be used.
 In the future, it may be turned on by default (at least in certain cases),
 but for now it is too experimental.]]>
      </doc>
    </field>
    <field name="PIG_SCHEMA_TUPLE_USE_IN_UDF" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SCHEMA_TUPLE_USE_IN_FOREACH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SCHEMA_TUPLE_USE_IN_FRJOIN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SCHEMA_TUPLE_USE_IN_MERGEJOIN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_SCHEMA_TUPLE_ALLOW_FORCE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_STREAMING_ENVIRONMENT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key can be used to defined what properties will be set in the streaming environment.
 Just set this property to a comma-delimited list of properties to set, and those properties
 will be set in the environment.]]>
      </doc>
    </field>
    <field name="PIG_STREAMING_UDF_PYTHON_COMMAND" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key can be used to configure the python command for python streaming
 udf. For eg, python2.7.]]>
      </doc>
    </field>
    <field name="PIG_SPLIT_COMBINATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Turns combine split files on or off]]>
      </doc>
    </field>
    <field name="PIG_NO_SPLIT_COMBINATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Whether turns combine split files off. This is for internal use only]]>
      </doc>
    </field>
    <field name="PIG_MAX_COMBINED_SPLIT_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Specifies the size, in bytes, of data to be processed by a single map.
 Smaller files are combined untill this size is reached.]]>
      </doc>
    </field>
    <field name="PIG_OUTPUT_LAZY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define whether PigOutputFormat will be wrapped with LazyOutputFormat
 so that jobs won't write empty part files if no output is generated]]>
      </doc>
    </field>
    <field name="PIG_OUTPUT_COMMITTER_RECOVERY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define whether to support recovery to handle the
 application master getting restarted.]]>
      </doc>
    </field>
    <field name="PIG_TEMP_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Location where pig stores temporary files for job setup]]>
      </doc>
    </field>
    <field name="PIG_ENABLE_TEMP_FILE_COMPRESSION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define whether to have intermediate file compressed]]>
      </doc>
    </field>
    <field name="PIG_TEMP_FILE_COMPRESSION_STORAGE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to set the storage type used by intermediate file storage
 If pig.tmpfilecompression, default storage used is TFileStorage.
 This can be overriden to use SequenceFileInterStorage by setting following property to "seqfile".]]>
      </doc>
    </field>
    <field name="PIG_TEMP_FILE_COMPRESSION_CODEC" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Compression codec used by intermediate storage
 TFileStorage only support gzip and lzo.]]>
      </doc>
    </field>
    <field name="PIG_DELETE_TEMP_FILE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define whether to delete intermediate files of Hadoop jobs.]]>
      </doc>
    </field>
    <field name="PIG_POISSON_SAMPLER_SAMPLE_RATE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[For a given mean and a confidence, a sample rate is obtained from a poisson udf]]>
      </doc>
    </field>
    <field name="PIG_RANDOM_SAMPLER_SAMPLE_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key used to control the sample size of RandomeSampleLoader for
 order-by. The default value is 100 rows per task.]]>
      </doc>
    </field>
    <field name="PIG_DEFAULT_LOAD_FUNC" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define the default load func. Pig will fallback on PigStorage
 as default in case this is undefined.]]>
      </doc>
    </field>
    <field name="PIG_DEFAULT_STORE_FUNC" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define the default store func. Pig will fallback on PigStorage
 as default in case this is undefined.]]>
      </doc>
    </field>
    <field name="PIG_SCRIPT_INFO_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to turn off the inclusion of settings in the jobs.]]>
      </doc>
    </field>
    <field name="PIG_SCRIPT_MAX_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls the size of Pig script stored in job xml.]]>
      </doc>
    </field>
    <field name="PIG_USER_CACHE_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is turn on the user level cache]]>
      </doc>
    </field>
    <field name="PIG_USER_CACHE_LOCATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Location where additional jars are cached for the user
 Additional jar will be cached under PIG_USER_CACHE_LOCATION/${user.name}/.pigcache
 and will be re-used across the jobs run by the user if the jar has not changed]]>
      </doc>
    </field>
    <field name="PIG_USER_CACHE_REPLICATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Replication factor for files in pig jar cache]]>
      </doc>
    </field>
    <field name="PIG_ERROR_HANDLING_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Boolean value used to enable or disable error handling for storers]]>
      </doc>
    </field>
    <field name="PIG_ERROR_HANDLING_MIN_ERROR_RECORDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Controls the minimum number of errors]]>
      </doc>
    </field>
    <field name="PIG_ERROR_HANDLING_THRESHOLD_PERCENT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Set the threshold for percentage of errors]]>
      </doc>
    </field>
    <field name="PIG_BLACKLIST" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Comma-delimited entries of commands/operators that must be disallowed.
 This is a security feature to be used by administrators to block use of
 commands by users. For eg, an admin might like to block all filesystem
 commands and setting configs in pig script. In which case, the entry
 would be "pig.blacklist=fs,set"]]>
      </doc>
    </field>
    <field name="PIG_WHITELIST" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Comma-delimited entries of commands/operators that must be allowed. This
 is a security feature to be used by administrators to block use of
 commands by users that are not a part of the whitelist. For eg, an admin
 might like to allow only LOAD, STORE, FILTER, GROUP in pig script. In
 which case, the entry would be "pig.whitelist=load,store,filter,group"]]>
      </doc>
    </field>
    <field name="PIG_NO_TASK_REPORT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to turns off use of task reports in job statistics.]]>
      </doc>
    </field>
    <field name="PIG_DATETIME_DEFAULT_TIMEZONE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The timezone to be used by Pig datetime datatype]]>
      </doc>
    </field>
    <field name="PIG_BZIP_USE_HADOOP_INPUTFORMAT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Using hadoop's TextInputFormat for reading bzip input instead of using Pig's Bzip2TextInputFormat. True by default
 (only valid for 0.23/2.X)]]>
      </doc>
    </field>
    <field name="PIG_ARTIFACTS_DOWNLOAD_LOCATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to set the download location when registering an artifact using ivy coordinate]]>
      </doc>
    </field>
    <field name="PIG_TEZ_SESSION_REUSE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to define whether to reuse AM in Tez jobs.]]>
      </doc>
    </field>
    <field name="PIG_TEZ_DAG_STATUS_REPORT_INTERVAL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used to configure the interval of dag status report in seconds. Default is 20]]>
      </doc>
    </field>
    <field name="PIG_SPILL_MEMORY_USAGE_THRESHOLD_FRACTION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Spill will be triggered if the fraction of biggest heap exceeds the usage threshold.
 If {@link PigConfiguration.PIG_SPILL_UNUSED_MEMORY_THRESHOLD_SIZE} is non-zero, then usage threshold is calculated as
 Max(HeapSize * PIG_SPILL_MEMORY_USAGE_THRESHOLD_FRACTION, HeapSize - PIG_SPILL_UNUSED_MEMORY_THRESHOLD_SIZE)
 Default is 0.7]]>
      </doc>
    </field>
    <field name="PIG_SPILL_COLLECTION_THRESHOLD_FRACTION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Spill will be triggered if the fraction of biggest heap exceeds the collection threshold.
 If {@link PigConfiguration.PIG_SPILL_UNUSED_MEMORY_THRESHOLD_SIZE} is non-zero, then collection threshold is calculated as
 Max(HeapSize * PIG_SPILL_COLLECTION_THRESHOLD_FRACTION, HeapSize - PIG_SPILL_UNUSED_MEMORY_THRESHOLD_SIZE)
 Default is 0.7]]>
      </doc>
    </field>
    <field name="PIG_SPILL_UNUSED_MEMORY_THRESHOLD_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Spill will be triggered when unused memory falls below the threshold.
 Default is 350MB]]>
      </doc>
    </field>
    <field name="CALLER_ID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Log tracing id that can be used by upstream clients for tracking respective logs]]>
      </doc>
    </field>
    <field name="ENABLE_ATS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Enable ATS for Pig]]>
      </doc>
    </field>
    <field name="OPT_FETCH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_OPT_FETCH} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_OPT_FETCH} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="PROP_CACHEDBAG_MEMUSAGE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_CACHEDBAG_MEMUSAGE} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_CACHEDBAG_MEMUSAGE} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="PROP_EXEC_MAP_PARTAGG" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_EXEC_MAP_PARTAGG} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_EXEC_MAP_PARTAGG} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="PARTAGG_MINREDUCTION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_EXEC_MAP_PARTAGG_MINREDUCTION} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_EXEC_MAP_PARTAGG_MINREDUCTION} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="PROP_NO_COMBINER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PROP_NO_COMBINER1} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PROP_NO_COMBINER1} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="SHOULD_USE_SCHEMA_TUPLE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHOULD_USE_IN_UDF" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHOULD_USE_IN_FOREACH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHOULD_USE_IN_FRJOIN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHOULD_USE_IN_MERGEJOIN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHOULD_ALLOW_FORCE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INSERT_ENABLED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_SCRIPT_INFO_ENABLED} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_SCRIPT_INFO_ENABLED} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <field name="MAX_SCRIPT_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link #PIG_SCRIPT_MAX_SIZE} instead. Will be removed in Pig 0.16">
      <doc>
      <![CDATA[@deprecated use {@link #PIG_SCRIPT_MAX_SIZE} instead. Will be removed in Pig 0.16]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Container for static configuration strings, defaults, etc. This is intended just for keys that can
 be set by users, not for keys that are generally used within pig.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigConfiguration -->
  <!-- start class org.apache.pig.PigConstants -->
  <class name="PigConstants" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <field name="GENERATED_CLASSES_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used in the job conf to let the various jobs know what code was
 generated.]]>
      </doc>
    </field>
    <field name="LOCAL_CODE_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This key is used when a job is run in local mode to pass the location of the generated code
 from the front-end to the "back-end" (which, in this case, is in the same JVM).]]>
      </doc>
    </field>
    <field name="SCHEMA_TUPLE_ON_BY_DEFAULT" type="boolean"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_OPTIMIZER_RULES_DISABLED_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[{@value} is a comma-separated list of optimizer rules to disable;
 by default, all rules are enabled.]]>
      </doc>
    </field>
    <field name="PIG_LOCAL_CONF_PREFIX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Prefix used by pig to configure local mode configuration]]>
      </doc>
    </field>
    <field name="TIME_UDFS_INVOCATION_COUNTER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Counter names used by pig.udf.profile]]>
      </doc>
    </field>
    <field name="TIME_UDFS_ELAPSED_TIME_COUNTER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_INDEX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.PigConstants -->
  <!-- start class org.apache.pig.PigCounters -->
  <class name="PigCounters" extends="java.lang.Enum"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.PigCounters[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.PigCounters"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="SPILLABLE_MEMORY_MANAGER_SPILL_COUNT" type="org.apache.pig.PigCounters"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PROACTIVE_SPILL_COUNT_BAGS" type="org.apache.pig.PigCounters"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PROACTIVE_SPILL_COUNT_RECS" type="org.apache.pig.PigCounters"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The following enum will contain the general counters that pig uses.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigCounters -->
  <!-- start class org.apache.pig.PigException -->
  <class name="PigException" extends="java.io.IOException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, java.lang.Throwable, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown. 
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, java.lang.Throwable, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown. 
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, boolean, java.lang.String, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PigException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PigException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.
 @param location - The <link>SourceLocation</link> that generated this error.]]>
      </doc>
    </constructor>
    <method name="isInput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errSource" type="byte"/>
      <doc>
      <![CDATA[A static method to query if an error source is due to
 an input or not.

 @param errSource - byte that indicates the error source
 @return true if the error source is an input; false otherwise]]>
      </doc>
    </method>
    <method name="isBug" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errSource" type="byte"/>
      <doc>
      <![CDATA[A static method to query if an error source is due to
 a bug or not.

 @param errSource - byte that indicates the error source
 @return true if the error source is a bug; false otherwise]]>
      </doc>
    </method>
    <method name="isUserEnvironment" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errSource" type="byte"/>
      <doc>
      <![CDATA[A static method to query if an error source is due to
 the user environment or not.

 @param errSource - byte that indicates the error source
 @return true if the error source is due to the user environment; false otherwise]]>
      </doc>
    </method>
    <method name="isRemoteEnvironment" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errSource" type="byte"/>
      <doc>
      <![CDATA[A static method to query if an error source is due to
 the remote environment or not.

 @param errSource - byte that indicates the error source
 @return true if the error source is due to the remote environment; false otherwise]]>
      </doc>
    </method>
    <method name="determineErrorSource" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errCode" type="int"/>
      <doc>
      <![CDATA[A static method to determine the error source given the error code
 
  @param errCode - integer error code
  @return byte that indicates the error source]]>
      </doc>
    </method>
    <method name="retriable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Checks if the exception is retriable.
 @return if the exception is retriable or not]]>
      </doc>
    </method>
    <method name="setRetriable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="retry" type="boolean"/>
      <doc>
      <![CDATA[Set the retriable attribute of the exception
 @param retry - true if retriable; false otherwise]]>
      </doc>
    </method>
    <method name="getErrorSource" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the error source of the exception. Can be more than one source.
 @return error sources represented as a byte]]>
      </doc>
    </method>
    <method name="setErrorSource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="src" type="byte"/>
      <doc>
      <![CDATA[Set the error source of the exception
 @param src - byte representing the error sources]]>
      </doc>
    </method>
    <method name="getErrorCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the error code of the exception
 @return error code of the exception]]>
      </doc>
    </method>
    <method name="setErrorCode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="code" type="int"/>
      <doc>
      <![CDATA[Set the error code of the exception
 @param code - error code]]>
      </doc>
    </method>
    <method name="getDetailedMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the detailed message used by developers for debugging
 @return detailed message]]>
      </doc>
    </method>
    <method name="setDetailedMessage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="detailMsg" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the detailed message of the exception
 @param detailMsg - detailed message to be used by developers]]>
      </doc>
    </method>
    <method name="getMarkedAsShowToUser" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Check if this PigException is marked as the ones whose message is to be 
 displayed to the user. This can be used to indicate if the corresponding 
 error message is a good candidate for displaying to the end user, instead
 of drilling down the stack trace further.
 @return true if this pig exception is marked as appropriate to be 
 displayed to the user]]>
      </doc>
    </method>
    <method name="setMarkedAsShowToUser"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="showToUser" type="boolean"/>
      <doc>
      <![CDATA[Mark this exception as a good candidate for showing its message to the 
 pig user]]>
      </doc>
    </method>
    <method name="getSourceLocation" return="org.apache.pig.parser.SourceLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the location in the source that generated the exception.]]>
      </doc>
    </method>
    <method name="setSourceLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="org.apache.pig.parser.SourceLocation"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns a short description of this throwable.
 The result is the concatenation of:
 <ul>
 <li> the {@linkplain Class#getName() name} of the class of this object
 <li> ": " (a colon and a space)
 <li> "ERROR " (the string ERROR followed by a a space)
 <li> the result of invoking this object's {@link #getErrorCode} method
 <li> ": " (a colon and a space)
 <li> the result of invoking {@link Throwable#getLocalizedMessage() getLocalizedMessage}
      method
 </ul>
 If <tt>getLocalizedMessage</tt> returns <tt>null</tt>, then just
 the class name is returned.

 @return a string representation of this throwable.]]>
      </doc>
    </method>
    <field name="INPUT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BUG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="USER_ENVIRONMENT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REMOTE_ENVIRONMENT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ERROR" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="errorCode" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorSource" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="retriable" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="detailedMessage" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="markedAsShowToUser" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="sourceLocation" type="org.apache.pig.parser.SourceLocation"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[All exceptions in Pig are encapsulated in the <code>PigException</code>
 class. Details such as the source of the error, error message, error
 code, etc. are contained in this class. The default values for the
 attributes are:
 errorSource = BUG
 errorCode = 0
 retriable = false
 detailedMessage = null
 location = null]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigException -->
  <!-- start class org.apache.pig.PigRunner -->
  <class name="PigRunner" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigRunner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="run" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="java.lang.String[]"/>
      <param name="listener" type="org.apache.pig.tools.pigstats.PigProgressNotificationListener"/>
    </method>
    <doc>
    <![CDATA[A utility to help run PIG scripts within a Java program.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigRunner -->
  <!-- start class org.apache.pig.PigRunner.ReturnCode -->
  <class name="PigRunner.ReturnCode" extends="java.lang.Object"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigRunner.ReturnCode"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="UNKNOWN" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SUCCESS" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RETRIABLE_EXCEPTION" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FAILURE" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PARTIAL_FAILURE" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ILLEGAL_ARGS" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IO_EXCEPTION" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_EXCEPTION" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PARSE_EXCEPTION" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="THROWABLE_EXCEPTION" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.PigRunner.ReturnCode -->
  <!-- start class org.apache.pig.PigServer -->
  <class name="PigServer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigServer" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param execTypeString can be 'mapreduce' or 'local'.  Local mode will
 use Hadoop's local job runner to execute the job on the local machine.
 Mapreduce mode will connect to a cluster to execute the job. If
 execTypeString is not one of these two, Pig will deduce the ExecutionEngine
 if it is on the classpath and use it for the backend execution.
 @throws ExecException
 @throws IOException]]>
      </doc>
    </constructor>
    <constructor name="PigServer" type="java.lang.String, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="PigServer" type="java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="PigServer" type="org.apache.pig.ExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param execType execution type to start the engine.  Local mode will
 use Hadoop's local job runner to execute the job on the local machine.
 Mapreduce mode will connect to a cluster to execute the job.
 @throws ExecException]]>
      </doc>
    </constructor>
    <constructor name="PigServer" type="org.apache.pig.ExecType, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <constructor name="PigServer" type="org.apache.pig.ExecType, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <constructor name="PigServer" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <constructor name="PigServer" type="org.apache.pig.impl.PigContext, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="resetScope"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigContext" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCurrentDAG" return="org.apache.pig.PigServer.Graph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Current DAG

 @return]]>
      </doc>
    </method>
    <method name="debugOn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Set the logging level to DEBUG.]]>
      </doc>
    </method>
    <method name="debugOff"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Set the logging level to the default.]]>
      </doc>
    </method>
    <method name="setDefaultParallel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="int"/>
      <doc>
      <![CDATA[Set the default parallelism for this job
 @param p default number of reducers to use for this job.]]>
      </doc>
    </method>
    <method name="setBatchOn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Starts batch execution mode.]]>
      </doc>
    </method>
    <method name="isBatchOn" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Retrieve the current execution mode.

 @return true if the execution mode is batch; false otherwise.]]>
      </doc>
    </method>
    <method name="isBatchEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Returns whether there is anything to process in the current batch.
 @throws FrontendException
 @return true if there are no stores to process in the current
 batch, false otherwise.]]>
      </doc>
    </method>
    <method name="parseAndBuild"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method parses the scripts and builds the LogicalPlan. This method
 should be followed by {@link PigServer#executeBatch(boolean)} with
 argument as false. Do Not use {@link PigServer#executeBatch()} after
 calling this method as that will re-parse and build the script.

 @throws IOException]]>
      </doc>
    </method>
    <method name="executeBatch" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Submits a batch of Pig commands for execution.

 @return list of jobs being executed
 @throws IOException]]>
      </doc>
    </method>
    <method name="executeBatch" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parseAndBuild" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Submits a batch of Pig commands for execution. Parse and build of script
 should be skipped if user called {@link PigServer#parseAndBuild()}
 before. Pass false as an argument in which case.

 @param parseAndBuild
 @return
 @throws IOException]]>
      </doc>
    </method>
    <method name="getJobs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.tools.pigstats.PigStats"/>
      <doc>
      <![CDATA[Retrieves a list of Job objects from the PigStats object
 @param stats
 @return A list of ExecJob objects]]>
      </doc>
    </method>
    <method name="discardBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Discards a batch of Pig commands.

 @throws FrontendException]]>
      </doc>
    </method>
    <method name="addPathToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <doc>
      <![CDATA[Add a path to be skipped while automatically shipping binaries for
 streaming.

 @param path path to be skipped]]>
      </doc>
    </method>
    <method name="registerFunction"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="function" type="java.lang.String"/>
      <param name="funcSpec" type="org.apache.pig.FuncSpec"/>
      <doc>
      <![CDATA[Defines an alias for the given function spec. This
 is useful for functions that require arguments to the
 constructor.

 @param function - the new function alias to define.
 @param funcSpec - the FuncSpec object representing the name of
 the function class and any arguments to constructor.]]>
      </doc>
    </method>
    <method name="registerStreamingCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="commandAlias" type="java.lang.String"/>
      <param name="command" type="org.apache.pig.impl.streaming.StreamingCommand"/>
      <doc>
      <![CDATA[Defines an alias for the given streaming command.

 @param commandAlias - the new command alias to define
 @param command - streaming command to be executed]]>
      </doc>
    </method>
    <method name="registerJar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Registers a jar file. Name of the jar file can be an absolute or
 relative path.

 If multiple resources are found with the specified name, the
 first one is registered as returned by getSystemResources.
 A warning is issued to inform the user.

 @param name of the jar file to register
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerCode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="scriptingLang" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Universal Scripting Language Support, see PIG-928

 @param path path of the script file
 @param scriptingLang language keyword or scriptingEngine used to interpret the script
 @param namespace namespace defined for functions of this script
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerQuery"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="query" type="java.lang.String"/>
      <param name="startLine" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a query with the Pig runtime. The query is parsed and registered, but it is not
 executed until it is needed.

 @param query
            a Pig Latin expression to be evaluated.
 @param startLine
            line number of the query within the whole script
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerQuery"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="query" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a query with the Pig runtime. The query is parsed and registered, but it is not
 executed until it is needed.  Equivalent to calling {@link #registerQuery(String, int)}
 with startLine set to 1.

 @param query
            a Pig Latin expression to be evaluated.
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script from InputStream source which is more general and extensible
 the pig script can be from local file, then you can use FileInputStream.
 or pig script can be in memory which you build it dynamically, the you can use ByteArrayInputStream
 even pig script can be in remote machine, which you get wrap it as SocketInputStream
 @param in
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <param name="params" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script from InputStream source which is more general and extensible
 the pig script can be from local file, then you can use FileInputStream.
 or pig script can be in memory which you build it dynamically, the you can use ByteArrayInputStream
 even pig script can be in remote machine, which you get wrap it as SocketInputStream.
 The parameters in the pig script will be substituted with the values in params
 @param in
 @param params the key is the parameter name, and the value is the parameter value
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <param name="paramsFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script from InputStream source which is more general and extensible
 the pig script can be from local file, then you can use FileInputStream.
 or pig script can be in memory which you build it dynamically, the you can use ByteArrayInputStream
 even pig script can be in remote machine, which you get wrap it as SocketInputStream
 The parameters in the pig script will be substituted with the values in the parameter files
 @param in
 @param paramsFiles  files which have the parameter setting
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <param name="params" type="java.util.Map"/>
      <param name="paramsFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script from InputStream.<br>
 The pig script can be from local file, then you can use FileInputStream.
 Or pig script can be in memory which you build it dynamically, the you can use ByteArrayInputStream
 Pig script can even be in remote machine, which you get wrap it as SocketInputStream.<br>
 The parameters in the pig script will be substituted with the values in the map and the parameter files.
 The values in params Map will override the value in parameter file if they have the same parameter
 @param in
 @param params the key is the parameter name, and the value is the parameter value
 @param paramsFiles  files which have the parameter setting
 @throws IOException]]>
      </doc>
    </method>
    <method name="paramMapToList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="params" type="java.util.Map"/>
    </method>
    <method name="getClonedGraph" return="org.apache.pig.PigServer.Graph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Creates a clone of the current DAG
 @return A Graph object which is a clone of the current DAG
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a query with the Pig runtime.  The query will be read from the indicated file.
 @param fileName file to read query from.
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="params" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script file.  The parameters in the file will be substituted with the values in params
 @param fileName  pig script file
 @param params  the key is the parameter name, and the value is the parameter value
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="paramsFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script file.  The parameters in the file will be substituted with the values in the parameter files
 @param fileName pig script file
 @param paramsFiles  files which have the parameter setting
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="params" type="java.util.Map"/>
      <param name="paramsFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a pig script file.  The parameters in the file will be substituted with the values in the map and the parameter files
 The values in params Map will override the value in parameter file if they have the same parameter
 @param fileName  pig script
 @param params  the key is the parameter name, and the value is the parameter value
 @param paramsFiles   files which have the parameter setting
 @throws IOException]]>
      </doc>
    </method>
    <method name="printAliases"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Intended to be used by unit tests only.
 Print a list of all aliases in in the current Pig Latin script.  Output is written to
 System.out.
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="dumpSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write the schema for an alias to System.out.
 @param alias Alias whose schema will be written out
 @return Schema of alias dumped
 @throws IOException]]>
      </doc>
    </method>
    <method name="dumpSchemaNested" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="nestedAlias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write the schema for a nestedAlias to System.out. Denoted by
 alias::nestedAlias.

 @param alias Alias whose schema has nestedAlias
 @param nestedAlias Alias whose schema will be written out
 @return Schema of alias dumped
 @throws IOException]]>
      </doc>
    </method>
    <method name="setJobName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the name of the job.  This name will get translated to mapred.job.name.
 @param name of job]]>
      </doc>
    </method>
    <method name="setJobPriority"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="priority" type="java.lang.String"/>
      <doc>
      <![CDATA[Set Hadoop job priority.  This value will get translated to mapred.job.priority.
 @param priority valid values are found in {@link org.apache.hadoop.mapred.JobPriority}]]>
      </doc>
    </method>
    <method name="openIterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="id" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Executes a Pig Latin script up to and including indicated alias.  That is, if a user does:
 <pre>
 PigServer server = new PigServer();
 server.registerQuery("A = load 'foo';");
 server.registerQuery("B = filter A by $0 &gt; 0;");
 server.registerQuery("C = order B by $1;");
 </pre>
 Then
 <pre>
 server.openIterator("B");
 </pre>
 filtered but unsorted data will be returned.  If instead a user does
 <pre>
 server.openIterator("C");
 </pre>
 filtered and sorted data will be returned.
 @param id Alias to open iterator for
 @return iterator of tuples returned from the script
 @throws IOException]]>
      </doc>
    </method>
    <method name="store" return="org.apache.pig.backend.executionengine.ExecJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="id" type="java.lang.String"/>
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Executes a Pig Latin script up to and including indicated alias and stores the resulting
 records into a file.  That is, if a user does:
 <pre>
 PigServer server = new PigServer();
 server.registerQuery("A = load 'foo';");
 server.registerQuery("B = filter A by $0 &gt; 0;");
 server.registerQuery("C = order B by $1;");
 </pre>
 Then
 <pre>
 server.store("B", "bar");
 </pre>
 filtered but unsorted data will be stored to the file <tt>bar</tt>.  If instead a user does
 <pre>
 server.store("C", "bar");
 </pre>
 filtered and sorted data will be stored to the file <tt>bar</tt>.
 Equivalent to calling {@link #store(String, String, String)} with
 <tt>org.apache.pig.PigStorage</tt> as the store function.
 @param id The alias to store
 @param filename The file to which to store to
 @return {@link ExecJob} containing information about this job
 @throws IOException]]>
      </doc>
    </method>
    <method name="store" return="org.apache.pig.backend.executionengine.ExecJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="id" type="java.lang.String"/>
      <param name="filename" type="java.lang.String"/>
      <param name="func" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Executes a Pig Latin script up to and including indicated alias and stores the resulting
 records into a file.  That is, if a user does:
 <pre>
 PigServer server = new PigServer();
 server.registerQuery("A = load 'foo';");
 server.registerQuery("B = filter A by $0 &gt; 0;");
 server.registerQuery("C = order B by $1;");
 </pre>
 Then
 <pre>
 server.store("B", "bar", "mystorefunc");
 </pre>
 filtered but unsorted data will be stored to the file <tt>bar</tt> using
 <tt>mystorefunc</tt>.  If instead a user does
 <pre>
 server.store("C", "bar", "mystorefunc");
 </pre>
 filtered and sorted data will be stored to the file <tt>bar</tt> using
 <tt>mystorefunc</tt>.
 <p>
 @param id The alias to store
 @param filename The file to which to store to
 @param func store function to use
 @return {@link ExecJob} containing information about this job
 @throws IOException]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="stream" type="java.io.PrintStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Provide information on how a pig query will be executed.  For now
 this information is very developer focussed, and probably not very
 useful to the average user.
 @param alias Name of alias to explain.
 @param stream PrintStream to write explanation to.
 @throws IOException if the requested alias cannot be found.]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <param name="markAsExecute" type="boolean"/>
      <param name="lps" type="java.io.PrintStream"/>
      <param name="eps" type="java.io.PrintStream"/>
      <param name="dir" type="java.io.File"/>
      <param name="suffix" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Provide information on how a pig query will be executed.
 @param alias Name of alias to explain.
 @param format Format in which the explain should be printed.  If text, then the plan will
 be printed in plain text.  Otherwise, the execution plan will be printed in
 <a href="http://en.wikipedia.org/wiki/DOT_language">DOT</a> format.
 @param verbose Controls the amount of information printed
 @param markAsExecute When set will treat the explain like a
 call to execute in the respoect that all the pending stores are
 marked as complete.
 @param lps Stream to print the logical tree
 @param eps Stream to print the ExecutionEngine trees. If null, then will print to files
 @param dir Directory to print ExecutionEngine trees. If null, will use eps
 @param suffix Suffix of file names
 @throws IOException if the requested alias cannot be found.]]>
      </doc>
    </method>
    <method name="capacity" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the unused byte capacity of an HDFS filesystem. This value does
 not take into account a replication factor, as that can vary from file
 to file. Thus if you are using this to determine if you data set will fit
 in the HDFS, you need to divide the result of this call by your specific replication
 setting.
 @return unused byte capacity of the file system.
 @throws IOException]]>
      </doc>
    </method>
    <method name="fileSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the length of a file in bytes which exists in the HDFS (accounts for replication).
 @param filename
 @return length of the file in bytes
 @throws IOException]]>
      </doc>
    </method>
    <method name="existsFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Test whether a file exists.
 @param filename to test
 @return true if file exists, false otherwise
 @throws IOException]]>
      </doc>
    </method>
    <method name="deleteFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Delete a file.
 @param filename to delete
 @return true
 @throws IOException]]>
      </doc>
    </method>
    <method name="renameFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="source" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Rename a file.
 @param source file to rename
 @param target new file name
 @return true
 @throws IOException]]>
      </doc>
    </method>
    <method name="mkdirs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dirs" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Make a directory.
 @param dirs directory to make
 @return true
 @throws IOException]]>
      </doc>
    </method>
    <method name="listPaths" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dir" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[List the contents of a directory.
 @param dir name of directory to list
 @return array of strings, one for each file name
 @throws IOException]]>
      </doc>
    </method>
    <method name="getAliases" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return a map containing the logical plan associated with each alias.

 @return map]]>
      </doc>
    </method>
    <method name="shutdown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reclaims resources used by this instance of PigServer. This method
 deletes all temporary files generated by the current thread while
 executing Pig commands.]]>
      </doc>
    </method>
    <method name="getAliasKeySet" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the set of all current aliases.
 @return set]]>
      </doc>
    </method>
    <method name="getExamples" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="printHistory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="withNumbers" type="boolean"/>
    </method>
    <method name="launchPlan" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="jobName" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[A common method for launching the jobs according to the logical plan
 @param lp The logical plan
 @param jobName A String containing the job name to be used
 @return The PigStats object
 @throws ExecException
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getLogicalPlanData" return="org.apache.pig.newplan.logical.relational.LogicalPlanData"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns data associated with LogicalPlan. It makes
 sense to call this method only after a query/script
 has been registered with one of the {@link #registerQuery(String)}
 or {@link #registerScript(InputStream)} methods.

 @return LogicalPlanData]]>
      </doc>
    </method>
    <method name="setValidateEachStatement"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="validateEachStatement" type="boolean"/>
      <doc>
      <![CDATA[This can be called to indicate if the query is being parsed/compiled
 in a mode that expects each statement to be validated as it is
 entered, instead of just doing it once for whole script.
 @param validateEachStatement]]>
      </doc>
    </method>
    <method name="setSkipParseInRegisterForBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="skipParseInRegisterForBatch" type="boolean"/>
      <doc>
      <![CDATA[Set whether to skip parsing while registering the query in batch mode
 @param skipParseInRegisterForBatch]]>
      </doc>
    </method>
    <method name="getLastRel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="PRETTY_PRINT_SCHEMA_PROPERTY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="graphs" type="java.util.Deque"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigContext" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="scope" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A class for Java programs to connect to Pig. Typically a program will create a PigServer
 instance. The programmer then registers queries using registerQuery() and
 retrieves results using openIterator() or store(). After doing so, the
 shutdown() method should be called to free any resources used by the current
 PigServer instance. Not doing so could result in a memory leak.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigServer -->
  <!-- start class org.apache.pig.PigServer.Graph -->
  <class name="PigServer.Graph" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="PigServer.Graph" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLogicalPlan" return="org.apache.pig.newplan.logical.relational.LogicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPlan" return="org.apache.pig.newplan.logical.relational.LogicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptCache" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLastRel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="duplicate" return="org.apache.pig.PigServer.Graph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.PigServer.Graph -->
  <!-- start class org.apache.pig.PigStreamingBase -->
  <class name="PigStreamingBase" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.PigToStream"/>
    <implements name="org.apache.pig.StreamToPig"/>
    <constructor name="PigStreamingBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="serialize" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="serializeToBytes" return="org.apache.pig.data.WritableByteArray"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Given a tuple, produce an array of bytes to be passed to the streaming
 executable.
 @param t Tuple to serialize
 @return Serialized form of the tuple
 @throws IOException]]>
      </doc>
    </method>
    <method name="deserialize" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="deserialize" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <param name="offset" type="int"/>
      <param name="length" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Given a byte array from a streaming executable, produce a tuple.
 @param bytes  bytes to deserialize.
 @param offset the offset in the byte array from which to deserialize.
 @param length the number of bytes from the offset of the byte array to deserialize.
 @return Data as a Pig Tuple.
 @throws IOException]]>
      </doc>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This will be called on the front end during planning and not on the back
 end during execution.

 @return the {@link LoadCaster} associated with this object, or null if
 there is no such LoadCaster.
 @throws IOException if there is an exception during LoadCaster]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The interface is used for the custom mapping of
    - a {@link Tuple} to a byte array. The byte array is fed to the stdin
      of the streaming process.
    - a byte array, received from the stdout of the streaming process,
      to a {@link Tuple}.

 This interface is designed to provide a common protocol for data exchange
 between Pig runtime and streaming executables.

 Typically, a user implements this interface for a particular type of stream
 command and specifies the implementation class in the Pig DEFINE statement.

 @since Pig 0.12]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigStreamingBase -->
  <!-- start interface org.apache.pig.PigToStream -->
  <interface name="PigToStream"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="Use {@link org.apache.pig.PigStreamingBase}">
    <method name="serialize" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Given a tuple, produce an array of bytes to be passed to the streaming
 executable.
 @param t Tuple to serialize
 @return Serialized form of the tuple
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[@deprecated Use {@link org.apache.pig.PigStreamingBase}]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.PigToStream -->
  <!-- start class org.apache.pig.PigWarning -->
  <class name="PigWarning" extends="java.lang.Enum"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.PigWarning[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.PigWarning"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="ACCESSING_NON_EXISTENT_FIELD" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DID_NOT_FIND_LOAD_ONLY_MAP_PLAN" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DIVIDE_BY_ZERO" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FIELD_DISCARDED_TYPE_CONVERSION_FAILED" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GROUP_BY_INCOMPATIBLE_TYPES" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_BAG" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_CHARARRAY" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_DOUBLE" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_FLOAT" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_INT" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_LONG" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_BIGINTEGER" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_BIGDECIMAL" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_BOOLEAN" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_DATETIME" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_MAP" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPLICIT_CAST_TO_TUPLE" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TOO_LARGE_FOR_INT" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_LEAF_MAP" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_ROOT_REDUCE" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NON_PACKAGE_REDUCE_PLAN_ROOT" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NON_EMPTY_COMBINE_PLAN" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PROGRESS_REPORTER_NOT_PROVIDED" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_PLAN_NOT_EMPTY_WHILE_MAP_PLAN_UNDER_PROCESS" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_1" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_2" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_3" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_4" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_5" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_6" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_7" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_8" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_9" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_10" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_11" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDF_WARNING_12" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNABLE_TO_CREATE_FILE_TO_SPILL" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNABLE_TO_SPILL" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNABLE_TO_CLOSE_SPILL_FILE" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNREACHABLE_CODE_BOTH_MAP_AND_REDUCE_PLANS_PROCESSED" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="USING_OVERLOADED_FUNCTION" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCER_COUNT_LOW" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NULL_COUNTER_COUNT" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DELETE_FAILED" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PROJECTION_INVALID_RANGE" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NO_LOAD_FUNCTION_FOR_CASTING_BYTEARRAY" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SKIP_UDF_CALL_FOR_NULL" type="org.apache.pig.PigWarning"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[An enum to enumerate the warning types in Pig]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PigWarning -->
  <!-- start class org.apache.pig.PrimitiveEvalFunc -->
  <class name="PrimitiveEvalFunc" extends="org.apache.pig.TypedOutputEvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PrimitiveEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PrimitiveEvalFunc" type="java.lang.Class, java.lang.Class"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInputTypeClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="inTypeClass" type="java.lang.Class"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Base class for simple Pig UDFs that are functions of primitive types IN to OUT. Handles
 marshalling objects, basic error checking, etc. Extend this class and implement the
 <pre>OUT exec(IN input)</pre> method when writting a UDF that operates on only the first input
 (of expected type IN) from the Tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.PrimitiveEvalFunc -->
  <!-- start class org.apache.pig.ResourceSchema -->
  <class name="ResourceSchema" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="ResourceSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct an empty ResourceSchema.]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a ResourceSchema from a {@link Schema}
 @param pigSchema Schema to use]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a ResourceSchema from a {@link LogicalSchema}
 @param pigSchema Schema to use]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema, org.apache.pig.SortInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Only for use by Pig internal code.
 Construct a ResourceSchema from a {@link Schema}
 @param pigSchema Schema to use
 @param sortInfo information on how data is sorted]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema, org.apache.pig.SortInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Only for use by Pig internal code.
 Construct a ResourceSchema from a {@link LogicalSchema}
 @param pigSchema LogicalSchema to use
 @param sortInfo information on how data is sorted]]>
      </doc>
    </constructor>
    <method name="getVersion" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the version of this schema.
 @return version]]>
      </doc>
    </method>
    <method name="setVersion" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="version" type="int"/>
    </method>
    <method name="getFields" return="org.apache.pig.ResourceSchema.ResourceFieldSchema[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get field schema for each field
 @return array of field schemas.]]>
      </doc>
    </method>
    <method name="fieldNames" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all field names.
 @return array of field names]]>
      </doc>
    </method>
    <method name="setFields" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="org.apache.pig.ResourceSchema.ResourceFieldSchema[]"/>
      <doc>
      <![CDATA[Set all the fields.  If fields are not currently null the new fields will be silently
 ignored.
 @param fields to use as fields in this schema
 @return this]]>
      </doc>
    </method>
    <method name="getSortKeys" return="int[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the sort keys for this data.
 @return array of ints.  Each integer in the array represents the field number.  So if the
 schema of the data is (a, b, c, d) and the data is sorted on c, b, the returned sort keys
 will be [2, 1].  Field numbers are zero based.  If the data is not sorted a zero length
 array will be returned.]]>
      </doc>
    </method>
    <method name="setSortKeys" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortKeys" type="int[]"/>
      <doc>
      <![CDATA[Set the sort keys for htis data.  If sort keys are not currently null the new sort keys
 will be silently ignored.
 @param sortKeys  Each integer in the array represents the field number.  So if the
 schema of the data is (a, b, c, d) and the data is sorted on c, b, the sort keys
 should be [2, 1].  Field numbers are zero based.
 @return this]]>
      </doc>
    </method>
    <method name="getSortKeyOrders" return="org.apache.pig.ResourceSchema.Order[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get order for sort keys.
 @return array of Order.  This array will be the same length as the int[] array returned by
 {@link #getSortKeys}.]]>
      </doc>
    </method>
    <method name="setSortKeyOrders" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortKeyOrders" type="org.apache.pig.ResourceSchema.Order[]"/>
      <doc>
      <![CDATA[Set the order for each sort key.  If order is not currently null, new order will be
 silently ignored.
 @param sortKeyOrders array of Order.  Should be the same length as int[] passed to 
 {@link #setSortKeys}.
 @return this]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rs1" type="org.apache.pig.ResourceSchema"/>
      <param name="rs2" type="org.apache.pig.ResourceSchema"/>
      <doc>
      <![CDATA[Test whether two ResourceSchemas are the same.  Two schemas are said to be the same if they
 are both null or 
 have the same number of fields and for each field the name, type are the same.  For fields
 that have may have schemas (i.e. tuples) both schemas be equal.  Field
 descriptions are not used in testing equality.
 @return true if equal according to the above definition, otherwise false.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A represenation of a schema used to communicate with load and store functions.  This is
 separate from {@link Schema}, which is an internal Pig representation of a schema.
 @since Pig 0.7]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.ResourceSchema -->
  <!-- start class org.apache.pig.ResourceSchema.Order -->
  <class name="ResourceSchema.Order" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.ResourceSchema.Order[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.ResourceSchema.Order"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="ASCENDING" type="org.apache.pig.ResourceSchema.Order"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DESCENDING" type="org.apache.pig.ResourceSchema.Order"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.ResourceSchema.Order -->
  <!-- start class org.apache.pig.ResourceSchema.ResourceFieldSchema -->
  <class name="ResourceSchema.ResourceFieldSchema" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="ResourceSchema.ResourceFieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct an empty field schema.]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema.ResourceFieldSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct using a {@link org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema} as the template.
 @param fieldSchema fieldSchema to copy from]]>
      </doc>
    </constructor>
    <constructor name="ResourceSchema.ResourceFieldSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct using a {@link org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema} as the template.
 @param fieldSchema fieldSchema to copy from]]>
      </doc>
    </constructor>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the name of this field.
 @return name]]>
      </doc>
    </method>
    <method name="setName" return="org.apache.pig.ResourceSchema.ResourceFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the name of this filed.
 @param name new name
 @return this]]>
      </doc>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the type of this field.
 @return type, as a {@link DataType} static final byte]]>
      </doc>
    </method>
    <method name="setType" return="org.apache.pig.ResourceSchema.ResourceFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type" type="byte"/>
      <doc>
      <![CDATA[Set the type of this field
 @param type new type
 @return this]]>
      </doc>
    </method>
    <method name="getDescription" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a free form text description of this field.
 @return description]]>
      </doc>
    </method>
    <method name="setDescription" return="org.apache.pig.ResourceSchema.ResourceFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="description" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the description
 @param description new description
 @return this]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the schema for this field. Type tuple/bag/map may have a schema.
 @return schema]]>
      </doc>
    </method>
    <method name="setSchema" return="org.apache.pig.ResourceSchema.ResourceFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set the schema for this field. Type tuple/bag/map may have a schema.
 @param schema new schema
 @return this]]>
      </doc>
    </method>
    <method name="throwInvalidSchemaException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="calcCastString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.ResourceSchema.ResourceFieldSchema -->
  <!-- start class org.apache.pig.ResourceStatistics -->
  <class name="ResourceStatistics" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Cloneable"/>
    <constructor name="ResourceStatistics"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getmBytes" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setmBytes" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="Use {@link ResourceStatistics#setSizeInBytes(Long)} instead">
      <param name="mBytes" type="java.lang.Long"/>
      <doc>
      <![CDATA[@param mBytes
 @deprecated Use {@link ResourceStatistics#setSizeInBytes(Long)} instead]]>
      </doc>
    </method>
    <method name="setSizeInBytes"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="java.lang.Long"/>
      <doc>
      <![CDATA[Sets the size in bytes
 
 @param bytes]]>
      </doc>
    </method>
    <method name="getSizeInBytes" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return size in bytes.]]>
      </doc>
    </method>
    <method name="getNumRecords" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNumRecords" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numRecords" type="java.lang.Long"/>
    </method>
    <method name="getAvgRecordSize" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAvgRecordSize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sizeInBytes" type="java.lang.Long"/>
      <doc>
      <![CDATA[Set average record size in bytes
 
 @param sizeInBytes]]>
      </doc>
    </method>
    <method name="getFields" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFields" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="org.apache.pig.ResourceStatistics.ResourceFieldStatistics[]"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="anOther" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[An class that represents statistics about data to be loaded or stored.  It is marked unstable
 because Pig does very little statistics collection at this point.  If and when that
 functionality is added it is expected that this interface will change.
 @since Pig 0.7]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.ResourceStatistics -->
  <!-- start class org.apache.pig.ResourceStatistics.ResourceFieldStatistics -->
  <class name="ResourceStatistics.ResourceFieldStatistics" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="ResourceStatistics.ResourceFieldStatistics"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getVersion" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setVersion" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="version" type="int"/>
    </method>
    <method name="getNumDistinctValues" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNumDistinctValues" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numDistinctValues" type="java.lang.Long"/>
    </method>
    <method name="getMostCommonValues" return="java.lang.Object[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMostCommonValues" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mostCommonValues" type="java.lang.Object[]"/>
    </method>
    <method name="getMostCommonValuesFreq" return="float[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMostCommonValuesFreq" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mostCommonValuesFreq" type="float[]"/>
    </method>
    <method name="getValueHistogram" return="java.lang.Object[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setValueHistogram" return="org.apache.pig.ResourceStatistics.ResourceFieldStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valueHistogram" type="java.lang.Object[]"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="anOther" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A naive hashCode implementation following the example in IBM's developerworks:
 http://www.ibm.com/developerworks/java/library/j-jtp05273.html]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Statistics for a given field in the data.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.ResourceStatistics.ResourceFieldStatistics -->
  <!-- start class org.apache.pig.SortColInfo -->
  <class name="SortColInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="SortColInfo" type="java.lang.String, int, org.apache.pig.SortColInfo.Order"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param colName sort column name
 @param colIndex index position (0 based) of sort column
 @param orderingType whether the column is sorted ascending or descending]]>
      </doc>
    </constructor>
    <method name="getColName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the sort column name - could be null or empty string if
 column name could not be determined either because of the absence of
 a schema or because the schema had the column name as null or empty
 string - caller should check for these conditions.]]>
      </doc>
    </method>
    <method name="getColIndex" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return index position (0 based) of sort column]]>
      </doc>
    </method>
    <method name="getSortOrder" return="org.apache.pig.SortColInfo.Order"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return whether the column is sorted ascending or descending]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A class representing information about a sort column in {@link SortInfo}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.SortColInfo -->
  <!-- start class org.apache.pig.SortColInfo.Order -->
  <class name="SortColInfo.Order" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.SortColInfo.Order[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.SortColInfo.Order"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="ASCENDING" type="org.apache.pig.SortColInfo.Order"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DESCENDING" type="org.apache.pig.SortColInfo.Order"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.SortColInfo.Order -->
  <!-- start class org.apache.pig.SortInfo -->
  <class name="SortInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="SortInfo" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param sortColInfoList list of sortColInfo, one for each field in the data]]>
      </doc>
    </constructor>
    <method name="getSortColInfoList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the sortColInfoList the list of sortColInfo for this data]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isGloballySorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isGloballySorted true if the data is globally sorted, false if it is sorted
 only within each part file.]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Class to communicate sort column information based on 
 order by statment's sort columns and schema]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.SortInfo -->
  <!-- start interface org.apache.pig.StaticDataCleanup -->
  <interface name="StaticDataCleanup"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
  </interface>
  <!-- end interface org.apache.pig.StaticDataCleanup -->
  <!-- start interface org.apache.pig.StoreCaster -->
  <interface name="StoreCaster"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadCaster"/>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bi" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bd" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[An interface that provides methods for converting Pig internal types to byte[].
 It is intended to be used by StoreFunc implementations.
 @since Pig 0.8]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.StoreCaster -->
  <!-- start class org.apache.pig.StoreFunc -->
  <class name="StoreFunc" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <constructor name="StoreFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called by the Pig runtime in the front end to convert the
 output location to an absolute path if the location is relative. The
 StoreFunc implementation is free to choose how it converts a relative
 location to an absolute location since this may depend on what the location
 string represent (hdfs path or some other data source).


 @param location location as provided in the "store" statement of the script
 @param curDir the current working direction based on any "cd" statements
 in the script before the "store" statement. If there are no "cd" statements
 in the script, this would be the home directory -
 <pre>/user/<username> </pre>
 @return the absolute location based on the arguments passed
 @throws IOException if the conversion is not possible]]>
      </doc>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Return the OutputFormat associated with StoreFunc.  This will be called
 on the front end during planning and on the backend during
 execution.
 @return the {@link OutputFormat} associated with StoreFunc
 @throws IOException if an exception occurs while constructing the
 OutputFormat]]>
      </doc>
    </method>
    <method name="setStoreLocation"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Communicate to the storer the location where the data needs to be stored.
 The location string passed to the {@link StoreFunc} here is the
 return value of {@link StoreFunc#relToAbsPathForStoreLocation(String, Path)}
 This method will be called in the frontend and backend multiple times. Implementations
 should bear in mind that this method is called multiple times and should
 ensure there are no inconsistent side effects due to the multiple calls.
 {@link #checkSchema(ResourceSchema)} will be called before any call to
 {@link #setStoreLocation(String, Job)}.


 @param location Location returned by
 {@link StoreFunc#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object
 @throws IOException if the location is not valid.]]>
      </doc>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set the schema for data to be stored.  This will be called on the
 front end during planning if the store is associated with a schema.
 A Store function should implement this function to
 check that a given schema is acceptable to it.  For example, it
 can check that the correct partition keys are included;
 a storage function to be written directly to an OutputFormat can
 make sure the schema will translate in a well defined way.  Default implementation
 is a no-op.
 @param s to be checked
 @throws IOException if this schema is not acceptable.  It should include
 a detailed error message indicating what is wrong with the schema.]]>
      </doc>
    </method>
    <method name="prepareToWrite"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Initialize StoreFunc to write data.  This will be called during
 execution on the backend before the call to putNext.
 @param writer RecordWriter to use.
 @throws IOException if an exception occurs during initialization]]>
      </doc>
    </method>
    <method name="putNext"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write a tuple to the data store.

 @param t the tuple to store.
 @throws IOException if an exception occurs during the write]]>
      </doc>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[This method will be called by Pig both in the front end and back end to
 pass a unique signature to the {@link StoreFunc} which it can use to store
 information in the {@link UDFContext} which it needs to store between
 various method invocations in the front end and back end. This method
 will be called before other methods in {@link StoreFunc}.  This is necessary
 because in a Pig Latin script with multiple stores, the different
 instances of store functions need to be able to find their (and only their)
 data in the UDFContext object.  The default implementation is a no-op.
 @param signature a unique signature to identify this StoreFunc]]>
      </doc>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method will be called by Pig if the job which contains this store
 fails. Implementations can clean up output locations in this method to
 ensure that no incorrect/incomplete results are left in the output location.
 The default implementation  deletes the output location if it
 is a {@link FileSystem} location.
 @param location Location returned by
 {@link StoreFunc#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object - this should be used only to obtain
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.]]>
      </doc>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method will be called by Pig if the job which contains this store
 is successful, and some cleanup of intermediate resources is required.
 Implementations can clean up output locations in this method to
 ensure that no incorrect/incomplete results are left in the output location.
 @param location Location returned by
 {@link StoreFunc#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object - this should be used only to obtain
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.]]>
      </doc>
    </method>
    <method name="cleanupOnFailureImpl"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Default implementation for {@link #cleanupOnFailure(String, Job)}
 and {@link #cleanupOnSuccess(String, Job)}.  This removes a file
 from HDFS.
 @param location file name (or URI) of file to remove
 @param job Hadoop job, used to access the appropriate file system.
 @throws IOException]]>
      </doc>
    </method>
    <method name="supportsParallelWriteToStoreLocation" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[DAG execution engines like Tez support optimizing union by writing to
 output location in parallel from tasks of different vertices. Commit is
 called once all the vertices in the union are complete. This eliminates
 need to have a separate phase to read data output from previous phases,
 union them and write out again.

 Enabling the union optimization requires the OutputFormat to

      1) Support creation of different part file names for tasks of different
 vertices. Conflicting filenames can create data corruption and loss.
 For eg: If task 0 of vertex1 and vertex2 both create filename as
 part-r-00000, then one of the files will be overwritten when promoting
 from temporary to final location leading to data loss.
      FileOutputFormat has mapreduce.output.basename config which enables
  naming files differently in different vertices. Classes extending
  FileOutputFormat and those prefixing file names with mapreduce.output.basename
  value will not encounter conflict. Cases like HBaseStorage which write to key
  value store and do not produce files also should not face any conflict.

      2) Support calling of commit once at the end takes care of promoting
 temporary files of the different vertices into the final location.
 For eg: FileOutputFormat commit algorithm handles promoting of files produced
 by tasks of different vertices into final output location without issues
 if there is no file name conflict. In cases like HBaseStorage, the
 TableOutputCommitter does nothing on commit.

 If custom OutputFormat used by the StoreFunc does not support the above
 two criteria, then false should be returned. Union optimization will be
 disabled for the StoreFunc.

 Default implementation returns null and in that case planner falls back
 to {@link PigConfiguration.PIG_TEZ_OPT_UNION_SUPPORTED_STOREFUNCS} and
 {@link PigConfiguration.PIG_TEZ_OPT_UNION_UNSUPPORTED_STOREFUNCS}
 settings to determine if the StoreFunc supports it.]]>
      </doc>
    </method>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
      <doc>
      <![CDATA[Issue a warning.  Warning messages are aggregated and reported to
 the user.
 @param msg String message of the warning
 @param warningEnum type of warning]]>
      </doc>
    </method>
    <doc>
    <![CDATA[StoreFuncs take records from Pig's processing and store them into a data store.  Most frequently
 this is an HDFS file, but it could also be an HBase instance, RDBMS, etc.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.StoreFunc -->
  <!-- start interface org.apache.pig.StoreFuncInterface -->
  <interface name="StoreFuncInterface"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called by the Pig runtime in the front end to convert the
 output location to an absolute path if the location is relative. The
 StoreFuncInterface implementation is free to choose how it converts a relative 
 location to an absolute location since this may depend on what the location
 string represent (hdfs path or some other data source). 
 The static method {@link LoadFunc#getAbsolutePath} provides a default 
 implementation for hdfs and hadoop local file system and it can be used
 to implement this method.  
 
 @param location location as provided in the "store" statement of the script
 @param curDir the current working direction based on any "cd" statements
 in the script before the "store" statement. If there are no "cd" statements
 in the script, this would be the home directory - 
 <pre>/user/<username> </pre>
 @return the absolute location based on the arguments passed
 @throws IOException if the conversion is not possible]]>
      </doc>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Return the OutputFormat associated with StoreFuncInterface.  This will be called
 on the front end during planning and on the backend during
 execution. 
 @return the {@link OutputFormat} associated with StoreFuncInterface
 @throws IOException if an exception occurs while constructing the 
 OutputFormat]]>
      </doc>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Communicate to the storer the location where the data needs to be stored.  
 The location string passed to the {@link StoreFuncInterface} here is the 
 return value of {@link StoreFuncInterface#relToAbsPathForStoreLocation(String, Path)}
 This method will be called in the frontend and backend multiple times. Implementations
 should bear in mind that this method is called multiple times and should
 ensure there are no inconsistent side effects due to the multiple calls.
 {@link #checkSchema(ResourceSchema)} will be called before any call to
 {@link #setStoreLocation(String, Job)}.
 

 @param location Location returned by 
 {@link StoreFuncInterface#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object
 @throws IOException if the location is not valid.]]>
      </doc>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set the schema for data to be stored.  This will be called on the
 front end during planning if the store is associated with a schema.
 A Store function should implement this function to
 check that a given schema is acceptable to it.  For example, it
 can check that the correct partition keys are included;
 a storage function to be written directly to an OutputFormat can
 make sure the schema will translate in a well defined way.  
 @param s to be checked
 @throws IOException if this schema is not acceptable.  It should include
 a detailed error message indicating what is wrong with the schema.]]>
      </doc>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Initialize StoreFuncInterface to write data.  This will be called during
 execution before the call to putNext.
 @param writer RecordWriter to use.
 @throws IOException if an exception occurs during initialization]]>
      </doc>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write a tuple to the data store.
 @param t the tuple to store.
 @throws IOException if an exception occurs during the write]]>
      </doc>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[This method will be called by Pig both in the front end and back end to
 pass a unique signature to the {@link StoreFuncInterface} which it can use to store
 information in the {@link UDFContext} which it needs to store between
 various method invocations in the front end and back end.  This is necessary
 because in a Pig Latin script with multiple stores, the different
 instances of store functions need to be able to find their (and only their)
 data in the UDFContext object.
 @param signature a unique signature to identify this StoreFuncInterface]]>
      </doc>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method will be called by Pig if the job which contains this store
 fails. Implementations can clean up output locations in this method to
 ensure that no incorrect/incomplete results are left in the output location
 @param location Location returned by 
 {@link StoreFuncInterface#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.]]>
      </doc>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method will be called by Pig if the job which contains this store
 is successful, and some cleanup of intermediate resources is required.
 Implementations can clean up output locations in this method to
 ensure that no incorrect/incomplete results are left in the output location
 @param location Location returned by 
 {@link StoreFuncInterface#relToAbsPathForStoreLocation(String, Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[StoreFuncs take records from Pig's processing and store them into a data store.  Most frequently
 this is an HDFS file, but it could also be an HBase instance, RDBMS, etc.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.StoreFuncInterface -->
  <!-- start class org.apache.pig.StoreFuncMetadataWrapper -->
  <class name="StoreFuncMetadataWrapper" extends="org.apache.pig.StoreFuncWrapper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreMetadata"/>
    <constructor name="StoreFuncMetadataWrapper"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="setStoreFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="storeFunc" type="org.apache.pig.StoreMetadata"/>
      <doc>
      <![CDATA[The wrapped StoreMetadata object must be set before method calls are made on this object.
 Typically, this is done with via constructor, but often times the wrapped object can
 not be properly initialized until later in the lifecycle of the wrapper object.
 @param storeFunc]]>
      </doc>
    </method>
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceStatistics" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceSchema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Convenience class to extend when decorating a class that implements both StoreFunc and
 StoreMetadata. It's not abstract so that it will fail to compile if new methods get added to
 either interface.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.StoreFuncMetadataWrapper -->
  <!-- start class org.apache.pig.StoreFuncWrapper -->
  <class name="StoreFuncWrapper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <constructor name="StoreFuncWrapper"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="setStoreFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="storeFunc" type="org.apache.pig.StoreFuncInterface"/>
      <doc>
      <![CDATA[The wrapped StoreFuncInterface object must be set before method calls are made on this object.
 Typically, this is done with via constructor, but often times the wrapped object can
 not be properly initialized until later in the lifecycle of the wrapper object.
 @param storeFunc]]>
      </doc>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="path" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceSchema" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="recordWriter" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getMethodName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="depth" type="int"/>
      <doc>
      <![CDATA[Returns a method in the call stack at the given depth. Depth 0 will return the method that
 called this getMethodName, depth 1 the method that called it, etc...
 @param depth
 @return method name as String]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Convenience class to extend when decorating a StoreFunc. It's not abstract so that it will fail
 to compile if new methods get added to StoreFuncInterface. Subclasses must call the setStoreFunc
 with an instance of StoreFuncInterface before other methods can be called. Not doing so will
 result in an IllegalArgumentException when the method is called.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.StoreFuncWrapper -->
  <!-- start interface org.apache.pig.StoreMetadata -->
  <interface name="StoreMetadata"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Store statistics about the data being written.
 @param stats statistics to be recorded
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.  
 @throws IOException]]>
      </doc>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Store schema of the data being written
 @param schema Schema to be recorded
 @param location Location as returned by 
 {@link LoadFunc#relativeToAbsolutePath(String, org.apache.hadoop.fs.Path)}
 @param job The {@link Job} object - this should be used only to obtain 
 cluster properties through {@link Job#getConfiguration()} and not to set/query
 any runtime job information.  
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface defines how to write metadata related to data to be stored.
 If a given store function does not implement this interface, it will be assumed that it
 is unable to record metadata about the associated data.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.StoreMetadata -->
  <!-- start interface org.apache.pig.StoreResources -->
  <interface name="StoreResources"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a StoreFunc to specify a list of files it would like placed in the distributed 
 cache.
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Allow a StoreFunc to specify a list of files located locally and would like to ship to backend 
 (through distributed cache). Check for {@link FuncUtils} for utility function to facilitate it
 The default implementation returns null.
 @return A list of files]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface allow StoreFunc to specify resources needed
 in distributed cache. The resources can be on dfs (getCacheFiles)
 or locally (getShipFiles)
 @since Pig 0.14]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.StoreResources -->
  <!-- start interface org.apache.pig.StreamToPig -->
  <interface name="StreamToPig"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="Use {@link org.apache.pig.PigStreamingBase}">
    <method name="deserialize" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Given a byte array from a streaming executable, produce a tuple.
 @param bytes to deserialize.
 @return Data as a Pig Tuple.]]>
      </doc>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This will be called on the front end during planning and not on the back
 end during execution.

 @return the {@link LoadCaster} associated with this object, or null if
 there is no such LoadCaster.
 @throws IOException if there is an exception during LoadCaster]]>
      </doc>
    </method>
    <doc>
    <![CDATA[@deprecated Use {@link org.apache.pig.PigStreamingBase}]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.StreamToPig -->
  <!-- start interface org.apache.pig.TerminatingAccumulator -->
  <interface name="TerminatingAccumulator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <method name="isFinished" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This is an interface which, if implemented, allows an Accumulator
 function to signal that it can terminate early. Certain classes of
 UDF to do not need access to an entire set of data in order to
 finish processing. A model example is {org.apache.pig.builtin.IsEmpty}. IsEmpty
 can be Accumulative as if it receives even one line, it knows that
 it is not empty. Another example might be a UDF which does streaming
 analysis, and once a given stream matches a criteria, can terminate
 without needing any further analysis.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.TerminatingAccumulator -->
  <!-- start class org.apache.pig.TypedOutputEvalFunc -->
  <class name="TypedOutputEvalFunc" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypedOutputEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputTypeClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="verifyInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="minimumSize" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCounterGroup" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Incremented counters will use this as the counter group. Typically this works fine, since
 the subclass name is enough to identify the UDF. In some cases though (i.e. a UDF wrapper that
 is a facade to a number of different transformation functions), a more specific group name is
 needed.]]>
      </doc>
    </method>
    <method name="getTypeArguments" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="baseClass" type="java.lang.Class"/>
      <param name="childClass" type="java.lang.Class"/>
      <doc>
      <![CDATA[Get the actual type arguments a child class has used to extend a generic base class.

 @param baseClass the base class
 @param childClass the child class
 @return a list of the raw classes for the actual type arguments.]]>
      </doc>
    </method>
    <method name="verifyUdfInput"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="klass" type="java.lang.String"/>
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="minimumSize" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Increment Hadoop counters for bad inputs which are either null or too small.

 @param klass the name of the calling class, for recording purposes
 @param input the tuple passed to the UDF.
 @param minimumSize the minimum size required of the tuple.]]>
      </doc>
    </method>
    <method name="safeIncrCounter"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="increment" type="java.lang.Long"/>
    </method>
    <field name="outTypeClass" type="java.lang.Class"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Base class for Pig UDFs that are functions from Tuples to generic type OUT. Handles marshalling
 objects, basic error checking, etc. Also infers outputSchema and provides a function to verify
 the input Tuple.
 <P></P>
 Extend this class and implement the <pre>OUT exec(Tuple input)</pre> method when writting a UDF
 that operates on multiple inputs from the Tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.TypedOutputEvalFunc -->
  <doc>
  <![CDATA[<p>
Public interfaces and classes for Pig.
<p>
{@link org.apache.pig.PigServer} is the interface to Pig for use by other java
programs.  Other interfaces and classes in this package are for use by users
when implementing user defined functions.]]>
  </doc>
</package>
<package name="org.apache.pig.backend">
  <!-- start class org.apache.pig.backend.BackendException -->
  <class name="BackendException" extends="org.apache.pig.PigException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BackendException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="BackendException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new BackendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.BackendException -->
</package>
<package name="org.apache.pig.backend.datastorage">
  <!-- start interface org.apache.pig.backend.datastorage.ContainerDescriptor -->
  <interface name="ContainerDescriptor"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.datastorage.ElementDescriptor"/>
    <implements name="java.lang.Iterable"/>
  </interface>
  <!-- end interface org.apache.pig.backend.datastorage.ContainerDescriptor -->
  <!-- start interface org.apache.pig.backend.datastorage.DataStorage -->
  <interface name="DataStorage"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Place holder for possible initialization activities.]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Clean-up and releasing of resources.]]>
      </doc>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Provides configuration information about the storage itself.
 For instance global data-replication policies if any, default
 values, ... Some of such values could be overridden at a finer 
 granularity (e.g. on a specific object in the Data Storage)
 
 @return - configuration information]]>
      </doc>
    </method>
    <method name="updateConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfiguration" type="java.util.Properties"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
      <doc>
      <![CDATA[Provides a way to change configuration parameters
 at the Data Storage level. For instance, change the 
 data replication policy.
 
 @param newConfiguration - the new configuration settings
 @throws when configuration conflicts are detected]]>
      </doc>
    </method>
    <method name="getStatistics" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Provides statistics on the Storage: capacity values, how much 
 storage is in use...
 @return statistics on the Data Storage]]>
      </doc>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
      <doc>
      <![CDATA[Creates an entity handle for an object (no containment
 relation) from a String

 @param name of the object
 @return an object descriptor
 @throws DataStorageException if name does not conform to naming 
         convention enforced by the Data Storage.]]>
      </doc>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="element" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="java.lang.String"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="isContainer" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
      <doc>
      <![CDATA[Created an entity handle for a container.
 
 @param name of the container
 @return a container descriptor
 @throws DataStorageException if name does not conform to naming 
         convention enforced by the Data Storage.]]>
      </doc>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="container" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="java.lang.String"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asCollection" return="org.apache.pig.backend.datastorage.ElementDescriptor[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pattern" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="setActiveContainer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="container" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
    </method>
    <method name="getActiveContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="USED_BYTES_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RAW_CAPACITY_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RAW_USED_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[DataStorage provides an abstraction of a generic container.
 Special instances of it can be a file system.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.datastorage.DataStorage -->
  <!-- start class org.apache.pig.backend.datastorage.DataStorageException -->
  <class name="DataStorageException" extends="org.apache.pig.backend.BackendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DataStorageException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="DataStorageException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new DataStorageException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.datastorage.DataStorageException -->
  <!-- start interface org.apache.pig.backend.datastorage.ElementDescriptor -->
  <interface name="ElementDescriptor"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Comparable"/>
    <method name="getDataStorage" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Opens a stream onto which an entity can be written to.
 
 @param configuration information at the object level
 @return stream where to write
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dstName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <param name="dstConfiguration" type="java.util.Properties"/>
      <param name="removeSrc" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Copy entity from an existing one, possibly residing in a 
 different Data Storage.
 
 @param dstName name of entity to create
 @param dstConfiguration configuration for the new entity
 @param removeSrc if src entity needs to be removed after copying it
 @throws DataStorageException for instance, configuration 
         information for new entity is not compatible with 
         configuration information at the Data
         Storage level, user does not have privileges to read from
         source entity or write to destination storage...]]>
      </doc>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dstName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <param name="removeSrc" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Open for read a given entity
 
 @param configuration
 @return entity to read from
 @throws DataStorageExecption e.g. entity does not exist...]]>
      </doc>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Open an element in the Data Storage with support for random access 
 (seek operations).
 
 @param configuration
 @return a seekable input stream
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="exists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Checks whether the entity exists or not
 
 @return true if entity exists, false otherwise.]]>
      </doc>
    </method>
    <method name="rename"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Changes the name of an entity in the Data Storage
 
 @param newName new name of entity 
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="delete"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Remove entity from the Data Storage.
 
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Retrieve configuration information for entity
 @return configuration]]>
      </doc>
    </method>
    <method name="updateConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfig" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Update configuration information for this entity

 @param newConfig configuration
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="systemElement" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Defines whether the element is visible to users or 
 contains system's metadata
 @return true if this is system file; false otherwise]]>
      </doc>
    </method>
    <method name="getStatistics" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[List entity statistics
 @return DataStorageProperties]]>
      </doc>
    </method>
    <field name="BLOCK_SIZE_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Available from getConfiguration as a String and getStatistics as a Long.]]>
      </doc>
    </field>
    <field name="BLOCK_REPLICATION_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Available from getConfiguration as a String and getStatistics as a Short.]]>
      </doc>
    </field>
    <field name="LENGTH_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Available from getStatistics as a Long.]]>
      </doc>
    </field>
    <field name="MODIFICATION_TIME_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Available from getStatistics as a Long.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[DataStorageElementDescriptor provides methods necessary to manage an
 element in a DataStorage.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.datastorage.ElementDescriptor -->
  <!-- start class org.apache.pig.backend.datastorage.ImmutableOutputStream -->
  <class name="ImmutableOutputStream" extends="java.io.OutputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ImmutableOutputStream" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.datastorage.ImmutableOutputStream -->
  <!-- start class org.apache.pig.backend.datastorage.SeekableInputStream -->
  <class name="SeekableInputStream" extends="java.io.InputStream"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SeekableInputStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="seek"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="offset" type="long"/>
      <param name="whence" type="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Seeks to a given offset as specified by whence flags.
 If whence is SEEK_SET, offset is added to beginning of stream
 If whence is SEEK_CUR, offset is added to current position inside stream
 If whence is SEEK_END, offset is added to end of file position
 
 @param offset
 @param whence
 @throws IOException]]>
      </doc>
    </method>
    <method name="tell" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns current offset
 
 @return offset
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Unix-like API for an input stream that supports random access.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.datastorage.SeekableInputStream -->
  <!-- start class org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS -->
  <class name="SeekableInputStream.FLAGS" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="SEEK_SET" type="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SEEK_CUR" type="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SEEK_END" type="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS -->
</package>
<package name="org.apache.pig.backend.executionengine">
  <!-- start class org.apache.pig.backend.executionengine.ExecException -->
  <class name="ExecException" extends="org.apache.pig.backend.BackendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExecException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="ExecException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new ExecException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.executionengine.ExecException -->
  <!-- start interface org.apache.pig.backend.executionengine.ExecJob -->
  <interface name="ExecJob"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getStatus" return="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasCompleted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[true is the physical plan has executed successfully and results are ready
 to be retrieved
 
 @return true if execution has completed, false otherwise.
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getResults" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[if query has executed successfully we want to retrieve the results
 via iterating over them. 
 
 @return iterator for resulting tuples
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Returns the alias of relation generated by this job]]>
      </doc>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get configuration information
 
 @return configuration information for the execution engine]]>
      </doc>
    </method>
    <method name="getStatistics" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Can be information about the state (not submitted, e.g. the execute method
 has not been called yet; not running, e.g. execute has been issued, 
 but job is waiting; running...; completed; aborted...; progress information
 
 @return statistics relevant to the execution engine]]>
      </doc>
    </method>
    <method name="getPOStore" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return {@link POStore} object associated with the store]]>
      </doc>
    </method>
    <method name="completionNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cookie" type="java.lang.Object"/>
      <doc>
      <![CDATA[hook for asynchronous notification of job completion pushed from the back-end]]>
      </doc>
    </method>
    <method name="kill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Kills current job.
 
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getLogs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="log" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Collecting various forms of outputs]]>
      </doc>
    </method>
    <method name="getSTDOut"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getSTDError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="error" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getException" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get exceptions that happened during execution]]>
      </doc>
    </method>
    <field name="PROGRESS_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Abstraction on a job that the execution engine runs. It allows the front-end to
 retrieve information on job status and manage a running job.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.executionengine.ExecJob -->
  <!-- start class org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS -->
  <class name="ExecJob.JOB_STATUS" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="FAILED" type="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COMPLETED" type="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS -->
  <!-- start interface org.apache.pig.backend.executionengine.ExecutionEngine -->
  <interface name="ExecutionEngine"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This method is responsible for the initialization of the ExecutionEngine.
 All necessary setup tasks and configuration should execute in the init()
 method. This method will be called via the PigContext object.]]>
      </doc>
    </method>
    <method name="setConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfiguration" type="java.util.Properties"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Responsible for updating the properties for the ExecutionEngine. The
 update may require reinitialization of the engine, perhaps through
 another call to init() if appropriate. This decision is delegated to the
 ExecutionEngine -- that is, the caller will not call init() after
 updating the properties.

 The Properties passed in should replace any configuration that occurred
 from previous Properties object. The Properties object should also be
 updated to reflect the deprecation/modifications that the ExecutionEngine
 may trigger.

 @param newConfiguration -- Properties object holding all configuration vals]]>
      </doc>
    </method>
    <method name="setProperty"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="property" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <doc>
      <![CDATA[Responsible for setting a specific property and value. This method may be
 called as a result of a user "SET" command in the script or elsewhere in
 Pig to set certain properties.

 The properties object of the PigContext should be updated with the
 property and value with deprecation/other configuration done by the
 ExecutionEngine reflected. The ExecutionEngine should also update its
 internal configuration view as well.

 @param property to update
 @param value to set for property]]>
      </doc>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the Properties representation of the ExecutionEngine
 configuration. The Properties object returned does not have to be the
 same object between distinct calls to getConfiguration(). The ExecutionEngine
 may create a new Properties object populated with all the properties
 each time.]]>
      </doc>
    </method>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This method is responsible for the actual execution of a LogicalPlan. No
 assumptions is made about the architecture of the ExecutionEngine, except
 that it is capable of executing the LogicalPlan representation of a
 script. The ExecutionEngine should take care of all cleanup after
 executing the logical plan and returns an implementation of PigStats that
 contains the relevant information/statistics of the execution of the
 script.

 @param lp -- plan to compile
 @param grpName -- group name for submission
 @param pc -- context for execution
 @throws ExecException]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <param name="dir" type="java.io.File"/>
      <param name="suffix" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method handles the backend processing of the Explain command. Once
 again, no assumptions is made about the architecture of the
 ExecutionEngine, except that it is capable of "explaining" the
 LogicalPlan representation of a script. The ExecutionEngine should print
 all of it's explain statements in the PrintStream provided UNLESS the
 File object is NOT null. In that case, the file is the directory for
 which the ExecutionEngine must write out the explain statements into
 semantically distinct files. For example, if the ExecutionEngine operates
 on a PhysicalPlan and an ExecutionPlan then there would be two separate
 files detailing each. The suffix param indicates the suffix of each of
 these file names.

 @param lp -- plan to explain
 @param pc -- context for explain processing
 @param ps -- print stream to write all output to (if dir param is null)
 @param format -- format to print explain
 @param verbose
 @param dir -- directory to write output to. if not null, write to files
 @param suffix -- if writing to files, suffix to be used for each file


 @throws PlanException
 @throws VisitorException
 @throws IOException]]>
      </doc>
    </method>
    <method name="getDataStorage" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the DataStorage the ExecutionEngine is using.

 @return DataStorage the ExecutionEngine is using.]]>
      </doc>
    </method>
    <method name="instantiateScriptState" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates a ScriptState object which will be accessible as a ThreadLocal
 variable inside the ScriptState class. This method is called when first
 initializing the ScriptState as to delegate to the ExecutionEngine the
 version of ScriptState to use to manage the execution at hand.

 @return ScriptState object to manage execution of the script]]>
      </doc>
    </method>
    <method name="instantiatePigStats" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates a PigStats object which will be accessible as a ThreadLocal
 variable inside the PigStats class. This method is called when first
 initializing the PigStats.

 @return PigStats object.]]>
      </doc>
    </method>
    <method name="getExecutableManager" return="org.apache.pig.impl.streaming.ExecutableManager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the ExecutableManager to be used in Pig Streaming.

 @return ExecutableManager to be used in Pig Streaming.]]>
      </doc>
    </method>
    <method name="killJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobID" type="java.lang.String"/>
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
      <doc>
      <![CDATA[This method is called when a user requests to kill a job associated with
 the given job id. If it is not possible for a user to kill a job, throw a
 exception. It is imperative for the job id's being displayed to be unique
 such that the correct jobs are being killed when the user supplies the
 id.

 @throws BackendException]]>
      </doc>
    </method>
    <method name="destroy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Perform any cleanup operation]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The main interface bridging the front end and back end of Pig. This allows Pig
 to be ran on multiple Execution Engines, and not being limited to only Hadoop
 MapReduce. The ExecutionEngines must support the following methods as these
 are all the access points for the Pig frontend for processing. Traditionally
 there is one ExecutionEngine created per processing job, but this is not necessary.
 The ExecutionEngine instance comes from the ExecType, and it can choose to reuse
 ExecutionEngine instances. All specifications for methods are listed below
 as well as expected behavior, and the ExecutionEngine must conform to these.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.executionengine.ExecutionEngine -->
</package>
<package name="org.apache.pig.backend.hadoop">
  <!-- start class org.apache.pig.backend.hadoop.BigDecimalWritable -->
  <class name="BigDecimalWritable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <constructor name="BigDecimalWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWritable" type="java.math.BigDecimal"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="java.math.BigDecimal"/>
    </method>
    <method name="get" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.backend.hadoop.BigDecimalWritable"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.BigDecimalWritable -->
  <!-- start class org.apache.pig.backend.hadoop.BigDecimalWritable.Comparator -->
  <class name="BigDecimalWritable.Comparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalWritable.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <doc>
    <![CDATA[A Comparator optimized for BigDecimalWritable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.BigDecimalWritable.Comparator -->
  <!-- start class org.apache.pig.backend.hadoop.BigIntegerWritable -->
  <class name="BigIntegerWritable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <constructor name="BigIntegerWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWritable" type="java.math.BigInteger"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="java.math.BigInteger"/>
    </method>
    <method name="get" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.backend.hadoop.BigIntegerWritable"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.BigIntegerWritable -->
  <!-- start class org.apache.pig.backend.hadoop.BigIntegerWritable.Comparator -->
  <class name="BigIntegerWritable.Comparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerWritable.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <doc>
    <![CDATA[A Comparator optimized for BigIntegerWritable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.BigIntegerWritable.Comparator -->
  <!-- start class org.apache.pig.backend.hadoop.DateTimeWritable -->
  <class name="DateTimeWritable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <constructor name="DateTimeWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DateTimeWritable" type="org.joda.time.DateTime"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
    </method>
    <method name="get" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Returns true iff <code>o</code> is a DateTimeWritable with the same
 value.]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Writable for Double values.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.DateTimeWritable -->
  <!-- start class org.apache.pig.backend.hadoop.DateTimeWritable.Comparator -->
  <class name="DateTimeWritable.Comparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeWritable.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <doc>
    <![CDATA[A Comparator optimized for DateTimeWritable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.DateTimeWritable.Comparator -->
  <!-- start class org.apache.pig.backend.hadoop.DoubleWritable -->
  <class name="DoubleWritable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <constructor name="DoubleWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DoubleWritable" type="double"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="double"/>
    </method>
    <method name="get" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Returns true iff <code>o</code> is a DoubleWritable with the same value.]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Writable for Double values.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.DoubleWritable -->
  <!-- start class org.apache.pig.backend.hadoop.DoubleWritable.Comparator -->
  <class name="DoubleWritable.Comparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleWritable.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <doc>
    <![CDATA[A Comparator optimized for DoubleWritable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.DoubleWritable.Comparator -->
  <!-- start class org.apache.pig.backend.hadoop.HDataType -->
  <class name="HDataType" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HDataType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getWritableComparable" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="className" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNewWritableComparable" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getWritableComparableTypes" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="keyType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getWritableComparableTypes" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="findTypeFromClassName" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="className" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="findTypeFromNullableWritable" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[A class of helper methods for converting from pig data types to hadoop
 data types, and vice versa.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.HDataType -->
  <!-- start class org.apache.pig.backend.hadoop.HKerberos -->
  <class name="HKerberos" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HKerberos"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="tryKerberosKeytabLogin"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <doc>
    <![CDATA[Support for logging in using a kerberos keytab file.

 <br/>
 Kerberos is a authentication system that uses tickets with a limited valitity time.<br/>
 As a consequence running a pig script on a kerberos secured hadoop cluster limits the running time to at most
 the remaining validity time of these kerberos tickets. When doing really complex analytics this may become a
 problem as the job may need to run for a longer time than these ticket times allow.<br/>
 A kerberos keytab file is essentially a Kerberos specific form of the password of a user. <br/>
 It is possible to enable a Hadoop job to request new tickets when they expire by creating a keytab file and
 make it part of the job that is running in the cluster.
 This will extend the maximum job duration beyond the maximum renew time of the kerberos tickets.<br/>
 <br/>
 Usage:
 <ol>
      <li>Create a keytab file for the required principal.<br/>
      <p>Using the ktutil tool you can create a keytab using roughly these commands:<br/>
      <i>addent -password -p niels@EXAMPLE.NL -k 1 -e rc4-hmac<br/>
      addent -password -p niels@EXAMPLE.NL -k 1 -e aes256-cts<br/>
      wkt niels.keytab</i></p>
      </li>
      <li>Set the following properties (either via the .pigrc file or on the command line via -P file)<br/>
          <ul>
          <li><i>java.security.krb5.conf</i><br/>
              The path to the local krb5.conf file.<br/>
              Usually this is "/etc/krb5.conf"</li>
          <li><i>hadoop.security.krb5.principal</i><br/>
              The pricipal you want to login with.<br/>
              Usually this would look like this "niels@EXAMPLE.NL"</li>
          <li><i>hadoop.security.krb5.keytab</i><br/>
              The path to the local keytab file that must be used to authenticate with.<br/>
              Usually this would look like this "/home/niels/.krb/niels.keytab"</li>
          </ul></li>
 </ol>
 NOTE: All paths in these variables are local to the client system starting the actual pig script.
 This can be run without any special access to the cluster nodes.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.HKerberos -->
</package>
<package name="org.apache.pig.backend.hadoop.accumulo">
  <!-- start class org.apache.pig.backend.hadoop.accumulo.AbstractAccumuloStorage -->
  <class name="AbstractAccumuloStorage" extends="org.apache.pig.LoadFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <constructor name="AbstractAccumuloStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="extractArgs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cli" type="org.apache.commons.cli.CommandLine"/>
      <param name="opts" type="org.apache.pig.backend.hadoop.accumulo.AccumuloStorageOptions"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Extract arguments passed into the constructor to avoid the URI
 
 @param cli
 @param opts]]>
      </doc>
    </method>
    <method name="getCommandLine" return="org.apache.commons.cli.CommandLine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getInputFormatEntries" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getOutputFormatEntries" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="unsetEntriesFromConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="entriesToUnset" type="java.util.Map"/>
      <doc>
      <![CDATA[Removes the given values from the configuration, accounting for changes
 in the Configuration API given the version of Hadoop being used.
 
 @param conf
 @param entriesToUnset]]>
      </doc>
    </method>
    <method name="simpleUnset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="entriesToUnset" type="java.util.Map"/>
      <doc>
      <![CDATA[Unsets elements in the Configuration using the unset method
 
 @param conf
 @param entriesToUnset]]>
      </doc>
    </method>
    <method name="clearUnset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="entriesToUnset" type="java.util.Map"/>
      <doc>
      <![CDATA[Replaces the given entries in the configuration by clearing the
 Configuration and re-adding the elements that aren't in the Map of
 entries to unset
 
 @param conf
 @param entriesToUnset]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.accumulo.core.data.Key"/>
      <param name="value" type="org.apache.accumulo.core.data.Value"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="getWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getEntries" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="prefix" type="java.lang.String"/>
      <doc>
      <![CDATA[Extract elements from the Configuration whose keys match the given prefix
 
 @param conf
 @param prefix
 @return]]>
      </doc>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="makePair" return="org.apache.accumulo.core.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="first" type="java.lang.String"/>
      <param name="second" type="java.lang.String"/>
    </method>
    <method name="loadDependentJars"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Ensure that Accumulo's dependent jars are added to the Configuration to
 alleviate the need for clients to REGISTER dependency jars.
 
 @param job
            The Mapreduce Job object
 @throws IOException]]>
      </doc>
    </method>
    <method name="configureInputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <doc>
      <![CDATA[Method to allow specific implementations to add more elements to the Job
 for reading data from Accumulo.
 
 @param job]]>
      </doc>
    </method>
    <method name="configureOutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <doc>
      <![CDATA[Method to allow specific implementations to add more elements to the Job
 for writing data to Accumulo.
 
 @param job]]>
      </doc>
    </method>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getUDFProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns UDFProperties based on <code>contextSignature</code>.]]>
      </doc>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
    </method>
    <method name="getMutations" return="java.util.Collection"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="failure" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="tupleToText" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <param name="i" type="int"/>
      <param name="fieldSchemas" type="org.apache.pig.ResourceSchema.ResourceFieldSchema[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="objectToText" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="schemaToType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
    </method>
    <method name="schemaToType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="i" type="int"/>
      <param name="fieldSchemas" type="org.apache.pig.ResourceSchema.ResourceFieldSchema[]"/>
    </method>
    <method name="tupleToBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <param name="i" type="int"/>
      <param name="fieldSchemas" type="org.apache.pig.ResourceSchema.ResourceFieldSchema[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="objToText" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="objToBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="COLON" type="char"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="COMMA" type="char"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="ASTERISK" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="storageOptions" type="org.apache.pig.backend.hadoop.accumulo.AccumuloStorageOptions"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="commandLine" type="org.apache.commons.cli.CommandLine"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inst" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="zookeepers" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="user" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="password" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="table" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="tableName" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="authorizations" type="org.apache.accumulo.core.security.Authorizations"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="columns" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="start" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="end" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="maxWriteThreads" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="maxMutationBufferSize" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="maxLatency" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="columnSeparator" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="ignoreWhitespace" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="caster" type="org.apache.pig.LoadStoreCaster"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.pig.ResourceSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="contextSignature" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A LoadStoreFunc for retrieving data from and storing data to Accumulo
 
 A Key/Val pair will be returned as tuples: (key, colfam, colqual, colvis,
 timestamp, value). All fields except timestamp are DataByteArray, timestamp
 is a long.
 
 Tuples can be written in 2 forms: (key, colfam, colqual, colvis, value) OR
 (key, colfam, colqual, value)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.AbstractAccumuloStorage -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.AccumuloBinaryConverter -->
  <class name="AccumuloBinaryConverter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadStoreCaster"/>
    <constructor name="AccumuloBinaryConverter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="bytesToBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="bytesToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bd" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Not implemented!]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bi" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A LoadStoreCaster implementation which stores most type implementations as
 bytes generated from the toString representation with a UTF8 Charset. Pulled
 some implementations from the Accumulo Lexicoder implementations in 1.6.0.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.AccumuloBinaryConverter -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.AccumuloStorage -->
  <class name="AccumuloStorage" extends="org.apache.pig.backend.hadoop.accumulo.AbstractAccumuloStorage"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AccumuloStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Creates an AccumuloStorage which writes all values in a {@link Tuple}
 with an empty column family and doesn't group column families together on
 read (creates on {@link Map} for all columns)]]>
      </doc>
    </constructor>
    <constructor name="AccumuloStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Create an AccumuloStorage with a CSV of columns-families to use on write
 and whether columns in a row should be grouped by family on read.
 
 @param columns
            A comma-separated list of column families to use when writing
            data, aligned to the n'th entry in the tuple
 @param aggregateColfams
            Should unique column qualifier and value pairs be grouped
            together by column family when reading data]]>
      </doc>
    </constructor>
    <constructor name="AccumuloStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.accumulo.core.data.Key"/>
      <param name="value" type="org.apache.accumulo.core.data.Value"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="configureInputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
    </method>
    <method name="getMutations" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addColumn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="mutation" type="org.apache.accumulo.core.data.Mutation"/>
      <param name="colfam" type="java.lang.String"/>
      <param name="colqual" type="java.lang.String"/>
      <param name="columnValue" type="org.apache.accumulo.core.data.Value"/>
      <doc>
      <![CDATA[Adds the given column family, column qualifier and value to the given
 mutation
 
 @param mutation
 @param colfam
 @param colqual
 @param columnValue]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Basic PigStorage implementation that uses Accumulo as the backing store.
 
 <p>
 When writing data, the first entry in the {@link Tuple} is treated as the row
 in the Accumulo key, while subsequent entries in the tuple are handled as
 columns in that row. {@link Map}s are expanded, placing the map key in the
 column family and the map value in the Accumulo value. Scalars are placed
 directly into the value with an empty column qualifier. If the columns
 argument on the constructor is omitted, null or the empty String, no column
 family is provided on the Keys created for Accumulo
 </p>
 
 <p>
 When reading data, if aggregateColfams is true, elements in the same row and
 column family are aggregated into a single {@link Map}. This will result in a
 {@link Tuple} of length (unique_column_families + 1) for the given row. If
 aggregateColfams is false, column family and column qualifier are
 concatenated (separated by a colon), and placed into a {@link Map}. This will
 result in a {@link Tuple} with two entries, where the latter element has a
 number of elements equal to the number of columns in the given row.
 </p>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.AccumuloStorage -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.AccumuloStorageOptions -->
  <class name="AccumuloStorageOptions" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AccumuloStorageOptions"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getHelpMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCommandLine" return="org.apache.commons.cli.CommandLine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="java.lang.String"/>
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
    </method>
    <method name="hasAuthorizations" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cli" type="org.apache.commons.cli.CommandLine"/>
    </method>
    <method name="getAuthorizations" return="org.apache.accumulo.core.security.Authorizations"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cli" type="org.apache.commons.cli.CommandLine"/>
    </method>
    <method name="getLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cli" type="org.apache.commons.cli.CommandLine"/>
      <param name="o" type="org.apache.commons.cli.Option"/>
    </method>
    <method name="getInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cli" type="org.apache.commons.cli.CommandLine"/>
      <param name="o" type="org.apache.commons.cli.Option"/>
    </method>
    <field name="CASTER_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="AUTHORIZATIONS_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="START_ROW_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="END_ROW_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MUTATION_BUFFER_SIZE_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="WRITE_THREADS_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAX_LATENCY_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLUMN_SEPARATOR_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLUMN_IGNORE_WHITESPACE_OPTION" type="org.apache.commons.cli.Option"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.AccumuloStorageOptions -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.Column -->
  <class name="Column" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Column" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getType" return="org.apache.pig.backend.hadoop.accumulo.Column.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnFamily" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnQualifier" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="matchAll" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Extracts necessary information from a user provide column "specification":
 colf[[*]:[colq[*]]]
 
 Removes any trailing asterisk on colfam or colqual, and appropriately sets
 the {#link Column.Type}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.Column -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.Column.Type -->
  <class name="Column.Type" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.hadoop.accumulo.Column.Type[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.hadoop.accumulo.Column.Type"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="LITERAL" type="org.apache.pig.backend.hadoop.accumulo.Column.Type"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLFAM_PREFIX" type="org.apache.pig.backend.hadoop.accumulo.Column.Type"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLQUAL_PREFIX" type="org.apache.pig.backend.hadoop.accumulo.Column.Type"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.Column.Type -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.FixedByteArrayOutputStream -->
  <class name="FixedByteArrayOutputStream" extends="java.io.OutputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FixedByteArrayOutputStream" type="byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="off" type="int"/>
      <param name="len" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Uses a fixed length array and will not grow in size dynamically like the
 {@link java.io.ByteArrayOutputStream}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.FixedByteArrayOutputStream -->
  <!-- start class org.apache.pig.backend.hadoop.accumulo.Utils -->
  <class name="Utils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Utils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="addDependencyJars"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="classes" type="java.lang.Class[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="jarFinderGetJar" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="klass" type="java.lang.Class"/>
      <doc>
      <![CDATA[Returns the full path to the Jar containing the class. It always return a
 JAR.
 
 @param klass
            class.
 
 @return path to the Jar containing the class.]]>
      </doc>
    </method>
    <method name="jarDir"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dir" type="java.io.File"/>
      <param name="relativePath" type="java.lang.String"/>
      <param name="zos" type="java.util.zip.ZipOutputStream"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.accumulo.Utils -->
</package>
<package name="org.apache.pig.backend.hadoop.datastorage">
  <!-- start class org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil -->
  <class name="ConfigurationUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConfigurationUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toConfiguration" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="toConfiguration" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <param name="loadDefaults" type="boolean"/>
    </method>
    <method name="toProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="mergeConf"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="origConf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="replaceConf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[@param origConf
 @param replaceConf]]>
      </doc>
    </method>
    <method name="getLocalFSProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceConfigForLocalMode"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HConfiguration -->
  <class name="HConfiguration" extends="java.util.Properties"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HConfiguration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HConfiguration" type="org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getConfiguration" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HConfiguration -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HDataStorage -->
  <class name="HDataStorage" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.datastorage.DataStorage"/>
    <constructor name="HDataStorage" type="java.net.URI, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDataStorage" type="java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="updateConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfiguration" type="java.util.Properties"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="getStatistics" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="element" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="java.lang.String"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asElement" return="org.apache.pig.backend.datastorage.ElementDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="container" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="java.lang.String"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parent" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="child" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="setActiveContainer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="container" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
    </method>
    <method name="getActiveContainer" return="org.apache.pig.backend.datastorage.ContainerDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isContainer" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="asCollection" return="org.apache.pig.backend.hadoop.datastorage.HPath[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pattern" type="java.lang.String"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
    </method>
    <method name="getHFS" return="org.apache.hadoop.fs.FileSystem"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HDataStorage -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HDirectory -->
  <class name="HDirectory" extends="org.apache.pig.backend.hadoop.datastorage.HPath"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HDirectory" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dstName" type="org.apache.pig.backend.datastorage.ContainerDescriptor"/>
      <param name="dstConfiguration" type="java.util.Properties"/>
      <param name="removeSrc" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HDirectory -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HFile -->
  <class name="HFile" extends="org.apache.pig.backend.hadoop.datastorage.HPath"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HFile" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HFile -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HPath -->
  <class name="HPath" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.datastorage.ElementDescriptor"/>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HPath" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getDataStorage" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dstName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <param name="dstConfiguration" type="java.util.Properties"/>
      <param name="removeSrc" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="sopen" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="exists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="rename"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="delete"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPermission"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="permission" type="org.apache.hadoop.fs.permission.FsPermission"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="updateConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfig" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dstName" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
      <param name="removeSrc" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPath" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHFS" return="org.apache.hadoop.fs.FileSystem"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="systemElement" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.backend.datastorage.ElementDescriptor"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="path" type="org.apache.hadoop.fs.Path"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="fs" type="org.apache.pig.backend.hadoop.datastorage.HDataStorage"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HPath -->
  <!-- start class org.apache.pig.backend.hadoop.datastorage.HSeekableInputStream -->
  <class name="HSeekableInputStream" extends="org.apache.pig.backend.datastorage.SeekableInputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="seek"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="offset" type="long"/>
      <param name="whence" type="org.apache.pig.backend.datastorage.SeekableInputStream.FLAGS"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="tell" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="off" type="int"/>
      <param name="len" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="available" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="skip" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="mark"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="readlimit" type="int"/>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="markSupported" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="input" type="org.apache.hadoop.fs.FSDataInputStream"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="contentLength" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.datastorage.HSeekableInputStream -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.HExecutionEngine -->
  <class name="HExecutionEngine" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.executionengine.ExecutionEngine"/>
    <constructor name="HExecutionEngine" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobConf" return="org.apache.hadoop.mapred.JobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDataStorage" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getS3Conf" return="org.apache.hadoop.mapred.JobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getLocalConf" return="org.apache.hadoop.mapred.JobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getExecConf" return="org.apache.hadoop.mapred.JobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="properties" type="java.util.Properties"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getLogToPhyMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getForEachInnerLogToPhyMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <param name="file" type="java.io.File"/>
      <param name="suffix" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConfiguration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newConfiguration" type="java.util.Properties"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setProperty"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="property" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
    </method>
    <method name="getExecutableManager" return="org.apache.pig.impl.streaming.ExecutableManager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="killJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobID" type="java.lang.String"/>
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="destroy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="HADOOP_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CORE_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="YARN_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CORE_DEFAULT_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAPRED_DEFAULT_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="YARN_DEFAULT_SITE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILE_SYSTEM_LOCATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ALTERNATIVE_FILE_SYSTEM_LOCATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LOCAL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="pigContext" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="ds" type="org.apache.pig.backend.datastorage.DataStorage"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="launcher" type="org.apache.pig.backend.hadoop.executionengine.Launcher"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="logicalToPhysicalKeys" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="newLogToPhyMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.HExecutionEngine -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.HJob -->
  <class name="HJob" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.executionengine.ExecJob"/>
    <constructor name="HJob" type="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS, org.apache.pig.impl.PigContext, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HJob" type="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS, org.apache.pig.impl.PigContext, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore, java.lang.String, org.apache.pig.tools.pigstats.PigStats"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getStatus" return="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasCompleted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getResults" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getConfiguration" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStatistics" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="completionNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cookie" type="java.lang.Object"/>
    </method>
    <method name="kill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getLogs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="log" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getSTDOut"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getSTDError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="error" type="java.io.OutputStream"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="getException" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getPOStore" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the poStore]]>
      </doc>
    </method>
    <field name="status" type="org.apache.pig.backend.executionengine.ExecJob.JOB_STATUS"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigContext" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outFileSpec" type="org.apache.pig.impl.io.FileSpec"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="backendException" type="java.lang.Exception"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="alias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="poStore" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.HJob -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.JobCreationException -->
  <class name="JobCreationException" extends="org.apache.pig.impl.logicalLayer.FrontendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobCreationException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="JobCreationException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new JobCreationException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.JobCreationException -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.Launcher -->
  <class name="Launcher" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Launcher"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Resets the state after a launch]]>
      </doc>
    </method>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="Exception" type="java.lang.Exception"/>
      <doc>
      <![CDATA[Method to launch pig for hadoop either for a cluster's job tracker or for
 a local job runner. THe only difference between the two is the job
 client. Depending on the pig context the job client will be initialize to
 one of the two. Launchers for other frameworks can overide these methods.
 Given an input PhysicalPlan, it compiles it to get a MapReduce Plan. The
 MapReduce plan which has multiple MapReduce operators each one of which
 has to be run as a map reduce job with dependency information stored in
 the plan. It compiles the MROperPlan into a JobControl object. Each Map
 Reduce operator is converted into a Job and added to the JobControl
 object. Each Job also has a set of dependent Jobs that are created using
 the MROperPlan. The JobControl object is obtained from the
 JobControlCompiler Then a new thread is spawned that submits these jobs
 while respecting the dependency information. The parent thread monitors
 the submitted jobs' progress and after it is complete, stops the
 JobControl thread.

 @param php
 @param grpName
 @param pc
 @throws Exception]]>
      </doc>
    </method>
    <method name="explain"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Explain how a pig job will be executed on the underlying infrastructure.

 @param pp
            PhysicalPlan to explain
 @param pc
            PigContext to use for configuration
 @param ps
            PrintStream to write output on.
 @param format
            Format to write in
 @param verbose
            Amount of information to print
 @throws VisitorException
 @throws IOException]]>
      </doc>
    </method>
    <method name="kill"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="killJob"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobID" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="isComplete" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="prog" type="double"/>
    </method>
    <method name="computeTimeSpent" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="taskReports" type="java.util.Iterator"/>
    </method>
    <method name="getErrorMessages"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="reports" type="java.util.Iterator"/>
      <param name="type" type="java.lang.String"/>
      <param name="errNotDbg" type="boolean"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="calculateProgress" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jc" type="org.apache.hadoop.mapred.jobcontrol.JobControl"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Compute the progress of the current job submitted through the JobControl
 object jc to the JobClient jobClient

 @param jc
            - The JobControl object that has been submitted
 @param jobClient
            - The JobClient to which it has been submitted
 @return The progress as a precentage in double format
 @throws IOException]]>
      </doc>
    </method>
    <method name="getTotalHadoopTimeSpent" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setJobException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="throwable" type="java.lang.Throwable"/>
    </method>
    <method name="getExceptionFromString" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stackTrace" type="java.lang.String"/>
      <exception name="Exception" type="java.lang.Exception"/>
      <doc>
      <![CDATA[@param stackTrace
            The string representation of
            {@link Throwable#printStackTrace() printStackTrace} Handles
            internal PigException and its subclasses that override the
            {@link Throwable#toString() toString} method
 @return An exception object whose string representation of
         printStackTrace is the input stackTrace
 @throws Exception]]>
      </doc>
    </method>
    <method name="getStackTraceElement" return="java.lang.StackTraceElement"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="line" type="java.lang.String"/>
      <exception name="Exception" type="java.lang.Exception"/>
      <doc>
      <![CDATA[@param line
            the string representation of a stack trace returned by
            {@link Throwable#printStackTrace() printStackTrace}
 @return the StackTraceElement object representing the stack trace
 @throws Exception]]>
      </doc>
    </method>
    <method name="destroy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="jobControlExceptionStackTrace" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="jobControlException" type="java.lang.Exception"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="totalHadoopTimeSpent" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="failureMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="jc" type="org.apache.hadoop.mapred.jobcontrol.JobControl"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Provides core processing implementation for the backend of Pig
 if ExecutionEngine chosen decides to delegate it's work to this class.
 Also contains set of utility methods, including ones centered around
 Hadoop.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.Launcher -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.Launcher.JobControlThreadExceptionHandler -->
  <class name="Launcher.JobControlThreadExceptionHandler" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Thread.UncaughtExceptionHandler"/>
    <constructor name="Launcher.JobControlThreadExceptionHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="uncaughtException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="thread" type="java.lang.Thread"/>
      <param name="throwable" type="java.lang.Throwable"/>
    </method>
    <doc>
    <![CDATA[An exception handler class to handle exceptions thrown by the job controller thread
 Its a local class. This is the only mechanism to catch unhandled thread exceptions
 Unhandled exceptions in threads are handled by the VM if the handler is not registered
 explicitly or if the default handler is null]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.Launcher.JobControlThreadExceptionHandler -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.MapRedResult -->
  <class name="MapRedResult" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapRedResult" type="org.apache.pig.impl.io.FileSpec, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="outFileSpec" type="org.apache.pig.impl.io.FileSpec"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="parallelismRequest" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.MapRedResult -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.TaskContext -->
  <class name="TaskContext" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TaskContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
      <param name="delta" type="long"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="delta" type="long"/>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="status" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.TaskContext -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.fetch">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchContext -->
  <class name="FetchContext" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FetchContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCounter" return="org.apache.hadoop.mapred.Counters.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapred.Counters.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
    </method>
    <doc>
    <![CDATA[A dummy counter handling context for fetch tasks]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchContext -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher -->
  <class name="FetchLauncher" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FetchLauncher" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Runs the fetch task by executing chain of calls on the PhysicalPlan from the leaf
 up to the LoadFunc

 @param pp - Physical plan
 @return SimpleFetchPigStats instance representing the fetched result
 @throws IOException]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Creates an empty MR plan

 @param pp - Physical plan
 @param pc - PigContext
 @param ps - PrintStream to write the plan to
 @param format format of the output plan
 @throws PlanException
 @throws VisitorException
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class is responsible for executing the fetch task, saving the result to disk
 and do the necessary cleanup afterwards.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchOptimizer -->
  <class name="FetchOptimizer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FetchOptimizer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isFetchEnabled" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[Checks whether the fetch is enabled

 @param pc
 @return true if fetching is enabled]]>
      </doc>
    </method>
    <method name="isPlanFetchable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="pp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Visits the plan with {@link FetchablePlanVisitor} and checks whether the
 plan is fetchable.

 @param pc PigContext
 @param pp the physical plan to be examined
 @return true if the plan is fetchable
 @throws VisitorException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[FetchOptimizer determines whether the entire physical plan is fetchable, meaning
 that the task's result can be directly read (fetched) from the underlying storage
 rather than creating MR jobs. During the check {@link FetchablePlanVisitor} is used
 to walk through the plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchPOStoreImpl -->
  <class name="FetchPOStoreImpl" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FetchPOStoreImpl" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createStoreFunc" return="org.apache.pig.StoreFuncInterface"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="tearDown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class is used to have a POStore write the output to the underlying storage
 via a output collector/record writer in case of a fetch task. It sets up dummy context
 objects which otherwise would be initialized by the Hadoop job itself.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchPOStoreImpl -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchProgressableReporter -->
  <class name="FetchProgressableReporter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"/>
    <constructor name="FetchProgressableReporter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[A dummy ProgressableReporter used for fetch tasks]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchProgressableReporter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.fetch.FetchTaskContext -->
  <class name="FetchTaskContext" extends="org.apache.pig.backend.hadoop.executionengine.TaskContext"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FetchTaskContext" type="org.apache.pig.backend.hadoop.executionengine.fetch.FetchContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.pig.backend.hadoop.executionengine.fetch.FetchContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
      <param name="delta" type="long"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="delta" type="long"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.fetch.FetchTaskContext -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.AccumulatorOptimizer -->
  <class name="AccumulatorOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AccumulatorOptimizer" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to optimize plans that determines if a reduce plan can run in
 accumulative mode.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.AccumulatorOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnChainInfo -->
  <class name="ColumnChainInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Cloneable"/>
    <constructor name="ColumnChainInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o2" type="java.lang.Object"/>
    </method>
    <method name="insert"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="columns" type="java.util.List"/>
      <param name="type" type="byte"/>
    </method>
    <method name="insert"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="startCol" type="int"/>
      <param name="type" type="byte"/>
      <doc>
      <![CDATA[Insert new ColumnInfo for a project-star or project-range-to-end
 @param startCol
 @param type]]>
      </doc>
    </method>
    <method name="insertInReduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"/>
    </method>
    <method name="insertColumnChainInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="columnChainInfo" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnChainInfo"/>
    </method>
    <method name="getColumnInfos" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnInfo" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnChainInfo -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnInfo -->
  <class name="ColumnInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Cloneable"/>
    <constructor name="ColumnInfo" type="java.util.List, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ColumnInfo" type="int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor for range projection or project-star
 @param startCol
 @param type]]>
      </doc>
    </constructor>
    <method name="getResultType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStartCol" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRangeProject" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumns" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o2" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnInfo -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.CombinerOptimizer -->
  <class name="CombinerOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CombinerOptimizer" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="CombinerOptimizer" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, boolean, org.apache.pig.impl.plan.CompilationMessageCollector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getMessageCollector" return="org.apache.pig.impl.plan.CompilationMessageCollector"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[Optimize map reduce plans to use the combiner where possible.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.CombinerOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.DistinctCombiner -->
  <class name="DistinctCombiner" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DistinctCombiner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[A special implementation of combiner used only for distinct.  This combiner
 does not even parse out the records.  It just throws away duplicate values
 in the key in order to minimize the data being sent to the reduce.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.DistinctCombiner -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.DistinctCombiner.Combine -->
  <class name="DistinctCombiner.Combine" extends="org.apache.hadoop.mapreduce.Reducer"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DistinctCombiner.Combine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="reduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="tupIter" type="java.lang.Iterable"/>
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[The reduce function which removes values.]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.DistinctCombiner.Combine -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.FileBasedOutputSizeReader -->
  <class name="FileBasedOutputSizeReader" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigStatsOutputSizeReader"/>
    <constructor name="FileBasedOutputSizeReader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="supports" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sto" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Returns whether the given POStore is supported by this output size reader
 or not. We check whether the uri scheme of output file is one of hdfs,
 local, and s3.
 @param sto POStore]]>
      </doc>
    </method>
    <method name="getOutputSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sto" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the total size of output files in bytes
 @param sto POStore
 @param conf configuration]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Class that computes the size of output for file-based systems.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.FileBasedOutputSizeReader -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.IllustrateDummyReporter -->
  <class name="IllustrateDummyReporter" extends="org.apache.hadoop.mapreduce.StatusReporter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IllustrateDummyReporter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.lang.Enum"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.lang.String"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Dummy implementation of StatusReporter for illustrate mode]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.IllustrateDummyReporter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.InputSizeReducerEstimator -->
  <class name="InputSizeReducerEstimator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigReducerEstimator"/>
    <constructor name="InputSizeReducerEstimator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="estimateNumberOfReducers" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <param name="mapReduceOper" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Determines the number of reducers to be used.

 @param job job instance
 @param mapReduceOper
 @throws java.io.IOException]]>
      </doc>
    </method>
    <method name="getTotalInputFileSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="lds" type="java.util.List"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Class that estimates the number of reducers based on input size.
 Number of reducers is based on two properties:
 <ul>
     <li>pig.exec.reducers.bytes.per.reducer -
     how many bytes of input per reducer (default is 1000*1000*1000)</li>
     <li>pig.exec.reducers.max -
     constrain the maximum number of reducer task (default is 999)</li>
 </ul>
 If using a loader that implements LoadMetadata the reported input size is used, otherwise
 attempt to determine size from the filesystem.
 <p>
 e.g. the following is your pig script
 <pre>
 a = load '/data/a';
 b = load '/data/b';
 c = join a by $0, b by $0;
 store c into '/tmp';
 </pre>
 and the size of /data/a is 1000*1000*1000, and the size of /data/b is
 2*1000*1000*1000 then the estimated number of reducer to use will be
 (1000*1000*1000+2*1000*1000*1000)/(1000*1000*1000)=3]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.InputSizeReducerEstimator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler -->
  <class name="JobControlCompiler" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler" type="org.apache.pig.impl.PigContext, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JobControlCompiler" type="org.apache.pig.impl.PigContext, org.apache.hadoop.conf.Configuration, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getStores" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapred.jobcontrol.Job"/>
      <doc>
      <![CDATA[Returns all store locations of a previously compiled job]]>
      </doc>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Resets the state]]>
      </doc>
    </method>
    <method name="getJobMroMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Gets the map of Job and the MR Operator]]>
      </doc>
    </method>
    <method name="moveResults"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="completedJobs" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Moves all the results of a collection of MR jobs to the final
 output directory. Some of the results may have been put into a
 temp location to work around restrictions with multiple output
 from a single map reduce job.

 This method should always be called after the job execution
 completes.]]>
      </doc>
    </method>
    <method name="compile" return="org.apache.hadoop.mapred.jobcontrol.JobControl"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <exception name="JobCreationException" type="org.apache.pig.backend.hadoop.executionengine.JobCreationException"/>
      <doc>
      <![CDATA[Compiles all jobs that have no dependencies removes them from
 the plan and returns. Should be called with the same plan until
 exhausted.
 @param plan - The MROperPlan to be compiled
 @param grpName - The name given to the JobControl
 @return JobControl object - null if no more jobs in plan
 @throws JobCreationException]]>
      </doc>
    </method>
    <method name="updateMROpPlan" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="completeFailedJobs" type="java.util.List"/>
    </method>
    <method name="configureCompression"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="adjustNumReducers"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"/>
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <param name="nwJob" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Adjust the number of reducers based on the default_parallel, requested parallel and estimated
 parallel. For sampler jobs, we also adjust the next job in advance to get its runtime parallel as
 the number of partitions used in the sampler.
 @param plan the MR plan
 @param mro the MR operator
 @param nwJob the current job
 @throws IOException]]>
      </doc>
    </method>
    <method name="estimateNumberOfReducers" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <param name="mapReducerOper" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Looks up the estimator from REDUCER_ESTIMATOR_KEY and invokes it to find the number of
 reducers to use. If REDUCER_ESTIMATOR_KEY isn't set, defaults to InputSizeReducerEstimator.
 @param job
 @param mapReducerOper
 @throws IOException]]>
      </doc>
    </method>
    <method name="getCacheStagingDir" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFromCache" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="url" type="java.net.URL"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setOutputFormat"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
    </method>
    <field name="LOG_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="END_OF_INP_IN_MAP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_MAP_COUNTER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_MAP_RANK_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_MAP_SEPARATOR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="globalCounters" type="java.util.HashMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALL_JOB_LOG_MSG" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIG_JOB_LOG_MSG" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_MAP_STORES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[We will serialize the POStore(s) present in map and reduce in lists in
 the Hadoop Conf. In the case of Multi stores, we could deduce these from
 the map plan and reduce plan but in the case of single store, we remove
 the POStore from the plan - in either case, we serialize the POStore(s)
 so that PigOutputFormat and PigOutputCommiter can get the POStore(s) in
 the same way irrespective of whether it is multi store or single store.]]>
      </doc>
    </field>
    <field name="PIG_REDUCE_STORES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This is compiler class that takes an MROperPlan and converts
 it into a JobControl object with the relevant dependency info
 maintained. The JobControl Object is made up of Jobs each of
 which has a JobConf. The MapReduceOper corresponds to a Job
 and the getJobCong method returns the JobConf that is configured
 as per the MapReduceOper

 <h2>Comparator Design</h2>
 <p>
 A few words on how comparators are chosen.  In almost all cases we use raw
 comparators (the one exception being when the user provides a comparison
 function for order by).  For order by queries the PigTYPERawComparator
 functions are used, where TYPE is Int, Long, etc.  These comparators are
 null aware and asc/desc aware.  The first byte of each of the
 NullableTYPEWritable classes contains info on whether the value is null.
 Asc/desc is written as an array into the JobConf with the key pig.sortOrder
 so that it can be read by each of the comparators as part of their
 setConf call.
 <p>
 For non-order by queries, PigTYPEWritableComparator classes are used.
 These are all just type specific instances of WritableComparator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBagWritableComparator -->
  <class name="JobControlCompiler.PigBagWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigBagWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBagWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBigDecimalWritableComparator -->
  <class name="JobControlCompiler.PigBigDecimalWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigBigDecimalWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBigDecimalWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBigIntegerWritableComparator -->
  <class name="JobControlCompiler.PigBigIntegerWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigBigIntegerWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBigIntegerWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBooleanWritableComparator -->
  <class name="JobControlCompiler.PigBooleanWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigBooleanWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigBooleanWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigCharArrayWritableComparator -->
  <class name="JobControlCompiler.PigCharArrayWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigCharArrayWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigCharArrayWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDateTimeWritableComparator -->
  <class name="JobControlCompiler.PigDateTimeWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigDateTimeWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDateTimeWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDBAWritableComparator -->
  <class name="JobControlCompiler.PigDBAWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigDBAWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDBAWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDoubleWritableComparator -->
  <class name="JobControlCompiler.PigDoubleWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigDoubleWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigDoubleWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigFloatWritableComparator -->
  <class name="JobControlCompiler.PigFloatWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigFloatWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigFloatWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBagWritableComparator -->
  <class name="JobControlCompiler.PigGroupingBagWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingBagWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBagWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBigDecimalWritableComparator -->
  <class name="JobControlCompiler.PigGroupingBigDecimalWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingBigDecimalWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBigDecimalWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBigIntegerWritableComparator -->
  <class name="JobControlCompiler.PigGroupingBigIntegerWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingBigIntegerWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBigIntegerWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBooleanWritableComparator -->
  <class name="JobControlCompiler.PigGroupingBooleanWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingBooleanWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingBooleanWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingCharArrayWritableComparator -->
  <class name="JobControlCompiler.PigGroupingCharArrayWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingCharArrayWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingCharArrayWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDateTimeWritableComparator -->
  <class name="JobControlCompiler.PigGroupingDateTimeWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingDateTimeWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDateTimeWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDBAWritableComparator -->
  <class name="JobControlCompiler.PigGroupingDBAWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingDBAWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDBAWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDoubleWritableComparator -->
  <class name="JobControlCompiler.PigGroupingDoubleWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingDoubleWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingDoubleWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingFloatWritableComparator -->
  <class name="JobControlCompiler.PigGroupingFloatWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingFloatWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingFloatWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingIntWritableComparator -->
  <class name="JobControlCompiler.PigGroupingIntWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingIntWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingIntWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingLongWritableComparator -->
  <class name="JobControlCompiler.PigGroupingLongWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingLongWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingLongWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingPartitionWritableComparator -->
  <class name="JobControlCompiler.PigGroupingPartitionWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingPartitionWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingPartitionWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingTupleWritableComparator -->
  <class name="JobControlCompiler.PigGroupingTupleWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigGroupingTupleWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigGroupingTupleWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigIntWritableComparator -->
  <class name="JobControlCompiler.PigIntWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigIntWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigIntWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigLongWritableComparator -->
  <class name="JobControlCompiler.PigLongWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigLongWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigLongWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigSecondaryKeyGroupComparator -->
  <class name="JobControlCompiler.PigSecondaryKeyGroupComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigSecondaryKeyGroupComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="b" type="org.apache.hadoop.io.WritableComparable"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigSecondaryKeyGroupComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigTupleWritableComparator -->
  <class name="JobControlCompiler.PigTupleWritableComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigTupleWritableComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigTupleWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator -->
  <class name="JobControlCompiler.PigWritableComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobControlCompiler.PigWritableComparator" type="java.lang.Class"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.PigWritableComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.KeyTypeDiscoveryVisitor -->
  <class name="KeyTypeDiscoveryVisitor" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="KeyTypeDiscoveryVisitor" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan The MROperPlan to visit to discover keyType]]>
      </doc>
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to figure out the type of the key for the map plan
 this is needed when the key is null to create
 an appropriate NullableXXXWritable object]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.KeyTypeDiscoveryVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.LimitAdjuster -->
  <class name="LimitAdjuster" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LimitAdjuster" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="adjust"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.LimitAdjuster -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.LocalExecType -->
  <class name="LocalExecType" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.ExecType"/>
    <constructor name="LocalExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="getExecutionEngine" return="org.apache.pig.backend.executionengine.ExecutionEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getExecutionEngineClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[LocalExecType is the ExecType for local mode in Hadoop Mapreduce.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.LocalExecType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher -->
  <class name="MapReduceLauncher" extends="org.apache.pig.backend.hadoop.executionengine.Launcher"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapReduceLauncher"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="kill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="killJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobID" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="getError" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spec" type="org.apache.pig.impl.io.FileSpec"/>
      <doc>
      <![CDATA[Get the exception that caused a failure on the backend for a
 store location (if any).]]>
      </doc>
    </method>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="JobCreationException" type="org.apache.pig.backend.hadoop.executionengine.JobCreationException"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <field name="SUCCEEDED_FILE_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Main class that launches pig for Map Reduce]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper -->
  <class name="MapReduceOper" extends="org.apache.pig.impl.plan.Operator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapReduceOper" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Uses the string representation of the 
 component plans to identify itself.]]>
      </doc>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="isMapDone" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMapDone"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapDone" type="boolean"/>
    </method>
    <method name="setMapDoneSingle"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapDone" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="setMapDoneMultiple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapDone" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="isReduceDone" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setReduceDone"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reduceDone" type="boolean"/>
    </method>
    <method name="isGlobalSort" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSkewedJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSkewedJoinPartitionFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="file" type="java.lang.String"/>
    </method>
    <method name="getSkewedJoinPartitionFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="skJoin" type="boolean"/>
    </method>
    <method name="getSkewedJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setGlobalSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="globalSort" type="boolean"/>
    </method>
    <method name="isLimitAfterSort" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimitAfterSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="las" type="boolean"/>
    </method>
    <method name="isLimitOnly" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimitOnly"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limitOnly" type="boolean"/>
    </method>
    <method name="isIndexer" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markIndexer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSampler" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSampler"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isGroupBy" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markGroupBy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isCogroup" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markCogroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRegularJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markRegularJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="needsDistinctCombiner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNeedsDistinctCombiner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nic" type="boolean"/>
    </method>
    <method name="getQuantFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setQuantFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="quantFile" type="java.lang.String"/>
    </method>
    <method name="setSortOrder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortOrder" type="boolean[]"/>
    </method>
    <method name="setSecondarySortOrder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="secondarySortOrder" type="boolean[]"/>
    </method>
    <method name="getSortOrder" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSecondarySortOrder" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEndOfAllInputSetInMap" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return whether end of all input is set in the map plan]]>
      </doc>
    </method>
    <method name="setEndOfAllInputInMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endOfAllInputInMap" type="boolean"/>
      <doc>
      <![CDATA[@param endOfAllInputInMap the streamInMap to set]]>
      </doc>
    </method>
    <method name="isEndOfAllInputSetInReduce" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return whether end of all input is set in the reduce plan]]>
      </doc>
    </method>
    <method name="setEndOfAllInputInReduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endOfAllInputInReduce" type="boolean"/>
      <doc>
      <![CDATA[@param endOfAllInputInReduce the streamInReduce to set]]>
      </doc>
    </method>
    <method name="getRequestedParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCustomPartitioner" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSplitter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="boolean"/>
    </method>
    <method name="isSplitter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUseSecondaryKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="usingTypedComparator" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="useTypedComparator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="useTypedComparator" type="boolean"/>
    </method>
    <method name="noCombineSmallSplits"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="combineSmallSplits" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRankOperation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRankOperationId" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isCounterOperation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRowNumber" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOperationID" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="mapPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="reducePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="combinePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mapKeyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mapKeyTypeOfSplittees" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDFs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="scalars" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="phyToMRMap" type="org.apache.pig.impl.util.MultiMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[An operator model for a Map Reduce job. 
 Acts as a host to the plans that will
 execute in map, reduce and optionally combine
 phases. These will be embedded in the MROperPlan
 in order to capture the dependencies amongst jobs.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReducePOStoreImpl -->
  <class name="MapReducePOStoreImpl" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapReducePOStoreImpl" type="org.apache.hadoop.mapreduce.TaskInputOutputContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createStoreFunc" return="org.apache.pig.StoreFuncInterface"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="tearDown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="incrRecordCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="incr" type="long"/>
    </method>
    <doc>
    <![CDATA[This class is used to have a POStore write to DFS via a output
 collector/record writer. It sets up a modified job configuration to
 force a write to a specific subdirectory of the main output
 directory. This is done so that multiple output directories can be
 used in the same job.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReducePOStoreImpl -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MergeJoinIndexer -->
  <class name="MergeJoinIndexer" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MergeJoinIndexer" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param funcSpec : Loader specification.
  @param innerPlan : This is serialized version of LR plan. We 
  want to keep only keys in our index file and not the whole tuple. So, we need LR and thus its plan
  to get keys out of the sampled tuple.  
 @param serializedPhyPlan Serialized physical plan on right side.
 @throws ExecException]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Merge Join indexer is used to generate on the fly index for doing Merge Join efficiently.
  It samples first record from every block of right side input. 
  and returns tuple in the following format : 
  (key0, key1,...,position,splitIndex)
  These tuples are then sorted before being written out to index file on HDFS.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MergeJoinIndexer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler -->
  <class name="MRCompiler" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRCompiler" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="MRCompilerException" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompilerException"/>
    </constructor>
    <constructor name="MRCompiler" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="MRCompilerException" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompilerException"/>
    </constructor>
    <method name="aggregateScalarsFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getMRPlan" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used to get the compiled plan
 @return map reduce plan built by the compiler]]>
      </doc>
    </method>
    <method name="getPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used to get the plan that was compiled
 @return physical plan]]>
      </doc>
    </method>
    <method name="getMessageCollector" return="org.apache.pig.impl.plan.CompilationMessageCollector"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[The front-end method that the user calls to compile
 the plan. Assumes that all submitted plans have a Store
 operators as the leaf.
 @return A map reduce plan
 @throws IOException
 @throws PlanException
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="connectSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Compiles a split operator. The logic is to
 close the split job by replacing the split oper by
 a store and creating a new Map MRoper and return
 that as the current MROper to which other operators
 would be compiled into. The new MROper would be connected
 to the split job by load-store. Also add the split oper
 to the splitsSeen map.
 @param op - The split operator
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCross"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCross"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGlobalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[This is an operator which will have multiple inputs(= to number of join inputs)
 But it prunes off all inputs but the fragment input and creates separate MR jobs
 for each of the replicated inputs and uses these as the replicated files that
 are configured in the POFRJoin operator. It also sets that this is FRJoin job
 and some parametes associated with it.]]>
      </doc>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Leftmost relation is referred as base relation (this is the one fed into mappers.)
  First, close all MROpers except for first one (referred as baseMROPer)
  Then, create a MROper which will do indexing job (idxMROper)
  Connect idxMROper before the mappedMROper in the MRPlan.]]>
      </doc>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="joinOp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Since merge-join works on two inputs there are exactly two MROper predecessors identified  as left and right.
  Instead of merging two operators, both are used to generate a MR job each. First MR oper is run to generate on-the-fly index on right side.
  Second is used to actually do the join. First MR oper is identified as rightMROper and second as curMROper.

  1) RightMROper: If it is in map phase. It can be preceded only by POLoad. If there is anything else
                  in physical plan, that is yanked and set as inner plans of joinOp.
                  If it is reduce phase. Close this operator and start new MROper.
  2) LeftMROper:  If it is in map phase, add the Join operator in it.
                  If it is in reduce phase. Close it and start new MROper.]]>
      </doc>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[For the counter job, it depends if it is row number or not.
 In case of being a row number, any previous jobs are saved
 and POCounter is added as a leaf on a map task.
 If it is not, then POCounter is added as a leaf on a reduce
 task (last sorting phase).]]>
      </doc>
    </method>
    <method name="visitRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[In case of PORank, it is closed any other previous job (containing
 POCounter as a leaf) and PORank is added on map phase.]]>
      </doc>
    </method>
    <field name="USER_COMPARATOR_MARKER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILE_CONCATENATION_THRESHOLD" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OPTIMISTIC_FILE_CONCATENATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The compiler that compiles a given physical plan
 into a DAG of MapReduce operators which can then
 be converted into the JobControl structure.

 Is implemented as a visitor of the PhysicalPlan it
 is compiling.

 Currently supports all operators except the MR Sort
 operator

 Uses a predecessor based depth first traversal.
 To compile an operator, first compiles
 the predecessors into MapReduce Operators and tries to
 merge the current operator into one of them. The goal
 being to keep the number of MROpers to a minimum.

 It also merges multiple Map jobs, created by compiling
 the inputs individually, into a single job. Here a new
 map job is created and then the contents of the previous
 map plans are added. However, any other state that was in
 the previous map plans, should be manually moved over. So,
 if you are adding something new take care about this.
 Ex of this is in requestedParallelism

 Only in case of blocking operators and splits, a new
 MapReduce operator is started using a store-load combination
 to connect the two operators. Whenever this happens
 care is taken to add the MROper into the MRPlan and connect it
 appropriately.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompilerException -->
  <class name="MRCompilerException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRCompilerException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="MRCompilerException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new MRCompilerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompilerException -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRConfiguration -->
  <class name="MRConfiguration" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRConfiguration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="CHILD_JAVA_OPTS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILEOUTPUTCOMMITTER_MARKSUCCESSFULJOBS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FRAMEWORK_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INPUT_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INPUT_DIR_RECURSIVE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INPUTFORMAT_CLASS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IO_SORT_MB" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JAR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_APPLICATION_ATTEMPT_ID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_CACHE_FILES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_CREDENTIALS_BINARY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_CREDENTIALS_JSON" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_END_NOTIFICATION_RETRY_INTERVAL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_HDFS_SERVERS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_ID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_PRIORITY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_QUEUE_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_REDUCE_MARKRESET_BUFFER_PERCENT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_TRACKER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_TRACKER_HTTP_ADDRESS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_REDUCES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LINERECORDREADER_MAXLENGTH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_MAX_ATTEMPTS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_TASKS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAPPER_NEW_API" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAX_SPLIT_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT_BASENAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT_COMPRESS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT_COMPRESSION_CODEC" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_MAX_ATTEMPTS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_TASKS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCER_NEW_API" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SUMIT_REPLICATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_ID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_IS_MAP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_PARTITION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_TIMEOUT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TEXTOUTPUTFORMAT_SEPARATOR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="WORK_OUPUT_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRConfiguration -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRExecType -->
  <class name="MRExecType" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.ExecType"/>
    <constructor name="MRExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="getExecutionEngine" return="org.apache.pig.backend.executionengine.ExecutionEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getExecutionEngineClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[MRExecType is the ExecType for distributed mode in Hadoop Mapreduce.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRExecType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRExecutionEngine -->
  <class name="MRExecutionEngine" extends="org.apache.pig.backend.hadoop.executionengine.HExecutionEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRExecutionEngine" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="instantiateScriptState" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="instantiatePigStats" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRExecutionEngine -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRTaskContext -->
  <class name="MRTaskContext" extends="org.apache.pig.backend.hadoop.executionengine.TaskContext"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRTaskContext" type="org.apache.hadoop.mapreduce.TaskInputOutputContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.hadoop.mapreduce.TaskInputOutputContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
      <param name="delta" type="long"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="delta" type="long"/>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="status" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRTaskContext -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRUtil -->
  <class name="MRUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="simpleConnectMapToReduce"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="getPlainForEachOP" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.NativeMapReduceOper -->
  <class name="NativeMapReduceOper" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NativeMapReduceOper" type="org.apache.pig.impl.plan.OperatorKey, java.lang.String, java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobNumber" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJobId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCommandString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="runJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="JobCreationException" type="org.apache.pig.backend.hadoop.executionengine.JobCreationException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.NativeMapReduceOper -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PhyPlanSetter -->
  <class name="PhyPlanSetter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PhyPlanSetter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ld" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGlobalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nfe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="un" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDemux"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="demux" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitConstant"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cnst" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitProject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="proj" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGreaterThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="grt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLessThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNotEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRegexp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="re" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitIsNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isNull" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitAdd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="add" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSubtract"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sub" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Subtract"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMultiply"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mul" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Multiply"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDivide"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dv" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Divide"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMod"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mod" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Mod"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitAnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="and" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitOr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="or" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNot"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="not" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitBinCond"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binCond" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond"/>
    </method>
    <method name="visitNegative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="negative" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="compFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMapLookUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapLookUp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lim" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPartialAgg"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poPartialAgg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOOptimizedForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="optimizedForEach" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPreCombinerLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preCombinerLocalRearrange" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mergeCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitReservoirSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reservoirSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POReservoirSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPoissonSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poissonSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPoissonSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[Sets the parent plan for all Physical Operators. Note: parentPlan
 is a bit of a misnomer. We actually want all the operators to point
 to the same plan - not necessarily the one they're a member of.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PhyPlanSetter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigDecimalRawComparator -->
  <class name="PigBigDecimalRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigBigDecimalRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableBigDecimalWritables as raw bytes.  If neither are null,
 then BigDecimalWritable.compare() is used.  If both are null then the indices
 are compared. Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigDecimalRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigIntegerRawComparator -->
  <class name="PigBigIntegerRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigBigIntegerRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableBigIntegerWritables as raw bytes.  If neither are null,
 then BigIntegerWritable.compare() is used.  If both are null then the indices
 are compared. Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigIntegerRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBooleanRawComparator -->
  <class name="PigBooleanRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigBooleanRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes.  If neither are null,
 then BooleanWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBooleanRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator -->
  <class name="PigBytesRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigBytesRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableBytesWritables as raw bytes.
 If both are null, then the indices are compared.
 If neither are null
    and both are bytearrays, then direct Writable.compareBytes is used.
    For non-bytearrays, we use BinInterSedesTupleRawComparator.
 If either is null, null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigCombiner -->
  <class name="PigCombiner" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigCombiner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigCombiner -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigCombiner.Combine -->
  <class name="PigCombiner.Combine" extends="org.apache.hadoop.mapreduce.Reducer"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigCombiner.Combine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Configures the Reduce plan, the POPackage operator
 and the reporter thread]]>
      </doc>
    </method>
    <method name="reduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="tupIter" type="java.lang.Iterable"/>
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[The reduce function which packages the key and List &lt;Tuple&gt;
 into key, Bag&lt;Tuple&gt; after converting Hadoop type key into Pig type.
 The package result is either collected as is, if the reduce plan is
 empty or after passing through the reduce plan.]]>
      </doc>
    </method>
    <method name="processOnePackageOutput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Will be called once all the intermediate keys and values are
 processed.
 cleanup references to the PhysicalPlan]]>
      </doc>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyType]]>
      </doc>
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
      <doc>
      <![CDATA[@param keyType the keyType to set]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigCombiner.Combine -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDateTimeRawComparator -->
  <class name="PigDateTimeRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigDateTimeRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes. If neither are null, then
 IntWritable.compare() is used. If both are null then the indices are
 compared. Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDateTimeRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDoubleRawComparator -->
  <class name="PigDoubleRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigDoubleRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes.  If neither are null,
 then IntWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDoubleRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat -->
  <class name="PigFileInputFormat" extends="org.apache.hadoop.mapreduce.lib.input.FileInputFormat"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigFileInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="listStatus" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFloatRawComparator -->
  <class name="PigFloatRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigFloatRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes.  If neither are null,
 then IntWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFloatRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase -->
  <class name="PigGenericMapBase" extends="org.apache.hadoop.mapreduce.Mapper"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setMapPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[for local map/reduce simulation
 @param plan the map plan]]>
      </doc>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Will be called when all the tuples in the input
 are done. So reporter thread should be closed.]]>
      </doc>
    </method>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Configures the mapper with the map plan and the
 reproter thread]]>
      </doc>
    </method>
    <method name="map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.io.Text"/>
      <param name="inpTuple" type="org.apache.pig.data.Tuple"/>
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[The map function that attaches the inpTuple appropriately
 and executes the map plan if its not empty. Collects the
 result of execution into oc or the input directly to oc
 if map plan empty. The collection is left abstract for the
 map-only or map-reduce job to implement. Map-only collects
 the tuple as-is whereas map-reduce collects it after extracting
 the key and indexed tuple.]]>
      </doc>
    </method>
    <method name="runPipeline"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="leaf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="collect"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="inIllustrator" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyType]]>
      </doc>
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
      <doc>
      <![CDATA[@param keyType the keyType to set]]>
      </doc>
    </method>
    <method name="getIllustratorContext" return="org.apache.hadoop.mapreduce.Mapper.Context"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="input" type="org.apache.pig.data.DataBag"/>
      <param name="output" type="java.util.List"/>
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="keyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="stores" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="tf" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorInMap" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class is the base class for PigMapBase, which has slightly
 difference among different versions of hadoop. PigMapBase implementation
 is located in $PIG_HOME/shims.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce -->
  <class name="PigGenericMapReduce" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="sJobContext" type="org.apache.hadoop.mapreduce.JobContext"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="sJobConf" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link UDFContext} instead in the following way to get
 the job's {@link Configuration}:
 lEsS_tHaNpre>UdfContext.getUdfContext().getJobConf()lEsS_tHaN/pre>">
      <doc>
      <![CDATA[@deprecated Use {@link UDFContext} instead in the following way to get
 the job's {@link Configuration}:
 <pre>UdfContext.getUdfContext().getJobConf()</pre>]]>
      </doc>
    </field>
    <field name="sJobConfInternal" type="java.lang.ThreadLocal"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class is the static Mapper &amp; Reducer classes that
 are used by Pig to execute Pig Map Reduce jobs. Since
 there is a reduce phase, the leaf is bound to be a
 POLocalRearrange. So the map phase has to separate the
 key and tuple and collect it into the output
 collector.

 The shuffle and sort phase sorts these keys &amp; tuples
 and creates key, List&lt;Tuple&gt; and passes the key and
 iterator to the list. The deserialized POPackage operator
 is used to package the key, List&lt;Tuple&gt; into pigKey,
 Bag&lt;Tuple&gt; where pigKey is of the appropriate pig type and
 then the result of the package is attached to the reduce
 plan which is executed if its not empty. Either the result
 of the reduce plan or the package res is collected into
 the output collector.

 The index of the tuple (that is, which bag it should be placed in by the
 package) is packed into the key.  This is done so that hadoop sorts the
 keys in order of index for join.

 This class is the base class for PigMapReduce, which has slightly
 difference among different versions of hadoop. PigMapReduce implementation
 is located in $PIG_HOME/shims.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Map -->
  <class name="PigGenericMapReduce.Map" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Map -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.MapWithComparator -->
  <class name="PigGenericMapReduce.MapWithComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce.MapWithComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This "specialized" map class is ONLY to be used in pig queries with
 order by a udf. A UDF used for comparison in the order by expects
 to be handed tuples. Hence this map class ensures that the "key" used
 in the order by is wrapped into a tuple (if it isn't already a tuple)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.MapWithComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.MapWithPartitionIndex -->
  <class name="PigGenericMapReduce.MapWithPartitionIndex" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Map"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce.MapWithPartitionIndex"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="runPipeline"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="leaf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <doc>
    <![CDATA[Used by Skewed Join]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.MapWithPartitionIndex -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Reduce -->
  <class name="PigGenericMapReduce.Reduce" extends="org.apache.hadoop.mapreduce.Reducer"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce.Reduce"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setReducePlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[Set the reduce plan: to be used by local runner for illustrator
 @param plan Reduce plan]]>
      </doc>
    </method>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Configures the Reduce plan, the POPackage operator
 and the reporter thread]]>
      </doc>
    </method>
    <method name="reduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="tupIter" type="java.lang.Iterable"/>
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[The reduce function which packages the key and List&lt;Tuple&gt;
 into key, Bag&lt;Tuple&gt; after converting Hadoop type key into Pig type.
 The package result is either collected as is, if the reduce plan is
 empty or after passing through the reduce plan.]]>
      </doc>
    </method>
    <method name="processOnePackageOutput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="runPipeline"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="leaf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param leaf
 @throws InterruptedException
 @throws IOException]]>
      </doc>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Will be called once all the intermediate keys and values are
 processed. So right place to stop the reporter thread.]]>
      </doc>
    </method>
    <method name="getIllustratorContext" return="org.apache.hadoop.mapreduce.Reducer.Context"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapred.jobcontrol.Job"/>
      <param name="input" type="java.util.List"/>
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Get reducer's illustrator context

 @param input Input buffer as output by maps
 @param pkg package
 @return reducer's illustrator context
 @throws IOException
 @throws InterruptedException]]>
      </doc>
    </method>
    <method name="inIllustrator" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
    </method>
    <method name="getPack" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
    </method>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="rp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="stores" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pack" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outputCollector" type="org.apache.hadoop.mapreduce.Reducer.Context"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorInReduce" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="initialized" type="boolean"
      transient="false" volatile="true"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.Reduce -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.ReduceWithComparator -->
  <class name="PigGenericMapReduce.ReduceWithComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce.Reduce"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGenericMapReduce.ReduceWithComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Configures the Reduce plan, the POPackage operator
 and the reporter thread]]>
      </doc>
    </method>
    <method name="reduce"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="tupIter" type="java.lang.Iterable"/>
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[The reduce function which packages the key and List&lt;Tuple&gt;
 into key, Bag&lt;Tuple&gt; after converting Hadoop type key into Pig type.
 The package result is either collected as is, if the reduce plan is
 empty or after passing through the reduce plan.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This "specialized" reduce class is ONLY to be used in pig queries with
 order by a udf. A UDF used for comparison in the order by expects
 to be handed tuples. Hence a specialized map class (PigMapReduce.MapWithComparator)
 ensures that the "key" used in the order by is wrapped into a tuple (if it
 isn't already a tuple). This reduce class unwraps this tuple in the case where
 the map had wrapped into a tuple and handes the "unwrapped" key to the POPackage
 for processing]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce.ReduceWithComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger -->
  <class name="PigHadoopLogger" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"/>
    <method name="getInstance" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get singleton instance of the context]]>
      </doc>
    </method>
    <method name="setReporter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reporter" type="org.apache.pig.tools.pigstats.PigStatusReporter"/>
    </method>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
    </method>
    <method name="getAggregate" return="boolean"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAggregate"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="aggregate" type="boolean"/>
    </method>
    <doc>
    <![CDATA[A singleton class that implements the PigLogger interface
 for use in map reduce context. Provides ability to aggregate
 warning messages]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigHadoopLogger -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat -->
  <class name="PigInputFormat" extends="org.apache.hadoop.mapreduce.InputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRecordReader" return="org.apache.hadoop.mapreduce.RecordReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getSplits" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobcontext" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getPigSplits" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="oneInputSplits" type="java.util.List"/>
      <param name="inputIndex" type="int"/>
      <param name="targetOps" type="java.util.ArrayList"/>
      <param name="blockSize" type="long"/>
      <param name="combinable" type="boolean"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getActiveSplit" return="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_INPUTS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_INPUT_TARGETS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_INPUT_SIGNATURES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_INPUT_LIMITS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="sJob" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link UDFContext} instead in the following way to get
 the job's {@link Configuration}:
 lEsS_tHaNpre>UdfContext.getUdfContext().getJobConf()lEsS_tHaN/pre>">
      <doc>
      <![CDATA[@deprecated Use {@link UDFContext} instead in the following way to get
 the job's {@link Configuration}:
 <pre>UdfContext.getUdfContext().getJobConf()</pre>]]>
      </doc>
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigIntRawComparator -->
  <class name="PigIntRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigIntRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes.  If neither are null,
 then IntWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigIntRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigLongRawComparator -->
  <class name="PigLongRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigLongRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableIntWritables as raw bytes.  If neither are null,
 then IntWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mAsc" type="boolean[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mWrappedComp" type="org.apache.hadoop.io.LongWritable.Comparator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigLongRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly -->
  <class name="PigMapOnly" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigMapOnly"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This class is the static Mapper class used by Pig
 to execute Pig map only jobs. It gets a TargetedTuple
 as input to the map function. Using the targets in it,
 attaches the tuple as input to the target operators.
 
 The map plan is then executed. The result is then collected
 into the output collector provide by Hadoop which is configured
 to write to the store file.
 
 There is a reporter running in a separate thread that keeps
 reporting progress to let the job tracker know that we are 
 alive. The sleep time for the reporter thread can be configured
 per job via the "pig.reporter.sleep.time". By default it uses
 a 10 sec sleep time]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly.Map -->
  <class name="PigMapOnly.Map" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigMapOnly.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oc" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly.Map -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter -->
  <class name="PigMapReduceCounter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigMapReduceCounter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter.PigMapCounter -->
  <class name="PigMapReduceCounter.PigMapCounter" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigMapReduceCounter.PigMapCounter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Here is set up the task id, in order to be attached to each tuple]]>
      </doc>
    </method>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[While tuples are collected, they are counted one by one by a global counter per task.]]>
      </doc>
    </method>
    <field name="taskID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="context" type="org.apache.hadoop.mapreduce.Mapper.Context"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class is the used only for simple RANK operation, namely row number mode.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter.PigMapCounter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter.PigReduceCounter -->
  <class name="PigMapReduceCounter.PigReduceCounter" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce.Reduce"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigMapReduceCounter.PigReduceCounter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Here is set up the task id, in order to be attached to each tuple]]>
      </doc>
    </method>
    <method name="incrementCounter"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="increment" type="java.lang.Long"/>
      <doc>
      <![CDATA[On this case, global counters are accessed during reduce phase (immediately after a
 sorting phase) and the increment for global counters are dependent if it is dense rank
 or not.
 If it is a dense rank, increment is done by 1. if it is not increment depends on the size
 of the size of bag in the tuple.
 @param increment is the value to add to the corresponding global counter.]]>
      </doc>
    </method>
    <field name="taskID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="context" type="org.apache.hadoop.mapreduce.Reducer.Context"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="leaves" type="java.util.List"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="leaf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class is the used for RANK BY operations, independently if it is dense or not.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduceCounter.PigReduceCounter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputCommitter -->
  <class name="PigOutputCommitter" extends="org.apache.hadoop.mapreduce.OutputCommitter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigOutputCommitter" type="org.apache.hadoop.mapreduce.TaskAttemptContext, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param context
 @param mapStores 
 @param reduceStores 
 @throws IOException]]>
      </doc>
    </constructor>
    <method name="setUpContext" return="org.apache.hadoop.mapreduce.JobContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isRecoverySupported" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="recoverTask"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="commitJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="abortJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <param name="state" type="org.apache.hadoop.mapreduce.JobStatus.State"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="abortTask"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="commitTask"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="needsTaskCommit" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setupJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setupTask"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[A specialization of the default FileOutputCommitter to allow
 pig to inturn delegate calls to the OutputCommiter(s) of the 
 StoreFunc(s)' OutputFormat(s).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputCommitter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat -->
  <class name="PigOutputFormat" extends="org.apache.hadoop.mapreduce.OutputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigOutputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskattemptcontext" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobContext" type="org.apache.hadoop.mapreduce.JobContext"/>
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Before delegating calls to underlying OutputFormat or OutputCommitter
 Pig needs to ensure the Configuration in the JobContext contains
 the output location and StoreFunc
 for the specific store - so set these up in the context for this specific
 store
 @param jobContext the {@link JobContext}
 @param store the POStore
 @throws IOException on failure]]>
      </doc>
    </method>
    <method name="checkOutputSpecs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobcontext" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="setupUdfEnvAndStores"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jobcontext" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputCommitter" return="org.apache.hadoop.mapreduce.OutputCommitter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskattemptcontext" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="PIG_MAPRED_OUTPUT_DIR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[the temporary directory for the multi store]]>
      </doc>
    </field>
    <field name="PIG_TMP_PATH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[the relative path that can be used to build a temporary
 place to store the output from a number of map-reduce tasks]]>
      </doc>
    </field>
    <field name="reduceStores" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mapStores" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentConf" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The better half of PigInputFormat which is responsible
 for the Store functionality. It is the exact mirror
 image of PigInputFormat having RecordWriter instead
 of a RecordReader.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat.PigRecordWriter -->
  <class name="PigOutputFormat.PigRecordWriter" extends="org.apache.hadoop.mapreduce.RecordWriter"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigOutputFormat.PigRecordWriter" type="org.apache.hadoop.mapreduce.RecordWriter, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.StoreFuncDecorator, org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat.Mode"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[We only care about the values, so we are going to skip the keys when
 we write.

 @see org.apache.hadoop.mapreduce.RecordWriter#write(Object, Object)]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskattemptcontext" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <doc>
    <![CDATA[Wrapper class which will delegate calls to the actual RecordWriter - this
 should only get called in the single store case.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat.PigRecordWriter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader -->
  <class name="PigRecordReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigRecordReader" type="org.apache.hadoop.mapreduce.InputFormat, org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit, org.apache.pig.LoadFunc, org.apache.hadoop.mapreduce.TaskAttemptContext, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[@param context]]>
      </doc>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getCurrentValue" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="initNextRecordReader" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Get the record reader for the next chunk in this CombineFileSplit.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A wrapper around the actual RecordReader and loadfunc - this is needed for
 two reasons
 1) To intercept the initialize call from hadoop and initialize the underlying
 actual RecordReader with the right Context object - this is achieved by
 looking up the Context corresponding to the input split this Reader is
 supposed to process
 2) We need to give hadoop consistent key-value types - text and tuple
 respectively - so PigRecordReader will call underlying Loader's getNext() to
 get the Tuple value - the key is null text since key is not used in input to
 map() in Pig.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigReducerEstimator -->
  <interface name="PigReducerEstimator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="estimateNumberOfReducers" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <param name="mapReduceOper" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Estimate the number of reducers for a given job based on the collection
 of load funcs passed.

 @param job job instance
 @param mapReduceOper map reducer operator of the job
 @return the number of reducers to use, or -1 if the count couldn't be estimated
 @throws IOException]]>
      </doc>
    </method>
    <field name="BYTES_PER_REDUCER_PARAM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAX_REDUCER_COUNT_PARAM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT_BYTES_PER_REDUCER" type="long"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT_MAX_REDUCER_COUNT_PARAM" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Interface to implement when you want to use a custom approach to estimating
 the number of reducers for a job.

 @see InputSizeReducerEstimator]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigReducerEstimator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSecondaryKeyComparator -->
  <class name="PigSecondaryKeyComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigSecondaryKeyComparator"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="b" type="org.apache.hadoop.io.WritableComparable"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSecondaryKeyComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSequenceFileInputFormat -->
  <class name="PigSequenceFileInputFormat" extends="org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigSequenceFileInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="listStatus" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSequenceFileInputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit -->
  <class name="PigSplit" extends="org.apache.hadoop.mapreduce.InputSplit"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.Writable"/>
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigSplit"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigSplit" type="org.apache.hadoop.mapreduce.InputSplit[], int, java.util.List, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTargetOps" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getWrappedSplit" return="org.apache.hadoop.mapreduce.InputSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This methods returns the actual InputSplit (as returned by the
 {@link InputFormat}) which this class is wrapping.
 @return the wrappedSplit]]>
      </doc>
    </method>
    <method name="getWrappedSplit" return="org.apache.hadoop.mapreduce.InputSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <doc>
      <![CDATA[@param idx the index into the wrapped splits
 @return the specified wrapped split]]>
      </doc>
    </method>
    <method name="getLocations" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getLength" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getLength" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Return the length of a wrapped split
 @param idx the index into the wrapped splits
 @return number of wrapped splits]]>
      </doc>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="is" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="os" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSplitIndex" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMultiInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="boolean"/>
      <doc>
      <![CDATA[Indicates this map has multiple input (such as the result of
 a join operation).
 @param b true if the map has multiple inputs]]>
      </doc>
    </method>
    <method name="isMultiInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns true if the map has multiple inputs, else false
 @return true if the map has multiple inputs, else false]]>
      </doc>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[(non-Javadoc)
 @see org.apache.hadoop.conf.Configurable#setConf(org.apache.hadoop.conf.Configuration)

 This will be called by
 {@link PigInputFormat#getSplits(org.apache.hadoop.mapreduce.JobContext)}
 to be used in {@link #write(DataOutput)} for serializing the
 wrappedSplit

 This will be called by Hadoop in the backend to set the right Job
 Configuration (hadoop will invoke this method because PigSplit implements
 {@link Configurable} - we need this Configuration in readFields() to
 deserialize the wrappedSplit]]>
      </doc>
    </method>
    <method name="getNumPaths" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the number of wrapped splits]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setDisableCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="disableCounter" type="boolean"/>
    </method>
    <method name="disableCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCurrentIdx"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
    </method>
    <doc>
    <![CDATA[The main split class that maintains important
 information about the input split.

 The reason this class implements Configurable is so that Hadoop will call
 {@link Configurable#setConf(Configuration)} on the backend so we can use
 the Configuration to create the SerializationFactory to deserialize the
 wrapped InputSplit.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigStatsOutputSizeReader -->
  <interface name="PigStatsOutputSizeReader"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="supports" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sto" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Returns whether the given PSStore is supported by this output size reader
 or not.
 @param sto POStore
 @param conf Configuration]]>
      </doc>
    </method>
    <method name="getOutputSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sto" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the size of output in bytes. If the size of output cannot be
 computed for any reason, -1 should be returned.
 @param sto POStore
 @param conf configuration]]>
      </doc>
    </method>
    <field name="OUTPUT_SIZE_READER_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT_SIZE_READER_UNSUPPORTED" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Interface to implement when you want to customize the way of computing the
 size of output in PigStats. Since not every storage is file-based (e.g.
 HBaseStorage), the output size cannot always be computed as the total size of
 output files.

 @see FileBasedOutputSizeReader]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigStatsOutputSizeReader -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat -->
  <class name="PigTextInputFormat" extends="org.apache.hadoop.mapreduce.lib.input.TextInputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigTextInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="listStatus" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextOutputFormat -->
  <class name="PigTextOutputFormat" extends="org.apache.hadoop.mapreduce.lib.output.TextOutputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigTextOutputFormat" type="byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextOutputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextOutputFormat.PigLineRecordWriter -->
  <class name="PigTextOutputFormat.PigLineRecordWriter" extends="org.apache.hadoop.mapreduce.lib.output.TextOutputFormat.LineRecordWriter"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="PigTextOutputFormat.PigLineRecordWriter" type="java.io.DataOutputStream, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextOutputFormat.PigLineRecordWriter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator -->
  <class name="PigTextRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigTextRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableTextWritables as raw bytes.  If neither are null,
 then IntWritable.compare() is used.  If both are null then the indices
 are compared.  Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleDefaultRawComparator -->
  <class name="PigTupleDefaultRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TupleRawComparator"/>
    <constructor name="PigTupleDefaultRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasComparedTupleNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableTuples as raw bytes. If neither are null, then
 IntWritable.compare() is used. If both are null then the indices are
 compared. Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleDefaultRawComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleSortComparator -->
  <class name="PigTupleSortComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="PigTupleSortComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two NullableTuples as raw bytes. Tuples are compared field-wise.
 If both are null, then the indices are compared.
 Otherwise the null one is defined to be less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleSortComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators -->
  <class name="PigWritableComparators" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawBytesComparator -->
  <class name="PigWritableComparators.PigBigDecimalRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigDecimalRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigDecimalRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigBigDecimalRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigDecimalRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigDecimalRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawPartitionComparator -->
  <class name="PigWritableComparators.PigBigDecimalRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigDecimalRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigDecimalRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigDecimalRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawBytesComparator -->
  <class name="PigWritableComparators.PigBigIntegerRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigIntegerRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigIntegerRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigBigIntegerRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigIntegerRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigIntegerRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawPartitionComparator -->
  <class name="PigWritableComparators.PigBigIntegerRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBigIntegerRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBigIntegerRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBigIntegerRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawBytesComparator -->
  <class name="PigWritableComparators.PigBooleanRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBooleanRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBooleanRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigBooleanRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBooleanRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBooleanRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawPartitionComparator -->
  <class name="PigWritableComparators.PigBooleanRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBooleanRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBooleanRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBooleanRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawBytesComparator -->
  <class name="PigWritableComparators.PigBytesRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBytesRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigBytesRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBytesRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawPartitionComparator -->
  <class name="PigWritableComparators.PigBytesRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigBytesRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigBytesRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawBytesComparator -->
  <class name="PigWritableComparators.PigDateTimeRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDateTimeRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDateTimeRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigDateTimeRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDateTimeRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDateTimeRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawPartitionComparator -->
  <class name="PigWritableComparators.PigDateTimeRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDateTimeRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDateTimeRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDateTimeRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawBytesComparator -->
  <class name="PigWritableComparators.PigDoubleRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDoubleRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDoubleRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigDoubleRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDoubleRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDoubleRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawPartitionComparator -->
  <class name="PigWritableComparators.PigDoubleRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigDoubleRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigDoubleRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigDoubleRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawBytesComparator -->
  <class name="PigWritableComparators.PigFloatRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFloatRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigFloatRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigFloatRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFloatRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigFloatRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawPartitionComparator -->
  <class name="PigWritableComparators.PigFloatRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFloatRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigFloatRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigFloatRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawBytesComparator -->
  <class name="PigWritableComparators.PigIntRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigIntRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigIntRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigIntRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigIntRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigIntRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawPartitionComparator -->
  <class name="PigWritableComparators.PigIntRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigIntRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigIntRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigIntRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawBytesComparator -->
  <class name="PigWritableComparators.PigLongRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigLongRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigLongRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigLongRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigLongRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigLongRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawPartitionComparator -->
  <class name="PigWritableComparators.PigLongRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigLongRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigLongRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigLongRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawBytesComparator -->
  <class name="PigWritableComparators.PigTextRawBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTextRawBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawBytesPartitionComparator -->
  <class name="PigWritableComparators.PigTextRawBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTextRawBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawPartitionComparator -->
  <class name="PigWritableComparators.PigTextRawPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTextRawPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTextRawPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortBytesComparator -->
  <class name="PigWritableComparators.PigTupleSortBytesComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleSortComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTupleSortBytesComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortBytesComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortBytesPartitionComparator -->
  <class name="PigWritableComparators.PigTupleSortBytesPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleSortComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTupleSortBytesPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortBytesPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortPartitionComparator -->
  <class name="PigWritableComparators.PigTupleSortPartitionComparator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTupleSortComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigWritableComparators.PigTupleSortPartitionComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigWritableComparators.PigTupleSortPartitionComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ProgressableReporter -->
  <class name="ProgressableReporter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"/>
    <constructor name="ProgressableReporter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ProgressableReporter" type="org.apache.hadoop.mapreduce.TaskAttemptContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
    </method>
    <method name="setRep"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rep" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ProgressableReporter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.RunJarSecurityManager -->
  <class name="RunJarSecurityManager" extends="java.lang.SecurityManager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RunJarSecurityManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="checkPermission"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="perm" type="java.security.Permission"/>
    </method>
    <method name="retire"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="checkExit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="status" type="int"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
    </method>
    <method name="getExitInvoked" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getExitCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.RunJarSecurityManager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SampleOptimizer -->
  <class name="SampleOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SampleOptimizer" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to optimize plans that have a sample job that immediately follows a
 load/store only MR job.  These kinds of plans are generated for order bys, and
 will soon be generated for joins that need to sample their data first.  These
 can be changed so that the RandomSampleLoader subsumes the loader used in the
 first job and then removes the first job.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SampleOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SecondaryKeyOptimizer -->
  <class name="SecondaryKeyOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SecondaryKeyOptimizer" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan
            The MROperPlan to visit to discover keyType]]>
      </doc>
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNumMRUseSecondaryKey" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumSortRemoved" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDistinctChanged" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SecondaryKeyOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SecondaryKeyOptimizerMR -->
  <class name="SecondaryKeyOptimizerMR" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.optimizer.SecondaryKeyOptimizer"/>
    <constructor name="SecondaryKeyOptimizerMR" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan
            The MROperPlan to visit to discover keyType]]>
      </doc>
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNumSortRemoved" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumDistinctChanged" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumUseSecondaryKey" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SecondaryKeyOptimizerMR -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SortKeyInfo -->
  <class name="SortKeyInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SortKeyInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="moreSpecificThan" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o2" type="java.lang.Object"/>
    </method>
    <method name="insertColumnChainInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <param name="columnChainInfo" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.ColumnChainInfo"/>
      <param name="asc" type="boolean"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnChains" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAscs" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.SortKeyInfo -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.UDFEndOfAllInputNeededVisitor -->
  <class name="UDFEndOfAllInputNeededVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UDFEndOfAllInputNeededVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="needEndOfAllInputProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.UDFEndOfAllInputNeededVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.UDFFinishVisitor -->
  <class name="UDFFinishVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UDFFinishVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.UDFFinishVisitor -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.CountingMap -->
  <class name="CountingMap" extends="java.util.HashMap"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CountingMap"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="put" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.lang.Object"/>
      <param name="arg1" type="java.lang.Integer"/>
    </method>
    <method name="display"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTotalCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.CountingMap -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.DiscreteProbabilitySampleGenerator -->
  <class name="DiscreteProbabilitySampleGenerator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DiscreteProbabilitySampleGenerator" type="float[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNext" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="main"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="java.lang.String[]"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.DiscreteProbabilitySampleGenerator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.SecondaryKeyPartitioner -->
  <class name="SecondaryKeyPartitioner" extends="org.apache.hadoop.mapreduce.lib.partition.HashPartitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="SecondaryKeyPartitioner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="value" type="org.apache.hadoop.io.Writable"/>
      <param name="numPartitions" type="int"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.SecondaryKeyPartitioner -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.SkewedPartitioner -->
  <class name="SkewedPartitioner" extends="org.apache.hadoop.mapreduce.Partitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="SkewedPartitioner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="wrappedKey" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="value" type="org.apache.hadoop.io.Writable"/>
      <param name="numPartitions" type="int"/>
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <field name="tf" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="reducerMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="totalReducers" type="java.lang.Integer"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inited" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class is used by skewed join. For the partitioned table, the skewedpartitioner reads the key
 distribution data from the sampler file and returns the reducer index in a round robin fashion.
 For ex: if the key distribution file contains (k1, 5, 3) as an entry, reducers from 5 to 3 are returned
 in a round robin manner.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.SkewedPartitioner -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner -->
  <class name="WeightedRangePartitioner" extends="org.apache.hadoop.mapreduce.Partitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="WeightedRangePartitioner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="value" type="org.apache.hadoop.io.Writable"/>
      <param name="numPartitions" type="int"/>
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getProbVec" return="float[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param value
 @return
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getPigNullableWritable" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="convertToArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="quantilesListAsBag" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="weightedParts" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="quantiles" type="org.apache.pig.impl.io.PigNullableWritable[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="comparator" type="org.apache.hadoop.io.RawComparator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="job" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inited" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter -->
  <class name="DotMRPrinter" extends="org.apache.pig.impl.plan.DotPlanDumper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotMRPrinter" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="makeDumper" return="org.apache.pig.impl.plan.DotPlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter.InnerPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <method name="getNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <method name="getAttributes" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <doc>
    <![CDATA[This class can print an MR plan in the DOT format. It uses
 clusters to illustrate nesting. If "verbose" is off, it will skip
 any nesting in the associated physical plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter.InnerOperator -->
  <class name="DotMRPrinter.InnerOperator" extends="org.apache.pig.impl.plan.Operator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotMRPrinter.InnerOperator" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.impl.plan.PlanVisitor"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Helper class to represent the relationship of map, reduce and
 combine phases in an MR operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter.InnerOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter.InnerPlan -->
  <class name="DotMRPrinter.InnerPlan" extends="org.apache.pig.impl.plan.OperatorPlan"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotMRPrinter.InnerPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[Helper class to represent the relationship of map, reduce and
 combine phases in an MR operator. Each MR operator will have
 an inner plan of map -> (combine)? -> (reduce)? inner
 operators. The inner operators contain the physical plan of the
 execution phase.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.DotMRPrinter.InnerPlan -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.EndOfAllInputSetter -->
  <class name="EndOfAllInputSetter" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EndOfAllInputSetter" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan MR plan to visit]]>
      </doc>
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[This visitor visits the MRPlan and does the following
 for each MROper: If the map plan or the reduce plan of the MROper has
  an end of all input flag present in it, this marks in the MROper whether the map
 has an end of all input flag set or if the reduce has an end of all input flag set.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.EndOfAllInputSetter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.EndOfAllInputSetter.EndOfAllInputChecker -->
  <class name="EndOfAllInputSetter.EndOfAllInputChecker" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EndOfAllInputSetter.EndOfAllInputChecker" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mergeCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPartialAgg"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partAgg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitReservoirSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reservoirSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POReservoirSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPoissonSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poissonSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPoissonSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="isEndOfAllInputPresent" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if end of all input is present]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.EndOfAllInputSetter.EndOfAllInputChecker -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MRIntermediateDataVisitor -->
  <class name="MRIntermediateDataVisitor" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRIntermediateDataVisitor" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getIntermediate" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all paths for intermediate data. visit() must be called before this.
 
 @return All intermediate data ElementDescriptors]]>
      </doc>
    </method>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[An {@link MROpPlanVisitor} that gathers the paths for all
 intermediate data from a {@link MROperPlan}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MRIntermediateDataVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan -->
  <class name="MROperPlan" extends="org.apache.pig.impl.plan.OperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A Plan used to create the plan of 
 Map Reduce Operators which can be 
 converted into the Job Control
 object. This is necessary to capture
 the dependencies among jobs]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor -->
  <class name="MROpPlanVisitor" extends="org.apache.pig.impl.plan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MROpPlanVisitor" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor for the MROperPlan class]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MRPrinter -->
  <class name="MRPrinter" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRPrinter" type="java.io.PrintStream, org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan MR plan to print]]>
      </doc>
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor mechanism printing out the logical plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MRPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.POPackageAnnotator -->
  <class name="POPackageAnnotator" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPackageAnnotator" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan MR plan to visit]]>
      </doc>
    </constructor>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[This visitor visits the MRPlan and does the following
 for each MROper
  - visits the POPackage in the reduce plan and finds the corresponding
  POLocalRearrange(s) (either in the map plan of the same oper OR
  reduce plan of predecessor MROper). It then annotates the POPackage
  with information about which columns in the "value" are present in the
  "key" and will need to stitched in to the "value"]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.POPackageAnnotator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.ScalarPhyFinder -->
  <class name="ScalarPhyFinder" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScalarPhyFinder" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getScalars" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.ScalarPhyFinder -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.UDFFinder -->
  <class name="UDFFinder" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UDFFinder"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UDFFinder" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getUDFs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="compFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.UDFFinder -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.XMLMRPrinter -->
  <class name="XMLMRPrinter" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="XMLMRPrinter" type="java.io.PrintStream, org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParserConfigurationException" type="javax.xml.parsers.ParserConfigurationException"/>
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan MR plan to print
 @throws ParserConfigurationException]]>
      </doc>
    </constructor>
    <method name="closePlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="TransformerException" type="javax.xml.transform.TransformerException"/>
    </method>
    <method name="visitMROp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor mechanism printing out the logical plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.XMLMRPrinter -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.optimizer">
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.optimizer.SecondaryKeyOptimizer -->
  <interface name="SecondaryKeyOptimizer"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getNumSortRemoved" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumDistinctChanged" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumUseSecondaryKey" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.optimizer.SecondaryKeyOptimizer -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.LogicalToPhysicalTranslatorException -->
  <class name="LogicalToPhysicalTranslatorException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalToPhysicalTranslatorException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="LogicalToPhysicalTranslatorException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalToPhysicalTranslatorException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.LogicalToPhysicalTranslatorException -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator -->
  <class name="PhysicalOperator" extends="org.apache.pig.impl.plan.Operator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.pen.Illustrable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="PhysicalOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PhysicalOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PhysicalOperator" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PhysicalOperator" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PhysicalOperator" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="getIllustrator" return="org.apache.pig.pen.Illustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRequestedParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRequestedParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requestedParallelism" type="int"/>
    </method>
    <method name="getResultType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAliasString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="copyAliasFrom"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="addOriginalLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="sourceLocation" type="org.apache.pig.parser.SourceLocation"/>
    </method>
    <method name="addOriginalLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="originalLocations" type="java.util.List"/>
    </method>
    <method name="getOriginalLocations" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumulative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isAccumulative" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isAccumStarted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumEnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setResultType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resultType" type="byte"/>
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.List"/>
    </method>
    <method name="isInputAttached" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Shorts the input path of this operator by providing the input tuple
 directly

 @param t -
            The tuple that should be used as input]]>
      </doc>
    </method>
    <method name="detachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Detaches any tuples that are attached]]>
      </doc>
    </method>
    <method name="isBlocking" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A blocking operator should override this to return true. Blocking
 operators are those that need the full bag before operate on the tuples
 inside the bag. Example is the Global Rearrange. Non-blocking or pipeline
 operators are those that work on a tuple by tuple basis.

 @return true if blocking and false otherwise]]>
      </doc>
    </method>
    <method name="processInput" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A generic method for parsing input that either returns the attached input
 if it exists or fetches it from its predecessor. If special processing is
 required, this method should be overridden.

 @return The Result object that results from processing the input
 @throws ExecException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Implementations that call into the different versions of getNext are often
 identical, differing only in the signature of the getNext() call they make.
 This method allows to cut down on some of the copy-and-paste.
 @param dataType Describes the type of obj; a byte from DataType.

 @return result Result of applying this Operator to the Object.
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reset internal state in an operator.  For use in nested pipelines
 where operators like limit and sort may need to reset their state.
 Limit needs it because it needs to know it's seeing a fresh set of
 input.  Blocking operators like sort and distinct need it because they
 may not have drained their previous input due to a limit and thus need
 to be told to drop their old input and start over.]]>
      </doc>
    </method>
    <method name="getReporter" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return PigProgressable stored in threadlocal]]>
      </doc>
    </method>
    <method name="setReporter"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reporter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable"/>
      <doc>
      <![CDATA[@param reporter PigProgressable to be stored in threadlocal]]>
      </doc>
    </method>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a copy of this operator. This function is blank, however,
 we should leave a place holder so that the subclasses can clone
 to make deep copy as this one creates a shallow copy of
 non-primitive types (objects, arrays and lists)

 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="cloneHelper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="clonePlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="origPlans" type="java.util.List"/>
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="setParentPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="physicalPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[@param physicalPlan]]>
      </doc>
    </method>
    <method name="getLogger" return="org.apache.commons.logging.Log"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPigLogger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="logger" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"/>
    </method>
    <method name="getPigLogger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="serialVersionUID" type="long"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="RESULT_EMPTY" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="RESULT_EOP" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mTupleFactory" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mBagFactory" type="org.apache.pig.data.BagFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="requestedParallelism" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputs" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outputs" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="resultType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="parentPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputAttached" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="input" type="org.apache.pig.data.Tuple"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="res" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="alias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="reporter" type="java.lang.ThreadLocal"
      transient="false" volatile="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigLogger" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger"
      transient="false" volatile="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lineageTracer" type="org.apache.pig.pen.util.LineageTracer"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="illustrator" type="org.apache.pig.pen.Illustrator"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This is the base class for all operators. This supports a generic way of
 processing inputs which can be overridden by operators extending this class.
 The input model assumes that it can either be taken from an operator or can
 be attached directly to this operator. Also it is assumed that inputs to an
 operator are always in the form of a tuple.

 For this pipeline rework, we assume a pull based model, i.e, the root
 operator is going to call getNext with the appropriate type which initiates a
 cascade of getNext calls that unroll to create input for the root operator to
 work on.

 Any operator that extends the PhysicalOperator, supports a getNext with all
 the different types of parameter types. The concrete implementation should
 use the result type of its input operator to decide the type of getNext's
 parameter. This is done to avoid switch/case based on the type as much as
 possible. The default is assumed to return an erroneus Result corresponding
 to an unsupported operation on that type. So the operators need to implement
 only those types that are supported.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.OriginalLocation -->
  <class name="PhysicalOperator.OriginalLocation" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="PhysicalOperator.OriginalLocation" type="java.lang.String, int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLine" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOffset" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.OriginalLocation -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger -->
  <interface name="PigLogger"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
      <doc>
      <![CDATA[If you have warning messages that need aggregation]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface to allow aggregation of messages]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigLogger -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable -->
  <interface name="PigProgressable"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Report progress.]]>
      </doc>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
      <doc>
      <![CDATA[Report progress with a message.
 @param msg message to send with progress report.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Pig's progress indicator.  An implemenation of this interface is passed to
 UDFs to allow them to send heartbeats.  By default Hadoop will kill a task
 if it does not receive a heartbeat every 600 seconds.  Any operation that
 may take more than this should call progress on a regular basis.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.PigProgressable -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.POPrinter -->
  <class name="POPrinter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPrinter" type="java.io.PrintStream, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.POPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus -->
  <class name="POStatus" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POStatus"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="STATUS_OK" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[STATUS_OK indicates that the pull on the operator pipeline resulted in a
 valid output.]]>
      </doc>
    </field>
    <field name="STATUS_NULL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[STATUS_NULL indicates that no output was produced, but there may be more
 results. This can happen if a value is filtered out or an empty bag is
 flattened. A caller will typically ignore the output and try again after
 seeing STATUS_NULL.

 This does NOT indicate that the output is the value 'null' (which is
 possible in expressions). This is represented as 'null' with STATUS_OK.]]>
      </doc>
    </field>
    <field name="STATUS_ERR" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[STATUS_ERR indicates that there was a problem while trying to produce a
 result. This should be remembered and fed back to the user.]]>
      </doc>
    </field>
    <field name="STATUS_EOP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[STATUS_EOP indicates that no output was produced, and no further outputs
 will be produced (e.g. all attached inputs have been consumed or a limit
 has reached its threshold). A caller will typically terminate or attach
 new inputs on seeing this status.]]>
      </doc>
    </field>
    <field name="STATUS_EOS" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is currently only used in communications between ExecutableManager
 and POStream. It indicates the end of Streaming output (i.e. output from
 streaming binary).]]>
      </doc>
    </field>
    <field name="STATUS_BATCH_OK" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Successful processing of a batch. This is used for accumulative UDFs.]]>
      </doc>
    </field>
    <field name="STATUS_EARLY_TERMINATION" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This signals that an accumulative UDF has already finished.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[POStatus is a set of flags used to communicate the status of Pig's operator
 pipeline to consumers.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.POStatus -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result -->
  <class name="Result" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="Result"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Result" type="byte, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="returnStatus" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="result" type="java.lang.Object"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result -->
  <doc>
  <![CDATA[<p>
Implementation of physical operators that use hadoop as the execution engine
and data storage.

<h2> Design </h2>
<p>
Physical operators use the operator, plan, visitor, and optimizer framework
provided by the {@link org.apache.pig.impl.plan} package.
<p>
As with {@link org.apache.pig.impl.logicalLayer}, physical operators consist
of {@link org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators} and
{@link org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators}.  In many data
processing systems relational operators and expression operators are modeled
as different entities because they behave differently.  Pig blurs, though does
not entirely remove, this distinction because of its support for nested
operations.
<p>
Conceptually, relational operators work on an entire relation (in Pig's case,
a bag).  In terms of implementation, they operate on one record (tuple) at a
time.  This avoids needing to load the entire relation into memory before
operating on it.
<p>
Expression operators, on the other hand, operate on the assumption that they
are provided their entire input at invocation time and provide their entire
output when they are finished.
<p>
Pig's hadoop implementation implements a pull based model, where each operator
calls getNext() on the operator before it in the plan.  getNext() is
implemented for each of the different data types, so that operators can
request the data type they expect.  Relational operators will always expect a
tuple.  Expression operators can request any data type.
<p>
As with the logical plan, physical relational operators often have embedded
physical plans.  When a relational operator calls getNext() on its predecessor
and receives a tuple, it will attach that tuple to its embedded physical plan(s)
and then call getNext() on the root node(s) of those plan(s) in order to get the
output.  For example, the Pig Latin <code>filter A by $0 != 5</code> will
produce a POFilter object, with an embedded physical plan that consists of
POProject(0), POConst(5), both attached to PONotEqual.  Each time
POFilter.getNext() is called, it will call its predecessors getNext() method,
and then attach the input to POProject and POConst.  It will then call
PONotEqual.getNext().  PONotEqual will in turn call POProject.getNext() and
POConst.getNext(), and then evaluate and return the results.  If the result is
true, POFilter will return its input tuple.
If the answer is false, it will call it's predecessor's getNext() method and
try again.
<p>
Given Pig's nested data and execution models, there are places it is necessary
to move between relational and expression operators.  Consider the following
Pig Latin script:
<code>
A = load 'myfile';
B = group A by $0;
C = foreach B {
    C1 = filter $1 by $0 &gt; 0; 
    C2 = distinct C1;
    generate group, COUNT(C2), SUM(C1.$0);
}
</code>
In particular, the foreach section presents some interesting challenges.
<p>
First, foreach has three separate outputs, all of which require separate but
parallel executions.  To address this, each element of the foreach is described by a
separate embedded plan.  This can cause duplication of
operations, as in this plan.
In this case splitting the plans for COUNT and SUM cause a double execution of
the <code>C1 = filter</code> section of the script.  But it avoids needing to
place a split operator between filter -&gt; distinct and filter -&gt; SUM.
<p>
The second issue presented by the nested logic is that the
foreach operator is going to receive a tuple with the format ($0, bag), where
bag is a collection of all the tuples with a given value for $0.  It will then
attach that to the filter.  But filter does not expect a bag.  It expects
to get tuples.  On the other end, distinct will be outputing tuples.  But
COUNT() expects C2 to be a bag that can be processed by COUNT as a whole.
<p>
To address this issue, some operators have been modified to provide
"bookend" functionality.  That is, the ability to translate between relational
and expression operators.
The embedded plan for calculating the COUNT in the foreach will
look like:  POProject(1) -&gt; PODistinct -&gt; POProject(*) -&gt; COUNT().
The first POProject(1) will have a bag attached as its input by POForeach.
But POFilter will call getNext(Tuple).  In this case, POProject will know to
open the bag and provide the tuples one at a time, until the bag is empty, at
which point it will return STATUS_EOP.  The PODistinct will be expecting to
return tuples, but POProject(*) will call getNext(bag).  In this case all
relational operators will be able to accumulate all of the tuples by calling
getNext(tuple) on themselves until they see STATUS_EOP, packaging those tuples
into a bag, and then returning that bag.
<p>
And third, project is being subtly overloaded here.  In cases where the script
says <code>C = foreach B generate $1</code>, this type of projection means take the second
element from the tuple and project it.  But in cases like <code>C = foreach B
generate SUM($1.$0)</code> and $1 is a bag, this type of projection expects to
receive a bag ($1) and output a modified bag ($1 with only the first field,
$0, remaining in all the tuples in the bag).  To handle this issue, POProject
will, when it sees that its predecessor is a POProject and its successors is
an expression operator it will perform a projection on the bag (that is,
perform the specified project on each tuple in the bag) rather than on a
tuple.]]>
  </doc>
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add -->
  <class name="Add" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Add" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Add" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add" return="java.lang.Number"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="b" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator -->
  <class name="BinaryComparisonOperator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ComparisonOperator"/>
    <constructor name="BinaryComparisonOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BinaryComparisonOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOperandType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOperandType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operandType" type="byte"/>
    </method>
    <method name="cloneHelper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="operandType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This is a base class for all binary comparison operators. Supports the
 use of operand type instead of result type as the result type is
 always boolean.
 
 All comparison operators fetch the lhs and rhs operands and compare
 them for each type using different comparison methods based on what
 comparison is being implemented.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator -->
  <class name="BinaryExpressionOperator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinaryExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BinaryExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLhs" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the child expressions of this expression]]>
      </doc>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLhs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
    </method>
    <method name="getRhs" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRhs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
    </method>
    <method name="cloneHelper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="lhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="rhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A base class for all Binary expression operators.
 Supports the lhs and rhs operators which are used
 to fetch the inputs and apply the appropriate operation
 with the appropriate type.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ComparisonOperator -->
  <interface name="ComparisonOperator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getOperandType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Determine the type of the operand(s) of this comparator.
 @return type, as a byte (using DataType types).]]>
      </doc>
    </method>
    <method name="setOperandType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operandType" type="byte"/>
      <doc>
      <![CDATA[Set the type of the operand(s) of this comparator.
 @param operandType Type of the operand(s), as a byte (using DataType
 types).]]>
      </doc>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[This is an interface for all comparison operators. Supports the
 use of operand type instead of result type as the result type is
 always boolean.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ComparisonOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression -->
  <class name="ConstantExpression" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantExpression" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ConstantExpression" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setValue"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="java.lang.Object"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the child expressions of this expression]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[This class implements a Constant of any type.
 Its value can be set using the setValue method.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Divide -->
  <class name="Divide" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Divide" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Divide" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="divide" return="java.lang.Number"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="b" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="equalsZero" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Divide"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Divide -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr -->
  <class name="EqualToExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EqualToExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="EqualToExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator -->
  <class name="ExpressionOperator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="visit"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.  This is declared here to make it
 possible to call clone on ExpressionOperators.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the sub-expressions of this expression.
 This is called if reducer is run as accumulative mode, all the child
 expression must be called if they have any UDF to drive the UDF.accumulate()]]>
      </doc>
    </method>
    <method name="containUDF" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[check whether this expression contains any UDF
 this is called if reducer is run as accumulative mode
 in this case, all UDFs must be called]]>
      </doc>
    </method>
    <method name="accumChild" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="child" type="java.util.List"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Drive all the UDFs in accumulative mode]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A base class for all types of expressions. All expression
 operators must extend this class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr -->
  <class name="GreaterThanExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GreaterThanExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GreaterThanExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr -->
  <class name="GTOrEqualToExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GTOrEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GTOrEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr -->
  <class name="LessThanExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LessThanExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LessThanExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr -->
  <class name="LTOrEqualToExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LTOrEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LTOrEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Mod -->
  <class name="Mod" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Mod" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Mod" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="mod" return="java.lang.Number"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="b" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Mod"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Mod -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Multiply -->
  <class name="Multiply" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Multiply" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Multiply" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="multiply" return="java.lang.Number"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="b" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Multiply"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Multiply -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr -->
  <class name="NotEqualToExpr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NotEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NotEqualToExpr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd -->
  <class name="POAnd" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POAnd" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POAnd" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Boolean and operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond -->
  <class name="POBinCond" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POBinCond" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POBinCond" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POBinCond" type="org.apache.pig.impl.plan.OperatorKey, int, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="setCond"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="condOp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
    </method>
    <method name="setRhs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
    </method>
    <method name="setLhs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
    </method>
    <method name="getCond" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get condition]]>
      </doc>
    </method>
    <method name="getRhs" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get right expression]]>
      </doc>
    </method>
    <method name="getLhs" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get left expression]]>
      </doc>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get child expressions of this expression]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast -->
  <class name="POCast" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POCast" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCast" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lf" type="org.apache.pig.FuncSpec"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get child expression of this expression]]>
      </doc>
    </method>
    <method name="setFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
    </method>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[This is just a cast that converts DataByteArray into either String or
 Integer. Just added it for testing the POUnion. Need the full operator
 implementation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull -->
  <class name="POIsNull" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POIsNull" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POIsNull" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POIsNull" type="org.apache.pig.impl.plan.OperatorKey, int, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp -->
  <class name="POMapLookUp" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POMapLookUp" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POMapLookUp" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POMapLookUp" type="org.apache.pig.impl.plan.OperatorKey, int, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setLookUpKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
    </method>
    <method name="getLookUpKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="processInput" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative -->
  <class name="PONegative" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PONegative" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PONegative" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PONegative" type="org.apache.pig.impl.plan.OperatorKey, int, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot -->
  <class name="PONot" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PONot" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PONot" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Boolean not operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr -->
  <class name="POOr" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POOr" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POOr" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Boolean or operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject -->
  <class name="POProject" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POProject" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POProject" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POProject" type="org.apache.pig.impl.plan.OperatorKey, int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POProject" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.ArrayList"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setProjectToEnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="startCol" type="int"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Overridden since the attachment of the new input
 should cause the old processing to end.]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Fetches the input tuple and returns the requested
 column
 @return next value.
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="consumeInputBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param input
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Asked for Tuples. Check if the input is a bag.
 If so, stream the tuples in the bag instead of
 the entire bag.]]>
      </doc>
    </method>
    <method name="getColumns" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumn" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getStartCol" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setColumns"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cols" type="java.util.ArrayList"/>
    </method>
    <method name="setColumn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="col" type="int"/>
    </method>
    <method name="isOverloaded" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOverloaded"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="overloaded" type="boolean"/>
    </method>
    <method name="isStar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isProjectToEnd" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="star" type="boolean"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="processInputBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setResultSingleTupleBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resultSingleTupleBag" type="boolean"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="columns" type="java.util.ArrayList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="overloaded" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isProjectToEnd" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="startCol" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Implements the overloaded form of the project operator.
 Projects the specified column from the input tuple.
 However, if asked for tuples when the input is a bag,
 the overloaded form is invoked and the project streams
 the tuples through instead of the bag.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp -->
  <class name="PORegexp" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryComparisonOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PORegexp" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORegexp" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setImplementation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="impl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConstExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhsConstant" type="boolean"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORelationToExprProject -->
  <class name="PORelationToExprProject" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PORelationToExprProject" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORelationToExprProject" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORelationToExprProject" type="org.apache.pig.impl.plan.OperatorKey, int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORelationToExprProject" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.ArrayList"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORelationToExprProject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Implements a specialized form of POProject which is
 used *ONLY* in the following case:
 This project is Project(*) introduced after a relational operator
 to supply a bag as output (as an expression). This project is either
 providing the bag as input to a successor expression operator or is 
 itself the leaf in a inner plan
 If the predecessor relational operator sends an EOP
 then send an empty bag first to signal "empty" output
 and then send an EOP

 NOTE: A Project(*) of return type BAG whose predecessor is
 from an outside plan (i.e. not in the same inner plan as the project)
 will NOT lead us here. So a query like:
 a = load 'baginp.txt' as (b:bag{t:tuple()}); b = foreach a generate $0; dump b;
 will go through a regular project (without the following flag)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORelationToExprProject -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc -->
  <class name="POUserComparisonFunc" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POUserComparisonFunc" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.FuncSpec, org.apache.pig.ComparisonFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUserComparisonFunc" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.FuncSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getComparator" return="org.apache.pig.ComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="org.apache.pig.data.Tuple"/>
      <param name="t2" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get child expressions of this expression]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc -->
  <class name="POUserFunc" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POUserFunc" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUserFunc" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.FuncSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUserFunc" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.FuncSpec, org.apache.pig.EvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getReferencedOperator" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setReferencedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="referencedOperator" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="processInput" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataBag" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBoolean" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDataByteArray" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDateTime" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextMap" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextString" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setAlgebraicFunction"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="Function" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getOriginalReturnType" return="java.lang.reflect.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getReturnType" return="java.lang.reflect.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="isAsynchronous" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="org.apache.pig.FuncSpec"/>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCacheFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cf" type="java.util.List"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setShipFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sf" type="java.util.List"/>
    </method>
    <method name="combinable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get child expression of this expression]]>
      </doc>
    </method>
    <method name="setAccumStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setResultType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resultType" type="byte"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="getFunc" return="org.apache.pig.EvalFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setFuncInputSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[Sets EvalFunc's inputschema based on the signature
 @param signature]]>
      </doc>
    </method>
    <method name="needEndOfAllInputProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="INITIAL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTERMEDIATE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FINAL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Subtract -->
  <class name="Subtract" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.BinaryExpressionOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Subtract" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Subtract" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="subtract" return="java.lang.Number"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="a" type="java.lang.Number"/>
      <param name="b" type="java.lang.Number"/>
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="genericGetNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextDouble" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextFloat" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextLong" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigInteger" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextBigDecimal" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Subtract"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Subtract -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryComparisonOperator -->
  <class name="UnaryComparisonOperator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryExpressionOperator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ComparisonOperator"/>
    <constructor name="UnaryComparisonOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UnaryComparisonOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOperandType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOperandType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operandType" type="byte"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="cloneHelper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryComparisonOperator"/>
    </method>
    <field name="operandType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This is a base class for all unary comparison operators. Supports the
 use of operand type instead of result type as the result type is
 always boolean.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryComparisonOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryExpressionOperator -->
  <class name="UnaryExpressionOperator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UnaryExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UnaryExpressionOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInputAsExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[Set the contained expression to the be the input value.]]>
      </doc>
    </method>
    <method name="setExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"/>
      <doc>
      <![CDATA[Set the contained expression explicitly.  This is mostly for testing.
 @param e Expression to contain.]]>
      </doc>
    </method>
    <method name="getExpr" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ExpressionOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the contained expression.
 @return contained expression.]]>
      </doc>
    </method>
    <method name="cloneHelper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryExpressionOperator"/>
    </method>
    <method name="getChildExpressions" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get child expression of this expression]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.UnaryExpressionOperator -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.CompiledAutomaton -->
  <class name="CompiledAutomaton" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl"/>
    <constructor name="CompiledAutomaton" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="java.lang.String"/>
      <param name="rhs" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.CompiledAutomaton -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.CompiledRegex -->
  <class name="CompiledRegex" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl"/>
    <constructor name="CompiledRegex" type="java.util.regex.Pattern"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="java.lang.String"/>
      <param name="rhs" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.CompiledRegex -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.NonConstantRegex -->
  <class name="NonConstantRegex" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl"/>
    <constructor name="NonConstantRegex"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="java.lang.String"/>
      <param name="rhs" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.NonConstantRegex -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl -->
  <interface name="RegexImpl"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="java.lang.String"/>
      <param name="rhs" type="java.lang.String"/>
    </method>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexInit -->
  <class name="RegexInit" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexImpl"/>
    <implements name="java.io.Serializable"/>
    <constructor name="RegexInit" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConstExpr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhsConstant" type="boolean"/>
    </method>
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="java.lang.String"/>
      <param name="rhs" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.regex.RegexInit -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.DotPOPrinter -->
  <class name="DotPOPrinter" extends="org.apache.pig.impl.plan.DotPlanDumper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotPOPrinter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DotPOPrinter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.io.PrintStream, boolean, java.util.Set, java.util.Set, java.util.Set"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="makeDumper" return="org.apache.pig.impl.plan.DotPlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="getAttributes" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="getMultiOutputNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="getNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <doc>
    <![CDATA[This class can print a physical plan in the DOT format. It uses
 clusters to illustrate nesting. If "verbose" is off, it will skip
 any nesting.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.DotPOPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PatternNode -->
  <class name="PatternNode" extends="org.apache.pig.newplan.Operator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PatternNode" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isLeafNode" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isLeafNode]]>
      </doc>
    </method>
    <method name="setLeafNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isLeafNode" type="boolean"/>
      <doc>
      <![CDATA[Set isLeafNode to true if the node must be a source
 @param isLeafNode]]>
      </doc>
    </method>
    <method name="isSourceNode" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isSourceNode]]>
      </doc>
    </method>
    <method name="setSourceNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isSourceNode" type="boolean"/>
      <doc>
      <![CDATA[Set isSourceNode to true if the node must be a source
 @param isSourceNode]]>
      </doc>
    </method>
    <method name="getClassName" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the className]]>
      </doc>
    </method>
    <method name="setClassName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="className" type="java.lang.Class"/>
      <doc>
      <![CDATA[@param className the className to set]]>
      </doc>
    </method>
    <method name="getMatch" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the match]]>
      </doc>
    </method>
    <method name="setMatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="match" type="java.lang.Object"/>
      <doc>
      <![CDATA[@param match the match to set]]>
      </doc>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operator" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Used for finding/representing a pattern in the plan
 This class represents a node in the pattern]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PatternNode -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PatternPlan -->
  <class name="PatternPlan" extends="org.apache.pig.newplan.BaseOperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PatternPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="match" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inpPlan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <doc>
      <![CDATA[Return true if the given plan has nodes that match the pattern 
 represented by this class
 If a match is found, the PatterNodes in the plan will return non 
 null node for getMatch(). 
 @param inpPlan - input plan to match
 @return true if match is found]]>
      </doc>
    </method>
    <method name="create" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PatternPlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="classList" type="java.lang.Class[]"/>
      <doc>
      <![CDATA[This function can be used to create a new PatternPlan if the pattern
 nodes have at most one parent/child, and they are connected to each other.
 The PatternNode corresponding to the i'th class in classList will be
 the predecessor of the one corresponding to i+1'th class.
 @param classList
 @return new PatterPlan corresponding to classList]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Used for finding/representing a pattern in the plan
 This class represents the pattern
 Finds only a single matching pattern
 This is finding a sub-graph( represented by pattern) in the graph(plan)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PatternPlan -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor -->
  <class name="PhyPlanVisitor" extends="org.apache.pig.impl.plan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PhyPlanVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ld" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nat" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGlobalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nfe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="un" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDemux"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="demux" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poCounter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitConstant"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cnst" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitProject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="proj" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGreaterThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="grt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLessThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNotEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRegexp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="re" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitIsNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isNull" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitAdd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="add" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSubtract"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sub" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Subtract"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMultiply"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mul" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Multiply"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDivide"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dv" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Divide"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMod"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mod" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Mod"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitAnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="and" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitOr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="or" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNot"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="not" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitBinCond"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binCond" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond"/>
    </method>
    <method name="visitNegative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="negative" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="compFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMapLookUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapLookUp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lim" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCross"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCross"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mergeCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[@param stream
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="visitSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sk" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPartitionRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartitionRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOOptimizedForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="optimizedForEach" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[@param optimizedForEach]]>
      </doc>
    </method>
    <method name="visitPreCombinerLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preCombinerLocalRearrange" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[@param preCombinerLocalRearrange]]>
      </doc>
    </method>
    <method name="visitPartialAgg"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poPartialAgg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitReservoirSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reservoirSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POReservoirSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPoissonSample"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poissonSample" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPoissonSample"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[The visitor class for the Physical Plan. To use this,
 create the visitor with the plan to be visited. Call
 the visit() method to traverse the plan in a depth first
 fashion.

 This class also visits the nested plans inside the operators.
 One has to extend this class to modify the nature of each visit
 and to maintain any relevant state information between the visits
 to two different operators.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan -->
  <class name="PhysicalPlan" extends="org.apache.pig.impl.plan.OperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Cloneable"/>
    <constructor name="PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="detachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <doc>
      <![CDATA[Write a visual representation of the Physical Plan
 into the given output stream
 @param out : OutputStream to which the visual representation is written]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <param name="verbose" type="boolean"/>
      <doc>
      <![CDATA[Write a visual representation of the Physical Plan
 into the given output stream
 @param out : OutputStream to which the visual representation is written
 @param verbose : Amount of information to print]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <doc>
      <![CDATA[Write a visual representation of the Physical Plan
 into the given printstream
 @param ps : PrintStream to which the visual representation is written
 @param format : Format to print in
 @param verbose : Amount of information to print]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="replace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldNode" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <param name="newNode" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="isEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="setOpMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="opmap" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="resetOpMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="endOfAllInput" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The base class for all types of physical plans.
 This extends the Operator Plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PlanPrinter -->
  <class name="PlanPrinter" extends="org.apache.pig.impl.plan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanPrinter" type="org.apache.pig.impl.plan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PlanPrinter" type="org.apache.pig.impl.plan.OperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="print"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="printer" type="java.io.OutputStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="breadthFirst"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="depthFirstPP" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
    </method>
    <method name="visitGlobalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
    </method>
    <method name="visitStartMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PlanPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.UdfCacheShipFilesVisitor -->
  <class name="UdfCacheShipFilesVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UdfCacheShipFilesVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ld" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="udf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
    <method name="getCacheFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getShipFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.UdfCacheShipFilesVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.XMLPhysicalPlanPrinter -->
  <class name="XMLPhysicalPlanPrinter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="XMLPhysicalPlanPrinter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.w3c.dom.Document, org.w3c.dom.Element"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="print"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="printer" type="java.io.OutputStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="depthFirstPP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="parentNode" type="org.w3c.dom.Element"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.XMLPhysicalPlanPrinter -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators">
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer -->
  <interface name="AccumulativeTupleBuffer"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="nextBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Pull next batch of tuples from iterator and put them into this buffer]]>
      </doc>
    </method>
    <method name="hasNextBatch" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Whether there are more tuples to pull out of iterator]]>
      </doc>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Clear internal buffer, this should be called after all data are retreived]]>
      </doc>
    </method>
    <method name="getTuples" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <doc>
      <![CDATA[Get iterator of tuples in the buffer
 @param index  the index of tuple]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface is used during Reduce phrase to process tuples
 in batch mode. It is used by POPackage when all of the UDFs can be
 called in accumulative mode. Tuples are not pulled all at once,
 instead, each time, only a specified number of tuples are pulled out
 of iterator and put in an buffer. Then this buffer is wrapped into 
 a bag to be passed to the operators in reduce plan.
 
 The purpose of doing this is to reduce memory usage and avoid spilling.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.CombinerPackager -->
  <class name="CombinerPackager" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CombinerPackager" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A new POPostCombinePackage will be constructed as a near clone of the
 provided POPackage.
 @param pkg POPackage to clone.
 @param bags for each field, indicates whether it should be a bag (true)
 or a simple field (false).]]>
      </doc>
    </constructor>
    <method name="setKeyInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyInfo" type="java.util.Map"/>
      <doc>
      <![CDATA[@param keyInfo the keyInfo to set]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getValueTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="ntup" type="org.apache.pig.impl.io.NullableTuple"/>
      <param name="index" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[The package operator that packages the globally rearranged tuples into
 output format after the combiner stage.  It differs from POPackage in that
 it does not use the index in the NullableTuple to find the bag to put a
 tuple in.  Instead, the inputs are put in a bag corresponding to their
 offset in the tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.CombinerPackager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.JoinPackager -->
  <class name="JoinPackager" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JoinPackager" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext to get next ForEach result. The input for POJoinPackage is
 a (key, NullableTuple) pair. We will materialize n-1 inputs into bags, feed input#n
 one tuple a time to the delegated ForEach operator, the input for ForEach is
 
     (input#1, input#2, input#3....input#n[i]), i=(1..k), suppose input#n consists
 
 of k tuples.
 For every ForEach input, pull all the results from ForEach.
 getNext will be called multiple times for a particular input,
 it returns one output tuple from ForEach every time we call getNext,
 so we need to maintain internal status to keep tracking of where we are.]]>
      </doc>
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="bags" type="org.apache.pig.data.DataBag[]"/>
      <param name="readOnce" type="boolean[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getInputPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInputPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
    </method>
    <method name="setToBeFlattened"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="flattens" type="java.util.List"/>
    </method>
    <method name="getForEach" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the forEach]]>
      </doc>
    </method>
    <method name="setChunkSize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="chunkSize" type="long"/>
      <doc>
      <![CDATA[@param chunkSize - the chunk size for the biggest input]]>
      </doc>
    </method>
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="DEFAULT_CHUNK_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.JoinPackager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.LitePackager -->
  <class name="LitePackager" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LitePackager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInner" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inner" type="boolean[]"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.LitePackager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the distinct]]>
      </doc>
    </method>
    <method name="setDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="boolean"/>
      <doc>
      <![CDATA[@param distinct the distinct to set]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Similar to POPackage.getNext except that
 only one input is expected with index 0
 and ReadOnceBag is used instead of
 DefaultDataBag.]]>
      </doc>
    </method>
    <method name="getValueTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="ntup" type="org.apache.pig.impl.io.NullableTuple"/>
      <param name="index" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Makes use of the superclass method, but this requires an additional
 parameter key passed by ReadOnceBag. key of this instance will be set to
 null in detachInput call, but an instance of ReadOnceBag may have the
 original key that it uses. Therefore this extra argument is taken to
 temporarily set it before the call to the superclass method and then
 restore it.]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[This package operator is a specialization
 of POPackage operator used for the specific
 case of the order by query. See JIRA 802
 for more details.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.LitePackager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.MultiQueryPackager -->
  <class name="MultiQueryPackager" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MultiQueryPackager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="addPackager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkgr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"/>
      <doc>
      <![CDATA[Appends the specified package object to the end of
 the package list.
 
 @param pack package to be appended to the list]]>
      </doc>
    </method>
    <method name="addPackager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkgr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"/>
      <param name="mapKeyType" type="byte"/>
      <doc>
      <![CDATA[Appends the specified package object to the end of
 the package list.
 
 @param pack package to be appended to the list
 @param mapKeyType the map key type associated with the package]]>
      </doc>
    </method>
    <method name="getPackagers" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of packages.
 
 @return the list of the packages]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Constructs the output tuple from the inputs.
 <p>
 The output is consumed by for the demultiplexer operator
 (PODemux) in the format (key, {bag of tuples}) where key
 is an indexed WritableComparable, not the wrapped value as a pig type.]]>
      </doc>
    </method>
    <method name="getIsKeyWrappedList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of booleans that indicates if the
 key needs to unwrapped for the corresponding plan.
 
 @return the list of isKeyWrapped boolean values]]>
      </doc>
    </method>
    <method name="addIsKeyWrappedList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lst" type="java.util.List"/>
      <doc>
      <![CDATA[Adds a list of IsKeyWrapped boolean values
 
 @param lst the list of boolean values to add]]>
      </doc>
    </method>
    <method name="setInCombiner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inCombiner" type="boolean"/>
    </method>
    <method name="isInCombiner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSameMapKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sameMapKeyType" type="boolean"/>
    </method>
    <method name="isSameMapKeyType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumInputs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="byte"/>
    </method>
    <method name="getValueTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="ntup" type="org.apache.pig.impl.io.NullableTuple"/>
      <param name="origIndex" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[The package operator that packages the globally rearranged tuples
 into output format as required by multi-query de-multiplexer.
 <p>
 This operator is used when merging multiple Map-Reduce splittees
 into a Map-only splitter during multi-query optimization.
 The package operators of the reduce plans of the splittees form an
 indexed package list inside this operator. When this operator
 receives an input, it extracts the index from the key and calls the
 corresponding package to get the output data.
 <p>
 Due to the recursive nature of multi-query optimization, this operator
 may be contained in another multi-query packager.
 <p>
 The successor of this operator must be a PODemux operator which
 knows how to consume the output of this operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.MultiQueryPackager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager -->
  <class name="Packager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.pen.Illustrable"/>
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="Packager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKey" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="bags" type="org.apache.pig.data.DataBag[]"/>
      <param name="readOnce" type="boolean[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNext" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="detachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup2" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
    </method>
    <method name="starMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.data.Tuple"/>
      <param name="val" type="org.apache.pig.data.Tuple"/>
      <param name="out" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getValueTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="ntup" type="org.apache.pig.impl.io.NullableTuple"/>
      <param name="index" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
    </method>
    <method name="getKeyTuple" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isKeyTuple]]>
      </doc>
    </method>
    <method name="getKeyAsTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyAsTuple]]>
      </doc>
    </method>
    <method name="getKey" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the key]]>
      </doc>
    </method>
    <method name="getInner" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inner" type="boolean[]"/>
    </method>
    <method name="setKeyInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyInfo" type="java.util.Map"/>
      <doc>
      <![CDATA[@param keyInfo the keyInfo to set]]>
      </doc>
    </method>
    <method name="setKeyTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyTuple" type="boolean"/>
      <doc>
      <![CDATA[@param keyTuple the keyTuple to set]]>
      </doc>
    </method>
    <method name="setKeyCompound"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyCompound" type="boolean"/>
      <doc>
      <![CDATA[@param keyCompound the keyCompound to set]]>
      </doc>
    </method>
    <method name="getKeyInfo" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyInfo]]>
      </doc>
    </method>
    <method name="getIllustrator" return="org.apache.pig.pen.Illustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the distinct]]>
      </doc>
    </method>
    <method name="setDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="boolean"/>
      <doc>
      <![CDATA[@param distinct the distinct to set]]>
      </doc>
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="getUseSecondaryKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPackageType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType"/>
    </method>
    <method name="getPackageType" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumInputs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="byte"/>
    </method>
    <method name="getNumInputs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNumInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numInputs" type="int"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="setParent"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pack" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
    </method>
    <method name="numberOfEquivalenceClasses" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="checkBagType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="readOnce" type="boolean[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="bags" type="org.apache.pig.data.DataBag[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="illustrator" type="org.apache.pig.pen.Illustrator"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isKeyTuple" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isKeyCompound" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="distinct" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyInfo" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="parent" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mBagFactory" type="org.apache.pig.data.BagFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mTupleFactory" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType -->
  <class name="Packager.PackageType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="GROUP" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOIN" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager.PackageType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup -->
  <class name="POCollectedGroup" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POCollectedGroup" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCollectedGroup" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCollectedGroup" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCollectedGroup" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Overridden since the attachment of the new input should cause the old
 processing to end.]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="constructOutput" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
    </method>
    <method name="getPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="serialVersionUID" type="long"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mTupleFactory" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plans" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="leafOps" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The collected group operator is a special operator used when users give
 the hint 'using "collected"' in a group by clause. It implements a map-side
 group that collects all records for a given key into a buffer. When it sees
 a key change it will emit the key and bag for records it had buffered.
 It will assume that all keys for a given record are collected together
 and thus there is not need to buffer across keys.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter -->
  <class name="POCounter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POCounter" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCounter" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCounter" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCounter" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCounter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCounter" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="addCounterValue" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Add current task id and local counter value.
 @param input from the previous output
 @return  a tuple within two values prepended to the tuple
 the task identifier and the local counter value.
 Local counter value could be incremented by one (is a row number or dense rank)
 or, could be incremented by the size of the bag on the previous tuple processed]]>
      </doc>
    </method>
    <method name="incrementReduceCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="increment" type="java.lang.Long"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCounterPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="counterPlans" type="java.util.List"/>
    </method>
    <method name="getCounterPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAscendingColumns"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mAscCols" type="java.util.List"/>
    </method>
    <method name="getAscendingColumns" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetLocalCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Initialization step into the POCounter is to set
  up local counter to 1.]]>
      </doc>
    </method>
    <method name="incrementLocalCounter" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Sequential counter used at ROW NUMBER and RANK BY DENSE mode]]>
      </doc>
    </method>
    <method name="setLocalCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="localCount" type="java.lang.Long"/>
    </method>
    <method name="getLocalCounter" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addToLocalCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="sizeBag" type="java.lang.Long"/>
    </method>
    <method name="setTaskId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskID" type="int"/>
      <doc>
      <![CDATA[Task ID: identifier of the task (map or reducer)]]>
      </doc>
    </method>
    <method name="getTaskId" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIsDenseRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isDenseRank" type="boolean"/>
      <doc>
      <![CDATA[Dense Rank flag]]>
      </doc>
    </method>
    <method name="isDenseRank" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIsRowNumber"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isRowNumber" type="boolean"/>
      <doc>
      <![CDATA[Row number flag]]>
      </doc>
    </method>
    <method name="isRowNumber" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOperationID"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operationID" type="java.lang.String"/>
      <doc>
      <![CDATA[Operation ID: identifier shared within the corresponding PORank]]>
      </doc>
    </method>
    <method name="getOperationID" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <field name="ONE" type="java.lang.Long"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This operator is part of the RANK operator implementation.
 It adds a local counter and a unique task id to each tuple.
 There are 2 modes of operations: regular and dense.
 The local counter is depends on the mode of operation.
 With regular rank is considered duplicate rows while assigning
 numbers to distinct values groups.
 With dense rank counts the number of distinct values, without
 considering duplicate rows. Depending on if it is considered.
 the entire tuple (row number) or a by a set of columns (rank by).

 This Physical Operator relies on some specific MR class,
 available at PigMapReduceCounter.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCross -->
  <class name="POCross" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POCross" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCross" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCross" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POCross" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <field name="inputBags" type="org.apache.pig.data.DataBag[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="data" type="org.apache.pig.data.Tuple[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="its" type="java.util.Iterator[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="tupleOfLastBag" type="org.apache.pig.data.Tuple"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Recover this class for nested cross operation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCross -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux -->
  <class name="PODemux" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PODemux" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key.
 
 @param k the operator key]]>
      </doc>
    </constructor>
    <constructor name="PODemux" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key
 and degree of parallelism.
  
 @param k the operator key
 @param rp the degree of parallelism requested]]>
      </doc>
    </constructor>
    <constructor name="PODemux" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key and inputs.
  
 @param k the operator key
 @param inp the inputs that this operator will read data from]]>
      </doc>
    </constructor>
    <constructor name="PODemux" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key,
 degree of parallelism and inputs.
 
 @param k the operator key
 @param rp the degree of parallelism requested 
 @param inp the inputs that this operator will read data from]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of inner plans.
  
 @return the list of the nested plans]]>
      </doc>
    </method>
    <method name="addPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[Appends the specified plan at the end of the list.
 
 @param inPlan plan to be appended to the inner plan list]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setInCombiner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inCombiner" type="boolean"/>
      <doc>
      <![CDATA[Sets a flag indicating if this operator is 
 in a combiner. 
 
 @param inCombiner true if this operator is in
 a combiner; false if this operator is in a reducer]]>
      </doc>
    </method>
    <method name="isInCombiner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns a flag indicating if this operator is 
 in a combiner.
 
 @return true if this operator is in a combiner;
 otherwise this operator is in a reducer]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[The MapReduce Demultiplexer operator.
 <p>
 This operator is used when merging multiple Map-Reduce splittees
 into a Map-only splitter during multi-query optimization. 
 The reduce physical plans of the splittees become the inner plans 
 of this operator.
 <p>
 Due to the recursive nature of multi-query optimization, this operator
 may be contained in another demux operator.
 <p>
 The predecessor of this operator must be a POMultiQueryPackage
 operator which passes the index (indicating which inner reduce plan to run)
 along with other data to this operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct -->
  <class name="PODistinct" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Cloneable"/>
    <constructor name="PODistinct" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PODistinct" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PODistinct" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PODistinct" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCustomPartitioner" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCustomPartitioner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="customPartitioner" type="java.lang.String"/>
    </method>
    <method name="isBlocking" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="customPartitioner" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Find the distinct set of tuples in a bag.
 This is a blocking operator. All the input is put in the hashset implemented
 in DistinctDataBag which also provides the other DataBag interfaces.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter -->
  <class name="POFilter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POFilter" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POFilter" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POFilter" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POFilter" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Attaches the proccesed input tuple to the expression plan and checks if
 comparison operator returns a true. If so the tuple is not filtered and
 let to pass through. Else, further input is processed till a tuple that
 can be passed through is found or EOP is reached.]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
    </method>
    <method name="getPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[This is an implementation of the Filter operator. It has an Expression Plan
 that decides whether the input tuple should be filtered or passed through. To
 avoid many function calls, the filter operator, stores the Comparison
 Operator that is the root of the Expression Plan and uses its getNext
 directly.

 Since the filter is supposed to return tuples only, getNext is not supported
 on any other data type.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach -->
  <class name="POForEach" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POForEach" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POForEach" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POForEach" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POForEach" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POForEach" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumulative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAccumEnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested
 physical plan and returns it maintaining an additional state
 to denote the begin and end of the nested plan processing.]]>
      </doc>
    </method>
    <method name="processPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="createTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="data" type="java.lang.Object[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param data array that is the template for the final flattened tuple
 @return the final flattened tuple]]>
      </doc>
    </method>
    <method name="attachInputToPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getLeaves"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInputPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
    </method>
    <method name="addInputPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="flatten" type="boolean"/>
    </method>
    <method name="setToBeFlattened"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="flattens" type="java.util.List"/>
    </method>
    <method name="getToBeFlattened" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="inProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUpFlattens"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isToBeFlattened" type="java.util.List"/>
    </method>
    <method name="getOpsToBeReset" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the opsToBeReset]]>
      </doc>
    </method>
    <method name="setOpsToBeReset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="opsToBeReset" type="java.util.List"/>
      <doc>
      <![CDATA[@param opsToBeReset the opsToBeReset to set]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="setMapSideOnly"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapSideOnly" type="boolean"/>
    </method>
    <method name="isMapSideOnly" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="needEndOfAllInputProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <field name="inputPlans" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="opsToBeReset" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="planLeafOps" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="resultTypes" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isToBeFlattenedArray" type="boolean[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="noItems" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="processingPlan" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="its" type="java.util.Iterator[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="bags" type="java.lang.Object[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="data" type="java.lang.Object[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="earlyTermination" type="java.util.BitSet"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="tIn" type="org.apache.pig.pen.util.ExampleTuple"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="buffer" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inpTuple" type="org.apache.pig.data.Tuple"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="endOfAllInputProcessed" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mapSideOnly" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="endOfAllInputProcessing" type="java.lang.Boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin -->
  <class name="POFRJoin" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POFRJoin" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, java.util.List, org.apache.pig.impl.io.FileSpec[], int, boolean, org.apache.pig.data.Tuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <constructor name="POFRJoin" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, java.util.List, org.apache.pig.impl.io.FileSpec[], int, boolean, org.apache.pig.data.Tuple, org.apache.pig.impl.logicalLayer.schema.Schema[], org.apache.pig.impl.logicalLayer.schema.Schema[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <constructor name="POFRJoin" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setUpHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Builds the HashMaps by reading each replicated input from the DFS using a
 Load operator

 @throws ExecException]]>
      </doc>
    </method>
    <method name="isKeyNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getValueTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="lr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getJoinPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLRs" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFragment" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFragment"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fragment" type="int"/>
    </method>
    <method name="getReplFiles" return="org.apache.pig.impl.io.FileSpec[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setReplFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="replFiles" type="org.apache.pig.impl.io.FileSpec[]"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <field name="fragment" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="phyPlanLists" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyTypes" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="LRs" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="replFiles" type="org.apache.pig.impl.io.FileSpec[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="constExps" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="fe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isLeftOuterJoin" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="nullBag" type="org.apache.pig.data.DataBag"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputSchemas" type="org.apache.pig.impl.logicalLayer.schema.Schema[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keySchemas" type="org.apache.pig.impl.logicalLayer.schema.Schema[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="replicates" type="java.util.List"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="processingPlan" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="dumTup" type="org.apache.pig.data.Tuple"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="setUp" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The operator models the join keys using the Local Rearrange operators which
 are configured with the plan specified by the user. It also sets up one
 Hashtable per replicated input which maps the Key(k) stored as a Tuple to a
 DataBag which holds all the values in the input having the same key(k) The
 getNext() reads an input from its predecessor and separates them into key &
 value. It configures a foreach operator with the databags obtained from each
 Hashtable for the key and also with the value for the fragment input. It then
 returns tuples returned by this foreach operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin.TupleToMapKey -->
  <class name="POFRJoin.TupleToMapKey" extends="java.util.HashMap"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="POFRJoin.TupleToMapKey" type="int, org.apache.pig.data.SchemaTupleFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="put" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin.TuplesToSchemaTupleList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="val" type="java.util.ArrayList"/>
    </method>
    <method name="get" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin.TuplesToSchemaTupleList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin.TupleToMapKey -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange -->
  <class name="POGlobalRearrange" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POGlobalRearrange" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POGlobalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POGlobalRearrange" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POGlobalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCustomPartitioner" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCustomPartitioner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="customPartitioner" type="java.lang.String"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isBlocking" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="setCross"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="boolean"/>
    </method>
    <method name="isCross" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="customPartitioner" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Dummy operator to test MRCompiler.
 This will be a local operator and its
 getNext methods have to be implemented]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit -->
  <class name="POLimit" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POLimit" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLimit" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLimit" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLimit" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="long"/>
    </method>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLimitPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimitPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="expressionPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Counts the number of tuples processed into static variable soFar, if the number of tuples processed reach the
 limit, return EOP; Otherwise, return the tuple]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad -->
  <class name="POLoad" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POLoad" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLoad" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.impl.io.FileSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLoad" type="org.apache.pig.impl.plan.OperatorKey, int, org.apache.pig.impl.io.FileSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLoad" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.LoadFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set up the loader by 
 1) Instantiating the load func
 2) Opening an input stream to the specified file and
 3) Binding to the input stream at the specified offset.
 @throws IOException]]>
      </doc>
    </method>
    <method name="tearDown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[At the end of processing, the inputstream is closed
 using this method
 @throws IOException]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[The main method used by this operator's successor
 to read tuples from the specified file using the
 specified load function.
 
 @return Whatever the loader returns
          A null from the loader is indicative
          of EOP and hence the tearDown of connection]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getLFile" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="file" type="org.apache.pig.impl.io.FileSpec"/>
    </method>
    <method name="setIsTmpLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tmp" type="boolean"/>
    </method>
    <method name="isTmpLoad" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPc" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getLoadFunc" return="org.apache.pig.LoadFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="long"/>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCacheFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cf" type="java.util.List"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setShipFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sf" type="java.util.List"/>
    </method>
    <doc>
    <![CDATA[The load operator which is used in two ways:
 1) As a local operator it can be used to load files
 2) In the Map Reduce setting, it is used to create jobs
    from MapReduce operators which keep the loads and
    stores in the Map and Reduce Plans till the job is created]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange -->
  <class name="POLocalRearrange" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrange" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIndex" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Sets the co-group index of this operator

 @param index the position of this operator in
 a co-group operation
 @throws ExecException if the index value is bigger then 0x7F]]>
      </doc>
    </method>
    <method name="setMultiQueryIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Sets the multi-query index of this operator

 @param index the position of the parent plan of this operator
 in the enclosed split operator
 @throws ExecException if the index value is bigger then 0x7F]]>
      </doc>
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isDistinct" type="boolean"/>
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Overridden since the attachment of the new input should cause the old
 processing to end.]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested
 physical plan. Converts the generated tuple into the proper
 format, i.e, (key,indexedTuple(value))]]>
      </doc>
    </method>
    <method name="getKeyFromResult" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="constructLROutput" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="secondaryResLst" type="java.util.List"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMainKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
    </method>
    <method name="getPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="setPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="setSecondaryPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="isCross" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCross"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isCross" type="boolean"/>
    </method>
    <method name="getProjectedColsMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the mProjectedColsMap]]>
      </doc>
    </method>
    <method name="getSecondaryProjectedColsMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the mProjectedColsMap]]>
      </doc>
    </method>
    <method name="isProjectStar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the mProjectStar]]>
      </doc>
    </method>
    <method name="isSecondaryProjectStar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the mProjectStar]]>
      </doc>
    </method>
    <method name="isKeyTuple" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyTuple]]>
      </doc>
    </method>
    <method name="isKeyCompound" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isKeyCompound]]>
      </doc>
    </method>
    <method name="isSecondaryKeyTuple" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the keyTuple]]>
      </doc>
    </method>
    <method name="setPlansFromCombiner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[@param plans
 @throws ExecException]]>
      </doc>
    </method>
    <method name="setStripKeyFromValue"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="stripKeyFromValue" type="boolean"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="serialVersionUID" type="long"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plans" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="secondaryPlans" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="leafOps" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="secondaryLeafOps" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="index" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mainKeyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="secondaryKeyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mIsDistinct" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isCross" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mFakeTuple" type="org.apache.pig.data.Tuple"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The local rearrange operator is a part of the co-group
 implementation. It has an embedded physical plan that
 generates tuples of the form (grpKey,(indxed inp Tuple)).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup -->
  <class name="POMergeCogroup" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POMergeCogroup" type="org.apache.pig.impl.plan.OperatorKey, java.util.List, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange[], int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setEndOfRecordMark"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endOfRecordMark" type="byte"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLRInnerPlansOf" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="setSideLoadFuncs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sideLoadFuncs" type="java.util.List"/>
    </method>
    <method name="setSideFileSpecs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sideFileSpecs" type="java.util.List"/>
    </method>
    <method name="getIndexFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIndexFileName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="indexFileName" type="java.lang.String"/>
    </method>
    <method name="getIdxFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIdxFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idxFileSpec" type="org.apache.pig.FuncSpec"/>
    </method>
    <method name="setLoaderSignatures"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loaderSignatures" type="java.util.List"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin -->
  <class name="POMergeJoin" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POMergeJoin" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.impl.util.MultiMap, java.util.List, org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE, org.apache.pig.impl.logicalLayer.schema.Schema, org.apache.pig.impl.logicalLayer.schema.Schema, org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[@param k
 @param rp
 @param inp
 @param inpPlans there can only be 2 inputs each being a List<PhysicalPlan>
 Ex. join A by ($0,$1), B by ($1,$2);]]>
      </doc>
    </constructor>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="throwProcessingException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="withCauseException" type="boolean"/>
      <param name="e" type="java.lang.Exception"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setupRightPipeline"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rightPipeline" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setRightLoaderFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rightLoaderFuncSpec" type="org.apache.pig.FuncSpec"/>
    </method>
    <method name="getInnerPlansOf" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRightInputFileName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rightInputFileName" type="java.lang.String"/>
      <doc>
      <![CDATA[@param rightInputFileName the rightInputFileName to set]]>
      </doc>
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setIndexFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="indexFile" type="java.lang.String"/>
    </method>
    <method name="getIndexFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="getJoinType" return="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This operator implements merge join algorithm to do map side joins.
  Currently, only two-way joins are supported. One input of join is identified as left
  and other is identified as right. Left input tuples are the input records in map.
  Right tuples are read from HDFS by opening right stream.

    This join doesn't support outer join.
    Data is assumed to be sorted in ascending order. It will fail if data is sorted in descending order.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin.TuplesToSchemaTupleList -->
  <class name="POMergeJoin.TuplesToSchemaTupleList" extends="java.util.ArrayList"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POMergeJoin.TuplesToSchemaTupleList" type="int, org.apache.pig.data.TupleMaker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="convert" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="tf" type="org.apache.pig.data.SchemaTupleFactory"/>
    </method>
    <method name="add" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="get" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This is a class that extends ArrayList, making it easy to provide on the fly conversion
 from Tuple to SchemaTuple. This is necessary because we are not getting SchemaTuples
 from the source, though in the future that is what we would like to do.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin.TuplesToSchemaTupleList -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative -->
  <class name="PONative" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PONative" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNativeMRjar" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNativeMRjar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nativeMRjar" type="java.lang.String"/>
    </method>
    <method name="getParams" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setParams"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="params" type="java.lang.String[]"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach -->
  <class name="POOptimizedForEach" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POOptimizedForEach" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POOptimizedForEach" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POOptimizedForEach" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POOptimizedForEach" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POOptimizedForEach" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested
 physical plan and returns it maintaining an additional state
 to denote the begin and end of the nested plan processing.]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A specialized version of POForeach with the difference
 that in getNext(), it knows that "input" has already been
 attached by its input operator which SHOULD be POJoinPackage]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage -->
  <class name="POPackage" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPackage" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPackage" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPackage" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPackage" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPackage" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPackage" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="k" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="inp" type="java.util.Iterator"/>
      <doc>
      <![CDATA[Attaches the required inputs
 @param k - the key being worked on
 @param inp - iterator of indexed tuples typically
              obtained from Hadoop]]>
      </doc>
    </method>
    <method name="detachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[attachInput's better half!]]>
      </doc>
    </method>
    <method name="getNumInps" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNumInps"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numInps" type="int"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[From the inputs, constructs the output tuple for this co-group in the
 required format which is (key, {bag of tuples from input 1}, {bag of
 tuples from input 2}, ...)]]>
      </doc>
    </method>
    <method name="getPkgr" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPkgr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkgr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="numberOfEquivalenceClasses" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="key" type="java.lang.Object"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="numInputs" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pkgr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The package operator that packages
 the globally rearranged tuples into
 output format as required by co-group.
 This is last stage of processing co-group.
 This operator has a slightly different
 format than other operators in that, it
 takes two things as input. The key being
 worked on and the iterator of bags that
 contain indexed tuples that just need to
 be packaged into their appropriate output
 bags based on the index.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage.POPackageTupleBuffer -->
  <class name="POPackage.POPackageTupleBuffer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer"/>
    <constructor name="POPackage.POPackageTupleBuffer" type="int, java.lang.Object, java.util.Iterator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="hasNextBatch" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="nextBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTuples" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage.POPackageTupleBuffer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg -->
  <class name="POPartialAgg" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.impl.util.Spillable"/>
    <implements name="org.apache.pig.impl.util.GroupingSpillable"/>
    <constructor name="POPartialAgg" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPartialAgg" type="org.apache.pig.impl.plan.OperatorKey, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getKeyPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setKeyPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
    </method>
    <method name="getValuePlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setValuePlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valuePlans" type="java.util.List"/>
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[Do partial aggregation in map plan. Inputs are buffered up in
 a hashmap until a threshold is reached; then the combiner functions
 are fed these buffered up inputs, and results stored in a secondary
 map. Once that map fills up or all input has been seen, results are
 piped out into the next operator (caller of getNext()).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartitionRearrange -->
  <class name="POPartitionRearrange" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPartitionRearrange" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPartitionRearrange" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPartitionRearrange" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPartitionRearrange" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested
 physical plan. Converts the generated tuple into the proper
 format, i.e, (key,indexedTuple(value))]]>
      </doc>
    </method>
    <method name="constructPROutput" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[@param pigContext the pigContext to set]]>
      </doc>
    </method>
    <method name="getPigContext" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the pigContext]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartitionRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this operator.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The partition rearrange operator is a part of the skewed join
 implementation. It has an embedded physical plan that
 generates tuples of the form (inpKey,reducerIndex,(indxed inp Tuple)).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartitionRearrange -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPoissonSample -->
  <class name="POPoissonSample" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPoissonSample" type="org.apache.pig.impl.plan.OperatorKey, int, int, float, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="DEFAULT_SAMPLE_RATE" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPoissonSample -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange -->
  <class name="POPreCombinerLocalRearrange" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPreCombinerLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPreCombinerLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPreCombinerLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPreCombinerLocalRearrange" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="attachInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Overridden since the attachment of the new input should cause the old
 processing to end.]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested
 physical plan. Converts the generated tuple into the proper
 format, i.e, (key,indexedTuple(value))]]>
      </doc>
    </method>
    <method name="constructLROutput" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getKeyType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setKeyType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyType" type="byte"/>
    </method>
    <method name="getPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <field name="serialVersionUID" type="long"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plans" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="leafOps" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyType" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A specialized local rearrange operator which behaves
 like the regular local rearrange in the getNext()
 as far as getting its input and constructing the
 "key" out of the input. It then returns a tuple with
 two fields - the key in the first position and the
 "value" inside a bag in the second position. This output
 format resembles the format out of a Package. This output
 will feed to a foreach which expects this format.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank -->
  <class name="PORank" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PORank" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORank" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORank" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORank" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORank" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PORank" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="addRank" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Reads the output tuple from POCounter and the cumulative sum previously calculated.
 Here is read the task identifier in order to get the corresponding cumulative sum,
 and the local counter at the tuple. These values are summed and prepended to the tuple.
 @param input processed by POCounter
 @return input as Result. The input.result tuple owns the prepend rank value]]>
      </doc>
    </method>
    <method name="getRankCounterOffset" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="taskId" type="java.lang.Integer"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRankPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rankPlans" type="java.util.List"/>
    </method>
    <method name="getRankPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAscendingCols"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mAscCols" type="java.util.List"/>
    </method>
    <method name="getAscendingCols" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOperationID"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operationID" type="java.lang.String"/>
      <doc>
      <![CDATA[Operation ID: identifier shared within the corresponding POCounter
 @param operationID]]>
      </doc>
    </method>
    <method name="getOperationID" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[This operator is part of the RANK operator implementation.
 Reads the output tuple from POCounter and the cumulative sum previously calculated.
 Here is read the task identifier in order to get the corresponding cumulative sum,
 and the local counter at the tuple. These values are summed and prepended to the tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POReservoirSample -->
  <class name="POReservoirSample" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POReservoirSample" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POReservoirSample" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POReservoirSample" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POReservoirSample" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POReservoirSample" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="numSamples" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POReservoirSample -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin -->
  <class name="POSkewedJoin" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POSkewedJoin" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSkewedJoin" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSkewedJoin" type="org.apache.pig.impl.plan.OperatorKey, java.util.List, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSkewedJoin" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInnerFlags" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJoinPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setJoinPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="joinPlans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[The PhysicalOperator that represents a skewed join. It must have two inputs.
 This operator does not do any actually work, it is only a place holder. When it is
 translated into MR plan, a POSkewedJoin is translated into a sampling job and a join
 job.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort -->
  <class name="POSort" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POSort" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List, java.util.List, java.util.List, org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSort" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSort" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSort" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSort" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isBlocking" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSortPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSortPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortPlans" type="java.util.List"/>
    </method>
    <method name="getMSortFunc" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMSortFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"/>
    </method>
    <method name="getMAscCols" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="long"/>
    </method>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLimited" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <field name="isUDFComparatorUsed" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This implementation is applicable for both the physical plan and for the
 local backend, as the conversion of physical to mapreduce would see the SORT
 operator and take necessary steps to convert it to a quantile and a sort job.

 This is a blocking operator. The sortedDataBag accumulates Tuples and sorts
 them only when there an iterator is started. So all the tuples from the input
 operator should be accumulated and filled into the dataBag. The attachInput
 method is not applicable here.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort.SortComparator -->
  <class name="POSort.SortComparator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.Comparator"/>
    <implements name="java.io.Serializable"/>
    <constructor name="POSort.SortComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="org.apache.pig.data.Tuple"/>
      <param name="o2" type="org.apache.pig.data.Tuple"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort.SortComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort.UDFSortComparator -->
  <class name="POSort.UDFSortComparator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.Comparator"/>
    <implements name="java.io.Serializable"/>
    <constructor name="POSort.UDFSortComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="org.apache.pig.data.Tuple"/>
      <param name="t2" type="org.apache.pig.data.Tuple"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort.UDFSortComparator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSortedDistinct -->
  <class name="POSortedDistinct" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POSortedDistinct" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSortedDistinct" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSortedDistinct" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POSortedDistinct" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This operator is a variation of PODistinct, the input to this operator
 must be sorted already.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSortedDistinct -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit -->
  <class name="POSplit" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POSplit" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key
 @param k the operator key]]>
      </doc>
    </constructor>
    <constructor name="POSplit" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key
 and degree of parallelism
 @param k the operator key
 @param rp the degree of parallelism requested]]>
      </doc>
    </constructor>
    <constructor name="POSplit" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key and inputs
 @param k the operator key
 @param inp the inputs that this operator will read data from]]>
      </doc>
    </constructor>
    <constructor name="POSplit" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs an operator with the specified key,
 degree of parallelism and inputs
 @param k the operator key
 @param rp the degree of parallelism requested
 @param inp the inputs that this operator will read data from]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSplitStore" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the name of the file associated with this operator
 @return the FileSpec associated with this operator]]>
      </doc>
    </method>
    <method name="setSplitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitStore" type="org.apache.pig.impl.io.FileSpec"/>
      <doc>
      <![CDATA[Sets the name of the file associated with this operator
 @param splitStore the FileSpec used to store the data]]>
      </doc>
    </method>
    <method name="getPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of nested plans.
 @return the list of the nested plans
 @see org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PlanPrinter]]>
      </doc>
    </method>
    <method name="addPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[Appends the specified plan to the end of
 the nested input plan list
 @param inPlan plan to be appended to the list]]>
      </doc>
    </method>
    <method name="removePlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <doc>
      <![CDATA[Removes plan from
 the nested input plan list
 @param plan plan to be removed]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[The MapReduce Split operator.
 <p>
 The assumption here is that
 the logical to physical translation
 will create this dummy operator with
 just the filename using which the input
 branch will be stored and used for loading
 Also the translation should make sure that
 appropriate filter operators are configured
 as outputs of this operator using the conditions
 specified in the LOSplit. So LOSplit will be converted
 into:

     |        |           |
  Filter1  Filter2 ... Filter3
     |        |    ...    |
     |        |    ...    |
     ---- POSplit -... ----
 This is different than the existing implementation
 where the POSplit writes to sidefiles after filtering
 and then loads the appropriate file.
 <p>
 The approach followed here is as good as the old
 approach if not better in many cases because
 of the availability of attachinInputs. An optimization
 that can ensue is if there are multiple loads that
 load the same file, they can be merged into one and
 then the operators that take input from the load
 can be stored. This can be used when
 the mapPlan executes to read the file only once and
 attach the resulting tuple as inputs to all the
 operators that take input from this load.

 In some cases where the conditions are exclusive and
 some outputs are ignored, this approach can be worse.
 But this leads to easier management of the Split and
 also allows to reuse this data stored from the split
 job whenever necessary.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore -->
  <class name="POStore" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POStore" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POStore" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POStore" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POStore" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set up the storer
 @throws IOException]]>
      </doc>
    </method>
    <method name="tearDown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Called at the end of processing for clean up.
 @throws IOException]]>
      </doc>
    </method>
    <method name="cleanUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[To perform cleanup when there is an error.
 @throws IOException]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getSFile" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sFile" type="org.apache.pig.impl.io.FileSpec"/>
    </method>
    <method name="setInputSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lFile" type="org.apache.pig.impl.io.FileSpec"/>
    </method>
    <method name="getInputSpec" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIsTmpStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tmp" type="boolean"/>
    </method>
    <method name="isTmpStore" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStoreImpl"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="impl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl"/>
    </method>
    <method name="setSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStoreFunc" return="org.apache.pig.StoreFuncInterface"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStoreFuncDecorator" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.StoreFuncDecorator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return The {@link StoreFuncDecorator} used to write Tuples]]>
      </doc>
    </method>
    <method name="setSortInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortInfo" type="org.apache.pig.SortInfo"/>
      <doc>
      <![CDATA[@param sortInfo the sortInfo to set]]>
      </doc>
    </method>
    <method name="getSortInfo" return="org.apache.pig.SortInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the sortInfo]]>
      </doc>
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setMultiStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isMultiStore" type="boolean"/>
    </method>
    <method name="isMultiStore" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="setIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
    </method>
    <method name="getIndex" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setDisableCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="disableCounter" type="boolean"/>
    </method>
    <method name="disableCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStoreFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="storeFunc" type="org.apache.pig.StoreFuncInterface"/>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCacheFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cf" type="java.util.List"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setShipFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sf" type="java.util.List"/>
    </method>
    <doc>
    <![CDATA[The store operator which is used in two ways:
 1) As a local operator it can be used to store files
 2) In the Map Reduce setting, it is used to create jobs
    from MapReduce operators which keep the loads and
    stores in the Map and Reduce Plans till the job is created]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl -->
  <class name="POStoreImpl" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POStoreImpl"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createStoreFunc" return="org.apache.pig.StoreFuncInterface"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set up the storer 
 @param store - the POStore object
 @throws IOException]]>
      </doc>
    </method>
    <method name="tearDown"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[At the end of processing, the outputstream is closed
 using this method
 @throws IOException]]>
      </doc>
    </method>
    <method name="cleanUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[To perform cleanup when there is an error.
 Uses the FileLocalizer method which only 
 deletes the file but not the dirs created
 with it.
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class is used to specify the actual behavior of the store
 operator just when ready to start execution.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStoreImpl -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream -->
  <class name="POStream" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POStream" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.impl.streaming.ExecutableManager, org.apache.pig.impl.streaming.StreamingCommand, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getShipCacheProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCommand" return="org.apache.pig.impl.streaming.StreamingCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the {@link StreamingCommand} for this <code>StreamSpec</code>.
 @return the {@link StreamingCommand} for this <code>StreamSpec</code>]]>
      </doc>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getInitialized" return="boolean"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInitialized"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="initialized" type="boolean"/>
    </method>
    <method name="getNextHelper" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getBinaryInputQueue" return="java.util.concurrent.BlockingQueue"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the Queue which has input to binary]]>
      </doc>
    </method>
    <method name="getBinaryOutputQueue" return="java.util.concurrent.BlockingQueue"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the Queue which has output from binary]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="isFetchable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return true if streaming is done through fetching]]>
      </doc>
    </method>
    <method name="setFetchable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isFetchable" type="boolean"/>
      <doc>
      <![CDATA[@param isFetchable - whether fetching is applied on POStream]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <field name="binaryOutputQueue" type="java.util.concurrent.BlockingQueue"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="binaryInputQueue" type="java.util.concurrent.BlockingQueue"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="allInputFromPredecessorConsumed" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="allOutputFromBinaryProcessed" type="boolean"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion -->
  <class name="POUnion" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POUnion" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUnion" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUnion" type="org.apache.pig.impl.plan.OperatorKey, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POUnion" type="org.apache.pig.impl.plan.OperatorKey, int, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.List"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clearDone"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[The code below, tries to follow our single threaded 
 shared execution model with execution being passed
 around each non-drained input]]>
      </doc>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <doc>
    <![CDATA[The union operator that combines the two inputs into a single
 stream. Note that this doesn't eliminate duplicate tuples.
 The Operator will also be added to every map plan which processes
 more than one input. This just pulls out data from the piepline
 using the proposed single threaded shared execution model. By shared
 execution I mean, one input to the Union operator is called
 once and the execution moves to the next non-drained input till
 all the inputs are drained.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.StoreFuncDecorator -->
  <class name="StoreFuncDecorator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StoreFuncDecorator" type="org.apache.pig.StoreFuncInterface, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Call {@code StoreFunc#putNext(Tuple)} and handle errors
 
 @param tuple
            the tuple to store.
 @throws IOException]]>
      </doc>
    </method>
    <method name="getStorer" return="org.apache.pig.StoreFuncInterface"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class is used to decorate the {@code StoreFunc#putNext(Tuple)}. It
 handles errors by calling
 {@code OutputErrorHandler#handle(String, long, Throwable)} if the
 {@link StoreFunc} implements {@link ErrorHandling}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.StoreFuncDecorator -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.physicalLayer.util">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.MonitoredUDFExecutor -->
  <class name="MonitoredUDFExecutor" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="MonitoredUDFExecutor" type="org.apache.pig.EvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="terminate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method *MUST* be called in the finish by POUserFunc.
 Though we do use an ExitingExecutorService just in case.]]>
      </doc>
    </method>
    <method name="monitorExec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[MonitoredUDF is used to watch execution of a UDF, and kill it if the UDF takes an
 exceedingly long time. Null is returned if the UDF times out.

 Optionally, UDFs can implement the provided interfaces to provide custom logic for
 handling errors and default values.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.MonitoredUDFExecutor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.MonitoredUDFExecutor.ErrorCallback -->
  <class name="MonitoredUDFExecutor.ErrorCallback" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MonitoredUDFExecutor.ErrorCallback"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="handleError"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="evalFunc" type="org.apache.pig.EvalFunc"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="handleTimeout"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="evalFunc" type="org.apache.pig.EvalFunc"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <doc>
    <![CDATA[UDF authors can optionally extend this class and provide the class of their custom callbacks in the annotation
 to perform their own handling of errors and timeouts.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.MonitoredUDFExecutor.ErrorCallback -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.PlanHelper -->
  <class name="PlanHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="makeStoreTmpPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="orig" type="java.lang.String"/>
      <doc>
      <![CDATA[Creates a relative path that can be used to build a temporary
 place to store the output from a number of map-reduce tasks.]]>
      </doc>
    </method>
    <method name="containsPhysicalOperator" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="opClass" type="java.lang.Class"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getPhysicalOperators" return="java.util.LinkedList"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="opClass" type="java.lang.Class"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Returns a LinkedList of operators contained within the physical plan which implement the supplied class, in dependency order.
 Returns an empty LinkedList of no such operators exist.
 @param plan
 @param opClass
 @return a LinkedList of operators contained within the plan which implement the supplied class; empty if no such ops exist.
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="getLocalRearrangePlanFromSplit" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="rearrangeKey" type="org.apache.pig.impl.plan.OperatorKey"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Finds POLocalRearrange from POSplit sub-plan
 @param plan physical plan
 @param rearrangeKey operator key of the POLocalRearrange
 @return POLocalRearrange with the specified operator key which is in a sub-plan of POSplit
 @throws VisitorException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Utility class with a few helper functions to deal with physical plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.physicalLayer.util.PlanHelper -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezDagBuilder -->
  <class name="TezDagBuilder" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezDagBuilder" type="org.apache.pig.impl.PigContext, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, org.apache.tez.dag.api.DAG, java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="avoidContainerReuseIfInputSplitInDisk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to construct DAG out of Tez plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezDagBuilder -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezExecType -->
  <class name="TezExecType" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.ExecType"/>
    <constructor name="TezExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="getExecutionEngine" return="org.apache.pig.backend.executionengine.ExecutionEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getExecutionEngineClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTezVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[TezExecType is the ExecType for distributed mode in Tez.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezExecType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezExecutionEngine -->
  <class name="TezExecutionEngine" extends="org.apache.pig.backend.hadoop.executionengine.HExecutionEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezExecutionEngine" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="instantiateScriptState" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="instantiatePigStats" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getExecConf" return="org.apache.hadoop.mapred.JobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezExecutionEngine -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezJob -->
  <class name="TezJob" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Runnable"/>
    <constructor name="TezJob" type="org.apache.tez.dag.api.TezConfiguration, org.apache.tez.dag.api.DAG, java.util.Map, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getDAG" return="org.apache.tez.dag.api.DAG"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getConfiguration" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getApplicationId" return="org.apache.hadoop.yarn.api.records.ApplicationId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDAGStatus" return="org.apache.tez.dag.api.client.DAGStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDAGCounters" return="org.apache.tez.common.counters.TezCounters"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDAGProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getVertexProgress" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getVertexStatus" return="org.apache.tez.dag.api.client.VertexStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexName" type="java.lang.String"/>
    </method>
    <method name="setPigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigStats" type="org.apache.pig.tools.pigstats.tez.TezPigScriptStats"/>
    </method>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="killJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getDiagnostics" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Wrapper class that encapsulates Tez DAG. This class mediates between Tez DAGs
 and JobControl.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezJob -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezJobCompiler -->
  <class name="TezJobCompiler" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezJobCompiler" type="org.apache.pig.impl.PigContext, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="buildDAG" return="org.apache.tez.dag.api.DAG"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <param name="localResources" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.tez.TezJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <param name="planContainer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"/>
      <exception name="JobCreationException" type="org.apache.pig.backend.hadoop.executionengine.JobCreationException"/>
    </method>
    <doc>
    <![CDATA[This is compiler class that takes a TezOperPlan and converts it into a
 JobControl object with the relevant dependency info maintained. The
 JobControl object is made up of TezJobs each of which has a JobConf.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezJobCompiler -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezLauncher -->
  <class name="TezLauncher" extends="org.apache.pig.backend.hadoop.executionengine.Launcher"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezLauncher"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="launchPig" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="grpName" type="java.lang.String"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="processLoadAndParallelism"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="kill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="killJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobID" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="BackendException" type="org.apache.pig.backend.BackendException"/>
    </method>
    <method name="destroy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Main class that launches pig for Tez]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezLauncher -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezLocalExecType -->
  <class name="TezLocalExecType" extends="org.apache.pig.backend.hadoop.executionengine.tez.TezExecType"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezLocalExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[TezExecType is the ExecType for distributed mode in Tez.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezLocalExecType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezResourceManager -->
  <class name="TezResourceManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezResourceManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInstance" return="org.apache.pig.backend.hadoop.executionengine.tez.TezResourceManager"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="dropInstance"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method is only used by test code to reset state.]]>
      </doc>
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getResourcesDir" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addTezResource" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uri" type="java.net.URI"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addTezResource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceName" type="java.lang.String"/>
      <param name="remoteFsPath" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addTezResources" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resources" type="java.util.Set"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="getTezResources" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceNames" type="java.util.Set"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <field name="resources" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezResourceManager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezSessionManager -->
  <class name="TezSessionManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="shutdown"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezSessionManager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.TezSessionManager.SessionInfo -->
  <class name="TezSessionManager.SessionInfo" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getResources" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTezSession" return="org.apache.tez.client.TezClient"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInUse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inUse" type="boolean"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.TezSessionManager.SessionInfo -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.plan">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezCompiler -->
  <class name="TezCompiler" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezCompiler" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="TezCompilerException" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezCompilerException"/>
    </constructor>
    <method name="getTezPlan" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPlanContainer" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="compile" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[The front-end method that the user calls to compile the plan. Assumes
 that all submitted plans have a Store operators as the leaf.
 @return A Tez plan
 @throws IOException
 @throws PlanException
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCross"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCross"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGlobalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POGlobalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="poCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="joinOp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Since merge-join works on two inputs there are exactly two TezOper predecessors identified  as left and right.
  Right input generates index on-the-fly. This consists of two Tez vertexes. The first vertex generates index,
  and the second vertex sort them.
  Left input contains POMergeJoin which do the actual join.
  First right Tez oper is identified as rightTezOpr, second is identified as rightTezOpr2
  Left Tez oper is identified as curTezOper.

  1) RightTezOpr: It can be preceded only by POLoad. If there is anything else
                  in physical plan, that is yanked and set as inner plans of joinOp.
  2) LeftTezOper:  add the Join operator in it.

  We also need to segment the DAG into two, because POMergeJoin depends on the index file which loads with
  DefaultIndexableLoader. It is possible to convert the index as a broadcast input, but that is costly
  because a lot of logic is built into DefaultIndexableLoader. We can revisit it later.]]>
      </doc>
    </method>
    <method name="visitNative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PONative"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getSortCols" return="org.apache.pig.impl.util.Pair[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <field name="USER_COMPARATOR_MARKER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILE_CONCATENATION_THRESHOLD" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OPTIMISTIC_FILE_CONCATENATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The compiler that compiles a given physical plan into a DAG of Tez
 operators which can then be converted into the JobControl structure.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezCompiler -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezCompilerException -->
  <class name="TezCompilerException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezCompilerException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the
 <link>Throwable.getCause()</link> method) indicating the source of this
 exception. A null value is permitted, and indicates that the cause is
 nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param cause - The cause (which is saved for later retrieval by the
 <link>Throwable.getCause()</link> method) indicating the source of this
 exception. A null value is permitted, and indicates that the cause is
 nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param cause - The cause (which is saved for later retrieval by the
 <link>Throwable.getCause()</link> method) indicating the source of this
 exception. A null value is permitted, and indicates that the cause is
 nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the
 <link>Throwable.getCause()</link> method) indicating the source of this
 exception. A null value is permitted, and indicates that the cause is
 nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message, error code,
 error source, retriable or not, detalied message for the developer and
 cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="TezCompilerException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TezCompilerException with the specified message, error code,
 error source, retriable or not, detalied message for the developer and
 cause.

 @param message - The error message (which is saved for later retrieval by
 the <link>Throwable.getMessage()</link> method) shown to the user
 @param errCode - The error code shown to the user
 @param errSrc - The error source
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer
 @param cause - The cause (which is saved for later retrieval by the
 <link>Throwable.getCause()</link> method) indicating the source of this
 exception. A null value is permitted, and indicates that the cause is
 nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezCompilerException -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor -->
  <class name="TezEdgeDescriptor" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="TezEdgeDescriptor"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="needsDistinctCombiner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNeedsDistinctCombiner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nic" type="boolean"/>
    </method>
    <method name="isUseSecondaryKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="getSecondarySortOrder" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSecondarySortOrder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="secondarySortOrder" type="boolean[]"/>
    </method>
    <method name="getIntermediateOutputKeyClass" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIntermediateOutputKeyClass"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="intermediateOutputKeyClass" type="java.lang.String"/>
    </method>
    <method name="getIntermediateOutputValueClass" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIntermediateOutputValueClass"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="intermediateOutputValueClass" type="java.lang.String"/>
    </method>
    <method name="getIntermediateOutputKeyComparatorClass" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIntermediateOutputKeyComparatorClass"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="intermediateOutputKeyComparatorClass" type="java.lang.String"/>
    </method>
    <field name="combinePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="inputClassName" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="outputClassName" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="schedulingType" type="org.apache.tez.dag.api.EdgeProperty.SchedulingType"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="dataSourceType" type="org.apache.tez.dag.api.EdgeProperty.DataSourceType"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="dataMovementType" type="org.apache.tez.dag.api.EdgeProperty.DataMovementType"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="partitionerClass" type="java.lang.Class"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Descriptor for Tez edge. It holds combine plan as well as edge properties.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator -->
  <class name="TezOperator" extends="org.apache.pig.impl.plan.Operator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezOperator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getProcessorName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRequestedParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRequestedParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requestedParallelism" type="int"/>
    </method>
    <method name="setRequestedParallelismByReference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="getEstimatedParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setEstimatedParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="estimatedParallelism" type="int"/>
    </method>
    <method name="getEffectiveParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="defaultParallelism" type="int"/>
    </method>
    <method name="isDontEstimateParallelism" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setDontEstimateParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dontEstimateParallelism" type="boolean"/>
    </method>
    <method name="isOverrideIntermediateParallelism" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOverrideIntermediateParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="overrideIntermediateParallelism" type="boolean"/>
    </method>
    <method name="getSplitParent" return="org.apache.pig.impl.plan.OperatorKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSplitParent"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitParent" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="setSplitter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="boolean"/>
    </method>
    <method name="isSplitter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isClosed" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setClosed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="closed" type="boolean"/>
    </method>
    <method name="isIndexer" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markIndexer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSampler" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSampler"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSampleAggregation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSampleAggregation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSampleBasedPartitioner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSampleBasedPartitioner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isGlobalSort" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markGlobalSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isGroupBy" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markGroupBy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isCogroup" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markCogroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRegularJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markRegularJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSkewedJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLimit" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLimitAfterSort" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markLimitAfterSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isUnion" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isNative" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markNative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRankCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markRankCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="copyFeatures"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="copyFrom" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="excludeFeatures" type="java.util.List"/>
    </method>
    <method name="setNeedEstimatedQuantile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="needEstimateParallelism" type="boolean"/>
    </method>
    <method name="isNeedEstimateParallelism" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isUseSecondaryKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="getUnionMembers" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getVertexGroupMembers" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addUnionPredecessor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="unionPredecessor" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="setVertexGroupMembers"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexGroupMembers" type="java.util.List"/>
    </method>
    <method name="isVertexGroup" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getVertexGroupInfo" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.VertexGroupInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setVertexGroupInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexGroup" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.VertexGroupInfo"/>
    </method>
    <method name="addVertexGroupStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="storeKey" type="org.apache.pig.impl.plan.OperatorKey"/>
      <param name="vertexGroupKey" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="removeVertexGroupStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexGroupKey" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="getVertexGroupStores" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="needSegmentBelow" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSortOrder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortOrder" type="boolean[]"/>
    </method>
    <method name="getSortOrder" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSampleOperator" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSampleOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sampleOperator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="getSortOperator" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSortOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortOperator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="noCombineSmallSplits"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="combineSmallSplits" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addCrossKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
    </method>
    <method name="getCrossKeys" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isUseMRMapSettings" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseMRMapSettings"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useMRMapSettings" type="boolean"/>
    </method>
    <method name="getVertexParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setVertexParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexParallelism" type="int"/>
    </method>
    <method name="getLoaderInfo" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.LoaderInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTotalInputFilesSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTotalInputFilesSize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="totalInputFilesSize" type="long"/>
    </method>
    <method name="setUseGraceParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useGraceParallelism" type="boolean"/>
    </method>
    <method name="isUseGraceParallelism" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getParallelismFactor" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="successor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="isIntermediateReducer" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setIntermediateReducer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="intermediateReducer" type="java.lang.Boolean"/>
    </method>
    <field name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="outEdges" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="inEdges" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UDFs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="scalars" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[An operator model for a Tez job. Acts as a host to the plans that will
 execute in Tez vertices.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.LoaderInfo -->
  <class name="TezOperator.LoaderInfo" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="TezOperator.LoaderInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLoads" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLoads"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loads" type="java.util.List"/>
    </method>
    <method name="getInp" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inp" type="java.util.ArrayList"/>
    </method>
    <method name="getInpSignatureLists" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInpSignatureLists"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inpSignatureLists" type="java.util.ArrayList"/>
    </method>
    <method name="getInpLimits" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInpLimits"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inpLimits" type="java.util.ArrayList"/>
    </method>
    <method name="getInputSplitInfo" return="org.apache.tez.mapreduce.hadoop.InputSplitInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInputSplitInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSplitInfo" type="org.apache.tez.mapreduce.hadoop.InputSplitInfo"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.LoaderInfo -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE -->
  <class name="TezOperator.OPER_FEATURE" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="INDEXER" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SAMPLER" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SAMPLE_AGGREGATOR" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SAMPLE_BASED_PARTITIONER" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GLOBAL_SORT" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GROUPBY" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COGROUP" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="HASHJOIN" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SKEWEDJOIN" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LIMIT" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LIMIT_AFTER_SORT" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNION" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DISTINCT" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NATIVE" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RANK_COUNTER" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.OPER_FEATURE -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.VertexGroupInfo -->
  <class name="TezOperator.VertexGroupInfo" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezOperator.VertexGroupInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TezOperator.VertexGroupInfo" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="removeInput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="getOutput" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="output" type="java.lang.String"/>
    </method>
    <method name="getStore" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStoreOutputDescriptor" return="org.apache.tez.dag.api.OutputDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStoreOutputDescriptor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="storeOutDescriptor" type="org.apache.tez.dag.api.OutputDescriptor"/>
    </method>
    <method name="getVertexGroup" return="org.apache.tez.dag.api.VertexGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setVertexGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexGroup" type="org.apache.tez.dag.api.VertexGroup"/>
    </method>
    <method name="setSFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sFile" type="org.apache.pig.impl.io.FileSpec"/>
    </method>
    <method name="getSFile" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator.VertexGroupInfo -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan -->
  <class name="TezOperPlan" extends="org.apache.pig.impl.plan.OperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCredentials" return="org.apache.hadoop.security.Credentials"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEstimatedTotalParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setEstimatedParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="estimatedTotalParallelism" type="int"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addExtraResource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="url" type="java.net.URL"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addExtraResource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resourceName" type="java.lang.String"/>
      <param name="remoteFsPath" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getExtraResources" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="disconnect" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="moveTree"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="root" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="newPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Move everything below a given operator to the new operator plan.  The specified operator will
 be moved and will be the root of the new operator plan
 @param root Operator to move everything under including the root operator
 @param newPlan new operator plan to move things into
 @throws PlanException]]>
      </doc>
    </method>
    <method name="getGrandParentsForGraceParallelism" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <doc>
    <![CDATA[A Plan used to create the plan of Tez operators which can be converted into
 the Job Control object. This is necessary to capture the dependencies among
 jobs.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor -->
  <class name="TezOpPlanVisitor" extends="org.apache.pig.impl.plan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezOpPlanVisitor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOperator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor for the TezOperPlan class]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer -->
  <class name="TezPlanContainer" extends="org.apache.pig.impl.plan.OperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPlanContainer" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLocalResources" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="getNextPlan" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processedPlans" type="java.util.List"/>
    </method>
    <method name="addPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="updatePlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="succ" type="boolean"/>
    </method>
    <method name="split"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="planNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="resetScope"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode -->
  <class name="TezPlanContainerNode" extends="org.apache.pig.impl.plan.Operator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPlanContainerNode" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTezOperPlan" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerPrinter -->
  <class name="TezPlanContainerPrinter" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPlanContainerPrinter" type="java.io.PrintStream, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan tez plan to print]]>
      </doc>
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="visitTezPlanContainerNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanContainerNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerUDFCollector -->
  <class name="TezPlanContainerUDFCollector" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPlanContainerUDFCollector" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan tez plan to print]]>
      </doc>
    </constructor>
    <method name="visitTezPlanContainerNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanContainerNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getUdfs" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerUDFCollector -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor -->
  <class name="TezPlanContainerVisitor" extends="org.apache.pig.impl.plan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPlanContainerVisitor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezPlanContainerNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanContainerNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOPackageAnnotator -->
  <class name="TezPOPackageAnnotator" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPOPackageAnnotator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Tez plan to visit]]>
      </doc>
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A port of the POPackageAnnotator from MR to Tez.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOPackageAnnotator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOPackageAnnotator.LoRearrangeDiscoverer -->
  <class name="TezPOPackageAnnotator.LoRearrangeDiscoverer" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPOPackageAnnotator.LoRearrangeDiscoverer" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lrearrange" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getLoRearrangeFound" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the loRearrangeFound]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Physical Plan visitor which tries to get the
 LocalRearrange(s) present in the plan (if any) and
 annotate the POPackage given to it with the information
 in the LocalRearrange (regarding columns in the "value"
 present in the "key")]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOPackageAnnotator.LoRearrangeDiscoverer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOStreamVisitor -->
  <class name="TezPOStreamVisitor" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPOStreamVisitor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getCacheFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getShipFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOStreamVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOUserFuncVisitor -->
  <class name="TezPOUserFuncVisitor" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPOUserFuncVisitor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getCacheFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getShipFiles" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPOUserFuncVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter -->
  <class name="TezPrinter" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPrinter" type="java.io.PrintStream, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan tez plan to print]]>
      </doc>
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to print out the Tez plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter.TezDAGGraphPrinter -->
  <class name="TezPrinter.TezDAGGraphPrinter" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPrinter.TezDAGGraphPrinter" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezPlanContainerNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanContainerNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="writePlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"/>
      <param name="tezPlanContainerNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
      <param name="buf" type="java.lang.StringBuilder"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class prints the Tez DAG Graph]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter.TezDAGGraphPrinter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter.TezVertexGraphPrinter -->
  <class name="TezPrinter.TezVertexGraphPrinter" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPrinter.TezVertexGraphPrinter" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="writePlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="buf" type="java.lang.StringBuilder"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class prints the Tez Vertex Graph]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPrinter.TezVertexGraphPrinter -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.NativeTezOper -->
  <class name="NativeTezOper" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NativeTezOper" type="org.apache.pig.impl.plan.OperatorKey, java.lang.String, java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCommandString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="runJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobStatsKey" type="java.lang.String"/>
      <exception name="JobCreationException" type="org.apache.pig.backend.hadoop.executionengine.JobCreationException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.NativeTezOper -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POCounterStatsTez -->
  <class name="POCounterStatsTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <constructor name="POCounterStatsTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <method name="setOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[POCounterStatsTez is used to group counters from previous vertex POCounterTez tasks]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POCounterStatsTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POCounterTez -->
  <class name="POCounterTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable"/>
    <constructor name="POCounterTez" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorContext" type="org.apache.tez.runtime.api.ProcessorContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setTuplesOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuplesOutputKey" type="java.lang.String"/>
    </method>
    <method name="setStatsOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="statsOutputKey" type="java.lang.String"/>
    </method>
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="incrementReduceCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="increment" type="java.lang.Long"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POCounterTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POFRJoinTez -->
  <class name="POFRJoinTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="POFRJoinTez" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setUpHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Builds the HashMaps by reading replicated inputs from broadcast edges

 @throws ExecException]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputKeys" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POFRJoinTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[POFRJoinTez is used on the backend to load replicated table from Tez
 ShuffleUnorderedKVInput and load fragmented table from data pipeline.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POFRJoinTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POIdentityInOutTez -->
  <class name="POIdentityInOutTez" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <constructor name="POIdentityInOutTez" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[POIdentityInOutTez is used to pass through tuples as is to next vertex from
 previous vertex's POLocalRearrangeTez. For eg: In case of Order By, the
 partition vertex which just applies the WeightedRangePartitioner on the
 previous vertex data uses POIdentityInOutTez.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POIdentityInOutTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez -->
  <class name="POLocalRearrangeTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <constructor name="POLocalRearrangeTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrangeTez" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POLocalRearrangeTez" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="isConnectedToPackage" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConnectedToPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="connectedToPackage" type="boolean"/>
    </method>
    <method name="isSkewedJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isSkewedJoin" type="boolean"/>
    </method>
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="outputKey" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="connectedToPackage" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isSkewedJoin" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="writer" type="org.apache.tez.runtime.library.api.KeyValueWriter"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[POLocalRearrangeTez is used to write to a Tez OrderedPartitionedKVOutput
 (shuffle) or UnorderedKVOutput (broadcast)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory -->
  <class name="POLocalRearrangeTezFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POLocalRearrangeTezFactory" type="java.lang.String, org.apache.pig.impl.plan.NodeIdGenerator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="create" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="create" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="create" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <param name="type" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="create" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="int"/>
      <param name="type" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"/>
      <param name="plans" type="java.util.List"/>
      <param name="keyType" type="byte"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType -->
  <class name="POLocalRearrangeTezFactory.LocalRearrangeType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="STAR" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NULL" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NORMAL" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="WITHPLAN" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTezFactory.LocalRearrangeType -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POPartitionRearrangeTez -->
  <class name="POPartitionRearrangeTez" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POPartitionRearrangeTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POPartitionRearrangeTez" type="org.apache.pig.impl.plan.OperatorKey, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Calls getNext on the generate operator inside the nested physical plan.
 Converts the generated tuple into the proper format, i.e,
 (key,indexedTuple(value))]]>
      </doc>
    </method>
    <method name="constructPROutput" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="resLst" type="java.util.List"/>
      <param name="value" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="clone" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POPartitionRearrangeTez"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <doc>
    <![CDATA[The partition rearrange operator is a part of the skewed join implementation.
 It has an embedded physical plan that generates tuples of the form
 (inpKey,reducerIndex,(indxed inp Tuple)).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POPartitionRearrangeTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.PORankTez -->
  <class name="PORankTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="PORankTez" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setTuplesInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuplesInputKey" type="java.lang.String"/>
    </method>
    <method name="setStatsInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="statsInputKey" type="java.lang.String"/>
    </method>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getRankCounterOffset" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="taskId" type="java.lang.Integer"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.PORankTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POShuffledValueInputTez -->
  <class name="POShuffledValueInputTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="POShuffledValueInputTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="addInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[POShuffledValueInputTez is used read tuples from a Tez Intermediate output from a shuffle edge
 To be used with POValueOutputTez.
 TODO: To be removed after PIG-3775 and TEZ-661]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POShuffledValueInputTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POShuffleTezLoad -->
  <class name="POShuffleTezLoad" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="POShuffleTezLoad" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setInputKeys"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKeys" type="java.util.List"/>
    </method>
    <method name="addInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <method name="setSkewedJoins"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isSkewedJoin" type="boolean"/>
    </method>
    <method name="isSkewedJoin" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="inputKeys" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POShuffleTezLoad -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POSimpleTezLoad -->
  <class name="POSimpleTezLoad" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable"/>
    <constructor name="POSimpleTezLoad" type="org.apache.pig.impl.plan.OperatorKey, org.apache.pig.LoadFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorContext" type="org.apache.tez.runtime.api.ProcessorContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Previously, we reused the same Result object for all results, but we found
 certain operators (e.g. POStream) save references to the Result object and
 expect it to be constant.]]>
      </doc>
    </method>
    <method name="setInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[POSimpleTezLoad is used on the backend to read tuples from a Tez MRInput]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POSimpleTezLoad -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POStoreTez -->
  <class name="POStoreTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable"/>
    <constructor name="POStoreTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="POStoreTez" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorContext" type="org.apache.tez.runtime.api.ProcessorContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[POStoreTez is used to write to a Tez MROutput]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POStoreTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueInputTez -->
  <class name="POValueInputTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="POValueInputTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setInputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[POValueInputTez is used read tuples from a Tez Intermediate output from a 1-1
 edge]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueInputTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueOutputTez -->
  <class name="POValueOutputTez" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput"/>
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable"/>
    <constructor name="POValueOutputTez" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isScalarOutput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setScalarOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scalarOutput" type="boolean"/>
    </method>
    <method name="isTaskIndexWithRecordIndexAsKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTaskIndexWithRecordIndexAsKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskIndexWithRecordIndexAsKey" type="boolean"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorContext" type="org.apache.tez.runtime.api.ProcessorContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="addOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="removeOutputKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="containsOutputKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputKey" type="java.lang.String"/>
    </method>
    <method name="getNextTuple" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.Result"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="name" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="EMPTY_KEY" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueOutputTez.EmptyWritable"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueOutputTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueOutputTez.EmptyWritable -->
  <class name="POValueOutputTez.EmptyWritable" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.Writable"/>
    <constructor name="POValueOutputTez.EmptyWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POValueOutputTez.EmptyWritable -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.AccumulatorOptimizer -->
  <class name="AccumulatorOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AccumulatorOptimizer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[A visitor to optimize plans that determines if a vertex plan can run in
 accumulative mode.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.AccumulatorOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.CombinerOptimizer -->
  <class name="CombinerOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CombinerOptimizer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="CombinerOptimizer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, boolean, org.apache.pig.impl.plan.CompilationMessageCollector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getMessageCollector" return="org.apache.pig.impl.plan.CompilationMessageCollector"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[Optimize tez plans to use the combiner where possible.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.CombinerOptimizer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.LoaderProcessor -->
  <class name="LoaderProcessor" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LoaderProcessor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.LoaderProcessor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.MultiQueryOptimizerTez -->
  <class name="MultiQueryOptimizerTez" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MultiQueryOptimizerTez" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, boolean, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.MultiQueryOptimizerTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.NoopFilterRemover -->
  <class name="NoopFilterRemover" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NoopFilterRemover" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[For historical reasons splits will always produce filters that pass
 everything through unchanged. This optimizer removes these.

 The condition we look for is POFilters with a constant boolean
 (true) expression as it's plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.NoopFilterRemover -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.ParallelismSetter -->
  <class name="ParallelismSetter" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParallelismSetter" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getEstimatedTotalParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.ParallelismSetter -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.SecondaryKeyOptimizerTez -->
  <class name="SecondaryKeyOptimizerTez" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.optimizer.SecondaryKeyOptimizer"/>
    <constructor name="SecondaryKeyOptimizerTez" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getNumSortRemoved" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumDistinctChanged" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumUseSecondaryKey" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.SecondaryKeyOptimizerTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezEstimatedParallelismClearer -->
  <class name="TezEstimatedParallelismClearer" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezEstimatedParallelismClearer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezEstimatedParallelismClearer -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezOperDependencyParallelismEstimator -->
  <class name="TezOperDependencyParallelismEstimator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezParallelismEstimator"/>
    <constructor name="TezOperDependencyParallelismEstimator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="estimateParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Estimate the parallelism of the vertex using:
 1. parallelism of the predecessors
 2. bloating factor of the physical plan of the predecessor

 Since currently it is only possible to reduce the parallelism
 estimation is exaggerated and will rely on Tez runtime to
 decrease the parallelism]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezOperDependencyParallelismEstimator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezOperDependencyParallelismEstimator.TezParallelismFactorVisitor -->
  <class name="TezOperDependencyParallelismEstimator.TezParallelismFactorVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezOperDependencyParallelismEstimator.TezParallelismFactorVisitor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator, org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nfe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lim" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="getFactor" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezOperDependencyParallelismEstimator.TezParallelismFactorVisitor -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezParallelismEstimator -->
  <interface name="TezParallelismEstimator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="estimateParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.TezParallelismEstimator -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.UnionOptimizer -->
  <class name="UnionOptimizer" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UnionOptimizer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isOptimizable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="isOptimizableStoreFunc" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="supportedStoreFuncs" type="java.util.List"/>
      <param name="unsupportedStoreFuncs" type="java.util.List"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="connectPredecessorsToVertexGroups"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="unionOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="pred" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="predClonedUnionPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="storeVertexGroupOps" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator[]"/>
      <param name="outputVertexGroupOps" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator[]"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Connects the unionOp predecessor to the store vertex groups and the output vertex groups
 and disconnects it from the unionOp.

 @param pred Predecessor of union which will be made part of the vertex group
 @param unionOp Union operator
 @param predClonedUnionPlan Cloned plan of the union merged to the predecessor
 @param storeVertexGroupOps Store vertex groups to connect to
 @param outputVertexGroupOps Tez LogicalOutput vertex groups to connect to]]>
      </doc>
    </method>
    <method name="getUnionPredPlanFromSplit" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="unionOpKey" type="java.lang.String"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[Optimizes union by removing the intermediate union vertex and making the
 successor get input from the predecessor vertices directly using VertexGroup.
 This should be run after MultiQueryOptimizer so that it handles cases like
 union followed by split and then store.

 For eg:
 1) Union followed by store
 Vertex 1 (Load), Vertex 2 (Load) -> Vertex 3 (Union + Store) will be optimized to
 Vertex 1 (Load + Store), Vertex 2 (Load + Store). Both the vertices will be writing output
 to same store location directly which is supported by Tez.
 2) Union followed by groupby
 Vertex 1 (Load), Vertex 2 (Load) -> Vertex 3 (Union + POLocalRearrange) -> Vertex 4 (Group by)
 will be optimized to Vertex 1 (Load + POLR), Vertex 2 (Load + POLR) -> Vertex 4 (Group by)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.optimizer.UnionOptimizer -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.plan.udf">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.FindQuantilesTez -->
  <class name="FindQuantilesTez" extends="org.apache.pig.impl.builtin.FindQuantiles"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FindQuantilesTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FindQuantilesTez" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.FindQuantilesTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.IsFirstReduceOfKeyTez -->
  <class name="IsFirstReduceOfKeyTez" extends="org.apache.pig.impl.builtin.IsFirstReduceOfKey"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IsFirstReduceOfKeyTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.IsFirstReduceOfKeyTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.PartitionSkewedKeysTez -->
  <class name="PartitionSkewedKeysTez" extends="org.apache.pig.impl.builtin.PartitionSkewedKeys"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionSkewedKeysTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PartitionSkewedKeysTez" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.PartitionSkewedKeysTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez -->
  <class name="ReadScalarsTez" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput"/>
    <constructor name="ReadScalarsTez" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.plan.udf.ReadScalarsTez -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.runtime">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.ObjectCache -->
  <class name="ObjectCache" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getInstance" return="org.apache.pig.backend.hadoop.executionengine.tez.runtime.ObjectCache"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getObjectRegistry" return="org.apache.tez.runtime.api.ObjectRegistry"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the tez ObjectRegistry which allows caching of objects at the
 Session, DAG and Vertex level on container reuse for better performance
 and savings]]>
      </doc>
    </method>
    <method name="cache"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.Object"/>
      <doc>
      <![CDATA[Convenience method to cache objects in ObjectRegistry for a vertex]]>
      </doc>
    </method>
    <method name="retrieve" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <doc>
      <![CDATA[Convenience method to retrieve objects cached for the vertex from ObjectRegistry]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.ObjectCache -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PartitionerDefinedVertexManager -->
  <class name="PartitionerDefinedVertexManager" extends="org.apache.tez.dag.api.VertexManagerPlugin"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionerDefinedVertexManager" type="org.apache.tez.dag.api.VertexManagerPluginContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="onRootVertexInitialized"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputName" type="java.lang.String"/>
      <param name="inputDescriptor" type="org.apache.tez.dag.api.InputDescriptor"/>
      <param name="events" type="java.util.List"/>
    </method>
    <method name="onSourceTaskCompleted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="srcVertexName" type="java.lang.String"/>
      <param name="srcTaskId" type="java.lang.Integer"/>
    </method>
    <method name="onVertexManagerEventReceived"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vmEvent" type="org.apache.tez.runtime.api.events.VertexManagerEvent"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="onVertexStarted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="completions" type="java.util.Map"/>
    </method>
    <doc>
    <![CDATA[VertexManagerPlugin used by sorting job of order by and skewed join.
 What is does is to set parallelism of the sorting vertex
 according to numParallelism specified by the predecessor vertex.
 The complex part is the PigOrderByEdgeManager, which specify how
 partition in the previous setting routes to the new vertex setting]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PartitionerDefinedVertexManager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigGraceShuffleVertexManager -->
  <class name="PigGraceShuffleVertexManager" extends="org.apache.tez.dag.library.vertexmanager.ShuffleVertexManager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigGraceShuffleVertexManager" type="org.apache.tez.dag.api.VertexManagerPluginContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="onVertexStateUpdated"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stateUpdate" type="org.apache.tez.dag.api.event.VertexStateUpdate"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigGraceShuffleVertexManager -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigInputFormatTez -->
  <class name="PigInputFormatTez" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigInputFormatTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRecordReader" return="org.apache.hadoop.mapreduce.RecordReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigInputFormatTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigOutputFormatTez -->
  <class name="PigOutputFormatTez" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigOutputFormatTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskattemptcontext" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getOutputCommitter" return="org.apache.hadoop.mapreduce.OutputCommitter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="taskattemptcontext" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="resetUDFContextForThreadReuse"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigOutputFormatTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigOutputFormatTez.PigOutputCommitterTez -->
  <class name="PigOutputFormatTez.PigOutputCommitterTez" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputCommitter"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigOutputFormatTez.PigOutputCommitterTez" type="org.apache.hadoop.mapreduce.TaskAttemptContext, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="setupJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="commitJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="abortJob"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <param name="state" type="org.apache.hadoop.mapreduce.JobStatus.State"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigOutputFormatTez.PigOutputCommitterTez -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigProcessor -->
  <class name="PigProcessor" extends="org.apache.tez.runtime.api.AbstractLogicalIOProcessor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigProcessor" type="org.apache.tez.runtime.api.ProcessorContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="handleEvents"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorEvents" type="java.util.List"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="outputs" type="java.util.Map"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="runPipeline"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="leaf" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="PLAN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COMBINE_PLAN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ESTIMATE_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ESTIMATED_NUM_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SAMPLE_VERTEX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SORT_VERTEX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="sampleVertex" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="sampleMap" type="java.util.Map"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigProcessor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.SkewedPartitionerTez -->
  <class name="SkewedPartitionerTez" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.SkewedPartitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SkewedPartitionerTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.SkewedPartitionerTez -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput -->
  <interface name="TezInput"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getTezInputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
    </method>
    <method name="addInputsToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputsToSkip" type="java.util.Set"/>
      <doc>
      <![CDATA[Add to the list of inputs to skip download if already available in vertex cache

 @param inputsToSkip]]>
      </doc>
    </method>
    <method name="attachInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Attach the inputs to the operator. Also ensure reader.next() is called to force fetch
 the input so that all inputs are fetched and memory released before memory is allocated
 for outputs

 @param inputs available inputs
 @param conf configuration
 @throws ExecException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface is implemented by PhysicalOperators that can have Tez inputs
 attached directly to the operator.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezInput -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput -->
  <interface name="TezOutput"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getTezOutputs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
    </method>
    <method name="attachOutputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputs" type="java.util.Map"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[This interface is implemented by PhysicalOperators that can have Tez outputs
 attached directly to the operator.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezOutput -->
  <!-- start interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable -->
  <interface name="TezTaskConfigurable"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="processorContext" type="org.apache.tez.runtime.api.ProcessorContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <doc>
    <![CDATA[This interface is implemented by PhysicalOperators that can need to access
 TezProcessorContext of a Tez task.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskConfigurable -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskContext -->
  <class name="TezTaskContext" extends="org.apache.pig.backend.hadoop.executionengine.TaskContext"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezTaskContext" type="org.apache.tez.runtime.api.ProcessorContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.tez.runtime.api.ProcessorContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
      <param name="delta" type="long"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="delta" type="long"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.TezTaskContext -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.runtime.WeightedRangePartitionerTez -->
  <class name="WeightedRangePartitionerTez" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="WeightedRangePartitionerTez"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.impl.io.PigNullableWritable"/>
      <param name="value" type="org.apache.hadoop.io.Writable"/>
      <param name="numPartitions" type="int"/>
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.runtime.WeightedRangePartitionerTez -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.tez.util">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.util.MRToTezHelper -->
  <class name="MRToTezHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getDAGAMConfFromMRConf" return="org.apache.tez.dag.api.TezConfiguration"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezConf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="setVertexConfig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertex" type="org.apache.tez.dag.api.Vertex"/>
      <param name="isMapVertex" type="boolean"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Set config with Scope.Vertex in TezConfiguration on the vertex

 @param vertex Vertex on which config is to be set
 @param isMapVertex Whether map or reduce vertex. i.e root or intermediate/leaf vertex
 @param conf Config that contains the tez or equivalent mapreduce settings.]]>
      </doc>
    </method>
    <method name="processMRSettings"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezConf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="mrConf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Process the mapreduce configuration settings and
    - copy as is the still required ones (like those used by FileInputFormat/FileOutputFormat)
    - convert and set equivalent tez runtime settings
    - handle compression related settings

 @param tezConf Configuration on which the mapreduce settings will have to be transferred
 @param mrConf Configuration that contains mapreduce settings]]>
      </doc>
    </method>
    <method name="writeInputSplitInfoToDisk" return="org.apache.tez.mapreduce.hadoop.InputSplitInfoDisk"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="infoMem" type="org.apache.tez.mapreduce.hadoop.InputSplitInfoMem"/>
      <param name="inputSplitsDir" type="org.apache.hadoop.fs.Path"/>
      <param name="jobConf" type="org.apache.hadoop.mapred.JobConf"/>
      <param name="fs" type="org.apache.hadoop.fs.FileSystem"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Write input splits (job.split and job.splitmetainfo) to disk]]>
      </doc>
    </method>
    <method name="updateLocalResourcesForInputSplits"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.hadoop.fs.FileSystem"/>
      <param name="inputSplitInfo" type="org.apache.tez.mapreduce.hadoop.InputSplitInfo"/>
      <param name="localResources" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Exact copy of private method from from org.apache.tez.mapreduce.hadoop.MRInputHelpers

 Update provided localResources collection with the required local
 resources needed by MapReduce tasks with respect to Input splits.

 @param fs Filesystem instance to access status of splits related files
 @param inputSplitInfo Information on location of split files
 @param localResources LocalResources collection to be updated
 @throws IOException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.util.MRToTezHelper -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.util.SecurityHelper -->
  <class name="SecurityHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="populateTokenCache"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="credentials" type="org.apache.hadoop.security.Credentials"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class duplicates some security related private methods from
 org.apache.hadoop.mapreduce.JobSubmitter for Tez.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.util.SecurityHelper -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.util.TezCompilerUtil -->
  <class name="TezCompilerUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="simpleConnectTwoVertex"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="op1" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="op2" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="connect" return="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="from" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="from" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="edge" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="connectTezOpToNewPredecessor"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="newPredecessor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="edge" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor"/>
      <param name="oldInputKey" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="replaceInput"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="oldInputKey" type="java.lang.String"/>
      <param name="newInputKey" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="connectTezOpToNewSuccesor"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="newSuccessor" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="edge" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor"/>
      <param name="oldOutputKey" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="replaceOutput"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="oldOutputKey" type="java.lang.String"/>
      <param name="newOutputKey" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="isNonPackageInput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputKey" type="java.lang.String"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="getForEach" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"/>
      <param name="rp" type="int"/>
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
    </method>
    <method name="getForEachPlain" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
    </method>
    <method name="getStore" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <param name="nig" type="org.apache.pig.impl.plan.NodeIdGenerator"/>
    </method>
    <method name="setCustomPartitioner"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="customPartitioner" type="java.lang.String"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="configureValueOnlyTupleOutput"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="edge" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezEdgeDescriptor"/>
      <param name="dataMovementType" type="org.apache.tez.dag.api.EdgeProperty.DataMovementType"/>
    </method>
    <method name="bagDataTypeInCombinePlan" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="combinePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <field name="TUPLE_CLASS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.util.TezCompilerUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.util.TezRuntimeUtil -->
  <class name="TezRuntimeUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezRuntimeUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="readReduceMapFromSample" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tf" type="org.apache.pig.data.TupleFactory"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.util.TezRuntimeUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.tez.util.TezUDFContextSeparator -->
  <class name="TezUDFContextSeparator" extends="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOpPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezUDFContextSeparator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitTezOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOperator" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="serializeUDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="serializeUDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="udfType" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="serializeUDFContextForEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="from" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="to" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="udfType" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="serializeUDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.tez.util.TezUDFContextSeparator -->
</package>
<package name="org.apache.pig.backend.hadoop.executionengine.util">
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.AccumulatorOptimizerUtil -->
  <class name="AccumulatorOptimizerUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AccumulatorOptimizerUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getAccumulativeBatchSize" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addAccumulator"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.AccumulatorOptimizerUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.CombinerOptimizerUtil -->
  <class name="CombinerOptimizerUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="addCombiner"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="reducePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="combinePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="messageCollector" type="org.apache.pig.impl.plan.CompilationMessageCollector"/>
      <param name="doMapAgg" type="boolean"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Algebraic functions and distinct in nested plan of a foreach are
 partially computed in the map and combine phase. A new foreach statement
 with initial and intermediate forms of algebraic functions are added to
 map and combine plans respectively.

 If bag portion of group-by result is projected or a non algebraic
 expression/udf has bag as input, combiner will not be used. This is
 because the use of combiner in such case is likely to degrade performance
 as there will not be much reduction in data size in combine stage to
 offset the cost of the additional number of times (de)serialization is
 done.

 Major areas for enhancement:
 1. use of combiner in cogroup
 2. queries with order-by, limit or sort in a nested foreach after group-by
 3. case where group-by is followed by filter that has algebraic expression]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.CombinerOptimizerUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.MapRedUtil -->
  <class name="MapRedUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapRedUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="loadPartitionFileFromLocalCache" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keyDistFile" type="java.lang.String"/>
      <param name="totalReducers" type="java.lang.Integer[]"/>
      <param name="keyType" type="byte"/>
      <param name="mapConf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Loads the key distribution sampler file

 @param keyDistFile the name for the distribution file
 @param totalReducers gets set to the total number of reducers as found in the dist file
 @param keyType Type of the key to be stored in the return map. It currently treats Tuple as a special case.]]>
      </doc>
    </method>
    <method name="copyTmpFileConfigurationValues"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fromConf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="toConf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="setupUDFContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setupStreamingDirsConfSingle"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Sets up output and log dir paths for a single-store streaming job

 @param st - POStore of the current job
 @param pigContext
 @param conf
 @throws IOException]]>
      </doc>
    </method>
    <method name="setupStreamingDirsConfMulti"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Sets up output and log dir paths for a multi-store streaming job

 @param pigContext
 @param conf
 @throws IOException]]>
      </doc>
    </method>
    <method name="checkLeafIsStore" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getAllFileRecursively" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="files" type="java.util.List"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get all files recursively from the given list of files

 @param files a list of FileStatus
 @param conf the configuration object
 @return the list of fileStatus that contains all the files in the given
         list and, recursively, all the files inside the directories in
         the given list
 @throws IOException]]>
      </doc>
    </method>
    <method name="getPathLength" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.hadoop.fs.FileSystem"/>
      <param name="status" type="org.apache.hadoop.fs.FileStatus"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPathLength" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.hadoop.fs.FileSystem"/>
      <param name="status" type="org.apache.hadoop.fs.FileStatus"/>
      <param name="max" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the total number of bytes for this file, or if a directory all
 files in the directory.
 
 @param fs FileSystem
 @param status FileStatus
 @param max Maximum value of total length that will trigger exit. Many
 times we're only interested whether the total length of files is greater
 than X or not. In such case, we can exit the function early as soon as
 the max is reached.
 @return
 @throws IOException]]>
      </doc>
    </method>
    <method name="getCombinePigSplits" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oneInputSplits" type="java.util.List"/>
      <param name="maxCombinedSplitSize" type="long"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="inputSplitToString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splits" type="org.apache.hadoop.mapreduce.InputSplit[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="FILE_SYSTEM_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A class of utility static methods to be used in the hadoop map reduce backend]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.MapRedUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.ParallelConstantVisitor -->
  <class name="ParallelConstantVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParallelConstantVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitConstant"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cnst" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.ConstantExpression"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.ParallelConstantVisitor -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.SecondaryKeyOptimizerUtil -->
  <class name="SecondaryKeyOptimizerUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="applySecondaryKeySort" return="org.apache.pig.backend.hadoop.executionengine.util.SecondaryKeyOptimizerUtil.SecondaryKeyOptimizerInfo"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="reducePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.SecondaryKeyOptimizerUtil -->
  <!-- start class org.apache.pig.backend.hadoop.executionengine.util.SecondaryKeyOptimizerUtil.SecondaryKeyOptimizerInfo -->
  <class name="SecondaryKeyOptimizerUtil.SecondaryKeyOptimizerInfo" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SecondaryKeyOptimizerUtil.SecondaryKeyOptimizerInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNumSortRemoved" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="incrementNumSortRemoved"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumDistinctChanged" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="incrementNumDistinctChanged"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumUseSecondaryKey" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="incrementNumUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isUseSecondaryKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUseSecondaryKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="useSecondaryKey" type="boolean"/>
    </method>
    <method name="getSecondarySortOrder" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSecondarySortOrder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="secondarySortOrder" type="boolean[]"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.executionengine.util.SecondaryKeyOptimizerUtil.SecondaryKeyOptimizerInfo -->
</package>
<package name="org.apache.pig.backend.hadoop.hbase">
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseBinaryConverter -->
  <class name="HBaseBinaryConverter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadStoreCaster"/>
    <constructor name="HBaseBinaryConverter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[NOT IMPLEMENTED]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Not implemented!]]>
      </doc>
    </method>
    <method name="bytesToBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Not implemented!]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bi" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Not implemented!]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bd" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Not implemented!]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseBinaryConverter -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseStorage -->
  <class name="HBaseStorage" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadPushDown"/>
    <implements name="org.apache.pig.OrderedLoadFunc"/>
    <implements name="org.apache.pig.StoreResources"/>
    <implements name="org.apache.pig.CollectableLoadFunc"/>
    <constructor name="HBaseStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Constructor. Construct a HBase Table LoadFunc and StoreFunc to load or store the cells of the
 provided columns.

 @param columnList
        columnlist that is a presented string delimited by space and/or
        commas. To retreive all columns in a column family <code>Foo</code>,
        specify a column as either <code>Foo:</code> or <code>Foo:*</code>.
        To fetch only columns in the CF that start with <I>bar</I>, specify
        <code>Foo:bar*</code>. The resulting tuple will always be the size
        of the number of tokens in <code>columnList</code>. Items in the
        tuple will be scalar values when a full column descriptor is
        specified, or a map of column descriptors to values when a column
        family is specified.

 @throws ParseException when unable to parse arguments
 @throws IOException]]>
      </doc>
    </constructor>
    <constructor name="HBaseStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="org.apache.commons.cli.ParseException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Constructor. Construct a HBase Table LoadFunc and StoreFunc to load or store.
 @param columnList
 @param optString Loader options. Known options:<ul>
 <li>-loadKey=(true|false)  Load the row key as the first column
 <li>-gt=minKeyVal
 <li>-lt=maxKeyVal
 <li>-gte=minKeyVal
 <li>-lte=maxKeyVal
 <li>-regex=match regex on KeyVal
 <li>-limit=numRowsPerRegion max number of rows to retrieve per region
 <li>-maxResultsPerColumnFamily= Limit the maximum number of values returned per row per column family
 <li>-delim=char delimiter to use when parsing column names (default is space or comma)
 <li>-ignoreWhitespace=(true|false) ignore spaces when parsing column names (default true)
 <li>-cacheBlocks=(true|false) Set whether blocks should be cached for the scan (default false).
 <li>-caching=numRows  number of rows to cache (faster scans, more memory).
 <li>-noWAL=(true|false) Sets the write ahead to false for faster loading.
 <li>-minTimestamp= Scan's timestamp for min timeRange
 <li>-maxTimestamp= Scan's timestamp for max timeRange
 <li>-timestamp= Scan's specified timestamp
 <li>-includeTimestamp= Record will include the timestamp after the rowkey on store (rowkey, timestamp, ...)
 <li>-includeTombstone= Record will include a tombstone marker on store after the rowKey and timestamp (if included) (rowkey, [timestamp,] tombstone, ...)
 <li>-caster=(HBaseBinaryConverter|Utf8StorageConverter) Utf8StorageConverter is the default
 To be used with extreme caution, since this could result in data loss
 (see http://hbase.apache.org/book.html#perf.hbase.client.putwal).
 </ul>
 @throws ParseException
 @throws IOException]]>
      </doc>
    </constructor>
    <method name="getColumnInfoList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the ColumnInfo list so external objects can inspect it.
 @return List of ColumnInfo objects]]>
      </doc>
    </method>
    <method name="setColumnInfoList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="columnInfoList" type="java.util.List"/>
      <doc>
      <![CDATA[Updates the ColumnInfo List. Use this if you need to implement custom projections]]>
      </doc>
    </method>
    <method name="storeProjectedFieldNames"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Stores the requiredFieldsList as a serialized object so it can be fetched on the cluster. If
 you plan to overwrite pushProjection, you need to call this with the requiredFieldList so it
 they can be accessed on the cluster.]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set up the caster to use for reading values out of, and writing to, HBase.]]>
      </doc>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="createDelete" return="org.apache.hadoop.hbase.client.Delete"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <param name="timestamp" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Public method to initialize a Delete.

 @param key
 @param type
 @param timestamp
 @return new delete
 @throws IOException]]>
      </doc>
    </method>
    <method name="createPut" return="org.apache.hadoop.hbase.client.Put"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Public method to initialize a Put. Used to allow assertions of how Puts
 are initialized by unit tests.

 @param key
 @param type
 @return new put
 @throws IOException]]>
      </doc>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="ensureAllKeyInstancesInSameSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSplitComparable" return="org.apache.hadoop.io.WritableComparable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="gt_" type="byte[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="gte_" type="byte[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lt_" type="byte[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lte_" type="byte[]"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A HBase implementation of LoadFunc and StoreFunc.
 <P>
 Below is an example showing how to load data from HBase:
 <pre>{@code
 raw = LOAD 'hbase://SampleTable'
       USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
       'info:first_name info:last_name friends:* info:*', '-loadKey true -limit 5')
       AS (id:bytearray, first_name:chararray, last_name:chararray, friends_map:map[], info_map:map[]);
 }</pre>
 This example loads data redundantly from the info column family just to
 illustrate usage. Note that the row key is inserted first in the result schema.
 To load only column names that start with a given prefix, specify the column
 name with a trailing '*'. For example passing <code>friends:bob_*</code> to
 the constructor in the above example would cause only columns that start with
 <i>bob_</i> to be loaded.
 <P>
 Note that when using a prefix like <code>friends:bob_*</code>, explicit HBase filters are set for
 all columns and prefixes specified. Querying HBase with many filters can cause performance
 degredation. This is typically seen when mixing one or more prefixed descriptors with a large list
 of columns. In that case better perfomance will be seen by either loading the entire family via
 <code>friends:*</code> or by specifying explicit column descriptor names.
 <P>
 Below is an example showing how to store data into HBase:
 <pre>{@code
 copy = STORE raw INTO 'hbase://SampleTableCopy'
       USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
       'info:first_name info:last_name friends:* info:*');
 }</pre>
 Note that STORE will expect the first value in the tuple to be the row key.
 Scalars values need to map to an explicit column descriptor and maps need to
 map to a column family name. In the above examples, the <code>friends</code>
 column family data from <code>SampleTable</code> will be written to a
 <code>buddies</code> column family in the <code>SampleTableCopy</code> table.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseStorage -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseStorage.ColumnInfo -->
  <class name="HBaseStorage.ColumnInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HBaseStorage.ColumnInfo" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getColumnFamily" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnName" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getColumnPrefix" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isColumnMap" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasPrefixMatch" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="qualifier" type="byte[]"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Class to encapsulate logic around which column names were specified in each
 position of the column list. Users can specify columns names in one of 4
 ways: 'Foo:', 'Foo:*', 'Foo:bar*' or 'Foo:bar'. The first 3 result in a
 Map being added to the tuple, while the last results in a scalar. The 3rd
 form results in a prefix-filtered Map.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseStorage.ColumnInfo -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat -->
  <class name="HBaseTableInputFormat" extends="org.apache.hadoop.hbase.mapreduce.TableInputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HBaseTableInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HBaseTableInputFormat" type="long, byte[], byte[], byte[], byte[]"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="getSplits" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.JobContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="gt_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="gte_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lt_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lte_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder -->
  <class name="HBaseTableInputFormat.HBaseTableIFBuilder" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HBaseTableInputFormat.HBaseTableIFBuilder"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="withGt" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gt" type="byte[]"/>
    </method>
    <method name="withGte" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gte" type="byte[]"/>
    </method>
    <method name="withLt" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lt" type="byte[]"/>
    </method>
    <method name="withLte" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lte" type="byte[]"/>
    </method>
    <method name="withLimit" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="long"/>
    </method>
    <method name="withConf" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="build" return="org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="gt_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="gte_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lt_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lte_" type="byte[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="limit_" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="conf_" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableIFBuilder -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableRecordReader -->
  <class name="HBaseTableInputFormat.HBaseTableRecordReader" extends="org.apache.hadoop.hbase.mapreduce.TableRecordReader"
    abstract="false"
    static="false" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="HBaseTableInputFormat.HBaseTableRecordReader" type="long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setScan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scan" type="org.apache.hadoop.hbase.client.Scan"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.HBaseTableInputFormat.HBaseTableRecordReader -->
  <!-- start class org.apache.pig.backend.hadoop.hbase.TableSplitComparable -->
  <class name="TableSplitComparable" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <constructor name="TableSplitComparable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TableSplitComparable" type="org.apache.hadoop.hbase.mapreduce.TableSplit"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.hbase.mapreduce.TableSplit"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.hbase.TableSplitComparable -->
</package>
<package name="org.apache.pig.backend.hadoop.streaming">
  <!-- start class org.apache.pig.backend.hadoop.streaming.HadoopExecutableManager -->
  <class name="HadoopExecutableManager" extends="org.apache.pig.impl.streaming.ExecutableManager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HadoopExecutableManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="configure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="error" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[{@link HadoopExecutableManager} is a specialization of 
 {@link ExecutableManager} and provides HDFS-specific support for secondary
 outputs, task-logs etc.
 
 <code>HadoopExecutableManager</code> provides support for  secondary outputs
 of the managed process and also persists the logs of the tasks on HDFS.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.backend.hadoop.streaming.HadoopExecutableManager -->
</package>
<package name="org.apache.pig.builtin">
  <!-- start class org.apache.pig.builtin.ABS -->
  <class name="ABS" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ABS"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, absolute value of the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ABS implements a binding to the Java function
 {@link java.lang.Math#abs(double) Math.abs(double)} for computing the
 absolute value of the argument. The returned value will be a double which is
 absolute value of the input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ABS -->
  <!-- start class org.apache.pig.builtin.ACOS -->
  <class name="ACOS" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ACOS"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[ACOS implements a binding to the Java function
 {@link java.lang.Math#acos(double) Math.acos(double)} for computing the
 arc cosine of value of the argument. The returned value will be a double which is 
 the arc cosine of the value of  input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ACOS -->
  <!-- start class org.apache.pig.builtin.AddDuration -->
  <class name="AddDuration" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AddDuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>AddDuration returns the result of a DateTime object plus a Duration object</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Duration Format: http://en.wikipedia.org/wiki/ISO_8601#Durations</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime, dr:chararray);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dr: chararray}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,PT1S)
 (2008-02-06T02:06:02.000Z,PT1M)
 (2007-03-05T03:05:03.000Z,P1D)
 ...

 dtadd = FOREACH ISOin GENERATE AddDuration(dt, dr) AS dt1;

 DESCRIBE dtadd;
 dtadd: {dt1: datetime}

 DUMP dtadd;

 (2009-01-07T01:07:02.000Z)
 (2008-02-06T02:07:02.000Z)
 (2007-03-06T03:05:03.000Z)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AddDuration -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigDecimalMathBase -->
  <class name="AlgebraicBigDecimalMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicBigDecimalMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an SUM function to a
 bag of BigDecimals.
 This is a modified version of AlgebraicDoubleMathBase]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigDecimalMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Final -->
  <class name="AlgebraicBigDecimalMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicBigDecimalMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Intermediate -->
  <class name="AlgebraicBigDecimalMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicBigDecimalMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigIntegerMathBase -->
  <class name="AlgebraicBigIntegerMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicBigIntegerMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an SUM function to a
 bag of BigIntegers.
 This is a modified version of AlgebraicDoubleMathBase]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigIntegerMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Final -->
  <class name="AlgebraicBigIntegerMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicBigIntegerMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Intermediate -->
  <class name="AlgebraicBigIntegerMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicBigIntegerMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicByteArrayMathBase -->
  <class name="AlgebraicByteArrayMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicByteArrayMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <param name="expectedType" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an accumulative/algebraic math function to a
 bag of doubles.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicByteArrayMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Final -->
  <class name="AlgebraicByteArrayMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicByteArrayMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Initial -->
  <class name="AlgebraicByteArrayMathBase.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicByteArrayMathBase.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Initial -->
  <!-- start class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Intermediate -->
  <class name="AlgebraicByteArrayMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicByteArrayMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicByteArrayMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicDoubleMathBase -->
  <class name="AlgebraicDoubleMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicDoubleMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an accumulative/algebraic math function to a
 bag of doubles.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicDoubleMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicDoubleMathBase.Final -->
  <class name="AlgebraicDoubleMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicDoubleMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicDoubleMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicDoubleMathBase.Intermediate -->
  <class name="AlgebraicDoubleMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicDoubleMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicDoubleMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicFloatMathBase -->
  <class name="AlgebraicFloatMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicFloatMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an accumulative/algebraic math function to a
 bag of Floats.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicFloatMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicFloatMathBase.Final -->
  <class name="AlgebraicFloatMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicFloatMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicFloatMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicFloatMathBase.Intermediate -->
  <class name="AlgebraicFloatMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicFloatMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicFloatMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicIntMathBase -->
  <class name="AlgebraicIntMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicIntMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an accumulative/algebraic math function to a
 bag of doubles.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicIntMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicIntMathBase.Final -->
  <class name="AlgebraicIntMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicIntMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicIntMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicIntMathBase.Intermediate -->
  <class name="AlgebraicIntMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicIntMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicIntMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.AlgebraicLongMathBase -->
  <class name="AlgebraicLongMathBase" extends="org.apache.pig.builtin.AlgebraicMathBase"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AlgebraicLongMathBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSeed" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"/>
    </method>
    <method name="doTupleWork" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <param name="opProvider" type="org.apache.pig.builtin.AlgebraicMathBase.KnownOpProvider"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Core logic for applying an accumulative/algebraic math function to a
 bag of Longs.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicLongMathBase -->
  <!-- start class org.apache.pig.builtin.AlgebraicLongMathBase.Final -->
  <class name="AlgebraicLongMathBase.Final" extends="org.apache.pig.builtin.AlgebraicMathBase.Final"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicLongMathBase.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicLongMathBase.Final -->
  <!-- start class org.apache.pig.builtin.AlgebraicLongMathBase.Intermediate -->
  <class name="AlgebraicLongMathBase.Intermediate" extends="org.apache.pig.builtin.AlgebraicMathBase.Intermediate"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AlgebraicLongMathBase.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AlgebraicLongMathBase.Intermediate -->
  <!-- start class org.apache.pig.builtin.ARITY -->
  <class name="ARITY" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="Use {@link SIZE} instead.">
    <constructor name="ARITY"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Find the number of fields in a tuple.  Expected input is a tuple,
 output is an integer.
 @deprecated Use {@link SIZE} instead.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ARITY -->
  <!-- start class org.apache.pig.builtin.ASIN -->
  <class name="ASIN" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ASIN"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[ASIN implements a binding to the Java function
 {@link java.lang.Math#asin(double) Math.asin(double)} for computing the
 arc sine of value of the argument. The returned value will be a double which is 
 the arc sine of the value of  input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ASIN -->
  <!-- start class org.apache.pig.builtin.Assert -->
  <class name="Assert" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Assert"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.Assert -->
  <!-- start class org.apache.pig.builtin.ATAN -->
  <class name="ATAN" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ATAN"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[ATAN implements a binding to the Java function
 {@link java.lang.Math#atan(double) Math.atan(double)} for computing the
 arc tangent of value of the argument. The returned value will be a double which is 
 the arc tangent of the value of  input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ATAN -->
  <!-- start class org.apache.pig.builtin.AVG -->
  <class name="AVG" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="AVG"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Generates the average of a set of values. This class implements
 {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 AVG can operate on any numeric type.  It can also operate on bytearrays,
 which it will cast to doubles.    It expects a bag of
 tuples of one record each.  If Pig knows from the schema that this function
 will be passed a bag of integers or longs, it will use a specially adapted version of
 AVG that uses integer arithmetic for summing the data.  The return type
 of AVG will always be double, regardless of the input type.
 <p>
 AVG implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AVG -->
  <!-- start class org.apache.pig.builtin.AVG.Final -->
  <class name="AVG.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AVG.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AVG.Final -->
  <!-- start class org.apache.pig.builtin.AVG.Initial -->
  <class name="AVG.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AVG.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AVG.Initial -->
  <!-- start class org.apache.pig.builtin.AVG.Intermediate -->
  <class name="AVG.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AVG.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.AVG.Intermediate -->
  <!-- start class org.apache.pig.builtin.AvroStorage -->
  <class name="AvroStorage" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <implements name="org.apache.pig.LoadPushDown"/>
    <implements name="org.apache.pig.StoreResources"/>
    <constructor name="AvroStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates new instance of Pig Storage function, without specifying
  the schema. Useful for just loading in data.]]>
      </doc>
    </constructor>
    <constructor name="AvroStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates new instance of Pig Storage function.
  @param sn Specifies the input/output schema or record name.]]>
      </doc>
    </constructor>
    <constructor name="AvroStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates new instance of AvroStorage function, specifying output schema
  properties.
  @param sn Specifies the input/output schema or record name.
  @param opts Options for AvroStorage:
  <li><code>-namespace</code> Namespace for an automatically generated
    output schema.</li>
  <li><code>-schemafile</code> Specifies URL for avro schema file
    from which to read the input schema (can be local file, hdfs,
    url, etc).</li>
  <li><code>-schemaclass</code> Specifies fully qualified class name for avro
    class in your classpath which implements GenericContainer.</li>
  <li><code>-examplefile</code> Specifies URL for avro data file from
    which to copy the input schema (can be local file, hdfs, url, etc).</li>
  <li><code>-allowrecursive</code> Option to allow recursive schema
    definitions (default is false).</li>
  <li><code>-doublecolons</code> Option to translate Pig schema names
    with double colons to names with double underscores (default is false).</li>]]>
      </doc>
    </constructor>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Internal function for getting the Properties object associated with
 this UDF instance.
 @return The Properties object associated with this UDF instance]]>
      </doc>
    </method>
    <method name="getProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <param name="c" type="java.lang.Class"/>
      <param name="signature" type="java.lang.String"/>
      <doc>
      <![CDATA[Internal function for getting the Properties object associated with
 this UDF instance.
 @param c Class of this UDF
 @param signature Signature string
 @return The Properties object associated with this UDF instance]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Reads the avro schema at the specified location.
 @param location Location of file
 @param job Hadoop job object
 @return an Avro Schema object derived from the specified file
 @throws IOException]]>
      </doc>
    </method>
    <method name="getAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="org.apache.hadoop.fs.Path[]"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Reads the avro schemas at the specified location.
 @param p Location of file
 @param job Hadoop job object
 @return an Avro Schema object derived from the specified file
 @throws IOException]]>
      </doc>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="rs" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setOutputAvroSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <doc>
      <![CDATA[Sets the output avro schema to {@s}.
 @param s An Avro schema]]>
      </doc>
    </method>
    <method name="getOutputAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Utility function that gets the output schema from the udf
 properties for this instance of the store function.
 @return the output schema associated with this UDF]]>
      </doc>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="w" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setInputAvroSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <doc>
      <![CDATA[Sets the input avro schema to {@s}.
 @param s The specified schema]]>
      </doc>
    </method>
    <method name="getInputAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Helper function reads the input avro schema from the UDF
 Properties.
 @return The input avro schema]]>
      </doc>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@see org.apache.pig.LoadFunc#getInputFormat()]]>
      </doc>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <param name="r" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="s" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="true" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rfl" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="allowRecursive" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="doubleColonsToDoubleUnderscores" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.avro.Schema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="udfContextSignature" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Context signature for this UDF instance.]]>
      </doc>
    </field>
    <field name="OUTPUT_AVRO_SCHEMA" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Pig property name for the output avro schema.]]>
      </doc>
    </field>
    <field name="INPUT_AVRO_SCHEMA" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Pig property name for the input avro schema.]]>
      </doc>
    </field>
    <field name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[List of required fields passed by pig in a push down projection.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Pig UDF for reading and writing Avro data.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.AvroStorage -->
  <!-- start class org.apache.pig.builtin.BagSize -->
  <class name="BagSize" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BagSize"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SIZE}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BagSize -->
  <!-- start class org.apache.pig.builtin.BagToString -->
  <class name="BagToString" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BagToString"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputTuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Flatten a bag into a string.  This UDF will use the character '_'
 as the default delimiter if one is not provided.
 
 Example: 

 bag = {(a),(b),(c)}
 BagToString(bag) -> 'a_b_c'

 BagToString(bag, '+') -> 'a+b+c'
 
 bag = {(a,b), (c,d), (e,f)} 
 BagToString(bag) --> 'a_b_c_d_e_f'
 
 If input bag is null, this UTF will return null;]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BagToString -->
  <!-- start class org.apache.pig.builtin.BagToTuple -->
  <class name="BagToTuple" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BagToTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputTuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Flatten a bag into a tuple.  This UDF performs only flattening at the first level, 
 it doesn't recursively flatten nested bags.
 
 Example: {(a),(b),(c)} --> (a,b,c)
          {(a,b), (c,d), (e,f)} --> (a,b,c,d,e,f);
 
 If input bag is null, this UDF will return null;]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BagToTuple -->
  <!-- start class org.apache.pig.builtin.Base -->
  <class name="Base" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Base"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[base class for math udfs]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.Base -->
  <!-- start class org.apache.pig.builtin.BigDecimalAbs -->
  <class name="BigDecimalAbs" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalAbs -->
  <!-- start class org.apache.pig.builtin.BigDecimalAvg -->
  <class name="BigDecimalAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="BigDecimalAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="div" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dividend" type="java.math.BigDecimal"/>
      <param name="divisor" type="java.math.BigDecimal"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalAvg -->
  <!-- start class org.apache.pig.builtin.BigDecimalAvg.Final -->
  <class name="BigDecimalAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalAvg.Final -->
  <!-- start class org.apache.pig.builtin.BigDecimalAvg.Initial -->
  <class name="BigDecimalAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalAvg.Initial -->
  <!-- start class org.apache.pig.builtin.BigDecimalAvg.Intermediate -->
  <class name="BigDecimalAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigDecimalMax -->
  <class name="BigDecimalMax" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMax -->
  <!-- start class org.apache.pig.builtin.BigDecimalMax.Final -->
  <class name="BigDecimalMax.Final" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMax.Final -->
  <!-- start class org.apache.pig.builtin.BigDecimalMax.Intermediate -->
  <class name="BigDecimalMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigDecimalMin -->
  <class name="BigDecimalMin" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMin -->
  <!-- start class org.apache.pig.builtin.BigDecimalMin.Final -->
  <class name="BigDecimalMin.Final" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMin.Final -->
  <!-- start class org.apache.pig.builtin.BigDecimalMin.Intermediate -->
  <class name="BigDecimalMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigDecimalSum -->
  <class name="BigDecimalSum" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalSum -->
  <!-- start class org.apache.pig.builtin.BigDecimalSum.Final -->
  <class name="BigDecimalSum.Final" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalSum.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalSum.Final -->
  <!-- start class org.apache.pig.builtin.BigDecimalSum.Intermediate -->
  <class name="BigDecimalSum.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigDecimalMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalSum.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalSum.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigDecimalWrapper -->
  <class name="BigDecimalWrapper" extends="java.math.BigDecimal"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigDecimalWrapper" type="java.math.BigInteger"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="java.math.BigInteger, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="java.math.BigInteger, int, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="java.math.BigInteger, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="char[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="char[], int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="char[], int, int, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="char[], java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="double"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="double, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="int, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="long, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigDecimalWrapper" type="java.lang.String, java.math.MathContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isPositiveInfinity" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isNegativeInfinity" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="NEGATIVE_INFINITY" return="org.apache.pig.builtin.BigDecimalWrapper"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="POSITIVE_INFINITY" return="org.apache.pig.builtin.BigDecimalWrapper"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Max and min seeds cannot be defined to BigDecimal as the value could go as large as
 The computer allows. This wrapper is used to provide seed for MIN and MAX functions
 in AlgrebraicBigDecimalMathBase.java]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigDecimalWrapper -->
  <!-- start class org.apache.pig.builtin.BigIntegerAbs -->
  <class name="BigIntegerAbs" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerAbs -->
  <!-- start class org.apache.pig.builtin.BigIntegerAvg -->
  <class name="BigIntegerAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="BigIntegerAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="div" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dividend" type="java.math.BigInteger"/>
      <param name="divisor" type="java.math.BigInteger"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerAvg -->
  <!-- start class org.apache.pig.builtin.BigIntegerAvg.Final -->
  <class name="BigIntegerAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerAvg.Final -->
  <!-- start class org.apache.pig.builtin.BigIntegerAvg.Initial -->
  <class name="BigIntegerAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerAvg.Initial -->
  <!-- start class org.apache.pig.builtin.BigIntegerAvg.Intermediate -->
  <class name="BigIntegerAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigIntegerMax -->
  <class name="BigIntegerMax" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMax -->
  <!-- start class org.apache.pig.builtin.BigIntegerMax.Final -->
  <class name="BigIntegerMax.Final" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMax.Final -->
  <!-- start class org.apache.pig.builtin.BigIntegerMax.Intermediate -->
  <class name="BigIntegerMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigIntegerMin -->
  <class name="BigIntegerMin" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMin -->
  <!-- start class org.apache.pig.builtin.BigIntegerMin.Final -->
  <class name="BigIntegerMin.Final" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMin.Final -->
  <!-- start class org.apache.pig.builtin.BigIntegerMin.Intermediate -->
  <class name="BigIntegerMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigIntegerSum -->
  <class name="BigIntegerSum" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerSum -->
  <!-- start class org.apache.pig.builtin.BigIntegerSum.Final -->
  <class name="BigIntegerSum.Final" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerSum.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerSum.Final -->
  <!-- start class org.apache.pig.builtin.BigIntegerSum.Intermediate -->
  <class name="BigIntegerSum.Intermediate" extends="org.apache.pig.builtin.AlgebraicBigIntegerMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerSum.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerSum.Intermediate -->
  <!-- start class org.apache.pig.builtin.BigIntegerWrapper -->
  <class name="BigIntegerWrapper" extends="java.math.BigInteger"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BigIntegerWrapper" type="byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWrapper" type="int, byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWrapper" type="int, int, java.util.Random"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWrapper" type="int, java.util.Random"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWrapper" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BigIntegerWrapper" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isPositiveInfinity" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isNegativeInfinity" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="NEGATIVE_INFINITY" return="org.apache.pig.builtin.BigIntegerWrapper"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="POSITIVE_INFINITY" return="org.apache.pig.builtin.BigIntegerWrapper"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Max and min seeds cannot be defined to BigInteger as the value could go as large as
 The computer allows. This wrapper is used to provide seed for MIN and MAX functions
 in AlgrebraicBigIntegerMathBase.java]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BigIntegerWrapper -->
  <!-- start class org.apache.pig.builtin.BinStorage -->
  <class name="BinStorage" extends="org.apache.pig.FileInputLoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="BinStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BinStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="end" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Load and store data in a binary format.  This class is used by Pig to move
 data between MapReduce jobs.  Use of this function for storing user data is
 supported.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BinStorage -->
  <!-- start class org.apache.pig.builtin.Bloom -->
  <class name="Bloom" extends="org.apache.pig.FilterFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Bloom" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param filename file containing the serialized Bloom filter]]>
      </doc>
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dba" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[For testing only, do not use directly.]]>
      </doc>
    </method>
    <field name="filter" type="org.apache.hadoop.util.bloom.BloomFilter"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Use a Bloom filter build previously by BuildBloom.  You would first
 build a bloom filter in a group all job.  For example:
 in a group all job.  For example:
 define bb BuildBloom('jenkins', '100', '0.1');
 A = load 'foo' as (x, y);
 B = group A all;
 C = foreach B generate bb(A.x);
 store C into 'mybloom';
 The bloom filter can be on multiple keys by passing more than one field
 (or the entire bag) to BuildBloom.
 The resulting file can then be used in a Bloom filter as:
 define bloom Bloom(mybloom);
 A = load 'foo' as (x, y);
 B = load 'bar' as (z);
 C = filter B by bloom(z);
 D = join C by z, A by x;
 It uses {@link org.apache.hadoop.util.bloom.BloomFilter}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.Bloom -->
  <!-- start class org.apache.pig.builtin.BuildBloom -->
  <class name="BuildBloom" extends="org.apache.pig.builtin.BuildBloomBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="BuildBloom" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Build a bloom filter of fixed size and number of hash functions.
 @param hashType type of the hashing function (see
 {@link org.apache.hadoop.util.hash.Hash}).
 @param mode Will be ignored, though by convention it should be
 "fixed" or "fixedsize"
 @param vectorSize The vector size of this filter.
 @param nbHash The number of hash functions to consider.]]>
      </doc>
    </constructor>
    <constructor name="BuildBloom" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a Bloom filter based on expected number of elements and
 desired accuracy.
 @param hashType type of the hashing function (see
 {@link org.apache.hadoop.util.hash.Hash}).
 @param numElements The number of distinct elements expected to be
 placed in this filter.
 @param desiredFalsePositive the acceptable rate of false positives.
 This should be a floating point value between 0 and 1.0, where 1.0
 would be 100% (ie, a totally useless filter).]]>
      </doc>
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[Build a bloom filter for use later in Bloom.  This UDF is intended to run
 in a group all job.  For example:
 define bb BuildBloom('jenkins', '100', '0.1');
 A = load 'foo' as (x, y);
 B = group A all;
 C = foreach B generate bb(A.x);
 store C into 'mybloom';
 The bloom filter can be on multiple keys by passing more than one field
 (or the entire bag) to BuildBloom.
 The resulting file can then be used in a Bloom filter as:
 define bloom Bloom('mybloom');
 A = load 'foo' as (x, y);
 B = load 'bar' as (z);
 C = filter B by bloom(z);
 D = join C by z, A by x;
 It uses {@link org.apache.hadoop.util.bloom.BloomFilter}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BuildBloom -->
  <!-- start class org.apache.pig.builtin.BuildBloom.Final -->
  <class name="BuildBloom.Final" extends="org.apache.pig.builtin.BuildBloomBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BuildBloom.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Final" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BuildBloom.Final -->
  <!-- start class org.apache.pig.builtin.BuildBloom.Initial -->
  <class name="BuildBloom.Initial" extends="org.apache.pig.builtin.BuildBloomBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BuildBloom.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Initial" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Initial" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BuildBloom.Initial -->
  <!-- start class org.apache.pig.builtin.BuildBloom.Intermediate -->
  <class name="BuildBloom.Intermediate" extends="org.apache.pig.builtin.BuildBloomBase"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BuildBloom.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Intermediate" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloom.Intermediate" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.BuildBloom.Intermediate -->
  <!-- start class org.apache.pig.builtin.BuildBloomBase -->
  <class name="BuildBloomBase" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BuildBloomBase"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BuildBloomBase" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param hashType type of the hashing function (see
 {@link org.apache.hadoop.util.hash.Hash}).
 @param mode Will be ignored, though by convention it should be
 "fixed" or "fixedsize"
 @param vectorSize The vector size of <i>this</i> filter.
 @param nbHash The number of hash functions to consider.]]>
      </doc>
    </constructor>
    <constructor name="BuildBloomBase" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param hashType type of the hashing function (see
 {@link org.apache.hadoop.util.hash.Hash}).
 @param numElements The number of distinct elements expected to be
 placed in this filter.
 @param desiredFalsePositive the acceptable rate of false positives.
 This should be a floating point value between 0 and 1.0, where 1.0
 would be 100% (ie, a totally useless filter).]]>
      </doc>
    </constructor>
    <method name="bloomOr" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bloomOut" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bloomIn" return="org.apache.hadoop.util.bloom.BloomFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="vSize" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="numHash" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="hType" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="filter" type="org.apache.hadoop.util.bloom.BloomFilter"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A Base class for BuildBloom and its Algebraic implementations.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.BuildBloomBase -->
  <!-- start class org.apache.pig.builtin.CBRT -->
  <class name="CBRT" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CBRT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[CBRT implements a binding to the Java function
 {@link java.lang.Math#cbrt(double) Math.cbrt(double)} for computing the
 cube root of the argument. The returned value will be a double which is 
 cube root value of the input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.CBRT -->
  <!-- start class org.apache.pig.builtin.CEIL -->
  <class name="CEIL" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CEIL"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[CEIL implements a binding to the Java function
 {@link java.lang.Math#ceil(double) Math.ceil(double)}. Given a single 
 data atom it  Returns the smallest (closest to negative infinity) 
 double value that is greater than or equal  to the argument and is equal 
 to a mathematical integer.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.CEIL -->
  <!-- start class org.apache.pig.builtin.CONCAT -->
  <class name="CONCAT" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CONCAT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getSchemaType" return="org.apache.pig.EvalFunc.SchemaType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Generates the concatenation of two or more arguments.  It can be
 used with two or more bytearrays or two or more chararrays (but not a mixture of the two).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.CONCAT -->
  <!-- start class org.apache.pig.builtin.ConstantSize -->
  <class name="ConstantSize" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantSize"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SIZE}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ConstantSize -->
  <!-- start class org.apache.pig.builtin.COR -->
  <class name="COR" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="COR"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="COR" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Function to compute correlation between data sets.
 @param input input tuple which contains data sets.
 @return output output dataBag which contain correlation between each pair of data sets.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Function to return argument of constructor as string. It append ( and ) at starting and end or argument respectively. 
 If default constructor is called is returns empty string.
 @return argument of constructor]]>
      </doc>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[combine results of different data chunk 
 @param values DataBag containing partial results computed on different data chunks
 @return output Tuple containing combined data
 @throws IOException]]>
      </doc>
    </method>
    <method name="computeAll" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="first" type="org.apache.pig.data.DataBag"/>
      <param name="second" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[compute sum(XY), sum(X), sum(Y), sum(XX), sum(YY) from given data sets
 @param first DataBag containing first data set
 @param second DataBag containing second data set
 @return tuple containing sum(XY), sum(X), sum(Y), sum(XX), sum(YY)]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <field name="schemaName" type="java.util.Vector"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Computes the correlation between sets of data.  The returned value 
 will be a bag which will contain a tuple for each combination of input 
 schema and inside tuple we will have two schema name and correlation between 
 those  two schemas. 
 
 A = load 'input.xml' using PigStorage(':');<br/>
 B = group A all;<br/>
 D = foreach B generate group,COR(A.$0,A.$1,A.$2);<br/>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COR -->
  <!-- start class org.apache.pig.builtin.COR.Final -->
  <class name="COR.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COR.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="COR.Final" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="schemaName" type="java.util.Vector"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.builtin.COR.Final -->
  <!-- start class org.apache.pig.builtin.COR.Initial -->
  <class name="COR.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COR.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COR.Initial -->
  <!-- start class org.apache.pig.builtin.COR.Intermed -->
  <class name="COR.Intermed" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COR.Intermed"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COR.Intermed -->
  <!-- start class org.apache.pig.builtin.COS -->
  <class name="COS" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COS"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[COS implements a binding to the Java function
 {@link java.lang.Math#cos(double) Math.cos(double)}. Given a single 
 data atom it  Returns the cosine value of the input]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COS -->
  <!-- start class org.apache.pig.builtin.COSH -->
  <class name="COSH" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COSH"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[COSH implements a binding to the Java function
 {@link java.lang.Math#cosh(double) Math.cosh(double)}. Given a single 
 data atom it  Returns the hyperbolic cosine value of the input]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COSH -->
  <!-- start class org.apache.pig.builtin.COUNT -->
  <class name="COUNT" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="COUNT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="sum" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="NumberFormatException" type="java.lang.NumberFormatException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Generates the count of the number of values in a bag.  This count does not
 include null values, and thus matches SQL semantics for COUNT(a) (where a is
 field) but not for COUNT(*) (where * in SQL indicates all).
 <p>
 This class
 implements {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 There are no restrictions as to the data types inside the bag to be counted.
 <p>
 COUNT implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT -->
  <!-- start class org.apache.pig.builtin.COUNT_STAR -->
  <class name="COUNT_STAR" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="COUNT_STAR"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="sum" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="NumberFormatException" type="java.lang.NumberFormatException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Generates the count of the values of the first field of a tuple. 
 This class is different from COUNT in that it counts all NULL values and as such
 implements SQL COUNT(*) semantics.

 Generates the count of the number of values in a bag.  This count does 
 include null values, and thus matches SQL semantics for COUNT(*) (where
 in SQL indicates all) but not for COUNT(a) (where a is * field).
 <p>
 This class
 implements {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 There are no restrictions as to the data types inside the bag to be counted.
 <p>
 COUNT_STAR implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT_STAR -->
  <!-- start class org.apache.pig.builtin.COUNT_STAR.Final -->
  <class name="COUNT_STAR.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT_STAR.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT_STAR.Final -->
  <!-- start class org.apache.pig.builtin.COUNT_STAR.Initial -->
  <class name="COUNT_STAR.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT_STAR.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT_STAR.Initial -->
  <!-- start class org.apache.pig.builtin.COUNT_STAR.Intermediate -->
  <class name="COUNT_STAR.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT_STAR.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT_STAR.Intermediate -->
  <!-- start class org.apache.pig.builtin.COUNT.Final -->
  <class name="COUNT.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT.Final -->
  <!-- start class org.apache.pig.builtin.COUNT.Initial -->
  <class name="COUNT.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT.Initial -->
  <!-- start class org.apache.pig.builtin.COUNT.Intermediate -->
  <class name="COUNT.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COUNT.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COUNT.Intermediate -->
  <!-- start class org.apache.pig.builtin.COV -->
  <class name="COV" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="COV"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="COV" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Function to compute covariance between data sets.
 @param input input tuple which contains data sets.
 @return output output dataBag which contain covariance between each pair of data sets.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Function to return argument of constructor as string. It append ( and ) at starting and end or argument respectively.
 If default constructor is called is returns empty string.
 @return argument of constructor]]>
      </doc>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[combine results of different data chunk 
 @param values DataBag containing partial results computed on different data chunks
 @return output Tuple containing combined data
 @throws IOException]]>
      </doc>
    </method>
    <method name="computeAll" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="first" type="org.apache.pig.data.DataBag"/>
      <param name="second" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[compute sum(XY), sum(X), sum(Y) from given data sets
 @param first DataBag containing first data set
 @param second DataBag containing second data set
 @return tuple containing sum(XY), sum(X), sum(Y)]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <field name="schemaName" type="java.util.Vector"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Computes the covariance between sets of data.  The returned value 
 will be a bag which will contain a tuple for each combination of input 
 schema and inside tuple we will have two schema name and covariance between 
 those  two schemas. 
 
 A = load 'input.xml' using PigStorage(':');<br/>
 B = group A all;<br/>
 D = foreach B generate group,COV(A.$0,A.$1,A.$2);<br/>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.COV -->
  <!-- start class org.apache.pig.builtin.COV.Final -->
  <class name="COV.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COV.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="COV.Final" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="schemaName" type="java.util.Vector"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.builtin.COV.Final -->
  <!-- start class org.apache.pig.builtin.COV.Initial -->
  <class name="COV.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COV.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COV.Initial -->
  <!-- start class org.apache.pig.builtin.COV.Intermed -->
  <class name="COV.Intermed" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="COV.Intermed"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.COV.Intermed -->
  <!-- start class org.apache.pig.builtin.CubeDimensions -->
  <class name="CubeDimensions" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CubeDimensions"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="CubeDimensions" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="convertNullToUnknown"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Produces a DataBag with all combinations of the argument tuple members
 as in a data cube. Meaning, (a, b, c) will produce the following bag:
 <pre>
 { (a, b, c), (null, null, null), (a, b, null), (a, null, c),
   (a, null, null), (null, b, c), (null, null, c), (null, b, null) }
 </pre>
 <p>
 The "all" marker is null by default, but can be set to an arbitrary string by
 invoking a constructor (via a DEFINE). The constructor takes a single argument,
 the string you want to represent "all".
 <p>
 Usage goes something like this:
 <pre>{@code
 events = load '/logs/events' using EventLoader() as (lang, event, app_id);
 cubed = foreach x generate
   FLATTEN(piggybank.CubeDimensions(lang, event, app_id))
     as (lang, event, app_id),
   measure;
 cube = foreach (group cubed
                 by (lang, event, app_id) parallel $P)
        generate
   flatten(group) as (lang, event, app_id),
   COUNT_STAR(cubed),
   SUM(measure);
 store cube into 'event_cube';
 }</pre>
 <p>
 <b>Note</b>: doing this with non-algebraic aggregations on large data can result
 in very slow reducers, since one of the groups is going to get <i>all</i> the
 records in your relation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.CubeDimensions -->
  <!-- start class org.apache.pig.builtin.CurrentTime -->
  <class name="CurrentTime" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CurrentTime"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is a default constructor for Pig reflection purposes. It should
 never actually be used.]]>
      </doc>
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.CurrentTime -->
  <!-- start class org.apache.pig.builtin.DateTimeMax -->
  <class name="DateTimeMax" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="DateTimeMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="max" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMax -->
  <!-- start class org.apache.pig.builtin.DateTimeMax.Final -->
  <class name="DateTimeMax.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMax.Final -->
  <!-- start class org.apache.pig.builtin.DateTimeMax.Initial -->
  <class name="DateTimeMax.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMax.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMax.Initial -->
  <!-- start class org.apache.pig.builtin.DateTimeMax.Intermediate -->
  <class name="DateTimeMax.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.DateTimeMin -->
  <class name="DateTimeMin" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="DateTimeMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="min" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMin -->
  <!-- start class org.apache.pig.builtin.DateTimeMin.Final -->
  <class name="DateTimeMin.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMin.Final -->
  <!-- start class org.apache.pig.builtin.DateTimeMin.Initial -->
  <class name="DateTimeMin.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMin.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMin.Initial -->
  <!-- start class org.apache.pig.builtin.DateTimeMin.Intermediate -->
  <class name="DateTimeMin.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DateTimeMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DateTimeMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.DaysBetween -->
  <class name="DaysBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DaysBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>DaysBetween returns the number of days between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DaysBetween -->
  <!-- start class org.apache.pig.builtin.DIFF -->
  <class name="DIFF" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DIFF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Compares a tuple with two fields. Emits any differences.
 @param input a tuple with exactly two fields.
 @throws IOException if there are not exactly two fields in a tuple]]>
      </doc>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[DIFF takes two bags as arguments and compares them.   Any tuples
 that are in one bag but not the other are returned.  If the
 fields are not bags then they will be returned if they do not match, or 
 an empty bag will be returned if the two records match.
 <p>
 The implementation assumes that both bags being passed to this function will
 fit entirely into memory simultaneously.  If that is not the case the UDF
 will still function, but it will be <strong>very</strong> slow.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DIFF -->
  <!-- start class org.apache.pig.builtin.Distinct -->
  <class name="Distinct" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="Distinct"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDistinct" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Find the distinct set of tuples in a bag.
 This is a blocking operator. All the input is put in the hashset implemented
 in DistinctDataBag which also provides the other DataBag interfaces.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.Distinct -->
  <!-- start class org.apache.pig.builtin.Distinct.Final -->
  <class name="Distinct.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Distinct.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.Distinct.Final -->
  <!-- start class org.apache.pig.builtin.Distinct.Initial -->
  <class name="Distinct.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Distinct.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.Distinct.Initial -->
  <!-- start class org.apache.pig.builtin.Distinct.Intermediate -->
  <class name="Distinct.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Distinct.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.Distinct.Intermediate -->
  <!-- start class org.apache.pig.builtin.DoubleAbs -->
  <class name="DoubleAbs" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleAbs -->
  <!-- start class org.apache.pig.builtin.DoubleAvg -->
  <class name="DoubleAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="DoubleAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleAvg -->
  <!-- start class org.apache.pig.builtin.DoubleAvg.Final -->
  <class name="DoubleAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleAvg.Final -->
  <!-- start class org.apache.pig.builtin.DoubleAvg.Initial -->
  <class name="DoubleAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleAvg.Initial -->
  <!-- start class org.apache.pig.builtin.DoubleAvg.Intermediate -->
  <class name="DoubleAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.DoubleBase -->
  <class name="DoubleBase" extends="org.apache.pig.builtin.Base"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a tuple with a single Double value
 @return output returns a Double value]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[base class for math udfs that return Double value]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleBase -->
  <!-- start class org.apache.pig.builtin.DoubleMax -->
  <class name="DoubleMax" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMax -->
  <!-- start class org.apache.pig.builtin.DoubleMax.Final -->
  <class name="DoubleMax.Final" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMax.Final -->
  <!-- start class org.apache.pig.builtin.DoubleMax.Intermediate -->
  <class name="DoubleMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.DoubleMin -->
  <class name="DoubleMin" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMin -->
  <!-- start class org.apache.pig.builtin.DoubleMin.Final -->
  <class name="DoubleMin.Final" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMin.Final -->
  <!-- start class org.apache.pig.builtin.DoubleMin.Intermediate -->
  <class name="DoubleMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.DoubleRound -->
  <class name="DoubleRound" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleRound"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, 
 the closest long to the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Given a single data atom it Returns the closest long to the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleRound -->
  <!-- start class org.apache.pig.builtin.DoubleRoundTo -->
  <class name="DoubleRoundTo" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleRoundTo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a numeric value to round, a number of digits to keep, and an optional rounding mode.
 @return output returns a single numeric value, the number with only those digits retained]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ROUND_TO safely rounds a number to a given precision by using an intermediate
 BigDecimal. The too-often seen trick of doing (1000.0 * ROUND(x/1000)) is not
 only hard to read but also fails to produce numerically accurate results.

 Given a single data atom and number of digits, it returns a double extending to the
 given number of decimal places.

 The result is a multiple of ten to the power given by the digits argument: a
 negative value zeros out correspondingly many places to the left of the
 decimal point: ROUND_TO(0.9876543, 3) is 0.988; ROUND_TO(0.9876543, 0) is
 1.0; and ROUND_TO(1234.56, -2) is 1200.0.

 The optional mode argument specifies the {@link java.math.RoundingMode rounding mode};
 by default, {@link java.math.RoundingMode#HALF_EVEN 'HALF_EVEN'} is used.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleRoundTo -->
  <!-- start class org.apache.pig.builtin.DoubleSum -->
  <class name="DoubleSum" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleSum -->
  <!-- start class org.apache.pig.builtin.DoubleSum.Final -->
  <class name="DoubleSum.Final" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleSum.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleSum.Final -->
  <!-- start class org.apache.pig.builtin.DoubleSum.Intermediate -->
  <class name="DoubleSum.Intermediate" extends="org.apache.pig.builtin.AlgebraicDoubleMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DoubleSum.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.DoubleSum.Intermediate -->
  <!-- start class org.apache.pig.builtin.ENDSWITH -->
  <class name="ENDSWITH" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ENDSWITH"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Pig UDF to test input <code>tuple.get(0)</code> against <code>tuple.get(1)</code>
 to determine if the first argument ends with the string in the second.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ENDSWITH -->
  <!-- start class org.apache.pig.builtin.EqualsIgnoreCase -->
  <class name="EqualsIgnoreCase" extends="org.apache.pig.FilterFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EqualsIgnoreCase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Compares two Strings ignoring case considerations.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.EqualsIgnoreCase -->
  <!-- start class org.apache.pig.builtin.EXP -->
  <class name="EXP" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EXP"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[Given a single data atom it returns the Euler's number e raised to the power of input]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.EXP -->
  <!-- start class org.apache.pig.builtin.FloatAbs -->
  <class name="FloatAbs" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return returns a single numeric value, absolute value of the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatAbs -->
  <!-- start class org.apache.pig.builtin.FloatAvg -->
  <class name="FloatAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="FloatAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatAvg -->
  <!-- start class org.apache.pig.builtin.FloatAvg.Final -->
  <class name="FloatAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatAvg.Final -->
  <!-- start class org.apache.pig.builtin.FloatAvg.Initial -->
  <class name="FloatAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatAvg.Initial -->
  <!-- start class org.apache.pig.builtin.FloatAvg.Intermediate -->
  <class name="FloatAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.FloatMax -->
  <class name="FloatMax" extends="org.apache.pig.builtin.AlgebraicFloatMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMax -->
  <!-- start class org.apache.pig.builtin.FloatMax.Final -->
  <class name="FloatMax.Final" extends="org.apache.pig.builtin.AlgebraicFloatMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMax.Final -->
  <!-- start class org.apache.pig.builtin.FloatMax.Intermediate -->
  <class name="FloatMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicFloatMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.FloatMin -->
  <class name="FloatMin" extends="org.apache.pig.builtin.AlgebraicFloatMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMin -->
  <!-- start class org.apache.pig.builtin.FloatMin.Final -->
  <class name="FloatMin.Final" extends="org.apache.pig.builtin.AlgebraicFloatMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMin.Final -->
  <!-- start class org.apache.pig.builtin.FloatMin.Intermediate -->
  <class name="FloatMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicFloatMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FloatMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.FloatRound -->
  <class name="FloatRound" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatRound"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, 
 the closest long to the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ROUND implements a binding to the Java function
 {@link java.lang.Math#round(float) Math.round(float)}. 
 Given a single data atom it Returns the closest long to the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatRound -->
  <!-- start class org.apache.pig.builtin.FloatRoundTo -->
  <class name="FloatRoundTo" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatRoundTo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a numeric value to round, a number of digits to keep, and an optional rounding mode.
 @return output returns a single numeric value, the number with only those digits retained]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ROUND_TO safely rounds a number to a given precision by using an intermediate
 BigDecimal. The too-often seen trick of doing (1000.0 * ROUND(x/1000)) is not
 only hard to read but also fails to produce numerically accurate results.

 Given a single data atom and number of digits, it returns a float extending to the
 given number of decimal places.

 The result is a multiple of ten to the power given by the digits argument: a
 negative value zeros out correspondingly many places to the left of the
 decimal point: ROUND_TO(0.9876543, 3) is 0.988; ROUND_TO(0.9876543, 0) is
 1.0; and ROUND_TO(1234.56, -2) is 1200.0.

 The optional mode argument specifies the {@link java.math.RoundingMode rounding mode};
 by default, {@link java.math.RoundingMode#HALF_EVEN HALF_EVEN} is used.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatRoundTo -->
  <!-- start class org.apache.pig.builtin.FloatSum -->
  <class name="FloatSum" extends="org.apache.pig.builtin.DoubleSum"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FloatSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FloatSum -->
  <!-- start class org.apache.pig.builtin.FLOOR -->
  <class name="FLOOR" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FLOOR"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[FLOOR implements a binding to the Java function
 {@link java.lang.Math#floor(double) Math.floor(double)}. Given a single 
 data atom it returns the largest (closest to positive infinity) double 
 value that is less than or equal to the argument and is equal to a 
 mathematical integer.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FLOOR -->
  <!-- start class org.apache.pig.builtin.FunctionWrapperEvalFunc -->
  <class name="FunctionWrapperEvalFunc" extends="org.apache.pig.PrimitiveEvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FunctionWrapperEvalFunc" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Takes the class name of a Function, initializes it using the default constructor and passes
 it to FunctionWrapperEvalFunc(ExceptionalFunction function). Functions must implement either
 com.google.common.base.Function or ExceptionalFunction.
 @param functionClassName function class to initialize]]>
      </doc>
    </constructor>
    <constructor name="FunctionWrapperEvalFunc" type="com.google.common.base.Function"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
      <doc>
      <![CDATA[Determines the input and output types of the Function and initializes the superclass.
 Subclass and call this constructor if a Function with a non-default constructor is required.
 @param function Function to be used by the UDF.]]>
      </doc>
    </constructor>
    <constructor name="FunctionWrapperEvalFunc" type="org.apache.pig.ExceptionalFunction"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
      <doc>
      <![CDATA[Determines the input and output types of the Function and initializes the superclass.
 Subclass and call this constructor if a Function with a non-default constructor is required.
 @param function Function to be used by the UDF.]]>
      </doc>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCounterGroup" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[EvalFunc that wraps an implementation of the Function interface, which is passed as a String
 in the constructor. When resolving the Function class, the Pig UDF package import list is used.
 <P>
 The Function must have a default no-arg constructor, which will be used. For Functions that
 take args in the constructor, initialize the function in a subclass of this one and call
 <code>super(function)</code>.
 <P>
 Example: <code>DEFINE myUdf FunctionWrapperEvalFunc('MyFunction')</code>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.FunctionWrapperEvalFunc -->
  <!-- start class org.apache.pig.builtin.FuncUtils -->
  <class name="FuncUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FuncUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="classesIdentifyingJars" type="java.lang.Class[]"/>
      <doc>
      <![CDATA[Utility function to get a list of containing jars via classes
 @param classesIdentifyingJars classes used to identify containing jars
 @return list of containing jars]]>
      </doc>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="classesIdentifyingJars" type="java.util.List"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.FuncUtils -->
  <!-- start class org.apache.pig.builtin.GenericInvoker -->
  <class name="GenericInvoker" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GenericInvoker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GenericInvoker" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="GenericInvoker" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="GenericInvoker" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[The generic Invoker class does all the common grunt work of setting up an invoker.
 Class-specific non-generic extensions of this class are needed for Pig to know what type
 of return to expect from exec, and to find the appropriate classes through reflection.
 All they have to do is implement the constructors that call into super(). Note that the 
 no-parameter constructor is <b>required</b>, if seemingly nonsensical, for Pig to do its work.
 <p>
 The Invoker family of udfs understand the following class names (all case-independent):
 <li>String
 <li>Long
 <li>Float
 <li>Double
 <li>Int
 <p>
 Invokers can also work with array arguments, represented in Pig as DataBags of single-tuple
 elements. Simply refer to <code>string[]</code>, for example.
 <p>
 This UDF allows one to dynamically invoke Java methods that return a <code>T</code>
 <p>
 Usage of the Invoker family of UDFs (adjust as appropriate):
 <p>
<pre>
 {@code
 -- invoking a static method
 DEFINE StringToLong InvokeForLong('java.lang.Long.valueOf', 'String')
 longs = FOREACH strings GENERATE StringToLong(some_chararray);

 -- invoking a method on an object
 DEFINE StringConcat InvokeForString('java.lang.String.concat', 'String String', 'false')
 concatenations = FOREACH strings GENERATE StringConcat(str1, str2); 
 }
 </pre>
 <p>
 The first argument to the constructor is the full path to desired method.<br>
 The second argument is a list of classes of the method parameters.<br>
 If the method is not static, the first element in this list is the object to invoke the method on.<br>
 The second argument is optional (a no-argument static method is assumed if it is not supplied).<br>
 The third argument is the keyword "static" (or "true") to signify that the method is static. <br>
 The third argument is optional, and true by default.<br>
 <p>
 @param <T>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GenericInvoker -->
  <!-- start class org.apache.pig.builtin.GetDay -->
  <class name="GetDay" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetDay"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetDay extracts the day of a month from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetDay -->
  <!-- start class org.apache.pig.builtin.GetHour -->
  <class name="GetHour" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetHour"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetHour extracts the hour of a day from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetHour -->
  <!-- start class org.apache.pig.builtin.GetMilliSecond -->
  <class name="GetMilliSecond" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetMilliSecond"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetSecond extracts the millisecond of a second from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetMilliSecond -->
  <!-- start class org.apache.pig.builtin.GetMinute -->
  <class name="GetMinute" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetMinute"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetMinute extracts the minute of an hour from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetMinute -->
  <!-- start class org.apache.pig.builtin.GetMonth -->
  <class name="GetMonth" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetMonth"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetMonth extracts the month of a year from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetMonth -->
  <!-- start class org.apache.pig.builtin.GetSecond -->
  <class name="GetSecond" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetSecond"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetSecond extracts the second of a minute from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetSecond -->
  <!-- start class org.apache.pig.builtin.GetWeek -->
  <class name="GetWeek" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetWeek"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetMonth extracts the week of a week year from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetWeek -->
  <!-- start class org.apache.pig.builtin.GetWeekYear -->
  <class name="GetWeekYear" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetWeekYear"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetMonth extracts the week year from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetWeekYear -->
  <!-- start class org.apache.pig.builtin.GetYear -->
  <class name="GetYear" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetYear"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[GetYear extracts the year from a DateTime object.
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:
 
 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.071Z)
 (2008-02-06T02:06:02.062Z)
 (2007-03-05T03:05:03.053Z)
 ...
 
 truncated = FOREACH ISO in GENERATE GetYear(dt) AS year,
     GetMonth(dt) as month,
     GetWeek(dt) as week,
     GetWeekYear(dt) as weekyear,
     GetDay(dt) AS day,
     GetHour(dt) AS hour,
     GetMinute(dt) AS min,
     GetSecond(dt) AS sec;
     GetMillSecond(dt) AS milli;

 DESCRIBE truncated;
 truncated: {year: int,month: int,week: int,weekyear: int,day: int,hour: int,min: int,sec: int,milli: int}

 DUMP truncated;
 (2009,1,2,2009,7,1,7,1,71)
 (2008,2,6,2008,6,2,6,2,62)
 (2007,3,10,2007,5,3,5,3,53)
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.GetYear -->
  <!-- start class org.apache.pig.builtin.HiveUDAF -->
  <class name="HiveUDAF" extends="org.apache.pig.builtin.HiveUDFBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="HiveUDAF" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
    </constructor>
    <constructor name="HiveUDAF" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
    </constructor>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[Use Hive UDAF or GenericUDAF.
 Example:
      define avg HiveUDAF('avg');
      A = load 'mydata' as (name:chararray, num:double);
      B = group A by name;
      C = foreach B generate group, avg(A.num);]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDAF -->
  <!-- start class org.apache.pig.builtin.HiveUDAF.Final -->
  <class name="HiveUDAF.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUDAF.Final" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HiveUDAF.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDAF.Final -->
  <!-- start class org.apache.pig.builtin.HiveUDAF.Initial -->
  <class name="HiveUDAF.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUDAF.Initial" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HiveUDAF.Initial" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDAF.Initial -->
  <!-- start class org.apache.pig.builtin.HiveUDAF.Intermediate -->
  <class name="HiveUDAF.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUDAF.Intermediate" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="HiveUDAF.Intermediate" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDAF.Intermediate -->
  <!-- start class org.apache.pig.builtin.HiveUDF -->
  <class name="HiveUDF" extends="org.apache.pig.builtin.HiveUDFBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUDF" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
    </constructor>
    <constructor name="HiveUDF" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Use Hive UDF or GenericUDF.
 Example:
      define sin HiveUDF('sin');
      A = load 'mydata' as (num:double);
      B = foreach A generate sin(num);
 HiveUDF takes an optional second parameter if the Hive UDF require constant parameters
      define in_file HiveUDF('in_file', '(null, "names.txt")');]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDF -->
  <!-- start class org.apache.pig.builtin.HiveUDTF -->
  <class name="HiveUDTF" extends="org.apache.pig.builtin.HiveUDFBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUDTF" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="HiveUDTF" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="InstantiationException" type="java.lang.InstantiationException"/>
      <exception name="IllegalAccessException" type="java.lang.IllegalAccessException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="needEndOfAllInputProcessing" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setEndOfAllInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endOfAllInput" type="boolean"/>
    </method>
    <doc>
    <![CDATA[Use Hive GenericUDTF.
 Example:
      define explode HiveUDTF('explode');
      A = load 'mydata' as (a0:{(b0:chararray)});
      B = foreach A generate flatten(explode(a0));]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.HiveUDTF -->
  <!-- start class org.apache.pig.builtin.HoursBetween -->
  <class name="HoursBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HoursBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>HoursBetween returns the number of hours between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.HoursBetween -->
  <!-- start class org.apache.pig.builtin.INDEXOF -->
  <class name="INDEXOF" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="INDEXOF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Method invoked on every tuple during foreach evaluation
 @param input tuple; first column is assumed to have the column to convert
                     the second column is the string we search for
                     the third is an optional column from where to start the search
 @exception java.io.IOException
 @return index of first occurrence, or null in case of processing error]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[INDEXOF implements eval function to search for a string
 Example:
      A = load 'mydata' as (name);
      B = foreach A generate INDEXOF(name, ",");]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.INDEXOF -->
  <!-- start class org.apache.pig.builtin.IntAbs -->
  <class name="IntAbs" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, absolute value of the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ABS implements a binding to the Java function
 {@link java.lang.Math#abs(double) Math.abs(int)} for computing the
 absolute value of the argument. The returned value will be an int which is 
 absolute value of the input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IntAbs -->
  <!-- start class org.apache.pig.builtin.IntAvg -->
  <class name="IntAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="IntAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IntAvg -->
  <!-- start class org.apache.pig.builtin.IntAvg.Final -->
  <class name="IntAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntAvg.Final -->
  <!-- start class org.apache.pig.builtin.IntAvg.Initial -->
  <class name="IntAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntAvg.Initial -->
  <!-- start class org.apache.pig.builtin.IntAvg.Intermediate -->
  <class name="IntAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.IntMax -->
  <class name="IntMax" extends="org.apache.pig.builtin.AlgebraicIntMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IntMax -->
  <!-- start class org.apache.pig.builtin.IntMax.Final -->
  <class name="IntMax.Final" extends="org.apache.pig.builtin.AlgebraicIntMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntMax.Final -->
  <!-- start class org.apache.pig.builtin.IntMax.Intermediate -->
  <class name="IntMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicIntMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.IntMin -->
  <class name="IntMin" extends="org.apache.pig.builtin.AlgebraicIntMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IntMin -->
  <!-- start class org.apache.pig.builtin.IntMin.Final -->
  <class name="IntMin.Final" extends="org.apache.pig.builtin.AlgebraicIntMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntMin.Final -->
  <!-- start class org.apache.pig.builtin.IntMin.Intermediate -->
  <class name="IntMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicIntMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.IntMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.IntSum -->
  <class name="IntSum" extends="org.apache.pig.builtin.LongSum"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IntSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IntSum -->
  <!-- start class org.apache.pig.builtin.INVERSEMAP -->
  <class name="INVERSEMAP" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="INVERSEMAP"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This UDF accepts a Map as input with values of any primitive data type. <br />
 UDF swaps keys with values and returns the new inverse Map. <br />
 Note in case original values are non-unique, the resulting Map would <br />
 contain String Key -> DataBag of values. Here the bag of values is composed <br />
 of the original keys having the same value. <br />

 <pre>
 Note: 1. UDF accepts Map with Values of primitive data type
       2. UDF returns Map<String,DataBag>
 <code>
 grunt> cat 1data
 [open#1,1#2,11#2]
 [apache#2,3#4,12#24]

 <br />
 grunt> a = load 'data' as (M:[int]);
 grunt> b = foreach a generate INVERSEMAP($0);

 grunt> dump b;
 ([2#{(1),(11)},apache#{(open)}])
 ([hadoop#{(apache),(12)},4#{(3)}])
 </code>
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.INVERSEMAP -->
  <!-- start class org.apache.pig.builtin.InvokeForDouble -->
  <class name="InvokeForDouble" extends="org.apache.pig.builtin.GenericInvoker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokeForDouble"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvokeForDouble" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForDouble" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForDouble" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <doc>
    <![CDATA[@see GenericInvoker]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.InvokeForDouble -->
  <!-- start class org.apache.pig.builtin.InvokeForFloat -->
  <class name="InvokeForFloat" extends="org.apache.pig.builtin.GenericInvoker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokeForFloat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvokeForFloat" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForFloat" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForFloat" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <doc>
    <![CDATA[@see GenericInvoker]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.InvokeForFloat -->
  <!-- start class org.apache.pig.builtin.InvokeForInt -->
  <class name="InvokeForInt" extends="org.apache.pig.builtin.GenericInvoker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokeForInt"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvokeForInt" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForInt" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForInt" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <doc>
    <![CDATA[@see GenericInvoker]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.InvokeForInt -->
  <!-- start class org.apache.pig.builtin.InvokeForLong -->
  <class name="InvokeForLong" extends="org.apache.pig.builtin.GenericInvoker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokeForLong"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvokeForLong" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForLong" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForLong" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <doc>
    <![CDATA[@see GenericInvoker]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.InvokeForLong -->
  <!-- start class org.apache.pig.builtin.InvokeForString -->
  <class name="InvokeForString" extends="org.apache.pig.builtin.GenericInvoker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokeForString"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvokeForString" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForString" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="InvokeForString" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <doc>
    <![CDATA[@see GenericInvoker]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.InvokeForString -->
  <!-- start class org.apache.pig.builtin.Invoker -->
  <class name="Invoker" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Invoker" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <constructor name="Invoker" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SecurityException" type="java.lang.SecurityException"/>
      <exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException"/>
    </constructor>
    <method name="getReturnType" return="java.lang.reflect.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="invoke" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.Invoker -->
  <!-- start interface org.apache.pig.builtin.InvokerFunction -->
  <interface name="InvokerFunction"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="eval" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </interface>
  <!-- end interface org.apache.pig.builtin.InvokerFunction -->
  <!-- start class org.apache.pig.builtin.InvokerGenerator -->
  <class name="InvokerGenerator" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvokerGenerator" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.InvokerGenerator -->
  <!-- start class org.apache.pig.builtin.IsEmpty -->
  <class name="IsEmpty" extends="org.apache.pig.FilterFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IsEmpty"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Determine whether a bag or map is empty.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.IsEmpty -->
  <!-- start class org.apache.pig.builtin.JsonLoader -->
  <class name="JsonLoader" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="JsonLoader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JsonLoader" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="reader" type="org.apache.hadoop.mapreduce.RecordReader"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.pig.ResourceSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A loader for data stored using {@link JsonStorage}.  This is not a generic
 JSON loader. It depends on the schema being stored with the data when
 conceivably you could write a loader that determines the schema from the
 JSON.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.JsonLoader -->
  <!-- start class org.apache.pig.builtin.JsonMetadata -->
  <class name="JsonMetadata" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadMetadata"/>
    <implements name="org.apache.pig.StoreMetadata"/>
    <constructor name="JsonMetadata"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JsonMetadata" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="findMetaFile" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="metaname" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[.
 Given a path, which may represent a glob pattern, a directory,
 comma separated files/glob patterns or a file, this method
 finds the set of relevant metadata files on the storage system.
 The algorithm for finding the metadata file is as follows:
 <p>
 For each object represented by the path (either directly, or via a glob):
   If object is a directory, and path/metaname exists, use that as the metadata file.
   Else if parentPath/metaname exists, use that as the metadata file.
 <p>
 Resolving conflicts, merging the metadata, etc, is not handled by this method and should be
 taken care of by downstream code.
 <p>
 @param path      Path, as passed in to a LoadFunc (may be a Hadoop glob)
 @param metaname    Metadata file designation, such as .pig_schema or .pig_stats
 @param conf      configuration object
 @return Set of element descriptors for all metadata files associated with the files on the path.]]>
      </doc>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[For JsonMetadata schema is considered optional
 This method suppresses (and logs) errors if they are encountered.]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <param name="isSchemaOn" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Read the schema from json metadata file
 If isSchemaOn parameter is false, the errors are suppressed and logged
 @param location
 @param job
 @param isSchemaOn
 @return schema
 @throws IOException]]>
      </doc>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[For JsonMetadata stats are considered optional
 This method suppresses (and logs) errors if they are encountered.
 @see org.apache.pig.LoadMetadata#getStatistics(String, Job)]]>
      </doc>
    </method>
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setFieldDel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldDel" type="byte"/>
    </method>
    <method name="setRecordDel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="recordDel" type="byte"/>
    </method>
    <doc>
    <![CDATA[Reads and Writes metadata using JSON in metafiles next to the data.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.JsonMetadata -->
  <!-- start class org.apache.pig.builtin.JsonStorage -->
  <class name="JsonStorage" extends="org.apache.pig.StoreFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreMetadata"/>
    <implements name="org.apache.pig.StoreResources"/>
    <constructor name="JsonStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="fixSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCacheFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.pig.ResourceSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A JSON Pig store function.  Each Pig tuple is stored on one line (as one
 value for TextOutputFormat) so that it can be read easily using
 TextInputFormat.  Pig tuples are mapped to JSON objects.  Pig bags are
 mapped to JSON arrays.  Pig maps are also mapped to JSON objects.  Maps are
 assumed to be string to string.  A schema is stored in a side file to deal
 with mapping between JSON and Pig types. The schema file share the same format
 as the one we use in PigStorage.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.JsonStorage -->
  <!-- start class org.apache.pig.builtin.KEYSET -->
  <class name="KEYSET" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="KEYSET"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This UDF takes a Map and returns a Bag containing the keyset. <br />

 <pre>
 <code>
 grunt> cat data
 [open#apache,1#2,11#2]
 [apache#hadoop,3#4,12#hadoop]

 grunt> a = load 'data' as (M:[]);
 grunt> b = foreach a generate KEYSET($0);
 grunt> dump b;
 ({(open),(1),(11)})
 ({(3),(apache),(12)})
 </code>
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.KEYSET -->
  <!-- start class org.apache.pig.builtin.LAST_INDEX_OF -->
  <class name="LAST_INDEX_OF" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LAST_INDEX_OF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Finds the last location of a substring in a given string.
 @param input tuple:<ol>
 <li>the string to process
 <li>the substring to find
 </ol>
 @exception java.io.IOException
 @return last location of substring, or null in case of processing errors.]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[string.INSTR implements eval function to search for the last occurrence of a string
 Returns null on error
 Example:
 <code>
      A = load 'mydata' as (name);
      B = foreach A generate LASTINDEXOF(name, ",");
 </code>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LAST_INDEX_OF -->
  <!-- start class org.apache.pig.builtin.LCFIRST -->
  <class name="LCFIRST" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LCFIRST"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[lower-case the first character of a string]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LCFIRST -->
  <!-- start class org.apache.pig.builtin.LOG -->
  <class name="LOG" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOG"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[LOG implements a binding to the Java function
 {@link java.lang.Math#log(double) Math.log(double)}. 
 Given a single data atom it returns the natural 
 logarithm (base e)  of a double]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LOG -->
  <!-- start class org.apache.pig.builtin.LOG10 -->
  <class name="LOG10" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOG10"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[LOG10 implements a binding to the Java function
 {@link java.lang.Math#log10(double) Math.log10(double)}. 
 Given a single data atom it returns the base 10 logarithm of a double]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LOG10 -->
  <!-- start class org.apache.pig.builtin.LongAbs -->
  <class name="LongAbs" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongAbs"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, absolute value of the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongAbs -->
  <!-- start class org.apache.pig.builtin.LongAvg -->
  <class name="LongAvg" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="LongAvg"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="combine" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="values" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="count" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="sum" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link AVG}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LongAvg -->
  <!-- start class org.apache.pig.builtin.LongAvg.Final -->
  <class name="LongAvg.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongAvg.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongAvg.Final -->
  <!-- start class org.apache.pig.builtin.LongAvg.Initial -->
  <class name="LongAvg.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongAvg.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongAvg.Initial -->
  <!-- start class org.apache.pig.builtin.LongAvg.Intermediate -->
  <class name="LongAvg.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongAvg.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongAvg.Intermediate -->
  <!-- start class org.apache.pig.builtin.LongMax -->
  <class name="LongMax" extends="org.apache.pig.builtin.AlgebraicLongMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LongMax -->
  <!-- start class org.apache.pig.builtin.LongMax.Final -->
  <class name="LongMax.Final" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongMax.Final -->
  <!-- start class org.apache.pig.builtin.LongMax.Intermediate -->
  <class name="LongMax.Intermediate" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.LongMin -->
  <class name="LongMin" extends="org.apache.pig.builtin.AlgebraicLongMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LongMin -->
  <!-- start class org.apache.pig.builtin.LongMin.Final -->
  <class name="LongMin.Final" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongMin.Final -->
  <!-- start class org.apache.pig.builtin.LongMin.Intermediate -->
  <class name="LongMin.Intermediate" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.LongSum -->
  <class name="LongSum" extends="org.apache.pig.builtin.AlgebraicLongMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongSum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SUM}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LongSum -->
  <!-- start class org.apache.pig.builtin.LongSum.Final -->
  <class name="LongSum.Final" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongSum.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongSum.Final -->
  <!-- start class org.apache.pig.builtin.LongSum.Intermediate -->
  <class name="LongSum.Intermediate" extends="org.apache.pig.builtin.AlgebraicLongMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LongSum.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.LongSum.Intermediate -->
  <!-- start class org.apache.pig.builtin.LOWER -->
  <class name="LOWER" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOWER"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Method invoked on every tuple during foreach evaluation
 @param input tuple; first column is assumed to have the column to convert
 @exception java.io.IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This method gives a name to the column.
 @param input - schema of the input data
 @return schema of the input data]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[LOWER implements eval function to convert a string to lower case
 Example:
      A = load 'mydata' as (name);
      B = foreach A generate LOWER(name);]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LOWER -->
  <!-- start class org.apache.pig.builtin.LTRIM -->
  <class name="LTRIM" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LTRIM"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Returns a string, with only leading whitespace omitted.
 Implements a binding to the Java function {@link java.lang.String#trim() String.trim()}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.LTRIM -->
  <!-- start class org.apache.pig.builtin.MapSize -->
  <class name="MapSize" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapSize"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SIZE}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MapSize -->
  <!-- start class org.apache.pig.builtin.MAX -->
  <class name="MAX" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MAX"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Generates the maximum of a set of values. This class implements
 {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 MAX can operate on any numeric type and on chararrays.  It can also operate on bytearrays,
 which it will cast to doubles.    It expects a bag of
 tuples of one record each.  If Pig knows from the schema that this function
 will be passed a bag of integers or longs, it will use a specially adapted version of
 MAX that uses integer arithmetic for comparing the data.  The return type
 of MAX will match the input type.
 <p>
 MAX implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MAX -->
  <!-- start class org.apache.pig.builtin.MAX.Final -->
  <class name="MAX.Final" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MAX.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.MAX.Final -->
  <!-- start class org.apache.pig.builtin.MAX.Intermediate -->
  <class name="MAX.Intermediate" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MAX.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.MAX.Intermediate -->
  <!-- start class org.apache.pig.builtin.MilliSecondsBetween -->
  <class name="MilliSecondsBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MilliSecondsBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>MilliSecondsBetween returns the number of milliseconds between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MilliSecondsBetween -->
  <!-- start class org.apache.pig.builtin.MIN -->
  <class name="MIN" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MIN"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Generates the minimum of a set of values. This class implements
 {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 MIN can operate on any numeric type and on chararrays.  It can also operate on bytearrays,
 which it will cast to doubles.    It expects a bag of
 tuples of one record each.  If Pig knows from the schema that this function
 will be passed a bag of integers or longs, it will use a specially adapted version of
 MIN that uses integer arithmetic for comparing the data.  The return type
 of MIN will match the input type.
 <p>
 MIN implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MIN -->
  <!-- start class org.apache.pig.builtin.MIN.Final -->
  <class name="MIN.Final" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MIN.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.MIN.Final -->
  <!-- start class org.apache.pig.builtin.MIN.Intermediate -->
  <class name="MIN.Intermediate" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MIN.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.MIN.Intermediate -->
  <!-- start class org.apache.pig.builtin.MinutesBetween -->
  <class name="MinutesBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MinutesBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>MinutesBetween returns the number of minutes between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MinutesBetween -->
  <!-- start interface org.apache.pig.builtin.MonitoredUDF -->
  <interface name="MonitoredUDF"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="timeUnit" return="java.util.concurrent.TimeUnit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Time Units in which to measure timeout value.
 @return Time Units in which to measure timeout value.]]>
      </doc>
    </method>
    <method name="duration" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Number of time units after which the execution should be halted and default returned.
 @return Number of time units after which the execution should be halted and default returned.]]>
      </doc>
    </method>
    <method name="intDefault" return="int[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="longDefault" return="long[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="doubleDefault" return="double[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="floatDefault" return="float[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="stringDefault" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="errorCallback" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[UDF author can implement a static extension of MonitoredUDFExecutor.ErrorCallback and provide its class
 to the annotation in order to perform custom error handling.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Describes how the execution of a UDF should be monitored, and what 
 to do if it times out.
 <p>
 NOTE: does not work with UDFs that implement the Accumulator interface
 <p>
     
 Setting a default value will cause it to be used instead of null when the UDF times out.
 The appropriate value among in, long, string, etc, is used.
 The default fields of these annotations are arrays for Java reasons I won't bore you with.
 <p>
 Set them as if they were primitives: <code>@MonitoredUDF( intDefault=5 )</code>
 <p>
 There is currently no way to provide a default ByteArray, Tuple, Map, or Bag. Null will always be used for those.
 <p>
 Currently this annotation is ignored when the Accumulator interface is used.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.builtin.MonitoredUDF -->
  <!-- start class org.apache.pig.builtin.MonthsBetween -->
  <class name="MonthsBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MonthsBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>MonthsBetween returns the number of months between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.MonthsBetween -->
  <!-- start interface org.apache.pig.builtin.Nondeterministic -->
  <interface name="Nondeterministic"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[<p>A non-deterministic UDF is one that can produce different results when
 invoked on the same input. Examples of non-deterministic behavior might be,
 for example, getCurrentTime() or random().</p>
 <p>Certain Pig optimizations depend on UDFs being deterministic. It is therefore
 very important for correctness that non-deterministic UDFs be annotated as such.</p>]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.builtin.Nondeterministic -->
  <!-- start class org.apache.pig.builtin.OrcStorage -->
  <class name="OrcStorage" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <implements name="org.apache.pig.LoadPushDown"/>
    <implements name="org.apache.pig.LoadPredicatePushdown"/>
    <implements name="org.apache.pig.StoreResources"/>
    <constructor name="OrcStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="OrcStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rs" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getShipFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getPredicateFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSupportedExpressionTypes" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPushdownPredicate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="in" type="org.apache.hadoop.mapreduce.RecordReader"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mRequiredColumns" type="boolean[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A load function and store function for ORC file.
 An optional constructor argument is provided that allows one to customize
 advanced behaviors. A list of available options is below:
 <ul>
 <li><code>-s, --stripeSize</code> Set the stripe size for the file
 <li><code>-r, --rowIndexStride</code> Set the distance between entries in the row index
 <li><code>-b, --bufferSize</code> The size of the memory buffers used for compressing and storing the
 stripe in memory
 <li><code>-p, --blockPadding</code> Sets whether the HDFS blocks are padded to prevent stripes
 from straddling blocks
 <li><code>-c, --compress</code> Sets the generic compression that is used to compress the data.
 Valid codecs are: NONE, ZLIB, SNAPPY, LZO
 <li><code>-v, --version</code> Sets the version of the file that will be written
 </ul>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.OrcStorage -->
  <!-- start class org.apache.pig.builtin.OrcStorage.NonEmptyOrcFileFilter -->
  <class name="OrcStorage.NonEmptyOrcFileFilter" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.fs.PathFilter"/>
    <constructor name="OrcStorage.NonEmptyOrcFileFilter" type="org.apache.hadoop.fs.FileSystem"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="org.apache.hadoop.fs.Path"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.OrcStorage.NonEmptyOrcFileFilter -->
  <!-- start interface org.apache.pig.builtin.OutputSchema -->
  <interface name="OutputSchema"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[An EvalFunc can annotated with an <code>OutputSchema</code> to
 tell Pig what the expected output is. This can be used in place
 of {@link EvalFunc#outputSchema(Schema)}
 <p>
 The default implementation of {@link EvalFunc#outputSchema(Schema)}
 will look at this annotation and return an interpreted schema, if the annotation is present.
 <p>
 Implementing a custom {@link EvalFunc#outputSchema(Schema)} will
 override the annotation (unless you deal with it explicitly, or by calling <code>super.outputSchema(schema)</code>).
 <p>
 Here's an example of a complex schema declared in an annotation:
 <code>@OutputSchema("y:bag{t:tuple(len:int,word:chararray)}")</code>]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.builtin.OutputSchema -->
  <!-- start class org.apache.pig.builtin.ParquetLoader -->
  <class name="ParquetLoader" extends="org.apache.pig.LoadFuncMetadataWrapper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadPushDown"/>
    <constructor name="ParquetLoader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <constructor name="ParquetLoader" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Wrapper class which will delegate calls to parquet.pig.ParquetLoader]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ParquetLoader -->
  <!-- start class org.apache.pig.builtin.ParquetStorer -->
  <class name="ParquetStorer" extends="org.apache.pig.StoreFuncMetadataWrapper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParquetStorer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[{@inheritDoc}]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Wrapper class which will delegate calls to parquet.pig.ParquetStorer]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ParquetStorer -->
  <!-- start class org.apache.pig.builtin.PigStorage -->
  <class name="PigStorage" extends="org.apache.pig.FileInputLoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadPushDown"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <implements name="org.apache.pig.StoreMetadata"/>
    <implements name="org.apache.pig.OverwritableStoreFunc"/>
    <constructor name="PigStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigStorage" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs a Pig loader that uses specified character as a field delimiter.

 @param delimiter
            the single byte character that is used to separate fields.
            ("\t" is the default.)
 @throws ParseException]]>
      </doc>
    </constructor>
    <constructor name="PigStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructs a Pig loader that uses specified character as a field delimiter.
 <p>
 Understands the following options, which can be specified in the second paramter:
 <ul>
 <li><code>-schema</code> Loads / Stores the schema of the relation using a hidden JSON file.
 <li><code>-noschema</code> Ignores a stored schema during loading.
 <li><code>-tagFile</code> Appends input source file name to beginning of each tuple.
 <li><code>-tagPath</code> Appends input source file path to beginning of each tuple.
 </ul>
 @param delimiter the single byte character that is used to separate fields.
 @param options a list of options that can be used to modify PigStorage behavior
 @throws ParseException]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readField" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <param name="start" type="int"/>
      <param name="end" type="int"/>
      <doc>
      <![CDATA[Read the bytes between start and end into a DataByteArray for inclusion in the return tuple.
 @param bytes byte array to copy data from
 @param start starting point to copy from
 @param end ending point to copy to, exclusive.
 @return]]>
      </doc>
    </method>
    <method name="pushProjection" return="org.apache.pig.LoadPushDown.RequiredFieldResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFieldList" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.builtin.PigStorage"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getFeatures" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="shouldOverwrite" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="cleanupOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="in" type="org.apache.hadoop.mapreduce.RecordReader"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="signature" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.pig.ResourceSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="caster" type="org.apache.pig.LoadCaster"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mRequiredColumns" type="boolean[]"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A load function that parses a line of input into fields using a character delimiter.
 The default delimiter is a tab. You can specify any character as a literal ("a"),
 a known escape character ("\\t"), or a dec or hex value ("\\u001", "\\x0A").
 <p>
 An optional second constructor argument is provided that allows one to customize
 advanced behaviors. A list of available options is below:
 <ul>
 <li><code>-schema</code> Reads/Stores the schema of the relation using a
  hidden JSON file.
 <li><code>-noschema</code> Ignores a stored schema during loading.
 <li><code>-tagFile</code> Appends input source file name to beginning of each tuple.
 <li><code>-tagPath</code> Appends input source file path to beginning of each tuple.
 </ul>
 <p>
 <h3>Schemas</h3>
 If <code>-schema</code> is specified, a hidden ".pig_schema" file is created in the output directory
 when storing data. It is used by PigStorage (with or without -schema) during loading to determine the
 field names and types of the data without the need for a user to explicitly provide the schema in an
 <code>as</code> clause, unless <code>-noschema</code> is specified. No attempt to merge conflicting
 schemas is made during loading. The first schema encountered during a file system scan is used.
 If the schema file is not present while '-schema' option is used during loading,
 it results in an error.
 <p>
 In addition, using <code>-schema</code> drops a ".pig_headers" file in the output directory.
 This file simply lists the delimited aliases. This is intended to make export to tools that can read
 files with header lines easier (just cat the header to your data).
 <p>
 <h3>Source tagging</h3>
 If<code>-tagFile</code> is specified, PigStorage will prepend input split name to each Tuple/row.
 Usage: A = LOAD 'input' using PigStorage(',','-tagFile'); B = foreach A generate $0;
 The first field (0th index) in each Tuple will contain input file name.
 If<code>-tagPath</code> is specified, PigStorage will prepend input split path to each Tuple/row.
 Usage: A = LOAD 'input' using PigStorage(',','-tagPath'); B = foreach A generate $0;
 The first field (0th index) in each Tuple will contain input file path
 <p>
 Note that regardless of whether or not you store the schema, you <b>always</b> need to specify
 the correct delimiter to read your data. If you store reading delimiter "#" and then load using
 the default delimiter, your data will not be parsed correctly.

 <h3>Compression</h3>
 Storing to a directory whose name ends in ".bz2" or ".gz" or ".lzo" (if you have installed support
 for LZO compression in Hadoop) will automatically use the corresponding compression codec.<br>
 <code>output.compression.enabled</code> and <code>output.compression.codec</code> job properties
 also work.
 <p>
 Loading from directories ending in .bz2 or .bz works automatically; other compression formats are not
 auto-detected on loading.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.PigStorage -->
  <!-- start class org.apache.pig.builtin.PigStreaming -->
  <class name="PigStreaming" extends="org.apache.pig.PigStreamingBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigStreaming"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The constructor that uses the default field delimiter.]]>
      </doc>
    </constructor>
    <constructor name="PigStreaming" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The constructor that accepts a user-specified field
 delimiter.

 @param delimiter a <code>String</code> specifying the field
 delimiter.]]>
      </doc>
    </constructor>
    <method name="serializeToBytes" return="org.apache.pig.data.WritableByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="deserialize" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <param name="offset" type="int"/>
      <param name="length" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[The default implementation of {@link PigStreamingBase}.
 It converts tuples into <code>fieldDel</code> separated lines
 and <code>fieldDel</code> separated lines into tuples.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.PigStreaming -->
  <!-- start class org.apache.pig.builtin.PluckTuple -->
  <class name="PluckTuple" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PluckTuple" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PluckTuple" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This is a UDF which allows the user to specify a string prefix, and then
 filter for the columns in a relation that begin with that prefix.

 Example:

 1) Prefix
 a = load 'a' as (x, y);
 b = load 'b' as (x, y);
 c = join a by x, b by x;
 DEFINE pluck PluckTuple('a::');
 d = foreach c generate FLATTEN(pluck(*));
 describe c;
 c: {a::x: bytearray,a::y: bytearray,b::x: bytearray,b::y: bytearray}
 describe d;
 d: {plucked::a::x: bytearray,plucked::a::y: bytearray}

 2) Regex
 a = load 'a' as (x, y);
 b = load 'b' as (x, y);
 c = join a by x, b by x;
 DEFINE pluck PluckTuple('.*::y');
 d = foreach c generate FLATTEN(pluck(*));
 describe c;
 c: {a::x: bytearray,a::y: bytearray,b::x: bytearray,b::y: bytearray}
 describe d;
 d: {plucked::a::y: bytearray,plucked::a::y: bytearray}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.PluckTuple -->
  <!-- start class org.apache.pig.builtin.RANDOM -->
  <class name="RANDOM" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RANDOM"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="RANDOM" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="resetSeedUniquifier"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Return a random double value.  Whatever arguments are passed to this UDF
 are ignored.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.RANDOM -->
  <!-- start class org.apache.pig.builtin.REGEX_EXTRACT -->
  <class name="REGEX_EXTRACT" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="REGEX_EXTRACT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="REGEX_EXTRACT" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>String RegexExtract(String expression, String regex, int match_index)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>expression</code>-<code>source string</code>.</dd>
 <dd><code>regex</code>-<code>regular expression</code>.</dd>
 <dd><code>match_index</code>-<code>index of the group to extract</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>extracted group, if fail, return null</code>.</dd>
 <dt><b>Matching strategy:</b></dt>
 <dd>Try to only match the first sequence by using {@link Matcher#find()} instead of
 {@link Matcher#matches()} (default useMatches=false).</dd>
 <dd><code>DEFINE NON_GREEDY_EXTRACT REGEX_EXTRACT('true');</code></dd>
 </dl>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.REGEX_EXTRACT -->
  <!-- start class org.apache.pig.builtin.REGEX_EXTRACT_ALL -->
  <class name="REGEX_EXTRACT_ALL" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="REGEX_EXTRACT_ALL"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="REGEX_EXTRACT_ALL" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>String RegexExtractAll(String expression, String regex)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>expression</code>-<code>source string</code>.</dd>
 <dd><code>regex</code>-<code>regular expression</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>A tuple of matched strings</code>.</dd>
 <dt><b>Matching strategy:</b></dt>
 <dd>Trying to match the entire input by using {@link Matcher#matches()} instead of
 {@link Matcher#find()} (default useMatches=true).</dd>
 <dd><code>DEFINE GREEDY_EXTRACT REGEX_EXTRACT_ALL('false');</code></dd>
 </dl>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.REGEX_EXTRACT_ALL -->
  <!-- start class org.apache.pig.builtin.REPLACE -->
  <class name="REPLACE" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="REPLACE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Method invoked on every tuple during foreach evaluation
 @param input tuple; first column is assumed to have the column to convert
 @exception java.io.IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[REPLACE implements eval function to replace part of a string.
 Example:<code>
      A = load 'mydata' as (name);
      B = foreach A generate REPLACE(name, 'blabla', 'bla');
 The first argument is a string on which to perform the operation. The second argument
 is treated as a regular expression. The third argument is the replacement string.
 This is a wrapper around Java's String.replaceAll(String, String);]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.REPLACE -->
  <!-- start class org.apache.pig.builtin.RollupDimensions -->
  <class name="RollupDimensions" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RollupDimensions"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="RollupDimensions" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Produces a DataBag with hierarchy of values (from the most detailed level of
 aggregation to most general level of aggregation) of the specified dimensions
 For example, (a, b, c) will produce the following bag:
 
 <pre>
 { (a, b, c), (a, b, null), (a, null, null), (null, null, null) }
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.RollupDimensions -->
  <!-- start class org.apache.pig.builtin.ROUND -->
  <class name="ROUND" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ROUND"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a single numeric value
 @return output returns a single numeric value, 
 the closest long to the argument]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ROUND implements a binding to the Java function
 {@link java.lang.Math#round(double) Math.round(double)}. 
 Given a single data atom it Returns the closest long to the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ROUND -->
  <!-- start class org.apache.pig.builtin.ROUND_TO -->
  <class name="ROUND_TO" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ROUND_TO"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[java level API
 @param input expects a numeric value to round, a number of digits to keep, and an optional rounding mode.
 @return output returns a single numeric value, the number with only those digits retained]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[ROUND_TO safely rounds a number to a given precision by using an intermediate
 BigDecimal. The too-often seen trick of doing (1000.0 * ROUND(x/1000)) is not
 only hard to read but also fails to produce numerically accurate results.

 Given a single data atom and number of digits, it returns a double extending to the
 given number of decimal places.

 The result is a multiple of ten to the power given by the digits argument: a
 negative value zeros out correspondingly many places to the left of the
 decimal point: ROUND_TO(0.9876543, 3) is 0.988; ROUND_TO(0.9876543, 0) is
 1.0; and ROUND_TO(1234.56, -2) is 1200.0.

 The optional mode argument specifies the {@link java.math.RoundingMode rounding mode};
 by default, {@link java.math.RoundingMode#HALF_EVEN HALF_EVEN} is used.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ROUND_TO -->
  <!-- start class org.apache.pig.builtin.RoundRobinPartitioner -->
  <class name="RoundRobinPartitioner" extends="org.apache.hadoop.mapreduce.Partitioner"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="RoundRobinPartitioner"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.io.Writable"/>
      <param name="value" type="org.apache.hadoop.io.Writable"/>
      <param name="numPartitions" type="int"/>
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="PIG_ROUND_ROBIN_PARTITIONER_BATCH_SIZE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Batch size for round robin partitioning. Batch size number of records
 will be distributed to each partition in a round robin fashion. Default
 value is 0 which distributes each record in a circular fashion. Higher
 number for batch size can be used to increase probability of keeping
 similar records in the same partition if output is already sorted and get
 better compression.]]>
      </doc>
    </field>
  </class>
  <!-- end class org.apache.pig.builtin.RoundRobinPartitioner -->
  <!-- start class org.apache.pig.builtin.RTRIM -->
  <class name="RTRIM" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RTRIM"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Returns a string, with only tailing whitespace omitted.
 Implements a binding to the Java function {@link java.lang.String#trim() String.trim()}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.RTRIM -->
  <!-- start class org.apache.pig.builtin.SecondsBetween -->
  <class name="SecondsBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SecondsBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>SecondsBetween returns the number of seconds between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SecondsBetween -->
  <!-- start class org.apache.pig.builtin.SIN -->
  <class name="SIN" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SIN"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[SIN implements a binding to the Java function
 {@link java.lang.Math#sin(double) Math.sin(double)}. 
 Given a single data atom it Returns the sine of the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SIN -->
  <!-- start class org.apache.pig.builtin.SINH -->
  <class name="SINH" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SINH"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[SINH implements a binding to the Java function
 {@link java.lang.Math#sinh(double) Math.sinh(double)}. 
 Given a single data atom it Returns the hyperbolic sine of the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SINH -->
  <!-- start class org.apache.pig.builtin.SIZE -->
  <class name="SIZE" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SIZE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Generates the size of the argument passed to it.  For bytearrays this
 means the number of bytes.  For charrays the number of characters.  For
 bags the number of tuples, for tuples the number of fields, and for maps
 the number of keyvalue pairs.  For all other types the value of 1 is
 always returned.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SIZE -->
  <!-- start class org.apache.pig.builtin.SPRINTF -->
  <class name="SPRINTF" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SPRINTF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getSchemaType" return="org.apache.pig.EvalFunc.SchemaType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Formatted strings using java.util.Formatter

 See http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

 ex:
     SPRINTF('%2$10s %1$-17s %2$,10d %2$8x %3$10.3f %4$1TFT%<tT%<tz',
         city, pop_2011, (float)(pop_2011/69.0f), (long)(pop_2011 * 1000000L));

     -'   8244910 New York           8,244,910   7dceae 119491.453 2231-04-09T23:46:40-0500']]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SPRINTF -->
  <!-- start class org.apache.pig.builtin.SQRT -->
  <class name="SQRT" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SQRT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[SQRT implements a binding to the Java function
 {@link java.lang.Math#sqrt(double) Math.sqrt(double)}. 
 Given a single data atom it Returns the square root of the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SQRT -->
  <!-- start class org.apache.pig.builtin.STARTSWITH -->
  <class name="STARTSWITH" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="STARTSWITH"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Pig UDF to test input <code>tuple.get(0)</code> against <code>tuple.get(1)</code>
 to determine if the first argument starts with the string in the second.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.STARTSWITH -->
  <!-- start class org.apache.pig.builtin.StringConcat -->
  <class name="StringConcat" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringConcat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getSchemaType" return="org.apache.pig.EvalFunc.SchemaType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link CONCAT}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.StringConcat -->
  <!-- start class org.apache.pig.builtin.StringMax -->
  <class name="StringMax" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="StringMax"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="max" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MAX}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.StringMax -->
  <!-- start class org.apache.pig.builtin.StringMax.Final -->
  <class name="StringMax.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMax.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMax.Final -->
  <!-- start class org.apache.pig.builtin.StringMax.Initial -->
  <class name="StringMax.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMax.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMax.Initial -->
  <!-- start class org.apache.pig.builtin.StringMax.Intermediate -->
  <class name="StringMax.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMax.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMax.Intermediate -->
  <!-- start class org.apache.pig.builtin.StringMin -->
  <class name="StringMin" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <implements name="org.apache.pig.Accumulator"/>
    <constructor name="StringMin"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="min" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link MIN}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.StringMin -->
  <!-- start class org.apache.pig.builtin.StringMin.Final -->
  <class name="StringMin.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMin.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMin.Final -->
  <!-- start class org.apache.pig.builtin.StringMin.Initial -->
  <class name="StringMin.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMin.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMin.Initial -->
  <!-- start class org.apache.pig.builtin.StringMin.Intermediate -->
  <class name="StringMin.Intermediate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringMin.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.StringMin.Intermediate -->
  <!-- start class org.apache.pig.builtin.StringSize -->
  <class name="StringSize" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringSize"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SIZE}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.StringSize -->
  <!-- start class org.apache.pig.builtin.STRSPLIT -->
  <class name="STRSPLIT" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="STRSPLIT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Wrapper around Java's String.split
 @param input tuple; first column is assumed to have a string to split;
 the optional second column is assumed to have the delimiter or regex to split on;<br>
 if not provided, it's assumed to be '\s' (space)
 the optional third column may provide a limit to the number of results.<br>
 If limit is not provided, 0 is assumed, as per Java's split().
 @exception java.io.IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Wrapper around Java's String.split<br>
 input tuple: first column is assumed to have a string to split;<br>
 the optional second column is assumed to have the delimiter or regex to split on;<br>
 if not provided, it's assumed to be '\s' (space)<br>
 the optional third column may provide a limit to the number of results.<br>
 If limit is not provided, 0 is assumed, as per Java's split().]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.STRSPLIT -->
  <!-- start class org.apache.pig.builtin.STRSPLITTOBAG -->
  <class name="STRSPLITTOBAG" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="STRSPLITTOBAG"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Wrapper around Java's String.split

 @param input tuple; first column is assumed to have a string to split;
              the optional second column is assumed to have the delimiter or regex to split on;<br>
              if not provided, it's assumed to be '\s' (space)
              the optional third column may provide a limit to the number of results.<br>
              If limit is not provided, 0 is assumed, as per Java's split().
 @throws java.io.IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Wrapper around Java's String.split<br>
 input tuple: first column is assumed to have a string to split;<br>
 the optional second column is assumed to have the delimiter or regex to split on;<br>
 if not provided, it's assumed to be '\s' (space)<br>
 the optional third column may provide a limit to the number of results.<br>
 If limit is not provided, 0 is assumed, as per Java's split().]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.STRSPLITTOBAG -->
  <!-- start class org.apache.pig.builtin.SUBSTRING -->
  <class name="SUBSTRING" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SUBSTRING"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Method invoked on every tuple during foreach evaluation
 @param input tuple; first column is assumed to have the column to convert
 @exception java.io.IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[SUBSTRING implements eval function to get a part of a string.
 Example:<code>
      A = load 'mydata' as (name);
      B = foreach A generate SUBSTRING(name, 10, 12);
      </code>
 First argument is the string to take a substring of.<br>
 Second argument is the index of the first character of substring.<br>
 Third argument is the index of the last character of substring.<br>
 if the last argument is past the end of the string, substring of (beginIndex, length(str)) is returned.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SUBSTRING -->
  <!-- start class org.apache.pig.builtin.SUBTRACT -->
  <class name="SUBTRACT" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SUBTRACT"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Compares the two bag fields from input Tuple and returns a new bag composed of elements of first bag not in the second bag.
 @param input a tuple with exactly two bag fields.
 @throws IOException if there are not exactly two fields in a tuple or if they are not {@link DataBag}.]]>
      </doc>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[SUBTRACT takes two bags as arguments and returns a new bag composed of tuples of first bag not in the second bag.<br>
 If null, bag arguments are replaced by empty bags.
 <p>
 The implementation assumes that both bags being passed to this function will fit entirely into memory simultaneously.
 </br>
 If that is not the case the UDF will still function, but it will be <strong>very</strong> slow.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SUBTRACT -->
  <!-- start class org.apache.pig.builtin.SubtractDuration -->
  <class name="SubtractDuration" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SubtractDuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>SubtractDuration returns the result of a DateTime object plus a Duration object</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Duration Format: http://en.wikipedia.org/wiki/ISO_8601#Durations</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime, dr:chararray);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dr: chararray}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,PT1S)
 (2008-02-06T02:06:02.000Z,PT1M)
 (2007-03-05T03:05:03.000Z,P1D)
 ...

 dtsubtract = FOREACH ISOin GENERATE SubtractDuration(dt, dr) AS dt1;

 DESCRIBE dtsubtract;
 dtsubtract: {dt1: datetime}

 DUMP dtsubtract;

 (2009-01-07T01:07:00.000Z)
 (2008-02-06T02:05:02.000Z)
 (2007-03-04T03:05:03.000Z)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SubtractDuration -->
  <!-- start class org.apache.pig.builtin.SUM -->
  <class name="SUM" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SUM"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Generates the sum of a set of values. This class implements
 {@link org.apache.pig.Algebraic}, so if possible the execution will
 performed in a distributed fashion.
 <p>
 SUM can operate on any numeric type.  It can also operate on bytearrays,
 which it will cast to doubles.  It expects a bag of
 tuples of one record each.  If Pig knows from the schema that this function
 will be passed a bag of integers or longs, it will use a specially adapted version of
 SUM that uses integer arithmetic for summing the data.  The return type
 of SUM is double for float, double, or bytearray arguments and long for int
 or long arguments.
 <p>
 SUM implements the {@link org.apache.pig.Accumulator} interface as well.
 While this will never be
 the preferred method of usage it is available in case the combiner can not be
 used for a given calculation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.SUM -->
  <!-- start class org.apache.pig.builtin.SUM.Final -->
  <class name="SUM.Final" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SUM.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.SUM.Final -->
  <!-- start class org.apache.pig.builtin.SUM.Intermediate -->
  <class name="SUM.Intermediate" extends="org.apache.pig.builtin.AlgebraicByteArrayMathBase.Intermediate"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SUM.Intermediate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOp" return="org.apache.pig.builtin.AlgebraicMathBase.KNOWN_OP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.SUM.Intermediate -->
  <!-- start class org.apache.pig.builtin.TAN -->
  <class name="TAN" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TAN"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[TAN implements a binding to the Java function
 {@link java.lang.Math#tan(double) Math.tan(double)}. 
 Given a single data atom it Returns the tangent of the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TAN -->
  <!-- start class org.apache.pig.builtin.TANH -->
  <class name="TANH" extends="org.apache.pig.builtin.DoubleBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TANH"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[TANH implements a binding to the Java function
 {@link java.lang.Math#tanh(double) Math.tanh(double)}. 
 Given a single data atom it Returns the hyperbolic tangent 
 of the argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TANH -->
  <!-- start class org.apache.pig.builtin.TextLoader -->
  <class name="TextLoader" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadCaster"/>
    <constructor name="TextLoader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Boolean
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Integer
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Long
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Float
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Double
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to DateTime
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Cast data from bytes to chararray value.
 @param b byte array to be cast.
 @return String value.
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="schema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="schema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Tuple
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="schema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[TextLoader does not support conversion to Bag
 @throws IOException if the value cannot be cast.]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="in" type="org.apache.hadoop.mapreduce.RecordReader"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This load function simply creates a tuple for each line of text that has a
 single chararray field that
 contains the line of text.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TextLoader -->
  <!-- start class org.apache.pig.builtin.TOBAG -->
  <class name="TOBAG" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOBAG"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSch" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class takes a list of items and puts them into a bag
 T = foreach U generate TOBAG($0, $1, $2);
 It's like saying this:
 T = foreach U generate {($0), ($1), ($2)}
 
 All arguments that are not of tuple type are inserted into a tuple before
 being added to the bag. This is because bag is always a bag of tuples.
 
 Output schema:
 The output schema for this udf depends on the schema of its arguments.
 If all the arguments have same type and same inner 
 schema (for bags/tuple columns), then the udf output schema would be a bag 
 of tuples having a column of the type and inner-schema (if any) of the 
 arguments. 
 If the arguments are of type tuple/bag, then their inner schemas should match,
 though schema field aliases may differ.
 If these conditions are not met the output schema will be a bag with null 
 inner schema.
  
  example 1 
  grunt> describe a;
  a: {a0: int,a1: int}
  grunt> b = foreach a generate TOBAG(a0,a1);
  grunt> describe b;
  b: {{int}}
  
  example 2
  grunt> describe a;
  a: {a0: (x: int),a1: (x: int)}
  grunt> b = foreach a generate TOBAG(a0,a1);                                    
  grunt> describe b;                                                             
  b: {{(x: int)}}
  
  example 3
  grunt> describe a;                                                             
  a: {a0: (x: int),a1: (y: int)}
  -- note that the inner schemas have matching types but different field aliases.
  -- the aliases of the first argument (a0) will be used in output schema:
  grunt> b = foreach a generate TOBAG(a0,a1);
  grunt> describe b;
  b: {{(x: int)}}

  example 4
  grunt> describe a;
  a: {a0: (x: int),a1: (x: chararray)}
  -- here the inner schemas do not match, so output schema is not well defined:
  grunt> b = foreach a generate TOBAG(a0,a1);                                    
  grunt> describe b;                                                             
  b: {{NULL}}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TOBAG -->
  <!-- start class org.apache.pig.builtin.ToDate -->
  <class name="ToDate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToDate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="extractDateTimeZone" return="org.joda.time.DateTimeZone"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dtStr" type="java.lang.String"/>
    </method>
    <method name="extractDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dtStr" type="java.lang.String"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>ToDate converts the ISO or the customized string or the Unix timestamp to the DateTime object.</p>
 <p>ToDate is overloaded.</p>

 <dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>DateTime ToDate(Long millis)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>the milliseconds</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>the DateTime object</code>.</dd>
 </dl>

 <dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>DateTime ToDate(String dtStr)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>the ISO format date time string</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>the DateTime object</code>.</dd>
 </dl>

 <dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>DateTime ToDate(String dtStr, String format)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>dtStr: the string that represents a date time</code>.</dd>
 <dd><code>format: the format string</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>the DateTime object</code>.</dd>
 </dl>

 <dl>
 <dt><b>Syntax:</b></dt>
 <dd><code>DateTime ToDate(String dtStr, String format, String timezone)</code>.</dd>
 <dt><b>Input:</b></dt>
 <dd><code>dtStr: the string that represents a date time</code>.</dd>
 <dd><code>format: the format string</code>.</dd>
 <dd><code>timezone: the timezone string</code>.</dd>
 <dt><b>Output:</b></dt>
 <dd><code>the DateTime object</code>.</dd>
 </dl>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToDate -->
  <!-- start class org.apache.pig.builtin.ToDate2ARGS -->
  <class name="ToDate2ARGS" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToDate2ARGS"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link ToDate}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToDate2ARGS -->
  <!-- start class org.apache.pig.builtin.ToDate3ARGS -->
  <class name="ToDate3ARGS" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToDate3ARGS"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link ToDate}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToDate3ARGS -->
  <!-- start class org.apache.pig.builtin.ToDateISO -->
  <class name="ToDateISO" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToDateISO"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link ToDate}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToDateISO -->
  <!-- start class org.apache.pig.builtin.TOKENIZE -->
  <class name="TOKENIZE" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOKENIZE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Given a chararray as an argument, this method will split the chararray and
 return a bag with a tuple for each chararray that results from the split.
 The string is split on space, double quote, comma, open parend, close parend,
 and asterisk (star).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TOKENIZE -->
  <!-- start class org.apache.pig.builtin.TOMAP -->
  <class name="TOMAP" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOMAP"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class makes a map out of the parameters passed to it
 T = foreach U generate TOMAP($0, $1, $2, $3);
 It generates a map $0->1, $2->$3

 This UDF also accepts a bag with 'pair' tuples (i.e. tuples with a 'key' and a 'value').]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TOMAP -->
  <!-- start class org.apache.pig.builtin.ToMilliSeconds -->
  <class name="ToMilliSeconds" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToMilliSeconds"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>
 ToMilliSeconds converts the DateTime to the number of milliseconds that have passed
 since January 1, 1970 00:00:00.000 GMT.
 </p>
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 <li>Unix Time: http://en.wikipedia.org/wiki/Unix_time</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 toMilliSeconds = FOREACH ISOin GENERATE ToMilliSeconds(dt) AS unixTime:long;

 DESCRIBE toMilliSeconds;
 toMilliSeconds: {unixTime: long}

 DUMP toMilliSeconds;

 (1231290421000L)
 (1202263562000L)
 (1173063903000L)
 ...
</pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToMilliSeconds -->
  <!-- start class org.apache.pig.builtin.TOP -->
  <class name="TOP" extends="org.apache.pig.AccumulatorEvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.Algebraic"/>
    <constructor name="TOP"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TOP" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getValue" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="updateTop"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="store" type="java.util.PriorityQueue"/>
      <param name="limit" type="int"/>
      <param name="inputBag" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Top UDF accepts a bag of tuples and returns top-n tuples depending upon the
 tuple field value of type long. Both n and field number needs to be provided
 to the UDF. The UDF iterates through the input bag and just retains top-n
 tuples by storing them in a priority queue of size n+1 where priority is the
 long field. This is efficient as priority queue provides constant time - O(1)
 removal of the least element and O(log n) time for heap restructuring. The
 UDF is especially helpful for turning the nested grouping operation inside
 out and retaining top-n in a nested group.

 Assumes all tuples in the bag contain an element of the same type in the compared column.

 Sample usage:
 DEFINE TOP_ASC TOP("ASC")
 DEFINE TOP_DESC TOP("DESC")
 
 A = LOAD 'test.tsv' as (first: chararray, second: chararray);
 B = GROUP A BY (first, second);
 C = FOREACH B generate FLATTEN(group), COUNT(*) as count;
 D = GROUP C BY first; // again group by first
 topResults = FOREACH D {
          result = TOP_ASC(10, 1, C); // and retain top 10 occurrences of 'second' in first
          GENERATE FLATTEN(result);
 topDescResults = FOREACH D {
          result = TOP_DESC(10, 1, C); // and retain top 10 occurrences of 'second' in first
          GENERATE FLATTEN(result); *          
  }]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TOP -->
  <!-- start class org.apache.pig.builtin.TOP.Final -->
  <class name="TOP.Final" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOP.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TOP.Final" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.TOP.Final -->
  <!-- start class org.apache.pig.builtin.TOP.Initial -->
  <class name="TOP.Initial" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOP.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TOP.Initial" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.TOP.Initial -->
  <!-- start class org.apache.pig.builtin.TOP.Intermed -->
  <class name="TOP.Intermed" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOP.Intermed"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TOP.Intermed" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.builtin.TOP.Intermed -->
  <!-- start class org.apache.pig.builtin.ToString -->
  <class name="ToString" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToString"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>ToString converts the DateTime object of the ISO or the customized string.</p>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToString -->
  <!-- start class org.apache.pig.builtin.TOTUPLE -->
  <class name="TOTUPLE" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TOTUPLE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class makes a tuple out of the parameter
 T = foreach U generate TOTUPLE($0, $1, $2);
 It generates a tuple containing $0, $1, and $2]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TOTUPLE -->
  <!-- start class org.apache.pig.builtin.ToUnixTime -->
  <class name="ToUnixTime" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToUnixTime"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>ToUnixTime converts the DateTime to the Unix Time Long</p>
 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 <li>Unix Time: http://en.wikipedia.org/wiki/Unix_time</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 toUnix = FOREACH ISOin GENERATE ToUnixTime(dt) AS unixTime:long;

 DESCRIBE toUnix;
 toUnix: {unixTime: long}

 DUMP toUnix;

 (1231290421L)
 (1202263562L)
 (1173063903L)
 ...
</pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.ToUnixTime -->
  <!-- start class org.apache.pig.builtin.TrevniStorage -->
  <class name="TrevniStorage" extends="org.apache.pig.builtin.AvroStorage"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadPushDown"/>
    <constructor name="TrevniStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create new instance of TrevniStorage with no arguments (useful
 for loading files without specifying parameters).]]>
      </doc>
    </constructor>
    <constructor name="TrevniStorage" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create new instance of TrevniStorage.
  @param sn Specifies the input/output schema or record name.
  @param opts Options for AvroStorage:
  <li><code>-namespace</code> Namespace for an automatically generated
    output schema.</li>
  <li><code>-schemafile</code> Specifies URL for avro schema file
    from which to read the input schema (can be local file, hdfs,
    url, etc).</li>
  <li><code>-examplefile</code> Specifies URL for avro data file from
    which to copy the input schema (can be local file, hdfs, url, etc).</li>
  <li><code>-allowrecursive</code> Option to allow recursive schema
    definitions (default is false).</li>]]>
      </doc>
    </constructor>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="org.apache.hadoop.fs.Path[]"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Pig Store/Load Function for Trevni.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TrevniStorage -->
  <!-- start class org.apache.pig.builtin.TRIM -->
  <class name="TRIM" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TRIM"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Returns a string, with leading and trailing whitespace omitted.
 Implements a binding to the Java function {@link java.lang.String#trim() String.trim()}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TRIM -->
  <!-- start class org.apache.pig.builtin.TupleSize -->
  <class name="TupleSize" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TupleSize"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This method should never be used directly, use {@link SIZE}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.TupleSize -->
  <!-- start class org.apache.pig.builtin.UCFIRST -->
  <class name="UCFIRST" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UCFIRST"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[upper-case the first character of a string]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.UCFIRST -->
  <!-- start class org.apache.pig.builtin.UniqueID -->
  <class name="UniqueID" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UniqueID"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[UniqueID generates a unique id for each records in the job. This unique id is
 stable in task retry. Any arguments to the function are ignored.
 Example:
      A = load 'mydata' as (name);
      B = foreach A generate name, UniqueID();
 UniqueID takes the form "index-sequence"]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.UniqueID -->
  <!-- start class org.apache.pig.builtin.UPPER -->
  <class name="UPPER" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UPPER"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Upper-cases an input string.
 @param input tuple; first column is assumed to have the column to convert
 
 @exception IOException]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This method gives a name to the column. 
 @param input - schema of the input data
 @return schema of the input data]]>
      </doc>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[UPPER implements eval function to convert a string to upper case
 Example:
      A = load 'mydata' as (name);
      B = foreach A generate UPPER(name);]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.UPPER -->
  <!-- start class org.apache.pig.builtin.Utf8StorageConverter -->
  <class name="Utf8StorageConverter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadStoreCaster"/>
    <constructor name="Utf8StorageConverter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="schema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
    </method>
    <method name="bytesToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.lang.Double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="java.lang.Float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="java.lang.Integer"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.lang.Long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="org.apache.pig.data.DataByteArray"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bi" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bd" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="mBagFactory" type="org.apache.pig.data.BagFactory"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mTupleFactory" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This abstract class provides standard conversions between utf8 encoded data
 and pig data types.  It is intended to be extended by load and store
 functions (such as {@link PigStorage}).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.Utf8StorageConverter -->
  <!-- start class org.apache.pig.builtin.VALUELIST -->
  <class name="VALUELIST" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="VALUELIST"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This UDF takes a Map and returns a Bag containing the values from map. <br />
 Note that output tuple contains all values, not just unique ones. <br />
 For obtaining unique values from map, use VALUESET instead. <br />

 <pre>
 <code>
 grunt> cat data
 [open#apache,1#2,11#2]
 [apache#hadoop,3#4,12#hadoop]

 grunt> a = load 'data' as (M:[]);
 grunt> b = foreach a generate VALUELIST($0);
 grunt> dump b;
 ({(apache),(2),(2)})
 ({(4),(hadoop),(hadoop)})
 </code>
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.VALUELIST -->
  <!-- start class org.apache.pig.builtin.VALUESET -->
  <class name="VALUESET" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="VALUESET"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This UDF takes a Map and returns a Tuple containing the value set. <br />
 Note, this UDF returns only unique values. For all values, use <br />
 VALUELIST instead. <br />

 <pre>
 <code>
 grunt> cat data
 [open#apache,1#2,11#2]
 [apache#hadoop,3#4,12#hadoop]

 grunt> a = load 'data' as (M:[]);
 grunt> b = foreach a generate VALUELIST($0);
 ({(apache),(2)})
 ({(4),(hadoop)})

 </code>
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.VALUESET -->
  <!-- start class org.apache.pig.builtin.WeeksBetween -->
  <class name="WeeksBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="WeeksBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>WeeksBetween returns the number of weeks between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.WeeksBetween -->
  <!-- start class org.apache.pig.builtin.YearsBetween -->
  <class name="YearsBetween" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="YearsBetween"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getArgToFuncMapping" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="allowCompileTimeCalculation" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[<p>YearsBetween returns the number of years between two DateTime objects</p>

 <ul>
 <li>Jodatime: http://joda-time.sourceforge.net/</li>
 <li>ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601</li>
 </ul>
 <br />
 <pre>
 Example usage:

 ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (datetime, dt2:datetime);

 DESCRIBE ISOin;
 ISOin: {dt: datetime,dt2: datetime}

 DUMP ISOin;

 (2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
 (2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
 (2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
 ...

 diffs = FOREACH ISOin GENERATE YearsBetween(dt, dt2) AS years,
 MonthsBetween(dt, dt2) AS months,
 WeeksBetween(dt, dt2) AS weeks,
 DaysBetween(dt, dt2) AS days,
 HoursBetween(dt, dt2) AS hours,
 MinutesBetween(dt, dt2) AS mins,
 SecondsBetween(dt, dt2) AS secs;
 MilliSecondsBetween(dt, dt2) AS millis;

 DESCRIBE diffs;
 diffs: {years: long,months: long,weeks: long,days: long,hours: long,mins: long,secs: long,millis: long}

 DUMP diffs;

 (0L,11L,48L,341L,8185L,491107L,29466421L,29466421000L)
 (0L,0L,0L,5L,122L,7326L,439562L,439562000L)
 (0L,-10L,-47L,-332L,-7988L,-479334L,-28760097L,-28760097000L)

 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.YearsBetween -->
  <doc>
  <![CDATA[<p>
This package contains builtin Pig UDFs.  This includes
{@link org.apache.pig.EvalFunc}s,
{@link org.apache.pig.LoadFunc}s and
{@link org.apache.pig.StoreFunc}s.]]>
  </doc>
</package>
<package name="org.apache.pig.builtin.mock">
  <!-- start class org.apache.pig.builtin.mock.Storage -->
  <class name="Storage" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <implements name="org.apache.pig.StoreMetadata"/>
    <constructor name="Storage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="tuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="objects" type="java.lang.Object[]"/>
      <doc>
      <![CDATA[@param objects
 @return a tuple containing the provided objects]]>
      </doc>
    </method>
    <method name="bag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuples" type="org.apache.pig.data.Tuple[]"/>
      <doc>
      <![CDATA[@param tuples
 @return a bag containing the provided objects]]>
      </doc>
    </method>
    <method name="map" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.Object[]"/>
      <doc>
      <![CDATA[@param input These params are alternating "key", "value". So the number of params MUST be even !!
 Implementation is very similar to the TOMAP UDF.
 So map("A", B, "C", D) generates a map "A"->B, "C"->D
 @return a map containing the provided objects]]>
      </doc>
    </method>
    <method name="schema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[@param schema
 @return the schema represented by the string
 @throws ParserException if the schema is invalid]]>
      </doc>
    </method>
    <method name="resetData" return="org.apache.pig.builtin.mock.Storage.Data"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigServer" type="org.apache.pig.PigServer"/>
      <doc>
      <![CDATA[reset the store and get the Data object to access it
 @param pigServer
 @return Data]]>
      </doc>
    </method>
    <method name="resetData" return="org.apache.pig.builtin.mock.Storage.Data"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[reset the store and get the Data object to access it
 @param context
 @return data as Data]]>
      </doc>
    </method>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.ResourceStatistics"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[A convenient mock Storage for unit tests

 <pre>
  PigServer pigServer = new PigServer(ExecType.LOCAL);
  Data data = resetData(pigServer);
      data.set("foo",
      tuple("a"),
      tuple("b"),
      tuple("c"),
      tuple(map("d","e", "f","g")),
      tuple(bag(tuple("h"),tuple("i")))
      );

  pigServer.registerQuery("A = LOAD 'foo' USING mock.Storage();");
  pigServer.registerQuery("STORE A INTO 'bar' USING mock.Storage();");

  List<Tuple> out = data.get("bar");

  assertEquals(tuple("a"), out.get(0));
  assertEquals(tuple("b"), out.get(1));
  assertEquals(tuple("c"), out.get(2));
  assertEquals(tuple(map("f", "g", "d", "e" )), out.get(3));
  assertEquals(tuple(bag(tuple("h"),tuple("i"))), out.get(4));
 </pre>
 With Schema:
  <pre>
  PigServer pigServer = new PigServer(ExecType.LOCAL);
  Data data = resetData(pigServer);

  data.set("foo", "blah:chararray",
      tuple("a"),
      tuple("b"),
      tuple("c")
      );

  pigServer.registerQuery("A = LOAD 'foo' USING mock.Storage();");
  pigServer.registerQuery("B = FOREACH A GENERATE blah as a, blah as b;");
  pigServer.registerQuery("STORE B INTO 'bar' USING mock.Storage();");

  assertEquals(schema("a:chararray,b:chararray"), data.getSchema("bar"));

  List<Tuple> out = data.get("bar");
  assertEquals(tuple("a", "a"), out.get(0));
  assertEquals(tuple("b", "b"), out.get(1));
  assertEquals(tuple("c", "c"), out.get(2));
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.mock.Storage -->
  <!-- start class org.apache.pig.builtin.mock.Storage.Data -->
  <class name="Storage.Data" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="Storage.Data"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="schema" type="java.lang.String"/>
      <param name="data" type="java.util.Collection"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[to set the data in a location with a known schema

 @param location "where" to store the tuples
 @param schema the schema of the data
 @param data the tuples to store
 @throws ParserException if schema is invalid]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="schema" type="java.lang.String"/>
      <param name="data" type="org.apache.pig.data.Tuple[]"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[to set the data in a location with a known schema

 @param location "where" to store the tuples
 @param schema
 @param data the tuples to store
 @throws ParserException if schema is invalid]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="data" type="java.util.Collection"/>
      <doc>
      <![CDATA[to set the data in a location with a known schema

 @param location "where" to store the tuples
 @param schema
 @param data the tuples to store]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="data" type="org.apache.pig.data.Tuple[]"/>
      <doc>
      <![CDATA[to set the data in a location with a known schema

 @param location "where" to store the tuples
 @param schema
 @param data the tuples to store]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="data" type="java.util.Collection"/>
      <doc>
      <![CDATA[to set the data in a location

 @param location "where" to store the tuples
 @param data the tuples to store]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="data" type="org.apache.pig.data.Tuple[]"/>
      <doc>
      <![CDATA[to set the data in a location

 @param location "where" to store the tuples
 @param data the tuples to store]]>
      </doc>
    </method>
    <method name="get" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <doc>
      <![CDATA[@param location
 @return the data in this location]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <doc>
      <![CDATA[@param location
 @return the schema stored in this location]]>
      </doc>
    </method>
    <method name="setSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[to set the schema for a given location
 @param location
 @param schema]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An isolated data store to avoid side effects]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.builtin.mock.Storage.Data -->
</package>
<package name="org.apache.pig.classification">
  <!-- start class org.apache.pig.classification.InterfaceAudience -->
  <class name="InterfaceAudience" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <doc>
    <![CDATA[Annotation to inform users of a package, class or method's intended audience.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.classification.InterfaceAudience -->
  <!-- start interface org.apache.pig.classification.InterfaceAudience.LimitedPrivate -->
  <interface name="InterfaceAudience.LimitedPrivate"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Intended only for the project(s) specified in the annotation]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceAudience.LimitedPrivate -->
  <!-- start interface org.apache.pig.classification.InterfaceAudience.Private -->
  <interface name="InterfaceAudience.Private"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[Intended for use only within Pig itself.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceAudience.Private -->
  <!-- start interface org.apache.pig.classification.InterfaceAudience.Public -->
  <interface name="InterfaceAudience.Public"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[Intended for use by any project or application.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceAudience.Public -->
  <!-- start class org.apache.pig.classification.InterfaceStability -->
  <class name="InterfaceStability" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterfaceStability"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[Annotation to inform users of how much to rely on a particular package,
 class or method not changing over time.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.classification.InterfaceStability -->
  <!-- start interface org.apache.pig.classification.InterfaceStability.Evolving -->
  <interface name="InterfaceStability.Evolving"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[Evolving, but can break compatibility at minor release (i.e. m.x)]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceStability.Evolving -->
  <!-- start interface org.apache.pig.classification.InterfaceStability.Stable -->
  <interface name="InterfaceStability.Stable"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[Can evolve while retaining compatibility for minor release boundaries.; 
 can break compatibility only at major release (ie. at m.0).]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceStability.Stable -->
  <!-- start interface org.apache.pig.classification.InterfaceStability.Unstable -->
  <interface name="InterfaceStability.Unstable"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[No guarantee is provided as to reliability or stability across any
 level of release granularity.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.classification.InterfaceStability.Unstable -->
</package>
<package name="org.apache.pig.data">
  <!-- start class org.apache.pig.data.AbstractTuple -->
  <class name="AbstractTuple" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.Tuple"/>
    <constructor name="AbstractTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toDelimitedString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="delim" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[{@inheritDoc}]]>
      </doc>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[{@inheritDoc}]]>
      </doc>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[{@inheritDoc}]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <doc>
    <![CDATA[This class provides a convenient base for Tuple implementations. This makes it easier
 to provide default implementations as the Tuple interface is evolved.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.AbstractTuple -->
  <!-- start class org.apache.pig.data.AccumulativeBag -->
  <class name="AccumulativeBag" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="AccumulativeBag" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTuplebuffer" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.AccumulativeTupleBuffer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="datainput" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataoutput" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.data.AccumulativeBag -->
  <!-- start class org.apache.pig.data.AmendableTuple -->
  <class name="AmendableTuple" extends="org.apache.pig.data.DefaultTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AmendableTuple" type="int, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getAmendKey" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAmendKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="amendKey" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.AmendableTuple -->
  <!-- start class org.apache.pig.data.AppendableSchemaTuple -->
  <class name="AppendableSchemaTuple" extends="org.apache.pig.data.SchemaTuple"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AppendableSchemaTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="appendedFieldsSize" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="isAppendedFieldsNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getAppendedField" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getAppendedFields" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAppendedFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This adds the additional overhead of the append Tuple]]>
      </doc>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setSpecific" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.AppendableSchemaTuple"/>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.util.List"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
    </method>
    <method name="compareToSpecific" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.AppendableSchemaTuple"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setTypeAwareBase"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <param name="type" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getTypeAwareBase" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="type" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="writeElements"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.AppendableSchemaTuple -->
  <!-- start class org.apache.pig.data.BagFactory -->
  <class name="BagFactory" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BagFactory"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a new BagFactory]]>
      </doc>
    </constructor>
    <method name="getInstance" return="org.apache.pig.data.BagFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a reference to the singleton factory.
 @return BagFactory]]>
      </doc>
    </method>
    <method name="newDefaultBag" return="org.apache.pig.data.DataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a default (unordered, not distinct) data bag.
 @return default data bag.]]>
      </doc>
    </method>
    <method name="newDefaultBag" return="org.apache.pig.data.DataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="listOfTuples" type="java.util.List"/>
      <doc>
      <![CDATA[Get a default (unordered, not distinct) data bag with
 an existing list of tuples inserted into the bag.
 @param listOfTuples list of tuples to be placed in the bag.  This list may not be
 copied, it may be used directly by the created bag.
 @return default data bag.]]>
      </doc>
    </method>
    <method name="newSortedBag" return="org.apache.pig.data.DataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="comp" type="java.util.Comparator"/>
      <doc>
      <![CDATA[Get a sorted data bag.  Sorted bags guarantee that when an iterator
 is opened on the bag the tuples will be returned in sorted order.
 @param comp Comparator that controls how the data is sorted.
 If null, default comparator will be used.
 @return a sorted data bag]]>
      </doc>
    </method>
    <method name="newDistinctBag" return="org.apache.pig.data.DataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a distinct data bag.  Distinct bags guarantee that when an
 iterator is opened on the bag, no two tuples returned from the
 iterator will be equal.
 @return distinct data bag]]>
      </doc>
    </method>
    <method name="registerBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="As of Pig 0.11, bags register with the {@link SpillableMemoryManager} themselves.
 Register a bag with the
 {@link org.apache.pig.impl.util.SpillableMemoryManager}.
 If the bags created by an implementation of BagFactory are managed by
 the {@link org.apache.pig.impl.util.SpillableMemoryManager} then this
 method should be called each time a new bag is created.">
      <param name="b" type="org.apache.pig.data.DataBag"/>
      <doc>
      <![CDATA[@deprecated As of Pig 0.11, bags register with the {@link SpillableMemoryManager} themselves.
 Register a bag with the
 {@link org.apache.pig.impl.util.SpillableMemoryManager}.
 If the bags created by an implementation of BagFactory are managed by
 the {@link org.apache.pig.impl.util.SpillableMemoryManager} then this
 method should be called each time a new bag is created.
 @param b bag to be registered.]]>
      </doc>
    </method>
    <method name="resetSelf"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Provided for testing purposes only.  This function should never be
 called by anybody but the unit tests.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Factory for constructing different types of bags.
 This class is abstract so that users can
 override the bag factory if they desire to provide their own that
 returns their implementation of a bag.  If the property
 pig.data.bag.factory.name is set to a class name and
 pig.data.bag.factory.jar is set to a URL pointing to a jar that
 contains the above named class, then getInstance() will create 
 an instance of the named class using the indicated jar.  Otherwise, it
 will create an instance of DefaultBagFactory.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.BagFactory -->
  <!-- start class org.apache.pig.data.BinInterSedes -->
  <class name="BinInterSedes" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.InterSedes"/>
    <constructor name="BinInterSedes"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="readTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTupleSize" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Expects binInterSedes data types (NOT DataType types!)
 <p>

 @see org.apache.pig.data.InterSedes#readDatum(java.io.DataInput, byte)]]>
      </doc>
    </method>
    <method name="writeDatum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="writeDatum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="val" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addColsToTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTupleRawComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isTupleByte" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte"/>
    </method>
    <field name="BOOLEAN_TRUE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BOOLEAN_FALSE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BYTE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER_0" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER_1" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER_INSHORT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER_INBYTE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FLOAT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DOUBLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BYTEARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALLBYTEARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TINYBYTEARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CHARARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALLCHARARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALLMAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TINYMAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALLTUPLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TINYTUPLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BAG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SMALLBAG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TINYBAG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GENERIC_WRITABLECOMPARABLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTERNALMAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NULL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_BYTE_INDEX" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE_SHORT_INDEX" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCHEMA_TUPLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG_INBYTE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG_INSHORT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG_ININT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG_0" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG_1" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_0" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_1" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_2" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_3" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_4" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_5" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_6" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_7" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_8" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE_9" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIGINTEGER" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIGDECIMAL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DATETIME" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNSIGNED_SHORT_MAX" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNSIGNED_BYTE_MAX" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UTF8" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A class to handle reading and writing of intermediate results of data types. The serialization format used by this
 class more efficient than what was used in DataReaderWriter . The format used by the functions in this class is
 subject to change, so it should be used ONLY to store intermediate results within a pig query.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.BinInterSedes -->
  <!-- start class org.apache.pig.data.BinInterSedes.BinInterSedesTupleRawComparator -->
  <class name="BinInterSedes.BinInterSedesTupleRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TupleRawComparator"/>
    <constructor name="BinInterSedes.BinInterSedesTupleRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="hasComparedTupleNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two BinSedesTuples as raw bytes. We assume the Tuples are NOT PigNullableWritable, so client classes
 need to deal with Null and Index.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="o2" type="org.apache.hadoop.io.WritableComparable"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.BinInterSedes.BinInterSedesTupleRawComparator -->
  <!-- start class org.apache.pig.data.BinSedesTuple -->
  <class name="BinSedesTuple" extends="org.apache.pig.data.DefaultTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This tuple has a faster (de)serialization mechanism. It to be used for
 storing intermediate data between Map and Reduce and between MR jobs.
 This is for internal pig use only. The serialization format can change, so
  do not use it for storing any persistant data (ie in load/store functions).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.BinSedesTuple -->
  <!-- start class org.apache.pig.data.BinSedesTupleFactory -->
  <class name="BinSedesTupleFactory" extends="org.apache.pig.data.TupleFactory"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinSedesTupleFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="size" type="int"/>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="java.util.List"/>
    </method>
    <method name="newTupleNoCopy" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="list" type="java.util.List"/>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="datum" type="java.lang.Object"/>
    </method>
    <method name="tupleClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="tupleRawComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isFixedSize" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Default implementation of TupleFactory.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.BinSedesTupleFactory -->
  <!-- start interface org.apache.pig.data.DataBag -->
  <interface name="DataBag"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.impl.util.Spillable"/>
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <implements name="java.lang.Iterable"/>
    <implements name="java.io.Serializable"/>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the number of elements in the bag, both in memory and on disk.
 @return number of elements in the bag]]>
      </doc>
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find out if the bag is sorted.
 @return true if this is a sorted data bag, false otherwise.]]>
      </doc>
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find out if the bag is distinct.
 @return true if the bag is a distinct bag, false otherwise.]]>
      </doc>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get an iterator to the bag. For default and distinct bags,
 no particular order is guaranteed. For sorted bags the order
 is guaranteed to be sorted according
 to the provided comparator.
 @return tuple iterator]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Add a tuple to the bag.
 @param t tuple to add.]]>
      </doc>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
      <doc>
      <![CDATA[Add contents of a bag to the bag.
 @param b bag to add contents of.]]>
      </doc>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Clear out the contents of the bag, both on disk and in memory.
 Any attempts to read after this is called will produce undefined
 results.]]>
      </doc>
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
      <doc>
      <![CDATA[This is used by FuncEvalSpec.FakeDataBag.
 @param stale Set stale state.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A collection of Tuples.  A DataBag may or may not fit into memory.
 DataBag extends spillable, which means that it registers with a memory
 manager.  By default, it attempts to keep all of its contents in memory.
 If it is asked by the memory manager to spill to disk (by a call to
 spill()), it takes whatever it has in memory, opens a spill file, and
 writes the contents out.  This may happen multiple times.  The bag
 tracks all of the files it's spilled to.
 <p>
 DataBag provides an Iterator interface, that allows callers to read
 through the contents.  The iterators are aware of the data spilling.
 They have to be able to handle reading from files, as well as the fact
 that data they were reading from memory may have been spilled to disk
 underneath them.
 <p>
 The DataBag interface assumes that all data is written before any is
 read.  That is, a DataBag cannot be used as a queue.  If data is written
 after data is read, the results are undefined.  This condition is not
 checked on each add or read, for reasons of speed.  Caveat emptor.
 <p>
 Since spills are asynchronous (the memory manager requesting a spill
 runs in a separate thread), all operations dealing with the mContents
 Collection (which is the collection of tuples contained in the bag) have
 to be synchronized.  This means that reading from a DataBag is currently
 serialized.  This is ok for the moment because pig execution is
 currently single threaded.  A ReadWriteLock was experimented with, but
 it was found to be about 10x slower than using the synchronize keyword.
 If pig changes its execution model to be multithreaded, we may need to
 return to this issue, as synchronizing reads will most likely defeat the
 purpose of multi-threading execution.
 <p>
 DataBags come in several types, default, sorted, and distinct.  The type
 must be chosen up front, there is no way to convert a bag on the fly.
 Default data bags do not guarantee any particular order of retrieval for 
 the tuples and may contain duplicate tuples.  Sorted data bags guarantee
 that tuples will be retrieved in order, where "in order" is defined either
 by the default comparator for Tuple or the comparator provided by the
 caller when the bag was created.  Sorted bags may contain duplicates.
 Distinct bags do not guarantee any particular order of retrieval, but do
 guarantee that they will not contain duplicate tuples.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.DataBag -->
  <!-- start class org.apache.pig.data.DataByteArray -->
  <class name="DataByteArray" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Comparable"/>
    <implements name="java.io.Serializable"/>
    <constructor name="DataByteArray"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Default constructor.  The data array will not be allocated when this
 constructor is called.]]>
      </doc>
    </constructor>
    <constructor name="DataByteArray" type="byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a byte array using the provided bytes as the content.
 @param b byte array to use as content.  A reference to the bytes
 will be taken, the underlying bytes will not be copied.]]>
      </doc>
    </constructor>
    <constructor name="DataByteArray" type="org.apache.pig.data.DataByteArray, org.apache.pig.data.DataByteArray"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a byte array concatenating the two provided 
 byte arrays as the content.
 @param b the first byte array to use as content.
 @param c the other byte array to use as content.]]>
      </doc>
    </constructor>
    <constructor name="DataByteArray" type="byte[], int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a byte array using a portion of the provided bytes as content.
 @param b byte array to read from.  A copy of the underlying bytes will be
 made.
 @param start starting point to copy from
 @param end ending point to copy to, exclusive.]]>
      </doc>
    </constructor>
    <constructor name="DataByteArray" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct a byte array from a String.  The contents of the string
 are copied.
 @param s String to make a byte array out of.]]>
      </doc>
    </constructor>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find the size of the byte array.
 @return number of bytes in the array.]]>
      </doc>
    </method>
    <method name="get" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the underlying byte array.  This is the real thing, not a copy,
 so don't mess with it!
 @return underlying byte[]]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <doc>
      <![CDATA[Set the internal byte array.  This should not be called unless the
 default constructor was used.
 @param b byte array to store.  The contents of the byte array are
 not copied.]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the internal byte array.  This should not be called unless the
 default constructor was used.
 @param s String to copy.  The contents of the string are copied.]]>
      </doc>
    </method>
    <method name="append" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataByteArray"/>
      <doc>
      <![CDATA[Append given byte array to the internal byte array.
 @param b byte array who's contents to append.  The contents of the byte array are
 copied.]]>
      </doc>
    </method>
    <method name="append" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ba" type="byte[]"/>
    </method>
    <method name="append" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ba" type="byte[]"/>
      <param name="start" type="int"/>
      <param name="baLength" type="int"/>
    </method>
    <method name="append" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Convert the byte array to a string.  UTF8 encoding will be assumed.]]>
      </doc>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[Compare two byte arrays. Comparison is done first using byte values then
 length. So "g" will be greater than "abcdefg", but "hello worlds" is
 greater than "hello world". If the other object is not a DataByteArray,
 {@link DataType#compare} will be called.
 
 @param other Other object to compare to.
 @return -1 if less than, 1 if greater than, 0 if equal.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="b2" type="byte[]"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="buf" type="byte[]"/>
    </method>
    <doc>
    <![CDATA[An implementation of byte array.  This is done as an object because we
 need to be able to implement compareTo, toString, hashCode, and some
 other methods.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DataByteArray -->
  <!-- start class org.apache.pig.data.DataReaderWriter -->
  <class name="DataReaderWriter" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DataReaderWriter"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToInternalMap" return="org.apache.pig.data.InternalMap"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToBigCharArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bytesToWritable" return="org.apache.hadoop.io.Writable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="writeDatum"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="UTF8" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class was used to handle reading and writing of intermediate
  results of data types. Now that functionality is in {@link BinInterSedes}
  This class could also be used for storing permanent results, it used
  by BinStorage through DefaultTuple class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DataReaderWriter -->
  <!-- start class org.apache.pig.data.DataType -->
  <class name="DataType" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DataType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="findType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Determine the datatype of an object.
 @param o Object to test.
 @return byte code of the type, or ERROR if we don't know.]]>
      </doc>
    </method>
    <method name="findType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.reflect.Type"/>
      <doc>
      <![CDATA[Given a Type object determine the data type it represents.  This isn't
 cheap, as it uses reflection, so use sparingly.
 @param t Type to examine
 @return byte code of the type, or ERROR if we don't know.]]>
      </doc>
    </method>
    <method name="numTypes" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the number of types Pig knows about.
 @return number of types]]>
      </doc>
    </method>
    <method name="genAllTypes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get an array of all type values.
 @return byte array with an entry for each type.]]>
      </doc>
    </method>
    <method name="genTypeToNameMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a map of type values to type names.
 @return map]]>
      </doc>
    </method>
    <method name="genNameToTypeMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a map of type names to type values.
 @return map]]>
      </doc>
    </method>
    <method name="findTypeName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Get the type name.
 @param o Object to test.
 @return type name, as a String.]]>
      </doc>
    </method>
    <method name="findTypeName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="byte"/>
      <doc>
      <![CDATA[Get the type name from the type byte code
 @param dt Type byte code
 @return type name, as a String.]]>
      </doc>
    </method>
    <method name="findTypeClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="byte"/>
    </method>
    <method name="findTypeByName" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Get the type code from the type name 
 @param name Type name
 @return type code]]>
      </doc>
    </method>
    <method name="isComplex" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <doc>
      <![CDATA[Determine whether the this data type is complex.
 @param dataType Data type code to test.
 @return true if dataType is bag, tuple, or map.]]>
      </doc>
    </method>
    <method name="isComplex" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Determine whether the object is complex or atomic.
 @param o Object to determine type of.
 @return true if dataType is bag, tuple, or map.]]>
      </doc>
    </method>
    <method name="isAtomic" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <doc>
      <![CDATA[Determine whether the this data type is atomic.
 @param dataType Data type code to test.
 @return true if dataType is bytearray, bigchararray, chararray, integer, long,
 float, or boolean.]]>
      </doc>
    </method>
    <method name="isAtomic" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Determine whether the this data type is atomic.
 @param o Object to determine type of.
 @return true if dataType is bytearray, chararray, integer, long,
 float, or boolean.]]>
      </doc>
    </method>
    <method name="isSchemaType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Determine whether the this object can have a schema.
 @param o Object to determine if it has a schema
 @return true if the type can have a valid schema (i.e., bag or tuple)]]>
      </doc>
    </method>
    <method name="isSchemaType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataType" type="byte"/>
      <doc>
      <![CDATA[Determine whether the this data type can have a schema.
 @param dataType dataType to determine if it has a schema
 @return true if the type can have a valid schema (i.e., bag or tuple)]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
      <doc>
      <![CDATA[/**
 Compare two objects to each other.  This function is necessary
 because there's no super class that implements compareTo.  This
 function provides an (arbitrary) ordering of objects of different
 types as follows:  NULL &lt; BOOLEAN &lt; BYTE &lt; INTEGER &lt; LONG &lt;
 FLOAT &lt; DOUBLE &lt; DATETIME &lt; BYTEARRAY &lt; STRING &lt; MAP &lt;
 TUPLE &lt; BAG.  No other functions should implement this cross
 object logic.  They should call this function for it instead.
 @param o1 First object
 @param o2 Second object
 @return -1 if o1 is less, 0 if they are equal, 1 if o2 is less.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
      <param name="dt1" type="byte"/>
      <param name="dt2" type="byte"/>
      <doc>
      <![CDATA[Same as {@link #compare(Object, Object)}, but does not use reflection to determine the type
 of passed in objects, relying instead on the caller to provide the appropriate values, as
 determined by {@link DataType#findType(Object)}.

 Use this version in cases where multiple objects of the same type have to be repeatedly compared.
 @param o1 first object
 @param o2 second object
 @param dt1 type, as byte value, of o1
 @param dt2 type, as byte value, of o2
 @return -1 if o1 is &lt; o2, 0 if they are equal, 1 if o1 &gt; o2]]>
      </doc>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Boolean, if possible. Any numeric type can be
 forced to a Boolean, as well as CharArray, ByteArray. Complex types
 cannot be forced to a Boolean. This isn't particularly efficient, so if
 you already <b>know</b> that the object you have is a Boolean you should
 just cast it.

 @param o
            object to cast
 @param type
            of the object you are casting
 @return The object as a Boolean.
 @throws ExecException
             if the type can't be forced to a Boolean.]]>
      </doc>
    </method>
    <method name="toBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to an Integer, if possible.  Any numeric type
 can be forced to an Integer (though precision may be lost), as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to an Integer.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is an Integer you
 should just cast it.
 @param o object to cast
 @param type of the object you are casting
 @return The object as an Integer.
 @throws ExecException if the type can't be forced to an Integer.]]>
      </doc>
    </method>
    <method name="toInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to an Integer, if possible.  Any numeric type
 can be forced to an Integer (though precision may be lost), as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to an Integer.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is an Integer you
 should just cast it.  Unlike {@link #toInteger(Object, byte)} this
 method will first determine the type of o and then do the cast.
 Use {@link #toInteger(Object, byte)} if you already know the type.
 @param o object to cast
 @return The object as an Integer.
 @throws ExecException if the type can't be forced to an Integer.]]>
      </doc>
    </method>
    <method name="toLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Long, if possible.  Any numeric type
 can be forced to a Long (though precision may be lost), as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to a Long.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Long you
 should just cast it.
 @param o object to cast
 @param type of the object you are casting
 @return The object as a Long.
 @throws ExecException if the type can't be forced to a Long.]]>
      </doc>
    </method>
    <method name="toLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Long, if possible.  Any numeric type
 can be forced to a Long (though precision may be lost), as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to an Long.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Long you
 should just cast it.  Unlike {@link #toLong(Object, byte)} this
 method will first determine the type of o and then do the cast.
 Use {@link #toLong(Object, byte)} if you already know the type.
 @param o object to cast
 @return The object as a Long.
 @throws ExecException if the type can't be forced to an Long.]]>
      </doc>
    </method>
    <method name="toFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Float, if possible.  Any numeric type
 can be forced to a Float (though precision may be lost), as well
 as CharArray, ByteArray.  Complex types cannot be
 forced to a Float.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Float you
 should just cast it.
 @param o object to cast
 @param type of the object you are casting
 @return The object as a Float.
 @throws ExecException if the type can't be forced to a Float.]]>
      </doc>
    </method>
    <method name="toFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Float, if possible.  Any numeric type
 can be forced to a Float (though precision may be lost), as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to an Float.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Float you
 should just cast it.  Unlike {@link #toFloat(Object, byte)} this
 method will first determine the type of o and then do the cast.
 Use {@link #toFloat(Object, byte)} if you already know the type.
 @param o object to cast
 @return The object as a Float.
 @throws ExecException if the type can't be forced to an Float.]]>
      </doc>
    </method>
    <method name="toDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Double, if possible.  Any numeric type
 can be forced to a Double, as well
 as CharArray, ByteArray.  Complex types cannot be
 forced to a Double.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Double you
 should just cast it.
 @param o object to cast
 @param type of the object you are casting
 @return The object as a Double.
 @throws ExecException if the type can't be forced to a Double.]]>
      </doc>
    </method>
    <method name="toDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a DateTime, if possible. Only CharArray, ByteArray
 can be forced to a DateTime. Numeric types and complex types
 cannot be forced to a DateTime. This isn't particularly efficient, so if
 you already <b>know</b> that the object you have is a DateTime you should
 just cast it.

 @param o
            object to cast
 @param type
            of the object you are casting
 @return The object as a Boolean.
 @throws ExecException
             if the type can't be forced to a Boolean.]]>
      </doc>
    </method>
    <method name="toDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a Double, if possible.  Any numeric type
 can be forced to a Double, as well
 as CharArray, ByteArray, or Boolean.  Complex types cannot be
 forced to an Double.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Double you
 should just cast it.  Unlike {@link #toDouble(Object, byte)} this
 method will first determine the type of o and then do the cast.
 Use {@link #toDouble(Object, byte)} if you already know the type.
 @param o object to cast
 @return The object as a Double.
 @throws ExecException if the type can't be forced to an Double.]]>
      </doc>
    </method>
    <method name="toBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a String, if possible.  Any simple (atomic) type
 can be forced to a String including ByteArray.  Complex types cannot be
 forced to a String.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a String you
 should just cast it.
 @param o object to cast
 @param type of the object you are casting
 @return The object as a String.
 @throws ExecException if the type can't be forced to a String.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Force a data object to a String, if possible.  Any simple (atomic) type
 can be forced to a String including ByteArray.  Complex types cannot be
 forced to a String.  This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a String you
 should just cast it.  Unlike {@link #toString(Object, byte)} this
 method will first determine the type of o and then do the cast.
 Use {@link #toString(Object, byte)} if you already know the type.
 @param o object to cast
 @return The object as a String.
 @throws ExecException if the type can't be forced to a String.]]>
      </doc>
    </method>
    <method name="toMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[If this object is a map, return it as a map.
 This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Map you
 should just cast it.
 @param o object to cast
 @return The object as a Map.
 @throws ExecException if the type can't be forced to a Double.]]>
      </doc>
    </method>
    <method name="toTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[If this object is a tuple, return it as a tuple.
 This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a Tuple you
 should just cast it.
 @param o object to cast
 @return The object as a Double.
 @throws ExecException if the type can't be forced to a Double.]]>
      </doc>
    </method>
    <method name="toBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[If this object is a bag, return it as a bag.
 This isn't particularly efficient, so if you
 already <b>know</b> that the object you have is a bag you
 should just cast it.
 @param o object to cast
 @return The object as a Double.
 @throws ExecException if the type can't be forced to a Double.]]>
      </doc>
    </method>
    <method name="spillTupleContents"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="label" type="java.lang.String"/>
      <doc>
      <![CDATA[Purely for debugging]]>
      </doc>
    </method>
    <method name="isNumberType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="byte"/>
      <doc>
      <![CDATA[Determine if this type is a numeric type.
 @param t type (as byte value) to test
 @return true if this is a numeric type, false otherwise]]>
      </doc>
    </method>
    <method name="isUsableType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="byte"/>
      <doc>
      <![CDATA[Determine if this is a type that can work can be done on.
 @param t type (as a byte value) to test
 @return false if the type is unknown, null, or error; true otherwise.]]>
      </doc>
    </method>
    <method name="castable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="castType" type="byte"/>
      <param name="inputType" type="byte"/>
      <doc>
      <![CDATA[Test if one type can cast to the other.
 @param castType data type of the cast type
 @param inputType data type of the input
 @return true or false]]>
      </doc>
    </method>
    <method name="mergeType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type1" type="byte"/>
      <param name="type2" type="byte"/>
      <doc>
      <![CDATA[Merge types if possible.  Merging types means finding a type that one
 or both types can be upcast to.
 @param type1
 @param type2
 @return the merged type, or DataType.ERROR if not successful]]>
      </doc>
    </method>
    <method name="mapToString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
      <doc>
      <![CDATA[Given a map, turn it into a String.
 @param m map
 @return string representation of the map]]>
      </doc>
    </method>
    <method name="equalByteArrays" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lhs" type="byte[]"/>
      <param name="rhs" type="byte[]"/>
      <doc>
      <![CDATA[Test whether two byte arrays (Java byte arrays not Pig byte arrays) are
 equal.  I have no idea why we have this function.
 @param lhs byte array 1
 @param rhs byte array 2
 @return true if both are null or the two are the same length and have
 the same bytes.]]>
      </doc>
    </method>
    <method name="determineFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rcFieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Determine the field schema of an ResourceFieldSchema
 @param rcFieldSchema the rcFieldSchema we want translated
 @return the field schema corresponding to the object
 @throws ExecException,FrontendException,SchemaMergeException]]>
      </doc>
    </method>
    <method name="determineFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Determine the field schema of an object
 @param o the object whose field schema is to be determined
 @return the field schema corresponding to the object
 @throws ExecException,FrontendException,SchemaMergeException]]>
      </doc>
    </method>
    <field name="UNKNOWN" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NULL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BOOLEAN" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BYTE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INTEGER" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LONG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FLOAT" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DOUBLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DATETIME" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BYTEARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CHARARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIGINTEGER" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIGDECIMAL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BIGCHARARRAY" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Internal use only.]]>
      </doc>
    </field>
    <field name="MAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TUPLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="BAG" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GENERIC_WRITABLECOMPARABLE" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Internal use only; used to store WriteableComparable objects
 for creating ordered index in MergeJoin. Expecting a object that
 implements Writable interface and has default constructor]]>
      </doc>
    </field>
    <field name="INTERNALMAP" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Internal use only.]]>
      </doc>
    </field>
    <field name="ERROR" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A class of static final values used to encode data type and a number of
 static helper functions for manipulating data objects.  The data type
 values could be
 done as an enumeration, but it is done as byte codes instead to save
 creating objects.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DataType -->
  <!-- start class org.apache.pig.data.DefaultAbstractBag -->
  <class name="DefaultAbstractBag" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="DefaultAbstractBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the number of elements in the bag, both in memory and on disk.]]>
      </doc>
    </method>
    <method name="sampleContents"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Sample every SPILL_SAMPLE_FREQUENCYth tuple
 until we reach a max of SPILL_SAMPLE_SIZE
 to get an estimate of the tuple sizes.]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Add a tuple to the bag.
 @param t tuple to add.]]>
      </doc>
    </method>
    <method name="markSpillableIfNecessary"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[All bag implementations that can get big enough to be spilled
 should call this method after every time they add an element.]]>
      </doc>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="java.util.Collection"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="iterable" type="java.lang.Iterable"/>
      <doc>
      <![CDATA[Add contents of an iterable (a collection or a DataBag)

 @param iterable a Collection or DataBag to add contents of]]>
      </doc>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the size of memory usage.]]>
      </doc>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Clear out the contents of the bag, both on disk and in memory.
 Any attempts to read after this is called will produce undefined
 results.]]>
      </doc>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[This method is potentially very expensive since it may require a
 sort of the bag; don't call it unless you have to.]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write a bag's contents to disk.
 @param out DataOutput to write data to.
 @throws IOException (passes it on from underlying calls).]]>
      </doc>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Read a bag from disk.
 @param in DataInput to read data from.
 @throws IOException (passes it on from underlying calls).]]>
      </doc>
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
      <doc>
      <![CDATA[This is used by FuncEvalSpec.FakeDataBag.
 @param stale Set stale state.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Write the bag into a string.]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSpillFile" return="java.io.DataOutputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get a file to spill contents to.  The file will be registered in the
 mSpillFiles array.
 @return stream to write tuples to.]]>
      </doc>
    </method>
    <method name="reportProgress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Report progress to HDFS.]]>
      </doc>
    </method>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="java.lang.Enum"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="incSpillCount"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="counter" type="java.lang.Enum"/>
    </method>
    <method name="incSpillCount"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="counter" type="java.lang.Enum"/>
      <param name="numRecsSpilled" type="long"/>
    </method>
    <field name="mContents" type="java.util.Collection"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mSpillFiles" type="org.apache.pig.data.FileList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mSize" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="startBag" type="org.apache.pig.data.Tuple"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="endBag" type="org.apache.pig.data.Tuple"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAX_SPILL_FILES" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Default implementation of DataBag.  This is the an abstract class used as a
 parent for all three of the types of data bags.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DefaultAbstractBag -->
  <!-- start class org.apache.pig.data.DefaultAbstractBag.BagDelimiterTuple -->
  <class name="DefaultAbstractBag.BagDelimiterTuple" extends="org.apache.pig.data.DefaultTuple"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultAbstractBag.BagDelimiterTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.data.DefaultAbstractBag.BagDelimiterTuple -->
  <!-- start class org.apache.pig.data.DefaultAbstractBag.EndBag -->
  <class name="DefaultAbstractBag.EndBag" extends="org.apache.pig.data.DefaultAbstractBag.BagDelimiterTuple"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultAbstractBag.EndBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.data.DefaultAbstractBag.EndBag -->
  <!-- start class org.apache.pig.data.DefaultAbstractBag.StartBag -->
  <class name="DefaultAbstractBag.StartBag" extends="org.apache.pig.data.DefaultAbstractBag.BagDelimiterTuple"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultAbstractBag.StartBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.data.DefaultAbstractBag.StartBag -->
  <!-- start class org.apache.pig.data.DefaultBagFactory -->
  <class name="DefaultBagFactory" extends="org.apache.pig.data.BagFactory"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="newDefaultBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a default (unordered, not distinct) data bag.]]>
      </doc>
    </method>
    <method name="newDefaultBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="listOfTuples" type="java.util.List"/>
      <doc>
      <![CDATA[Get a default (unordered, not distinct) data bag from
 an existing list of tuples. Note that the bag does NOT
 copy the tuples but uses the provided list as its backing store.
 So it takes ownership of the list.]]>
      </doc>
    </method>
    <method name="newSortedBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="comp" type="java.util.Comparator"/>
      <doc>
      <![CDATA[Get a sorted data bag.
 @param comp Comparator that controls how the data is sorted.
 If null, default comparator will be used.]]>
      </doc>
    </method>
    <method name="newDistinctBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a distinct data bag.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Default implementation of BagFactory.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DefaultBagFactory -->
  <!-- start class org.apache.pig.data.DefaultDataBag -->
  <class name="DefaultDataBag" extends="org.apache.pig.data.DefaultAbstractBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultDataBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DefaultDataBag" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor creates a bag out of an existing list
 of tuples by taking ownership of the list and NOT
 copying the contents of the list.
 @param listOfTuples List<Tuple> containing the tuples]]>
      </doc>
    </constructor>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[An unordered collection of Tuples (possibly) with multiples.  The tuples
 are stored in a List, since there is no concern for order or
 distinctness.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DefaultDataBag -->
  <!-- start class org.apache.pig.data.DefaultTuple -->
  <class name="DefaultTuple" extends="org.apache.pig.data.AbstractTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Default constructor. This constructor is public so that hadoop can call it directly. However, inside pig you
 should never be calling this function. Use TupleFactory instead.
 <br>Time complexity: O(1), after allocation]]>
      </doc>
    </constructor>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find the size of the tuple. Used to be called arity().

 @return number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Get the value in a given field.

 @param fieldNum
            Number of the field to get the value for.
 @return value, as an Object.
 @throws ExecException
             if the field number is greater than or equal to the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all of the fields in the tuple as a list.

 @return List&lt;Object&gt; containing the fields of the tuple in order.]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Set the value in a given field.

 @param fieldNum
            Number of the field to set the value for.
 @param val
            Object to put in the indicated field.
 @throws ExecException
             if the field number is greater than or equal to the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
      <doc>
      <![CDATA[Append a field to a tuple. This method is not efficient as it may force copying of existing data in order to grow
 the data structure. Whenever possible you should construct your Tuple with the newTuple(int) method and then fill
 in the values with set(), rather than construct it with newTuple() and append values.

 @param val
            Object to append to the tuple.]]>
      </doc>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Determine the size of tuple in memory. This is used by data bags to determine their memory size. This need not be
 exact, but it should be a decent estimation.

 @return estimated memory size.]]>
      </doc>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="mFields" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A default implementation of Tuple. This class will be created by the DefaultTupleFactory.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DefaultTuple -->
  <!-- start class org.apache.pig.data.DefaultTuple.DefaultTupleRawComparator -->
  <class name="DefaultTuple.DefaultTupleRawComparator" extends="org.apache.hadoop.io.WritableComparator"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TupleRawComparator"/>
    <constructor name="DefaultTuple.DefaultTupleRawComparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="hasComparedTupleNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b1" type="byte[]"/>
      <param name="s1" type="int"/>
      <param name="l1" type="int"/>
      <param name="b2" type="byte[]"/>
      <param name="s2" type="int"/>
      <param name="l2" type="int"/>
      <doc>
      <![CDATA[Compare two DefaultTuples as raw bytes. We assume the Tuples are NOT PigNullableWritable, so client classes
 need to deal with Null and Index.]]>
      </doc>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o1" type="java.lang.Object"/>
      <param name="o2" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.DefaultTuple.DefaultTupleRawComparator -->
  <!-- start class org.apache.pig.data.DefaultTupleFactory -->
  <class name="DefaultTupleFactory" extends="org.apache.pig.data.BinSedesTupleFactory"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="Use {@link TupleFactory}">
    <constructor name="DefaultTupleFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="tupleRawComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[@deprecated Use {@link TupleFactory}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DefaultTupleFactory -->
  <!-- start class org.apache.pig.data.DistinctDataBag -->
  <class name="DistinctDataBag" extends="org.apache.pig.data.DefaultAbstractBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DistinctDataBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[An unordered collection of Tuples with no multiples.  Data is
 stored without duplicates as it comes in.  When it is time to spill,
 that data is sorted and written to disk.  It must also be sorted upon
 the first read, otherwise if a spill happened after that the iterators
 would have no way to find their place in the new file.  The data is
 stored in a HashSet.  When it is time to sort it is placed in an
 ArrayList and then sorted.  Dispite all these machinations, this was
 found to be faster than storing it in a TreeSet.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.DistinctDataBag -->
  <!-- start class org.apache.pig.data.FieldIsNullException -->
  <class name="FieldIsNullException" extends="org.apache.pig.backend.executionengine.ExecException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FieldIsNullException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FieldIsNullException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.data.FieldIsNullException -->
  <!-- start class org.apache.pig.data.FileList -->
  <class name="FileList" extends="java.util.ArrayList"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileList" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FileList"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FileList" type="java.util.LinkedList"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="finalize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class extends ArrayList<File> to add a finalize() that
 calls delete on the files .
 This helps in getting rid of the finalize() in the classes such 
 as DefaultAbstractBag, and they can be freed up without waiting 
 for finalize to be called. Only if those classes have spilled to
 disk, there will be a (this) class that needs to be finalized.
 
 CAUTION: if you assign a new value for a variable of this type,
 the files (if any) in the old object it pointed to will be scheduled for
 deletion. To avoid that call .clear() before assigning a new value.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.FileList -->
  <!-- start class org.apache.pig.data.InternalCachedBag -->
  <class name="InternalCachedBag" extends="org.apache.pig.data.SelfSpillBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InternalCachedBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalCachedBag" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalCachedBag" type="int, float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.data.InternalCachedBag -->
  <!-- start class org.apache.pig.data.InternalDistinctBag -->
  <class name="InternalDistinctBag" extends="org.apache.pig.data.SortedSpillBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InternalDistinctBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalDistinctBag" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalDistinctBag" type="int, float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[An unordered collection of Tuples with no multiples.  Data is
 stored without duplicates as it comes in.  When it is time to spill,
 that data is sorted and written to disk.  The data is
 stored in a HashSet.  When it is time to sort it is placed in an
 ArrayList and then sorted.  Dispite all these machinations, this was
 found to be faster than storing it in a TreeSet.

 This bag spills pro-actively when the number of tuples in memory
 reaches a limit]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.InternalDistinctBag -->
  <!-- start class org.apache.pig.data.InternalMap -->
  <class name="InternalMap" extends="java.util.HashMap"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InternalMap"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalMap" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[This class is an empty extension of Map<Object, Object>.  It only
 exists so that DataType.findType() can distinguish an internal map
 type that maps object to object from an external map type that
 is string to object.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.InternalMap -->
  <!-- start class org.apache.pig.data.InternalSortedBag -->
  <class name="InternalSortedBag" extends="org.apache.pig.data.SortedSpillBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InternalSortedBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalSortedBag" type="java.util.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalSortedBag" type="int, java.util.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InternalSortedBag" type="int, float, java.util.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="proactive_spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="comp" type="java.util.Comparator"/>
    </method>
    <doc>
    <![CDATA[An ordered collection of Tuples (possibly) with multiples.  Data is
 stored unsorted as it comes in, and only sorted when it is time to dump
 it to a file or when the first iterator is requested.  Experementation
 found this to be the faster than storing it sorted to begin with.
 
 We allow a user defined comparator, but provide a default comparator in
 cases where the user doesn't specify one.
 
 This bag is not registered with SpillableMemoryManager. It calculates
 the number of tuples to hold in memory and spill pro-actively into files.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.InternalSortedBag -->
  <!-- start interface org.apache.pig.data.InterSedes -->
  <interface name="InterSedes"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Get the next object from DataInput in
 @param in
 @return Next object from DataInput in
 @throws IOException
 @throws ExecException]]>
      </doc>
    </method>
    <method name="readDatum" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Get the next object from DataInput in of the type of type argument
 The type information has been read from DataInput.
 @param in
 @param type
 @return Next object from DataInput in
 @throws IOException
 @throws ExecException]]>
      </doc>
    </method>
    <method name="addColsToTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[The type of next object has been determined to be of type Tuple,
 add the columns that belong to the tuple to given tuple argument t
 @param in
 @param t
 @throws IOException]]>
      </doc>
    </method>
    <method name="writeDatum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write given object val to DataOutput out
 @param out
 @param val
 @throws IOException]]>
      </doc>
    </method>
    <method name="writeDatum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="val" type="java.lang.Object"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write given object val of DataType type to DataOutput out
 @param out output
 @param val value to write
 @param type type, as defined in {@link DataType}
 @throws IOException]]>
      </doc>
    </method>
    <method name="getTupleRawComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A class to handle reading and writing of intermediate results of data
 types. The serialization format used by this class more efficient than 
 what was used in DataReaderWriter . 
 The format used by the functions in this class is subject to change, so it
 should be used ONLY to store intermediate results within a pig query.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.InterSedes -->
  <!-- start class org.apache.pig.data.InterSedesFactory -->
  <class name="InterSedesFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterSedesFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInterSedesInstance" return="org.apache.pig.data.InterSedes"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Used to get hold of the single instance of InterSedes .
 In future, the subclass of InterSedes that gets instantiated would 
 be configurable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.InterSedesFactory -->
  <!-- start class org.apache.pig.data.NonSpillableDataBag -->
  <class name="NonSpillableDataBag" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="NonSpillableDataBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NonSpillableDataBag" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Use this constructor if you know upfront how many tuples you are going
 to put in this bag.
 @param tupleCount]]>
      </doc>
    </constructor>
    <constructor name="NonSpillableDataBag" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor creates a bag out of an existing list
 of tuples by taking ownership of the list and NOT
 copying the contents of the list.
 @param listOfTuples List<Tuple> containing the tuples]]>
      </doc>
    </constructor>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="reportProgress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Report progress to HDFS.]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Write a bag's contents to disk.
 @param out DataOutput to write data to.
 @throws IOException (passes it on from underlying calls).]]>
      </doc>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Read a bag from disk.
 @param in DataInput to read data from.
 @throws IOException (passes it on from underlying calls).]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Write the bag into a string.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An unordered collection of Tuples (possibly) with multiples.  The tuples
 are stored in an ArrayList, since there is no concern for order or
 distinctness. The implicit assumption is that the user of this class
 is storing only those many tuples as will fit in memory - no spilling
 will be done on this bag to disk.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.NonSpillableDataBag -->
  <!-- start class org.apache.pig.data.ReadOnceBag -->
  <class name="ReadOnceBag" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="ReadOnceBag" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager, java.util.Iterator, org.apache.pig.impl.io.PigNullableWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor creates a bag out of an existing iterator
 of tuples by taking ownership of the iterator and NOT
 copying the elements of the iterator.
 @param pkg POPackageLite
 @param tupIter Iterator<NullableTuple>
 @param key Object]]>
      </doc>
    </constructor>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="pkgr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.Packager"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="tupIter" type="java.util.Iterator"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="keyWritable" type="org.apache.pig.impl.io.PigNullableWritable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This bag does not store the tuples in memory, but has access to an iterator
 typically provided by Hadoop. Use this when you already have an iterator over
 tuples and do not want to copy over again to a new bag.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.ReadOnceBag -->
  <!-- start class org.apache.pig.data.ReadOnceBag.ReadOnceBagIterator -->
  <class name="ReadOnceBag.ReadOnceBagIterator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="protected"
    deprecated="not deprecated">
    <implements name="java.util.Iterator"/>
    <constructor name="ReadOnceBag.ReadOnceBagIterator"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="hasNext" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="next" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.data.ReadOnceBag.ReadOnceBagIterator -->
  <!-- start class org.apache.pig.data.SchemaTuple -->
  <class name="SchemaTuple" extends="org.apache.pig.data.AbstractTuple"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TypeAwareTuple"/>
    <constructor name="SchemaTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This only accounts for the size of members (adjusting for word alignment). It also includes
 the size of the object itself, since this never affects word boundaries.]]>
      </doc>
    </method>
    <method name="getGeneratedCodeMemorySize" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getSchemaTupleIdentifier" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method will return the identifier that the generated code
 was generated with. This is useful because when the classes
 are resolved generically, this let's us know the identifier, which
 is used when serlializing and deserializing tuples.
 @return the identifire as Int.]]>
      </doc>
    </method>
    <method name="schemaSize" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getSchemaString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSet" return="org.apache.pig.data.SchemaTuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setSpecific" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="generatedCodeSetSpecific" return="org.apache.pig.data.SchemaTuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="checkType" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="set" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="java.util.List"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetIterator"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="l" type="java.util.Iterator"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="writeIdentifiers" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="org.apache.pig.data.DataBag"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="float"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="double"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="org.joda.time.DateTime"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="java.math.BigDecimal"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="java.math.BigInteger"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="v" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSpecificSchemaTuple" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="checkType" type="boolean"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
    </method>
    <method name="generatedCodeCompareTo" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="checkType" type="boolean"/>
    </method>
    <method name="compareToSpecific" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="generatedCodeCompareToSpecific" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="unbox" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="unbox" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="java.util.Map"/>
    </method>
    <method name="unbox" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="byte[]"/>
    </method>
    <method name="unbox" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="int"/>
    </method>
    <method name="unbox" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="long"/>
    </method>
    <method name="unbox" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="float"/>
    </method>
    <method name="unbox" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="double"/>
    </method>
    <method name="unbox" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="boolean"/>
    </method>
    <method name="unbox" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="org.joda.time.DateTime"/>
    </method>
    <method name="unbox" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="java.math.BigDecimal"/>
    </method>
    <method name="unbox" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="java.math.BigInteger"/>
    </method>
    <method name="unbox" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="java.lang.String"/>
    </method>
    <method name="unbox" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Object"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="unbox" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="unbox" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.util.Map"/>
    </method>
    <method name="unbox" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.data.DataByteArray"/>
    </method>
    <method name="unbox" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Integer"/>
    </method>
    <method name="unbox" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Long"/>
    </method>
    <method name="unbox" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Float"/>
    </method>
    <method name="unbox" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Double"/>
    </method>
    <method name="unbox" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.Boolean"/>
    </method>
    <method name="unbox" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="org.joda.time.DateTime"/>
    </method>
    <method name="box" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="box" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.util.Map"/>
    </method>
    <method name="box" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="byte[]"/>
    </method>
    <method name="box" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.lang.String"/>
    </method>
    <method name="box" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="box" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="int"/>
    </method>
    <method name="box" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="long"/>
    </method>
    <method name="box" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="float"/>
    </method>
    <method name="box" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="double"/>
    </method>
    <method name="box" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="boolean"/>
    </method>
    <method name="box" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="org.joda.time.DateTime"/>
    </method>
    <method name="box" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.math.BigDecimal"/>
    </method>
    <method name="box" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="v" type="java.math.BigInteger"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="int"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="long"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="float"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="double"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="boolean"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="org.joda.time.DateTime"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="java.math.BigDecimal"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="java.math.BigInteger"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="byte[]"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="java.lang.String"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="org.apache.pig.data.Tuple"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="org.apache.pig.data.DataBag"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCodePiece" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hash" type="int"/>
      <param name="v" type="java.util.Map"/>
      <param name="isNull" type="boolean"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="generatedCodeHashCode" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetField"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetField" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="isGeneratedCodeFieldNull" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getGeneratedCodeFieldType" return="byte"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setTypeAwareBase"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <param name="type" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getTypeAwareBase" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="type" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setInt"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetInt"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setLong"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="long"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetLong"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="long"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setFloat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="float"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetFloat"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="float"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDouble"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="double"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetDouble"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="double"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetBoolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.joda.time.DateTime"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetDateTime"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.joda.time.DateTime"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.math.BigDecimal"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetBigDecimal"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.math.BigDecimal"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.math.BigInteger"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetBigInteger"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.math.BigInteger"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetString"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetTuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBytes"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="byte[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetBytes"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="byte[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetDataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.util.Map"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeSetMap"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.util.Map"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="returnUnlessNull" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="int"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="long"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="float"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="double"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="boolean"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.joda.time.DateTime"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.math.BigDecimal"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.math.BigInteger"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.apache.pig.data.Tuple"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.lang.String"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="byte[]"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="returnUnlessNull" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.util.Map"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetInt" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetLong" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getFloat" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetFloat" return="float"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxFloat" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getDouble" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetDouble" return="double"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxDouble" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getBoolean" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetBoolean" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxBoolean" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetDateTime" return="org.joda.time.DateTime"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetString" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="generatedCodeGetBytes" return="byte[]"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getDataBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetDataBag" return="org.apache.pig.data.DataBag"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxDataBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetMap" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetBigDecimal" return="java.math.BigDecimal"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="generatedCodeGetBigInteger" return="java.math.BigInteger"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="unboxBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="staticSchemaGen" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="s" type="java.lang.String"/>
    </method>
    <method name="setAndCatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="setAndCatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
    </method>
    <method name="writeElements"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is responsible for writing everything contained by the Tuple.
 Note that the base SchemaTuple class does not have an implementation (but is
 not abstract) so that the generated code can call this method via super
 without worrying about whether it is abstract or not, as there may be classes in
 between in the inheritance tree (such as AppendableSchemaTuple).
 @param out
 @throws IOException]]>
      </doc>
    </method>
    <method name="generatedCodeWriteElements"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareSize" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="compareNull" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="themNull" type="boolean"/>
    </method>
    <method name="compareNull" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compareElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="int"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="int"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="int"/>
      <param name="themVal" type="int"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="int"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="long"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="long"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="long"/>
      <param name="themVal" type="long"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="long"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="float"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="float"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="float"/>
      <param name="themVal" type="float"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="float"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="double"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="double"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="double"/>
      <param name="themVal" type="double"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="double"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="boolean"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="boolean"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="boolean"/>
      <param name="themVal" type="boolean"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="boolean"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="byte[]"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="byte[]"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="byte[]"/>
      <param name="themVal" type="byte[]"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="byte[]"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="org.joda.time.DateTime"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="org.joda.time.DateTime"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="org.joda.time.DateTime"/>
      <param name="themVal" type="org.joda.time.DateTime"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.joda.time.DateTime"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="java.math.BigDecimal"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="java.math.BigDecimal"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.math.BigDecimal"/>
      <param name="themVal" type="java.math.BigDecimal"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.math.BigDecimal"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="java.math.BigInteger"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="java.math.BigInteger"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.math.BigInteger"/>
      <param name="themVal" type="java.math.BigInteger"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.math.BigInteger"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="java.lang.String"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="java.lang.String"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.lang.String"/>
      <param name="themVal" type="java.lang.String"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.lang.String"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="org.apache.pig.data.DataBag"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <param name="themVal" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="java.util.Map"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="java.util.Map"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="val" type="java.util.Map"/>
      <param name="themVal" type="java.util.Map"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="java.util.Map"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compareWithElementAtPos" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <param name="val" type="org.apache.pig.data.SchemaTuple"/>
      <param name="t" type="org.apache.pig.data.SchemaTuple"/>
      <param name="pos" type="int"/>
    </method>
    <method name="compare" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="usNull" type="boolean"/>
      <param name="usVal" type="org.apache.pig.data.SchemaTuple"/>
      <param name="themNull" type="boolean"/>
      <param name="themVal" type="java.lang.Object"/>
    </method>
    <method name="getQuickGenerator" return="org.apache.pig.data.SchemaTuple.SchemaTupleQuickGenerator"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is a mechanism which allows the SchemaTupleFactory to
 get around having to use reflection. The generated code
 will return a generator which will be created via reflection,
 but after which can generate SchemaTuples at native speed.]]>
      </doc>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="generatedCodeSize" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="generatedCodeReadFields"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="nulls" type="boolean[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="generatedCodeNullsArray" return="boolean[]"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[A SchemaTuple is a type aware tuple that is much faster and more memory efficient.
 In our implementation, given a Schema, code generation is used to extend this class.
 This class provides a broad range of functionality that minimizes the complexity of the
 code that must be generated. The odd looking generic signature allows for certain
 optimizations, such as "setSpecific(T t)", which allows us to do much faster sets and
 comparisons when types match (since the code is generated, there is no other way to know).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SchemaTuple -->
  <!-- start class org.apache.pig.data.SchemaTuple.SchemaTupleQuickGenerator -->
  <class name="SchemaTuple.SchemaTupleQuickGenerator" extends="java.lang.Object"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaTuple.SchemaTupleQuickGenerator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="make" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.data.SchemaTuple.SchemaTupleQuickGenerator -->
  <!-- start class org.apache.pig.data.SchemaTupleBackend -->
  <class name="SchemaTupleBackend" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jConf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jConf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jConf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="isLocal" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="newSchemaTupleFactory" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="isAppendable" type="boolean"/>
      <param name="context" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"/>
    </method>
    <method name="newSchemaTupleFactory" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="id" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.SchemaTupleBackend -->
  <!-- start class org.apache.pig.data.SchemaTupleClassGenerator -->
  <class name="SchemaTupleClassGenerator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="resetGlobalClassIdentifier"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="generateSchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="appendable" type="boolean"/>
      <param name="id" type="int"/>
      <param name="codeDir" type="java.io.File"/>
      <param name="contexts" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext[]"/>
      <doc>
      <![CDATA[This class actually generates the code for a given Schema.
 @param   s as Schema
 @param   appendable as boolean, true or false depending on whether it should be appendable
 @param   id as int, id means identifier
 @param   contexts which are a list of contexts in which the SchemaTuple is intended to be instantiated]]>
      </doc>
    </method>
    <method name="getNextGlobalClassIdentifier" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class encapsulates the generation of SchemaTuples, as well as some logic
 around shipping code to the distributed cache.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SchemaTupleClassGenerator -->
  <!-- start class org.apache.pig.data.SchemaTupleClassGenerator.GenContext -->
  <class name="SchemaTupleClassGenerator.GenContext" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.data.SchemaTupleClassGenerator.GenContext[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="key" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAnnotationCanonicalName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="shouldGenerate" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="clazz" type="java.lang.Class"/>
      <doc>
      <![CDATA[Checks the generated class to see if the annotation
 associated with this enum is present.
 @param clazz
 @return boolean type value]]>
      </doc>
    </method>
    <method name="shouldGenerate" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Given a job configuration file, this checks to see
 if the default value has been overriden.
 @param conf
 @return boolean type value]]>
      </doc>
    </method>
    <field name="UDF" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This context is used in UDF code. Currently, this is only used for
 the inputs to UDF's.]]>
      </doc>
    </field>
    <field name="FOREACH" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This context is for POForEach. This will use the expected output of a ForEach
 to return a typed Tuple.]]>
      </doc>
    </field>
    <field name="FR_JOIN" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This context controls whether or not SchemaTuples will be used in FR joins.
 Currently, they will be used in the HashMap that FR Joins construct.]]>
      </doc>
    </field>
    <field name="MERGE_JOIN" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This context controls whether or not SchemaTuples will be used in merge joins.]]>
      </doc>
    </field>
    <field name="FORCE_LOAD" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[All registered Schemas will also be registered in one additional context.
 This context will allow users to "force" the load of a SchemaTupleFactory
 if one is present in any context.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[The GenContext mechanism provides a level of control in where SchemaTupleFactories
 are used. By attaching a GenContext enum type to the registration of a Schema,
 the code can express the intent of where a SchemaTupleFactory is intended to be used.
 In this way, if a load func and a join both involve Tuples of the same Schema, it's
 possible to use SchemaTupleFactories in one but not in the other.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SchemaTupleClassGenerator.GenContext -->
  <!-- start interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateForceLoad -->
  <interface name="SchemaTupleClassGenerator.GenContext.GenerateForceLoad"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
  </interface>
  <!-- end interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateForceLoad -->
  <!-- start interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateForeach -->
  <interface name="SchemaTupleClassGenerator.GenContext.GenerateForeach"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
  </interface>
  <!-- end interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateForeach -->
  <!-- start interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateFrJoin -->
  <interface name="SchemaTupleClassGenerator.GenContext.GenerateFrJoin"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
  </interface>
  <!-- end interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateFrJoin -->
  <!-- start interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateMergeJoin -->
  <interface name="SchemaTupleClassGenerator.GenContext.GenerateMergeJoin"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
  </interface>
  <!-- end interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateMergeJoin -->
  <!-- start interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateUdf -->
  <interface name="SchemaTupleClassGenerator.GenContext.GenerateUdf"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[These annotations are used to mark a given SchemaTuple with
 the context in which is was intended to be generated.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.SchemaTupleClassGenerator.GenContext.GenerateUdf -->
  <!-- start class org.apache.pig.data.SchemaTupleFactory -->
  <class name="SchemaTupleFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TupleMaker"/>
    <constructor name="SchemaTupleFactory" type="java.lang.Class, org.apache.pig.data.SchemaTuple.SchemaTupleQuickGenerator"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="isGeneratable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This method inspects a Schema to see whether or
 not a SchemaTuple implementation can be generated
 for the types present. Currently, bags and maps
 are not supported.
 @param   s as Schema
 @return  boolean type value, true if it is generatable]]>
      </doc>
    </method>
    <method name="newTuple" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="newTuple" return="org.apache.pig.data.SchemaTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="size" type="int"/>
    </method>
    <method name="tupleClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isFixedSize" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInstance" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="id" type="int"/>
      <doc>
      <![CDATA[This method is the publicly facing method which returns a SchemaTupleFactory
 which will generate the SchemaTuple associated with the given identifier. This method
 is primarily for internal use in cases where the problem SchemaTuple is known
 based on the identifier associated with it (such as when deserializing).
 @param   id as int, means identifier
 @return  SchemaTupleFactory which will return SchemaTuple's of the given identifier]]>
      </doc>
    </method>
    <method name="getInstance" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="isAppendable" type="boolean"/>
      <param name="context" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"/>
      <doc>
      <![CDATA[This method is the publicly facing method which returns a SchemaTupleFactory
 which will generate SchemaTuples of the given Schema. Note that this method
 returns null if such a given SchemaTupleFactory does not exist, instead of
 throwing an error. The GenContext is used to specify the context in which we
 are requesting a SchemaTupleFactory. This is necessary so that the use
 of SchemaTuple can be controlled -- it is possible that someone wants a
 factory that generates code in the context of joins, but wants to disable such
 use for udfs.
 @param   s          the Schema generated
 @param   isAppendable    whether or not the SchemaTuple should be appendable
 @param   context         the context in which we want a SchemaTupleFactory
 @return  SchemaTupleFactory which will return SchemaTuple's of the desired Schema]]>
      </doc>
    </method>
    <method name="getInstance" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="isAppendable" type="boolean"/>
    </method>
    <method name="getInstance" return="org.apache.pig.data.SchemaTupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[This is an implementation of TupleFactory that will instantiate
 SchemaTuple's. This class has nothing to do with the actual generation
 of code, and instead simply encapsulates the classes which allow
 for efficiently creating SchemaTuples.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SchemaTupleFactory -->
  <!-- start class org.apache.pig.data.SchemaTupleFrontend -->
  <class name="SchemaTupleFrontend" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaTupleFrontend"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This allows the frontend/backend process to be repeated if on the same
 JVM (as in testing).]]>
      </doc>
    </method>
    <method name="registerToGenerateIfPossible" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="udfSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="isAppendable" type="boolean"/>
      <param name="context" type="org.apache.pig.data.SchemaTupleClassGenerator.GenContext"/>
      <doc>
      <![CDATA[This method "registers" a Schema to be generated. It allows a portions of the code
 to register a Schema for generation without knowing whether code generation is enabled.
 A unique ID will be passed back that can be used internally to refer to generated SchemaTuples
 (such as in the case of serialization and deserialization). The context is necessary to allow
 the client to restrict where generated code can be used.
 @param   udfSchema       This is the Schema of a Tuple that we will potentially generate
 @param   isAppendable    This specifies whether or not we want the SchemaTuple to be appendable
 @param   context         This is the context in which users should be able to access the SchemaTuple
 @return  identifier]]>
      </doc>
    </method>
    <method name="copyAllGeneratedToDistributedCache"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[This must be called when the code has been generated and the generated code needs to be shipped
 to the cluster, so that it may be used by the mappers and reducers.
 @param pigContext
 @param conf]]>
      </doc>
    </method>
    <method name="lazyReset"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[This is a method which caches a PigContext object that has had
 relevant key values set by SchemaTupleBackend. This is necessary
 because in some cases, multiple cycles of jobs might run in the JVM,
 but the PigContext object may be shared, so we want to make sure to
 undo any changes we have made to it.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class is to be used at job creation time. It provides the API that lets code
 register Schemas with pig to be generated. It is necessary to register these Schemas
 and reducers.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SchemaTupleFrontend -->
  <!-- start class org.apache.pig.data.SelfSpillBag -->
  <class name="SelfSpillBag" extends="org.apache.pig.data.DefaultAbstractBag"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SelfSpillBag" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SelfSpillBag" type="int, float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="memLimit" type="org.apache.pig.data.SelfSpillBag.MemoryLimits"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Class to hold code common to self spilling bags such as InternalCachedBag]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SelfSpillBag -->
  <!-- start class org.apache.pig.data.SelfSpillBag.MemoryLimits -->
  <class name="SelfSpillBag.MemoryLimits" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SelfSpillBag.MemoryLimits" type="int, float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param bagCount
 @param percent]]>
      </doc>
    </constructor>
    <method name="getCacheLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Computes the number of objects that would fit into memory based on
 the memory limit and average size of each object.
 
 @return number of objects limit]]>
      </doc>
    </method>
    <method name="addNewObjSize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="memorySize" type="long"/>
      <doc>
      <![CDATA[Submit information about size of another object
 
 @param memorySize]]>
      </doc>
    </method>
    <method name="getNumObjectsSizeAdded" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the size of]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class helps to compute the number of entries that should be held in
 memory so that memory consumption is limited. The memory limit is
 computed using the percentage of max memory that the user of this class
 is allowed to use, and number of similar objects that share this limit.
 The number of objects that will fit into this memory limit is computed
 using the average memory size of the objects whose size is given to this
 class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SelfSpillBag.MemoryLimits -->
  <!-- start class org.apache.pig.data.SingleTupleBag -->
  <class name="SingleTupleBag" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="SingleTupleBag" type="org.apache.pig.data.Tuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Write the bag into a string.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A simple performant implementation of the DataBag
 interface which only holds a single tuple. This will
 be used from POPreCombinerLocalRearrange and wherever else
 a single Tuple non-serializable DataBag is required.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SingleTupleBag -->
  <!-- start class org.apache.pig.data.SizeUtil -->
  <class name="SizeUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SizeUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPigObjMemSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="getMapEntrySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="value" type="java.lang.Object"/>
    </method>
    <method name="roundToEight" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="long"/>
      <doc>
      <![CDATA[Memory size of objects are rounded to multiple of 8 bytes

 @param i
 @return i rounded to a equal of higher multiple of 8]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Utility functions for estimating size of objects of pig types]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SizeUtil -->
  <!-- start class org.apache.pig.data.SortedDataBag -->
  <class name="SortedDataBag" extends="org.apache.pig.data.DefaultAbstractBag"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SortedDataBag" type="java.util.Comparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param comp Comparator to use to do the sorting.  If null,
 DefaultComparator will be used.]]>
      </doc>
    </constructor>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[An ordered collection of Tuples (possibly) with multiples.  Data is
 stored unsorted as it comes in, and only sorted when it is time to dump
 it to a file or when the first iterator is requested.  Experementation
 found this to be the faster than storing it sorted to begin with.
 
 We allow a user defined comparator, but provide a default comparator in
 cases where the user doesn't specify one.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SortedDataBag -->
  <!-- start class org.apache.pig.data.SortedSpillBag -->
  <class name="SortedSpillBag" extends="org.apache.pig.data.SelfSpillBag"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="proactive_spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="comp" type="java.util.Comparator"/>
      <doc>
      <![CDATA[Sort contents of mContents and write them to disk
 @param comp Comparator to sort contents of mContents
 @return number of tuples spilled]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Common functionality for proactively spilling bags that need to keep the data
 sorted.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.SortedSpillBag -->
  <!-- start class org.apache.pig.data.TargetedTuple -->
  <class name="TargetedTuple" extends="org.apache.pig.data.AbstractTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TargetedTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TargetedTuple" type="org.apache.pig.data.Tuple, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTargetOps" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTargetOps"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="targetOps" type="java.util.List"/>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="targetOps" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="isNull" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A tuple composed with the operators to which
 it needs be attached]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.TargetedTuple -->
  <!-- start class org.apache.pig.data.TimestampedTuple -->
  <class name="TimestampedTuple" extends="org.apache.pig.data.DefaultTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TimestampedTuple" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TimestampedTuple" type="java.lang.String, java.lang.String, int, java.text.SimpleDateFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTimeStamp" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTimeStamp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="double"/>
    </method>
    <method name="isHeartBeat" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setHeartBeat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="h" type="boolean"/>
    </method>
    <field name="timestamp" type="double"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="heartbeat" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.data.TimestampedTuple -->
  <!-- start interface org.apache.pig.data.Tuple -->
  <interface name="Tuple"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Iterable"/>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Make this tuple reference the contents of another.  This method does not copy
 the underlying data.   It maintains references to the data from the original
 tuple (and possibly even to the data structure holding the data).
 @param t Tuple to reference.]]>
      </doc>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find the size of the tuple.  Used to be called arity().
 @return number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Find out if a given field is null.
 @param fieldNum Number of field to check for null.
 @return true if the field is null, false otherwise.
 @throws ExecException if the field number given is greater
 than or equal to the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Find the type of a given field.
 @param fieldNum Number of field to get the type for.
 @return type, encoded as a byte value.  The values are defined in
 {@link DataType}.  If the field is null, then DataType.UNKNOWN
 will be returned.
 @throws ExecException if the field number is greater than or equal to
 the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Get the value in a given field.
 @param fieldNum Number of the field to get the value for.
 @return value, as an Object.
 @throws ExecException if the field number is greater than or equal to
 the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all of the fields in the tuple as a list.
 @return a list of objects containing the fields of the tuple
 in order.]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Set the value in a given field.  This should not be called unless
 the tuple was constructed by {@link TupleFactory#newTuple(int)} with an
 argument greater than the fieldNum being passed here.  This call will
 not automatically expand the tuple size.  That is if you called 
 {@link TupleFactory#newTuple(int)} with a 2, it is okay to call
 this function with a 1, but not with a 2 or greater.
 @param fieldNum Number of the field to set the value for.
 @param val Object to put in the indicated field.
 @throws ExecException if the field number is greater than or equal to
 the number of fields in the tuple.]]>
      </doc>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
      <doc>
      <![CDATA[Append a field to a tuple.  This method is not efficient as it may
 force copying of existing data in order to grow the data structure.
 Whenever possible you should construct your Tuple with 
 {@link TupleFactory#newTuple(int)} and then fill in the values with 
 {@link #set(int, Object)}, rather
 than construct it with {@link TupleFactory#newTuple()} and append values.
 @param val Object to append to the tuple.]]>
      </doc>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Determine the size of tuple in memory.  This is used by data bags
 to determine their memory size.  This need not be exact, but it
 should be a decent estimation.
 @return estimated memory size, in bytes.]]>
      </doc>
    </method>
    <method name="toDelimitedString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="delim" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Write a tuple of values into a string. The output will be the result
 of calling toString on each of the values in the tuple.
 @param delim Delimiter to use in the string.
 @return A string containing the tuple.
 @throws ExecException this is never thrown. This only exists for backwards compatability reasons.]]>
      </doc>
    </method>
    <field name="NULL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Marker for indicating whether the value this object holds
 is a null]]>
      </doc>
    </field>
    <field name="NOTNULL" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Marker for indicating whether the value this object holds
 is not a null]]>
      </doc>
    </field>
    <doc>
    <![CDATA[An ordered list of Data.  A tuple has fields, numbered 0 through
 (number of fields - 1).  The entry in the field can be any datatype,
 or it can be null.
 <p>
 Tuples are constructed only by a {@link TupleFactory}.  A
 {@link DefaultTupleFactory}
 is provided by the system.  If users wish to use their own type of
 Tuple, they should also provide an implementation of {@link TupleFactory} to
 construct their types of Tuples.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.Tuple -->
  <!-- start class org.apache.pig.data.TupleFactory -->
  <class name="TupleFactory" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.TupleMaker"/>
    <constructor name="TupleFactory"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="getInstance" return="org.apache.pig.data.TupleFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a reference to the singleton factory.
 @return The TupleFactory to use to construct tuples.]]>
      </doc>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create an empty tuple.  This should be used as infrequently as
 possible, use newTuple(int) instead.
 @return Empty new tuple.]]>
      </doc>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="size" type="int"/>
      <doc>
      <![CDATA[Create a tuple with size fields.  Whenever possible this is preferred
 over the null constructor, as the constructor can preallocate the
 size of the container holding the fields.  Once this is called, it
 is legal to call Tuple.set(x, object), where x &lt; size.
 @param size Number of fields in the tuple.
 @return Tuple with size fields]]>
      </doc>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="java.util.List"/>
      <doc>
      <![CDATA[Create a tuple from the provided list of objects.  The underlying list
 will be copied.
 @param c List of objects to use as the fields of the tuple.
 @return A tuple with the list objects as its fields]]>
      </doc>
    </method>
    <method name="newTupleNoCopy" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="list" type="java.util.List"/>
      <doc>
      <![CDATA[Create a tuple from a provided list of objects, keeping the provided
 list.  The new tuple will take over ownership of the provided list.
 @param list List of objects that will become the fields of the tuple.
 @return A tuple with the list objects as its fields]]>
      </doc>
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="datum" type="java.lang.Object"/>
      <doc>
      <![CDATA[Create a tuple with a single element.  This is useful because of
 the fact that bags (currently) only take tuples, we often end up
 sticking a single element in a tuple in order to put it in a bag.
 @param datum Datum to put in the tuple.
 @return A tuple with one field]]>
      </doc>
    </method>
    <method name="tupleClass" return="java.lang.Class"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the actual class representing a tuple that the implementing
 factory will be returning.  This is needed because Hadoop needs
 to know the exact class we will be using for input and output.
 @return Class that implements tuple.]]>
      </doc>
    </method>
    <method name="resetSelf"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Provided for testing purposes only.  This function should never be
 called by anybody but the unit tests.]]>
      </doc>
    </method>
    <method name="tupleRawComparatorClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the actual class implementing the raw comparator for tuples
 that the factory will be returning. Ovverride this to allow Hadoop to
 speed up tuple sorting. The actual returned class should know the
 serialization details for the tuple. The default implementation 
 (PigTupleDefaultRawComparator) will serialize the data before comparison
 @return Class that implements tuple raw comparator.]]>
      </doc>
    </method>
    <method name="isFixedSize" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method is used to inspect whether the Tuples created by this factory
 will be of a fixed size when they are created. In practical terms, this means
 whether they support append or not.
 @return where the Tuple is fixed or not]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A factory to construct tuples.  This class is abstract so that users can
 override the tuple factory if they desire to provide their own that
 returns their implementation of a tuple.  If the property
 pig.data.tuple.factory.name is set to a class name and
 pig.data.tuple.factory.jar is set to a URL pointing to a jar that
 contains the above named class, then {@link #getInstance()} will create a
 an instance of the named class using the indicated jar.  Otherwise, it
 will create an instance of {@link DefaultTupleFactory}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.TupleFactory -->
  <!-- start interface org.apache.pig.data.TupleMaker -->
  <interface name="TupleMaker"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="newTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="size" type="int"/>
    </method>
  </interface>
  <!-- end interface org.apache.pig.data.TupleMaker -->
  <!-- start interface org.apache.pig.data.TupleRawComparator -->
  <interface name="TupleRawComparator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.RawComparator"/>
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <method name="hasComparedTupleNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Checks if one of the compared tuples had a null field. This method is meaningful only when
 {@link #compare(byte[],int,int,byte[],int,int)} has returned a zero value (i.e. tuples are determined to be
 equal).
 
 @return true if one of the compared tuples had a null field, false otherwise.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This interface is intended to compare Tuples. The semantics of Tuple comparison must take into account null values in
 different ways. According to SQL semantics nulls are not equal. But for other Pig/Latin statements nulls must be
 grouped together. This interface allows to check if there are null fields in the tuples compared using this
 comparator. This method is meaningful only when the tuples are determined to be equal by the
 {@link #compare(byte[],int,int,byte[],int,int)} method.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.TupleRawComparator -->
  <!-- start interface org.apache.pig.data.TypeAwareTuple -->
  <interface name="TypeAwareTuple"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.Tuple"/>
    <method name="setInt"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setFloat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="float"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDouble"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="double"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setLong"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="long"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="boolean"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="java.math.BigInteger"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="java.math.BigDecimal"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setBytes"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="byte[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setTuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="org.apache.pig.data.DataBag"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="java.util.Map"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setDateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <param name="val" type="org.joda.time.DateTime"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getFloat" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getDouble" return="double"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getBoolean" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getBigInteger" return="java.math.BigInteger"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getBigDecimal" return="java.math.BigDecimal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getDataBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getDateTime" return="org.joda.time.DateTime"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="idx" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="FieldIsNullException" type="org.apache.pig.data.FieldIsNullException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </interface>
  <!-- end interface org.apache.pig.data.TypeAwareTuple -->
  <!-- start class org.apache.pig.data.UnlimitedNullTuple -->
  <class name="UnlimitedNullTuple" extends="org.apache.pig.data.AbstractTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UnlimitedNullTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.UnlimitedNullTuple -->
  <!-- start class org.apache.pig.data.WritableByteArray -->
  <class name="WritableByteArray" extends="java.io.ByteArrayOutputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="WritableByteArray"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="WritableByteArray" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="WritableByteArray" type="byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getData" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the current contents of the buffer.
 Data is only valid to {@link #getLength()}.
 @return contents of the buffer]]>
      </doc>
    </method>
    <method name="getLength" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the length of the valid data currently in the buffer
 @return length of valid data]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A reusable byte buffer implementation

 <p>This saves memory over creating a new byte[] and
 ByteArrayOutputStream each time data is written.

 <p>Typical usage is something like the following:<pre>

 WritableByteArray buffer = new WritableByteArray();
 while (... loop condition ...) {
   buffer.reset();
   ... write to buffer ...
   byte[] data = buffer.getData();
   int dataLength = buffer.getLength();
   ... write data to its ultimate destination ...
 }
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.WritableByteArray -->
  <doc>
  <![CDATA[<p>
This package contains implementations of Pig specific data types as well as
support functions for reading, writing, and using all Pig data types.
<p>
Whenever possible, Pig utilizes Java provided data types.  These include
Integer, Long, Float, Double, Boolean, String, and Map.  Tuple, Bag, and
DataByteArray are implemented in this package.  

<h2> Design </h2>
<p>
The choice was made to utilize Java provided types for two main reasons.  One,
it minimizes the burden on UDF developers, as they will have full access to
these types with no need to convert to and from Pig specific types.  Two,
maintenance costs will be lower as there is no need to implement and maintain
Pig specific data classes.  The drawback is that the only common parent of all
these types is Object.  Thus Pig is often required to treat its data objects
as Objects and then implement static methods to manipulate these Objects,
rather than being able to define a PigDatum class with common funcitons.
<p>
Three data types were implemented as Pig specific classes: 
{@link org.apache.pig.data.DataByteArray}, {@link org.apache.pig.data.Tuple},
and {@link org.apache.pig.data.DataBag}.  
<p>
DataByteArray represents an array of bytes, with no interpretation of those
bytes provided or assumed.  This could have been represented as byte[], but a
separate class was constructed to provide common functions needed to
manipulate these objects.
<p>
Tuple represents an ordered collection of data elements.  Every field in a
tuple can contain any Pig data type.  Tuple is presented as an interface to
allow differing implementations in cases where users have unique
representations of their data that they wish to preserve in their in memory
representations.  The {@link org.apache.pig.data.TupleFactory} is an
abstract class, to enable a user who has defined his own tuples to provide a
factory that creates those tuples.  Default implementations of Tuple and
TupleFactory are provided and used by default. 
<p>
DataBag represents a collection of Tuples.  DataBags can be of default type
(no extra features), sorted (tuples are sorted according to a provided
comparator function), or distinct (no duplicate tuples).  As with Tuple,
DataBag is presented as an interface, and 
{@link org.apache.pig.data.BagFactory} is an abstract class.  Default implementations of DataBag,
BagFactory, and all three types of bags are provided.]]>
  </doc>
</package>
<package name="org.apache.pig.data.utils">
  <!-- start class org.apache.pig.data.utils.BytesHelper -->
  <class name="BytesHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BytesHelper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getBitByPos" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="byt" type="byte"/>
      <param name="pos" type="int"/>
    </method>
    <method name="setBitByPos" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="byt" type="byte"/>
      <param name="bool" type="boolean"/>
      <param name="pos" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.utils.BytesHelper -->
  <!-- start class org.apache.pig.data.utils.MethodHelper -->
  <class name="MethodHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="isNotImplementedAnnotationPresent" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.lang.reflect.Method"/>
      <param name="clazz" type="java.lang.Class"/>
      <doc>
      <![CDATA[Given a method and a class, this will return true if the method is declared in the class,
 and if it is, if the NotImplemented annotation is present. This method will recurse through
 the parent class hierarchy until it finds the first instance of the method at hand, and then it will
 return accordingly.]]>
      </doc>
    </method>
    <method name="methodNotImplemented" return="java.lang.RuntimeException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="methodSignatureEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m1" type="java.lang.reflect.Method"/>
      <param name="m2" type="java.lang.reflect.Method"/>
      <doc>
      <![CDATA[This implements a stripped down version of method equality.
 method.equals(method) checks to see whether the declaring classes
 are equal, which we do not want. Instead, we just want to know
 if the methods are equal assuming that they come from the same
 class hierarchy (ie generated code which extends SchemaTuple).]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.data.utils.MethodHelper -->
  <!-- start interface org.apache.pig.data.utils.MethodHelper.NotImplemented -->
  <interface name="MethodHelper.NotImplemented"    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <doc>
    <![CDATA[This is an annotation which allows a class to signal that while it is "implementing"
 a method because it is specified by a parent class or interface, that the implementation
 just throws an exception, because it is not implemented.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.data.utils.MethodHelper.NotImplemented -->
  <!-- start class org.apache.pig.data.utils.SedesHelper -->
  <class name="SedesHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SedesHelper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="writeBytes"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="buf" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="writeChararray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="s" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readChararray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="writeGenericTuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readGenericTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="type" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="writeBooleanArray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="boolean[]"/>
      <param name="extra" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="writeBooleanArray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <param name="v" type="boolean[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readBooleanArray" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <param name="size" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.data.utils.SedesHelper -->
  <!-- start class org.apache.pig.data.utils.SedesHelper.Varint -->
  <class name="SedesHelper.Varint" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="writeSignedVarLong"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="long"/>
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Encodes a value using the variable-length encoding from
 <a href="http://code.google.com/apis/protocolbuffers/docs/encoding.html">
 Google Protocol Buffers</a>. It uses zig-zag encoding to efficiently
 encode signed values. If values are known to be nonnegative,
 {@link #writeUnsignedVarLong(long, DataOutput)} should be used.

 @param value value to encode
 @param out to write bytes to
 @throws IOException if {@link DataOutput} throws {@link IOException}]]>
      </doc>
    </method>
    <method name="writeUnsignedVarLong"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="long"/>
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Encodes a value using the variable-length encoding from
 <a href="http://code.google.com/apis/protocolbuffers/docs/encoding.html">
 Google Protocol Buffers</a>. Zig-zag is not used, so input must not be negative.
 If values can be negative, use {@link #writeSignedVarLong(long, DataOutput)}
 instead. This method treats negative input as like a large unsigned value.

 @param value value to encode
 @param out to write bytes to
 @throws IOException if {@link DataOutput} throws {@link IOException}]]>
      </doc>
    </method>
    <method name="writeSignedVarInt"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="int"/>
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@see #writeSignedVarLong(long, DataOutput)]]>
      </doc>
    </method>
    <method name="writeUnsignedVarInt"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="int"/>
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@see #writeUnsignedVarLong(long, DataOutput)]]>
      </doc>
    </method>
    <method name="readSignedVarLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param in to read bytes from
 @return decode value
 @throws IOException if {@link DataInput} throws {@link IOException}
 @throws IllegalArgumentException if variable-length value does not terminate
  after 9 bytes have been read
 @see #writeSignedVarLong(long, DataOutput)]]>
      </doc>
    </method>
    <method name="readUnsignedVarLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param in to read bytes from
 @return decode value
 @throws IOException if {@link DataInput} throws {@link IOException}
 @throws IllegalArgumentException if variable-length value does not terminate
  after 9 bytes have been read
 @see #writeUnsignedVarLong(long, DataOutput)]]>
      </doc>
    </method>
    <method name="readSignedVarInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@throws IllegalArgumentException if variable-length value does not terminate
  after 5 bytes have been read
 @throws IOException if {@link DataInput} throws {@link IOException}
 @see #readSignedVarLong(DataInput)]]>
      </doc>
    </method>
    <method name="readUnsignedVarInt" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@throws IllegalArgumentException if variable-length value does not terminate
  after 5 bytes have been read
 @throws IOException if {@link DataInput} throws {@link IOException}
 @see #readUnsignedVarLong(DataInput)]]>
      </doc>
    </method>
    <doc>
    <![CDATA[<p>Encodes signed and unsigned values using a common variable-length
 scheme, found for example in
 <a href="http://code.google.com/apis/protocolbuffers/docs/encoding.html">
 Google's Protocol Buffers</a>. It uses fewer bytes to encode smaller values,
 but will use slightly more bytes to encode large values.</p>

 <p>Signed values are further encoded using so-called zig-zag encoding
 in order to make them "compatible" with variable-length encoding.</p>

 <p>This is taken from mahout-core, and is included to avoid having to pull
 in the entirety of Mahout.</p>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.utils.SedesHelper.Varint -->
  <!-- start class org.apache.pig.data.utils.StructuresHelper -->
  <class name="StructuresHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
  </class>
  <!-- end class org.apache.pig.data.utils.StructuresHelper -->
  <!-- start class org.apache.pig.data.utils.StructuresHelper.Pair -->
  <class name="StructuresHelper.Pair" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StructuresHelper.Pair" type="java.lang.Object, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFirst" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSecond" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="make" return="org.apache.pig.data.utils.StructuresHelper.Pair"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="java.lang.Object"/>
      <param name="t2" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This is a helper class which makes it easy to have pairs of values,
 and to use them as keys and values in Maps.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.utils.StructuresHelper.Pair -->
  <!-- start class org.apache.pig.data.utils.StructuresHelper.SchemaKey -->
  <class name="StructuresHelper.SchemaKey" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StructuresHelper.SchemaKey" type="org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The hashcode logic is taken from the Schema class, including how fields
 are handled. The difference is that aliases are ignored.]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="get" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This encapsulates a Schema and allows it to be used in such a way that
 any aliases are ignored in equality.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.data.utils.StructuresHelper.SchemaKey -->
  <!-- start class org.apache.pig.data.utils.StructuresHelper.Triple -->
  <class name="StructuresHelper.Triple" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StructuresHelper.Triple" type="java.lang.Object, java.lang.Object, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFirst" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSecond" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getThird" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="make" return="org.apache.pig.data.utils.StructuresHelper.Triple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="java.lang.Object"/>
      <param name="t2" type="java.lang.Object"/>
      <param name="t3" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.data.utils.StructuresHelper.Triple -->
</package>
<package name="org.apache.pig.impl">
  <!-- start class org.apache.pig.impl.PigContext -->
  <class name="PigContext" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigContext" type="org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PigException" type="org.apache.pig.PigException"/>
    </constructor>
    <constructor name="PigContext" type="java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="PigException" type="org.apache.pig.PigException"/>
    </constructor>
    <constructor name="PigContext" type="org.apache.pig.ExecType, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigContext" type="org.apache.pig.ExecType, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getParams" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setParams"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="params" type="java.util.List"/>
    </method>
    <method name="getParamFiles" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setParamFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="paramFiles" type="java.util.List"/>
    </method>
    <method name="getPreprocessorContext" return="org.apache.pig.tools.parameters.PreprocessorContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getParamVal" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="initializeImportList"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="importListCommandLineProperties" type="java.lang.String"/>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="setJobtrackerLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newLocation" type="java.lang.String"/>
    </method>
    <method name="addScriptFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <doc>
      <![CDATA[calls: addScriptFile(path, new File(path)), ensuring that a given path is
 added to the jar at most once.
 @param path]]>
      </doc>
    </method>
    <method name="addScriptFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="path" type="java.lang.String"/>
      <doc>
      <![CDATA[this method adds script files that must be added to the shipped jar
 named differently from their local fs path.
 @param name  name in the jar
 @param path  path on the local fs]]>
      </doc>
    </method>
    <method name="addScriptJar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
    </method>
    <method name="addJar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="MalformedURLException" type="java.net.MalformedURLException"/>
    </method>
    <method name="addJar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="resource" type="java.net.URL"/>
      <param name="originalPath" type="java.lang.String"/>
      <exception name="MalformedURLException" type="java.net.MalformedURLException"/>
    </method>
    <method name="hasJar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
    </method>
    <method name="markJarAsPredeployed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <doc>
      <![CDATA[Adds the specified path to the predeployed jars list. These jars will
 never be included in generated job jar.
 <p>
 This can be called for jars that are pre-installed on the Hadoop
 cluster to reduce the size of the job jar.]]>
      </doc>
    </method>
    <method name="doParamSubstitution" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <param name="params" type="java.util.List"/>
      <param name="paramFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="doParamSubstitution" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="java.io.BufferedReader"/>
      <param name="params" type="java.util.List"/>
      <param name="paramFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="doParamSubstitution" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="java.io.BufferedReader"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="doParamSubstitutionOutputToFile" return="java.io.BufferedReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="java.io.BufferedReader"/>
      <param name="outputFilePath" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="paramFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="doParamSubstitutionOutputToFile" return="java.io.BufferedReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="java.io.BufferedReader"/>
      <param name="outputFilePath" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptFiles" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[script files as name/file pairs to be added to the job jar
 @return name/file pairs]]>
      </doc>
    </method>
    <method name="rename"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldName" type="java.lang.String"/>
      <param name="newName" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="copy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <param name="localDst" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getExecutionEngine" return="org.apache.pig.backend.executionengine.ExecutionEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDfs" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLfs" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFs" return="org.apache.pig.backend.datastorage.DataStorage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Provides configuration information.

 @return - information about the configuration used to connect to
         execution engine]]>
      </doc>
    </method>
    <method name="getConf" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="use {@link #getProperties()} instead">
      <doc>
      <![CDATA[@deprecated use {@link #getProperties()} instead]]>
      </doc>
    </method>
    <method name="getLastAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLastAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="java.lang.String"/>
    </method>
    <method name="registerFunction"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="function" type="java.lang.String"/>
      <param name="functionSpec" type="org.apache.pig.FuncSpec"/>
      <doc>
      <![CDATA[Defines an alias for the given function spec. This
 is useful for functions that require arguments to the
 constructor.

 @param function - the new function alias to define.
 @param functionSpec - the FuncSpec object representing the name of
 the function class and any arguments to constructor.]]>
      </doc>
    </method>
    <method name="registerStreamCmd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="command" type="org.apache.pig.impl.streaming.StreamingCommand"/>
      <doc>
      <![CDATA[Defines an alias for the given streaming command.

 This is useful for complicated streaming command specs.

 @param alias - the new command alias to define.
 @param command - the command]]>
      </doc>
    </method>
    <method name="getExecType" return="org.apache.pig.ExecType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the type of execution currently in effect.

 @return current execution type]]>
      </doc>
    </method>
    <method name="createCl" return="java.lang.ClassLoader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jarFile" type="java.lang.String"/>
      <exception name="MalformedURLException" type="java.net.MalformedURLException"/>
      <doc>
      <![CDATA[Creates a Classloader based on the passed jarFile and any extra jar files.

 @param jarFile
            the jar file to be part of the newly created Classloader. This jar file plus any
            jars in the extraJars list will constitute the classpath.
 @return the new Classloader.
 @throws MalformedURLException]]>
      </doc>
    </method>
    <method name="resolveClassName" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="instantiateObjectFromParams" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="classParamKey" type="java.lang.String"/>
      <param name="argParamKey" type="java.lang.String"/>
      <param name="clazz" type="java.lang.Class"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A common Pig pattern for initializing objects via system properties is to support passing
 something like this on the command line:
 <code>-Dpig.notification.listener=MyClass</code>
 <code>-Dpig.notification.listener.arg=myConstructorStringArg</code>

 This method will properly initialize the class with the args, if they exist.
 @param conf
 @param classParamKey the property used to identify the class
 @param argParamKey the property used to identify the class args
 @param clazz The class that is expected
 @return <T> T]]>
      </doc>
    </method>
    <method name="instantiateFuncFromSpec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="org.apache.pig.FuncSpec"/>
    </method>
    <method name="instantiateFuncFromSpec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="java.lang.String"/>
    </method>
    <method name="getClassForAlias" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="instantiateFuncFromAlias" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCommandForAlias" return="org.apache.pig.impl.streaming.StreamingCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <doc>
      <![CDATA[Get the {@link StreamingCommand} for the given alias.

 @param alias the alias for the <code>StreamingCommand</code>
 @return <code>StreamingCommand</code> for the alias]]>
      </doc>
    </method>
    <method name="setExecType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="execType" type="org.apache.pig.ExecType"/>
    </method>
    <method name="createExecutableManager" return="org.apache.pig.impl.streaming.ExecutableManager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Create a new {@link ExecutableManager} depending on the ExecType.

 @return a new {@link ExecutableManager} depending on the ExecType
 @throws ExecException]]>
      </doc>
    </method>
    <method name="getFuncSpecFromAlias" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="addPathToSkip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <doc>
      <![CDATA[Add a path to be skipped while automatically shipping binaries for
 streaming.

 @param path path to be skipped]]>
      </doc>
    </method>
    <method name="getPathsToSkip" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get paths which are to skipped while automatically shipping binaries for
 streaming.

 @return paths which are to skipped while automatically shipping binaries
         for streaming]]>
      </doc>
    </method>
    <method name="getErrorSource" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Check the execution mode and return the appropriate error source

 @return error source]]>
      </doc>
    </method>
    <method name="getPackageImportList" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPackageImportList"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="list" type="java.util.ArrayList"/>
    </method>
    <method name="setLog4jProperties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="java.util.Properties"/>
    </method>
    <method name="getLog4jProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDefaultLogLevel" return="org.apache.log4j.Level"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setDefaultLogLevel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="org.apache.log4j.Level"/>
    </method>
    <method name="getClassLoader" return="java.lang.ClassLoader"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setClassLoader"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cl" type="java.lang.ClassLoader"/>
    </method>
    <field name="JOB_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_NAME_PREFIX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_PRIORITY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_CMD_ARGS_REMAINDERS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="extraJars" type="java.util.List"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="scriptJars" type="java.util.List"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="predeployedJars" type="java.util.Vector"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="scriptFiles" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="scriptingUDFs" type="java.util.Map"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="macros" type="java.util.Map"
      transient="true" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="defaultParallel" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="inExplain" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="inDumpSchema" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="inIllustrator" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.PigContext -->
  <!-- start class org.apache.pig.impl.PigImplConstants -->
  <class name="PigImplConstants" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <field name="PIG_OPTIMIZER_RULES_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[{@value} is a pig-internal properties key for serializing
 the set of disabled optimizer rules.]]>
      </doc>
    </field>
    <field name="PIG_EXECTYPE_MODE_LOCAL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used by pig to indicate that current job is running in local mode (local/tez_local)
 ie. ExecType.isLocal() is true]]>
      </doc>
    </field>
    <field name="CONVERTED_TO_LOCAL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used by pig to indicate that current job has been converted to run in local mode]]>
      </doc>
    </field>
    <field name="CONVERTED_TO_FETCH" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used by pig to indicate that current job has been converted to run in fetch mode]]>
      </doc>
    </field>
    <field name="PIG_SPLIT_INDEX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Indicate the split index of the task. Used by merge cogroup]]>
      </doc>
    </field>
    <field name="REDUCER_DEFAULT_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Parallelism for the reducer]]>
      </doc>
    </field>
    <field name="REDUCER_REQUESTED_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCER_ESTIMATED_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_CROSS_PARALLELISM" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Parallelism to be used for CROSS operation by GFCross UDF]]>
      </doc>
    </field>
    <field name="PIG_CONTEXT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Pig context]]>
      </doc>
    </field>
    <field name="PIG_LOG4J_PROPERTIES" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Pig log4j properties]]>
      </doc>
    </field>
    <field name="PIG_AUDIT_ID" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A unique id for a Pig session used as callerId for underlining component]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Private, internal constants for use by Pig itself. Please see
 {@link org.apache.pig.PigConstants} if looking for public constants.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.PigImplConstants -->
</package>
<package name="org.apache.pig.impl.builtin">
  <!-- start class org.apache.pig.impl.builtin.DefaultIndexableLoader -->
  <class name="DefaultIndexableLoader" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.IndexableLoadFunc"/>
    <constructor name="DefaultIndexableLoader" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="seekNear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="keys" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setIndexFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="indexFile" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[Used by MergeJoin . Takes an index on sorted data
 consisting of sorted tuples of the form
 (key1,key2..., position,splitIndex) as input. For key given in seekNear(Tuple)
 finds the splitIndex that can contain the key and initializes ReadToEndLoader
 to read from that splitIndex onwards , in the sequence of splits in the index]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.DefaultIndexableLoader -->
  <!-- start class org.apache.pig.impl.builtin.FindQuantiles -->
  <class name="FindQuantiles" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FindQuantiles"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="FindQuantiles" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[first field in the input tuple is the number of quantiles to generate
 second field is the *sorted* bag of samples]]>
      </doc>
    </method>
    <field name="QUANTILES_LIST" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="WEIGHTED_PARTS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="numQuantiles" type="java.lang.Integer"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="samples" type="org.apache.pig.data.DataBag"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.builtin.FindQuantiles -->
  <!-- start class org.apache.pig.impl.builtin.GetMemNumRows -->
  <class name="GetMemNumRows" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GetMemNumRows"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param  in - input tuple
 @return - tuple having size in memory of this tuple and numRows if this
 is specially marked tuple having number of rows field]]>
      </doc>
    </method>
    <method name="getReturnType" return="java.lang.reflect.Type"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[UDF to get memory size of a tuple and extracts number of rows value from
 special tuple created by PoissonSampleLoader
 It is used by skewed join.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.GetMemNumRows -->
  <!-- start class org.apache.pig.impl.builtin.GFAny -->
  <class name="GFAny" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GFAny"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GFAny" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="defaultNumGroups" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[built-in grouping function; permits system to choose any grouping.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.GFAny -->
  <!-- start class org.apache.pig.impl.builtin.GFCross -->
  <class name="GFCross" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GFCross" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCrossKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.builtin.GFCross -->
  <!-- start class org.apache.pig.impl.builtin.GFReplicate -->
  <class name="GFReplicate" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GFReplicate"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GFReplicate" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.builtin.GFReplicate -->
  <!-- start class org.apache.pig.impl.builtin.IdentityColumn -->
  <class name="IdentityColumn" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IdentityColumn"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[Returns the input, used by DuplicateForEachColumnRewrite
 to rewrite duplicate columns in ForEach. Not intended for 
 external use]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.IdentityColumn -->
  <!-- start class org.apache.pig.impl.builtin.IsFirstReduceOfKey -->
  <class name="IsFirstReduceOfKey" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IsFirstReduceOfKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="tf" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="reducerMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.builtin.IsFirstReduceOfKey -->
  <!-- start class org.apache.pig.impl.builtin.PartitionSkewedKeys -->
  <class name="PartitionSkewedKeys" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionSkewedKeys"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PartitionSkewedKeys" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[first field in the input tuple is the number of reducers

 second field is the *sorted* bag of samples
 this should be called only once]]>
      </doc>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <field name="PARTITION_LIST" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TOTAL_REDUCERS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT_PERCENT_MEMUSAGE" type="float"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="totalReducers_" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Partition reducers for skewed keys. This is used in skewed join during
 sampling process. It figures out how many reducers required to process a
 skewed key without causing spill and allocate this number of reducers to this
 key. This UDF outputs a map which contains 2 keys:

 <li>&quot;totalreducers&quot;: the value is an integer wich indicates the
         number of total reducers for this join job </li>
 <li>&quot;partition.list&quot;: the value is a bag which contains a
 list of tuples with each tuple representing partitions for a skewed key.
 The tuple has format of &lt;join key&gt;,&lt;min index of reducer&gt;,
 &lt;max index of reducer&gt; </li>

 For example, a join job configures 10 reducers, and the sampling process
 finds out 2 skewed keys, &quot;swpv&quot; needs 4 reducers and &quot;swps&quot;
 needs 2 reducers. The output file would be like following:

 {totalreducers=10, partition.list={(swpv,0,3), (swps,4,5)}}

 The name of this file is set into next MR job which does the actual join.
 That job uses this information to partition skewed keys properly]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.PartitionSkewedKeys -->
  <!-- start class org.apache.pig.impl.builtin.PoissonSampleLoader -->
  <class name="PoissonSampleLoader" extends="org.apache.pig.impl.builtin.SampleLoader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PoissonSampleLoader" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="NUMROWS_TUPLE_MARKER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[See "Skewed Join sampler" in http://wiki.apache.org/pig/PigSampler]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.PoissonSampleLoader -->
  <!-- start class org.apache.pig.impl.builtin.RandomSampleLoader -->
  <class name="RandomSampleLoader" extends="org.apache.pig.impl.builtin.SampleLoader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RandomSampleLoader" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Construct with a class of loader to use.
 @param funcSpec func spec of the loader to use.
 @param ns Number of samples per map to collect. 
 Arguments are passed as strings instead of actual types (FuncSpec, int) 
 because FuncSpec only supports string arguments to
 UDF constructors.]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Allocate a buffer for numSamples elements, populate it with the 
 first numSamples tuples, and continue scanning rest of the input.
 For every ith next() call, we generate a random number r s.t. 0<=r<i,
 and if r<numSamples we insert the new tuple into our buffer at position r.
 This gives us a random sample of the tuples in the partition.]]>
      </doc>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="nextSampleIdx" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A loader that samples the data.  
 It randomly samples tuples from input. The number of tuples to be sampled
 has to be set before the first call to getNext().
  see documentation of getNext() call.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.RandomSampleLoader -->
  <!-- start class org.apache.pig.impl.builtin.ReadScalars -->
  <class name="ReadScalars" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ReadScalars"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Java level API

 @param input
            expects a single constant that is the name of the file to be
            read]]>
      </doc>
    </method>
    <method name="setOutputBuffer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputBuffer" type="java.util.Map"/>
    </method>
    <doc>
    <![CDATA[ReadScalars reads a line from a file and returns it as its value. The
 file is only read once, and the same line is returned over and over again.
 This is useful for incorporating a result from an agregation into another
 evaluation.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.ReadScalars -->
  <!-- start class org.apache.pig.impl.builtin.SampleLoader -->
  <class name="SampleLoader" extends="org.apache.pig.LoadFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SampleLoader" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setNumSamples"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="int"/>
    </method>
    <method name="getNumSamples" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="skipNext" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="computeSamples"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="java.util.ArrayList"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relativeToAbsolutePath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <field name="numSamples" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="loader" type="org.apache.pig.LoadFunc"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Abstract class that specifies the interface for sample loaders]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.builtin.SampleLoader -->
  <!-- start class org.apache.pig.impl.builtin.StreamingUDF -->
  <class name="StreamingUDF" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUDF" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="StreamingUDFOutputSchemaException" type="org.apache.pig.impl.streaming.StreamingUDFOutputSchemaException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <field name="TURN_ON_OUTPUT_CAPTURING" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.builtin.StreamingUDF -->
  <!-- start class org.apache.pig.impl.builtin.StreamingUDF.ProcessKiller -->
  <class name="StreamingUDF.ProcessKiller" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Runnable"/>
    <constructor name="StreamingUDF.ProcessKiller"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.builtin.StreamingUDF.ProcessKiller -->
</package>
<package name="org.apache.pig.impl.io">
  <!-- start class org.apache.pig.impl.io.BinStorageInputFormat -->
  <class name="BinStorageInputFormat" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinStorageInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRecordReader" return="org.apache.hadoop.mapreduce.RecordReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.BinStorageInputFormat -->
  <!-- start class org.apache.pig.impl.io.BinStorageOutputFormat -->
  <class name="BinStorageOutputFormat" extends="org.apache.hadoop.mapreduce.lib.output.FileOutputFormat"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinStorageOutputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.BinStorageOutputFormat -->
  <!-- start class org.apache.pig.impl.io.BinStorageRecordReader -->
  <class name="BinStorageRecordReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinStorageRecordReader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="genericSplit" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCurrentValue" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the progress within the split]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="RECORD_1" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_2" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_3" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Treats keys as offset in file and value as line.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.BinStorageRecordReader -->
  <!-- start class org.apache.pig.impl.io.BinStorageRecordWriter -->
  <class name="BinStorageRecordWriter" extends="org.apache.hadoop.mapreduce.RecordWriter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinStorageRecordWriter" type="java.io.DataOutputStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="wc" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="RECORD_1" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_2" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_3" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.io.BinStorageRecordWriter -->
  <!-- start class org.apache.pig.impl.io.BufferedPositionedInputStream -->
  <class name="BufferedPositionedInputStream" extends="java.io.InputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BufferedPositionedInputStream" type="java.io.InputStream, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BufferedPositionedInputStream" type="java.io.InputStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="off" type="int"/>
      <param name="len" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="skip" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPosition" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the current position in the tracked InputStream.]]>
      </doc>
    </method>
    <method name="readLine" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="charset" type="java.nio.charset.Charset"/>
      <param name="delimiter" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.BufferedPositionedInputStream -->
  <!-- start class org.apache.pig.impl.io.FileLocalizer -->
  <class name="FileLocalizer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileLocalizer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="openDFSFile" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This function is meant to be used if the mappers/reducers want to access any HDFS file
 @param fileName
 @return InputStream of the open file.
 @throws IOException]]>
      </doc>
    </method>
    <method name="openDFSFile" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="properties" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="properties" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link #open(String, PigContext)} instead">
      <param name="fileName" type="java.lang.String"/>
      <param name="execType" type="org.apache.pig.ExecType"/>
      <param name="storage" type="org.apache.pig.backend.datastorage.DataStorage"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This function returns an input stream to a local file system file or
 a file residing on Hadoop's DFS
 @param fileName The filename to open
 @param execType execType indicating whether executing in local mode or MapReduce mode (Hadoop)
 @param storage The DataStorage object used to open the fileSpec
 @return InputStream to the fileSpec
 @throws IOException
 @deprecated Use {@link #open(String, PigContext)} instead]]>
      </doc>
    </method>
    <method name="fullPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link #fullPath(String, PigContext)} instead">
      <param name="fileName" type="java.lang.String"/>
      <param name="storage" type="org.apache.pig.backend.datastorage.DataStorage"/>
      <doc>
      <![CDATA[@deprecated Use {@link #fullPath(String, PigContext)} instead]]>
      </doc>
    </method>
    <method name="open" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileSpec" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="open" return="org.apache.pig.backend.datastorage.SeekableInputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileSpec" type="java.lang.String"/>
      <param name="offset" type="long"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param fileSpec
 @param offset
 @param pigContext
 @return SeekableInputStream
 @throws IOException

 This is an overloaded version of open where there is a need to seek in stream. Currently seek is supported
 only in file, not in directory or glob.]]>
      </doc>
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileSpec" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="create" return="java.io.OutputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileSpec" type="java.lang.String"/>
      <param name="append" type="boolean"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="delete" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileSpec" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setInitialized"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="initialized" type="boolean"/>
      <doc>
      <![CDATA[This method is only used by test code to reset state.
 @param initialized]]>
      </doc>
    </method>
    <method name="getTemporaryResourcePath" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="true"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="DataStorageException" type="org.apache.pig.backend.datastorage.DataStorageException"/>
      <doc>
      <![CDATA[Accessor method to get the resource ContainerDescriptor used for tez resource
 path bound to this thread. Calling this method lazy-initialized the
 resourcePath object. This path is different than relativeRoot in that
 calling PigServer.shutdown will only remove relativeRoot but not resourthPath
 since resourthPath should be available in the entire session

 @param pigContext
 @return temporary resource path
 @throws DataStorageException]]>
      </doc>
    </method>
    <method name="deleteTempFiles"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="deleteTempResourceFiles"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTemporaryPath" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTemporaryPath" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="suffix" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="hadoopify" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="fullPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="fileExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="fileExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link #fileExists(String, PigContext)} instead">
      <param name="filename" type="java.lang.String"/>
      <param name="store" type="org.apache.pig.backend.datastorage.DataStorage"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@deprecated Use {@link #fileExists(String, PigContext)} instead]]>
      </doc>
    </method>
    <method name="isFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link #isFile(String, PigContext)} instead">
      <param name="filename" type="java.lang.String"/>
      <param name="store" type="org.apache.pig.backend.datastorage.DataStorage"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@deprecated Use {@link #isFile(String, PigContext)} instead]]>
      </doc>
    </method>
    <method name="isDirectory" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isDirectory" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="Use {@link #isDirectory(String, PigContext)} instead.">
      <param name="filename" type="java.lang.String"/>
      <param name="store" type="org.apache.pig.backend.datastorage.DataStorage"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@deprecated Use {@link #isDirectory(String, PigContext)} instead.]]>
      </doc>
    </method>
    <method name="setR"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="r" type="java.util.Random"/>
    </method>
    <method name="parseCygPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="style" type="int"/>
      <doc>
      <![CDATA[Convert path from Windows convention to Unix convention. Invoked under
 cygwin.

 @param path
            path in Windows convention
 @return path in Unix convention, null if fail]]>
      </doc>
    </method>
    <method name="fetchFile" return="org.apache.pig.impl.io.FileLocalizer.FetchFileRet"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <param name="filePath" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Ensures that the passed path is on the local file system, fetching it
 to the java.io.tmpdir if necessary. If pig.jars.relative.to.dfs is true
 and dfs is not null, then a relative path is assumed to be relative to the passed
 dfs active directory. Else they are assumed to be relative to the local working
 directory.]]>
      </doc>
    </method>
    <method name="fetchFiles" return="org.apache.pig.impl.io.FileLocalizer.FetchFileRet[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <param name="filePath" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Ensures that the passed files pointed to by path are on the local file system,
 fetching them to the java.io.tmpdir if necessary. If pig.jars.relative.to.dfs is true
 and dfs is not null, then a relative path is assumed to be relative to the passed
 dfs active directory. Else they are assumed to be relative to the local working
 directory.]]>
      </doc>
    </method>
    <method name="fetchResource" return="org.apache.pig.impl.io.FileLocalizer.FetchFileRet"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ResourceNotFoundException" type="org.apache.pig.impl.io.ResourceNotFoundException"/>
      <doc>
      <![CDATA[Ensures that the passed resource is available from the local file system, fetching
 it to a temporary directory.

 @throws ResourceNotFoundException]]>
      </doc>
    </method>
    <field name="LOCAL_PREFIX" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STYLE_UNIX" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STYLE_WINDOWS" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OWNER_ONLY_PERMS" type="org.apache.hadoop.fs.permission.FsPermission"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.io.FileLocalizer -->
  <!-- start class org.apache.pig.impl.io.FileLocalizer.DataStorageInputStreamIterator -->
  <class name="FileLocalizer.DataStorageInputStreamIterator" extends="java.io.InputStream"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileLocalizer.DataStorageInputStreamIterator" type="org.apache.pig.backend.datastorage.ElementDescriptor[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="available" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <param name="off" type="int"/>
      <param name="len" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="read" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="byte[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="skip" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.FileLocalizer.DataStorageInputStreamIterator -->
  <!-- start class org.apache.pig.impl.io.FileLocalizer.FetchFileRet -->
  <class name="FileLocalizer.FetchFileRet" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileLocalizer.FetchFileRet" type="java.io.File, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="file" type="java.io.File"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="didFetch" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.io.FileLocalizer.FetchFileRet -->
  <!-- start class org.apache.pig.impl.io.FileSpec -->
  <class name="FileSpec" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="FileSpec" type="java.lang.String, org.apache.pig.FuncSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFuncName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSize" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A simple class that specifies a file name and storage function which is used to read/write it]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.FileSpec -->
  <!-- start class org.apache.pig.impl.io.InterRecordReader -->
  <class name="InterRecordReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterRecordReader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="genericSplit" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCurrentValue" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the progress within the split]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="RECORD_1" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_2" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_3" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A record reader used to read data written using {@link InterRecordWriter}
 It uses the default InterSedes object for deserialization.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.InterRecordReader -->
  <!-- start class org.apache.pig.impl.io.InterRecordWriter -->
  <class name="InterRecordWriter" extends="org.apache.hadoop.mapreduce.RecordWriter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterRecordWriter" type="java.io.DataOutputStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="wc" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <field name="RECORD_1" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_2" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RECORD_3" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A record reader used to write data compatible with {@link InterRecordWriter}
 It uses the default InterSedes object for serialization.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.InterRecordWriter -->
  <!-- start class org.apache.pig.impl.io.InterStorage -->
  <class name="InterStorage" extends="org.apache.pig.FileInputLoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="InterStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Simple binary nested reader format]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="useLog" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[LOAD FUNCTION FOR PIG INTERNAL USE ONLY!
 This load function is used for storing intermediate data between MR jobs of
 a pig query.
 The serialization format of this load function can change in newer
  versions of pig, so this should NOT be used to store any persistent data.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.InterStorage -->
  <!-- start class org.apache.pig.impl.io.InterStorage.InterInputFormat -->
  <class name="InterStorage.InterInputFormat" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterStorage.InterInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRecordReader" return="org.apache.hadoop.mapreduce.RecordReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.InterStorage.InterInputFormat -->
  <!-- start class org.apache.pig.impl.io.InterStorage.InterOutputFormat -->
  <class name="InterStorage.InterOutputFormat" extends="org.apache.hadoop.mapreduce.lib.output.FileOutputFormat"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InterStorage.InterOutputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.InterStorage.InterOutputFormat -->
  <!-- start class org.apache.pig.impl.io.NullableBag -->
  <class name="NullableBag" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableBag" type="org.apache.pig.data.DataBag"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param b]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableBag -->
  <!-- start class org.apache.pig.impl.io.NullableBigDecimalWritable -->
  <class name="NullableBigDecimalWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableBigDecimalWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableBigDecimalWritable" type="java.math.BigDecimal"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableBigDecimalWritable -->
  <!-- start class org.apache.pig.impl.io.NullableBigIntegerWritable -->
  <class name="NullableBigIntegerWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableBigIntegerWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableBigIntegerWritable" type="java.math.BigInteger"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableBigIntegerWritable -->
  <!-- start class org.apache.pig.impl.io.NullableBooleanWritable -->
  <class name="NullableBooleanWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableBooleanWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableBooleanWritable" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableBooleanWritable -->
  <!-- start class org.apache.pig.impl.io.NullableBytesWritable -->
  <class name="NullableBytesWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableBytesWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableBytesWritable" type="java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param obj]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableBytesWritable -->
  <!-- start class org.apache.pig.impl.io.NullableDateTimeWritable -->
  <class name="NullableDateTimeWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableDateTimeWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableDateTimeWritable" type="org.joda.time.DateTime"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableDateTimeWritable -->
  <!-- start class org.apache.pig.impl.io.NullableDoubleWritable -->
  <class name="NullableDoubleWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableDoubleWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableDoubleWritable" type="double"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableDoubleWritable -->
  <!-- start class org.apache.pig.impl.io.NullableFloatWritable -->
  <class name="NullableFloatWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableFloatWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableFloatWritable" type="float"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableFloatWritable -->
  <!-- start class org.apache.pig.impl.io.NullableIntWritable -->
  <class name="NullableIntWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableIntWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableIntWritable" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableIntWritable -->
  <!-- start class org.apache.pig.impl.io.NullableLongWritable -->
  <class name="NullableLongWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableLongWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableLongWritable" type="long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param value]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableLongWritable -->
  <!-- start class org.apache.pig.impl.io.NullablePartitionWritable -->
  <class name="NullablePartitionWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullablePartitionWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullablePartitionWritable" type="org.apache.pig.impl.io.PigNullableWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="k" type="org.apache.pig.impl.io.PigNullableWritable"/>
    </method>
    <method name="getKey" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPartition"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="int"/>
    </method>
    <method name="getPartition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.impl.io.NullablePartitionWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
    </method>
    <method name="getIndex" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="byte"/>
    </method>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[NullablePartitionWritable is an adaptor class around PigNullableWritable that adds a partition
 index to the class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.NullablePartitionWritable -->
  <!-- start class org.apache.pig.impl.io.NullableText -->
  <class name="NullableText" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableText"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableText" type="byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param utf8]]>
      </doc>
    </constructor>
    <constructor name="NullableText" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param string]]>
      </doc>
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableText -->
  <!-- start class org.apache.pig.impl.io.NullableTuple -->
  <class name="NullableTuple" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableTuple" type="org.apache.pig.data.Tuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param t]]>
      </doc>
    </constructor>
    <constructor name="NullableTuple" type="org.apache.pig.impl.io.NullableTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableTuple -->
  <!-- start class org.apache.pig.impl.io.NullableUnknownWritable -->
  <class name="NullableUnknownWritable" extends="org.apache.pig.impl.io.PigNullableWritable"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NullableUnknownWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NullableUnknownWritable" type="org.apache.hadoop.io.WritableComparable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class can be used when data type is 'Unknown' and 
 there is a need for PigNullableWritable object.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.NullableUnknownWritable -->
  <!-- start class org.apache.pig.impl.io.PigFile -->
  <class name="PigFile" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigFile" type="java.lang.String, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigFile" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="load" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lfunc" type="org.apache.pig.LoadFunc"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="store"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="data" type="org.apache.pig.data.DataBag"/>
      <param name="storeFuncSpec" type="org.apache.pig.FuncSpec"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.PigFile -->
  <!-- start class org.apache.pig.impl.io.PigNullableWritable -->
  <class name="PigNullableWritable" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.WritableComparable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="PigNullableWritable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="clone" return="org.apache.pig.impl.io.PigNullableWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[Compare two nullable objects.  Step one is to check if either or both
 are null.  If one is null and the other is not, then the one that is
 null is declared to be less.  If both are null the indices are
 compared.  If neither are null the indices are again compared.  If
 these are equal, finally the values are compared.

 These comparators are used by hadoop as part of the post-map sort, when
 the data is still in object format.]]>
      </doc>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the isNull]]>
      </doc>
    </method>
    <method name="setNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isNull" type="boolean"/>
      <doc>
      <![CDATA[@param isNull the isNull to set]]>
      </doc>
    </method>
    <method name="getIndex" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the index for this value]]>
      </doc>
    </method>
    <method name="setIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="index" type="byte"/>
      <doc>
      <![CDATA[@param index for this value.]]>
      </doc>
    </method>
    <method name="getValueAsPigType" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return The wrapped value as a pig type, not as a WritableComparable.]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="mqFlag" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[indices in multiquery optimized maps
 will have the Most Significant Bit set
 This is a bitmask used in those cases.]]>
      </doc>
    </field>
    <field name="idxSpace" type="byte"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[regular indices used in group and cogroup
  can only go from 0x00 to 0x7F]]>
      </doc>
    </field>
    <field name="mValue" type="org.apache.hadoop.io.WritableComparable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A base class for all types that pig uses to move data between map and
 reduce.  It implements WritableComparable so that compareTo etc. can be
 called.  It also wraps a WritableComparable 'value'.  This is set by each
 different type to be an object of its specific type.
 It also provides a getIndex() and setIndex() calls that are used to get
 and set the index.  These can be used by LocalRearrange, the partitioner,
 and Package to determine the index.

 Index and the null indicator are packed into one byte to save space.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.PigNullableWritable -->
  <!-- start class org.apache.pig.impl.io.ReadToEndLoader -->
  <class name="ReadToEndLoader" extends="org.apache.pig.LoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="ReadToEndLoader" type="org.apache.pig.LoadFunc, org.apache.hadoop.conf.Configuration, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param wrappedLoadFunc
 @param conf
 @param inputLocation
 @param splitIndex
 @throws IOException
 @throws InterruptedException]]>
      </doc>
    </constructor>
    <constructor name="ReadToEndLoader" type="org.apache.pig.LoadFunc, org.apache.hadoop.conf.Configuration, java.lang.String, int, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="ReadToEndLoader" type="org.apache.pig.LoadFunc, org.apache.hadoop.conf.Configuration, java.lang.String, int[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This constructor takes an array of split indexes (toReadSplitIdxs) of the
 splits to be read.
 @param wrappedLoadFunc
 @param conf
 @param inputLocation
 @param toReadSplitIdxs
 @throws IOException
 @throws InterruptedException]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[This is wrapper Loader which wraps a real LoadFunc underneath and allows
 to read a file completely starting a given split (indicated by a split index
 which is used to look in the List<InputSplit> returned by the underlying
 InputFormat's getSplits() method). So if the supplied split index is 0, this
 loader will read the entire file. If it is non zero it will read the partial
 file beginning from that split to the last split.

 The call sequence to use this is:
 1) construct an object using the constructor
 2) Call getNext() in a loop till it returns null]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.ReadToEndLoader -->
  <!-- start class org.apache.pig.impl.io.ResourceNotFoundException -->
  <class name="ResourceNotFoundException" extends="java.lang.Exception"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ResourceNotFoundException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.ResourceNotFoundException -->
  <!-- start class org.apache.pig.impl.io.SequenceFileInterStorage -->
  <class name="SequenceFileInterStorage" extends="org.apache.pig.FileInputLoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="SequenceFileInterStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Simple binary nested reader format]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partitionFilter" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="useLog" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Store tuples (BinSedesTuples, specifically) using sequence files to leverage
 sequence file's compression features. Replacement for previous use of {@code TFileStorage}, which
 had some edge cases that were not properly handled there.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.SequenceFileInterStorage -->
  <!-- start class org.apache.pig.impl.io.SequenceFileInterStorage.SequenceFileTupleOutputFormat -->
  <class name="SequenceFileInterStorage.SequenceFileTupleOutputFormat" extends="org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SequenceFileInterStorage.SequenceFileTupleOutputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSequenceWriter" return="org.apache.hadoop.io.SequenceFile.Writer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.SequenceFileInterStorage.SequenceFileTupleOutputFormat -->
  <!-- start class org.apache.pig.impl.io.TFileRecordReader -->
  <class name="TFileRecordReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TFileRecordReader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="genericSplit" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCurrentValue" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get the progress within the split]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[A record reader used to read data written using {@link InterRecordWriter} It
 uses the default InterSedes object for deserialization.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.TFileRecordReader -->
  <!-- start class org.apache.pig.impl.io.TFileRecordWriter -->
  <class name="TFileRecordWriter" extends="org.apache.hadoop.mapreduce.RecordWriter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TFileRecordWriter" type="org.apache.hadoop.fs.Path, java.lang.String, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="wc" type="org.apache.hadoop.io.WritableComparable"/>
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <doc>
    <![CDATA[A record reader used to write data compatible with {@link InterRecordWriter}
 It uses the default InterSedes object for serialization.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.TFileRecordWriter -->
  <!-- start class org.apache.pig.impl.io.TFileStorage -->
  <class name="TFileStorage" extends="org.apache.pig.FileInputLoadFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.StoreFuncInterface"/>
    <implements name="org.apache.pig.LoadMetadata"/>
    <constructor name="TFileStorage"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Simple binary nested reader format]]>
      </doc>
    </constructor>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getInputFormat" return="org.apache.hadoop.mapreduce.InputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToRead"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="reader" type="org.apache.hadoop.mapreduce.RecordReader"/>
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit"/>
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getOutputFormat" return="org.apache.hadoop.mapreduce.OutputFormat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="writer" type="org.apache.hadoop.mapreduce.RecordWriter"/>
    </method>
    <method name="setStoreLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="checkSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.ResourceSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="relToAbsPathForStoreLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="curDir" type="org.apache.hadoop.fs.Path"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getPartitionKeys" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStatistics" return="org.apache.pig.ResourceStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setPartitionFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.Expression"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setStoreFuncUDFContextSignature"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="signature" type="java.lang.String"/>
    </method>
    <method name="cleanupOnFailure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanupOnSuccess"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="useLog" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[LOAD FUNCTION FOR PIG INTERNAL USE ONLY! This load function is used for
 storing intermediate data between MR jobs of a pig query. The serialization
 format of this load function can change in newer versions of pig, so this
 should NOT be used to store any persistent data.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.io.TFileStorage -->
  <!-- start class org.apache.pig.impl.io.TFileStorage.TFileInputFormat -->
  <class name="TFileStorage.TFileInputFormat" extends="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TFileStorage.TFileInputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRecordReader" return="org.apache.hadoop.mapreduce.RecordReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="context" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.TFileStorage.TFileInputFormat -->
  <!-- start class org.apache.pig.impl.io.TFileStorage.TFileOutputFormat -->
  <class name="TFileStorage.TFileOutputFormat" extends="org.apache.hadoop.mapreduce.lib.output.FileOutputFormat"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TFileStorage.TFileOutputFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordWriter" return="org.apache.hadoop.mapreduce.RecordWriter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.TFileStorage.TFileOutputFormat -->
</package>
<package name="org.apache.pig.impl.io.compress">
  <!-- start class org.apache.pig.impl.io.compress.BZip2CodecWithExtensionBZ -->
  <class name="BZip2CodecWithExtensionBZ" extends="org.apache.hadoop.io.compress.BZip2Codec"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BZip2CodecWithExtensionBZ"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getDefaultExtension" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[For historical reasons, Pig supports .bz and .bz2 for bzip2 extension

 @return A String telling the additional bzip2 file extension 'bz']]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.io.compress.BZip2CodecWithExtensionBZ -->
</package>
<package name="org.apache.pig.impl.logicalLayer">
  <!-- start class org.apache.pig.impl.logicalLayer.CanonicalNamer -->
  <class name="CanonicalNamer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CanonicalNamer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A visitor to walk the logical plan and give canonical names fields.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.CanonicalNamer -->
  <!-- start class org.apache.pig.impl.logicalLayer.FrontendException -->
  <class name="FrontendException" extends="org.apache.pig.PigException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FrontendException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param location - The location of the exception.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte, java.lang.Throwable, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown. 
 @param location - The location of the exception.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="FrontendException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.FrontendException -->
  <doc>
  <![CDATA[<p>
The logical operators that represent a pig script and tools for manipulating
those operators.  The logical layer contains the logical operators themselves,
as well as validators that check the logical plan, an optimizer, and a general
visitor utility for working with the logical plans.

<h2> Design </h2>
<p>
Logical operators use the operator, plan, visitor, and optimizer framework
provided by the {@link org.apache.pig.impl.plan} package.
<p>
Logical operators consist of both relational and expression operators.
Relational operators work on an entire bag.  Expression operators work on an
element of a tuple (which may also be a bag).  Due to Pig's nested data and
execution model the distinction between relational and expression operators is
not always clear.  And some operators such as LOProject function as both.
<p>
In a traditional data base system, a query execution plan is constructed from
relational operators, such as project, filter, sort, aggregate, join.  Each of
these may contain an expression tree, made up of expression operators.  For
example, consider a SQL query <code>select a from T where a = 5;</code>.  The
where clause would be represented by a filter operator with an expression tree
for <code>a=5</code>.
<p>
Pig takes a similar approach, except that the operators contained inside of a
relational operator may also be relational.  For example, a foreach statement
that has a nested script, such as <code>foreach B { C = distinct $1; generate
group, COUNT(C);}</code>.  This foreach needs to contain not just an
expression tree but the distinct relational operator.  For this reason, Pig's
relational operators do not contain expression trees.  Instead they contain
one or more LogicalPlans themselves.  This allows Pig to arbitrarily nest
the logical plan.  In this sense Pig is more similar to a traditional
procedural language where certain statements (e.g. if, while) can contain any
other statement in the language rather than being like SQL where the statement
execution tends to be more linear.]]>
  </doc>
</package>
<package name="org.apache.pig.impl.logicalLayer.schema">
  <!-- start class org.apache.pig.impl.logicalLayer.schema.Schema -->
  <class name="Schema" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Schema" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param fields List of field schemas that describes the fields.]]>
      </doc>
    </constructor>
    <constructor name="Schema" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a schema with only one field.
 @param fieldSchema field to put in this schema.]]>
      </doc>
    </constructor>
    <constructor name="Schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Copy Constructor.
 @param s source schema]]>
      </doc>
    </constructor>
    <method name="getField" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given an alias name, find the associated FieldSchema.
 @param alias Alias to look up.
 @return FieldSchema, or null if no such alias is in this tuple.]]>
      </doc>
    </method>
    <method name="getFieldSubNameMatch" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given an alias name, find the associated FieldSchema. If exact name is 
 not found see if any field matches the part of the 'namespaced' alias.
 eg. if given alias is nm::a , and schema is (a,b). It will return 
 FieldSchema of a.
 if given alias is nm::a and schema is (nm2::a, b), it will return null
 @param alias Alias to look up.
 @return FieldSchema, or null if no such alias is in this tuple.]]>
      </doc>
    </method>
    <method name="getField" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given a field number, find the associated FieldSchema.

 @param fieldNum
            Field number to look up.
 @return FieldSchema for this field.
 @throws ParseException
             if the field number exceeds the number of fields in the
             tuple.]]>
      </doc>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Find the number of fields in the schema.

 @return number of fields.]]>
      </doc>
    </method>
    <method name="reconcile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Reconcile this schema with another schema.  The schema being reconciled
 with should have the same number of columns.  The use case is where a
 schema already exists but may not have alias and or type information.  If
 an alias exists in this schema and a new one is given, then the new one
 will be used.  Similarly with types, though this needs to be used
 carefully, as types should not be lightly changed.
 @param other Schema to reconcile with.
 @throws ParseException if this cannot be reconciled.]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[For two schemas to be equal, they have to be deeply equal.
 Use Schema.equals(Schema schema,
                         Schema other,
                         boolean relaxInner,
                         boolean relaxAlias)
       if relaxation of aliases is a requirement.]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of a schema.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prettyPrint" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="stringifySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sb" type="java.lang.StringBuilder"/>
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="type" type="byte"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="stringifySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sb" type="java.lang.StringBuilder"/>
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="type" type="byte"/>
      <param name="indentLevel" type="int"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="f" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
    </method>
    <method name="getPosition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given an alias, find the associated position of the field schema.

 @param alias
            alias of the FieldSchema.
 @return position of the FieldSchema.]]>
      </doc>
    </method>
    <method name="getPositionSubName" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given an alias, find the associated position of the field schema.
 It uses getFieldSubNameMatch to look for subName matches as well.
 @param alias
            alias of the FieldSchema.
 @return position of the FieldSchema.]]>
      </doc>
    </method>
    <method name="addAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="fs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
    </method>
    <method name="getAliases" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="printAliases"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="castable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[Recursively compare two schemas to check if the input schema 
 can be cast to the cast schema
 @param cast schema of the cast operator
 @param  input schema of the cast input
 @return true or falsew!]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="relaxInner" type="boolean"/>
      <param name="relaxAlias" type="boolean"/>
      <doc>
      <![CDATA[Recursively compare two schemas for equality
 @param schema
 @param other
 @param relaxInner if true, inner schemas will not be checked
 @param relaxAlias if true, aliases will not be checked
 @return true if schemas are equal, false otherwise]]>
      </doc>
    </method>
    <method name="merge" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <doc>
      <![CDATA[Merge this schema with the other schema
 @param other the other schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  schema take precedence
 @return the merged schema, null if they are not compatible]]>
      </doc>
    </method>
    <method name="mergeSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <doc>
      <![CDATA[Recursively merge two schemas
 @param schema the initial schema
 @param other the other schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  schema take precedence
 @return the merged schema, null if they are not compatible]]>
      </doc>
    </method>
    <method name="mergeSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <param name="allowDifferentSizeMerge" type="boolean"/>
      <param name="allowIncompatibleTypes" type="boolean"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively merge two schemas
 @param schema the initial schema
 @param other the other schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  schema take precedence
 @param allowDifferentSizeMerge allow merging of schemas of different types
 @param allowIncompatibleTypes 1) if types in schemas are not compatible
                               they will be treated as ByteArray (untyped)
                               2) if schemas in schemas are not compatible
                               and allowIncompatibleTypes is true
                               those inner schemas in the output
                               will be null.
 @return the merged schema this can be null if one schema is null and
         allowIncompatibleTypes is true

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="mergeSchemasByAlias" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schemas" type="java.util.Collection"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Merges collection of schemas using their column aliases 
 (unlike mergeSchema(..) functions which merge using positions)
 Schema will not be merged if types are incompatible, 
 as per DataType.mergeType(..)
 For Tuples and Bags, SubSchemas have to be equal be considered compatible
 @param schemas - list of schemas to be merged using their column alias
 @return merged schema
 @throws SchemaMergeException]]>
      </doc>
    </method>
    <method name="mergeSchemaByAlias" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema1" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="schema2" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Merges two schemas using their column aliases 
 (unlike mergeSchema(..) functions which merge using positions)
 Schema will not be merged if types are incompatible, 
 as per DataType.mergeType(..)
 For Tuples and Bags, SubSchemas have to be equal be considered compatible
 @param schema1
 @param schema2
 @return Merged Schema
 @throws SchemaMergeException if schemas cannot be merged]]>
      </doc>
    </method>
    <method name="generateNestedSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="topLevelType" type="byte"/>
      <param name="innerTypes" type="byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param topLevelType DataType type of the top level element
 @param innerTypes DataType types of the inner level element
 @return nested schema representing type of top level element at first level and inner schema
 representing types of inner element(s)]]>
      </doc>
    </method>
    <method name="mergePrefixSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively prefix merge two schemas
 @param other the other schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  schema take precedence
 @return the prefix merged schema this can be null if one schema is null and
         allowIncompatibleTypes is true

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="mergePrefixSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <param name="allowMergeableTypes" type="boolean"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively prefix merge two schemas
 @param other the other schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  schema take precedence
 @param allowMergeableTypes true if "mergeable" types should be allowed.
   Two types are mergeable if any of the following conditions is true IN THE 
   BELOW ORDER of checks:
   1) if either one has a type null or unknown and other has a type OTHER THAN
   null or unknown, the result type will be the latter non null/unknown type
   2) If either type is bytearray, then result type will be the other (possibly  non BYTEARRAY) type
   3) If current type can be cast to the other type, then the result type will be the
   other type 
 @return the prefix merged schema this can be null if one schema is null and
         allowIncompatibleTypes is true

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="setSchemaDefaultType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="t" type="byte"/>
      <doc>
      <![CDATA[Recursively set NULL type to the specifid type in a schema
 @param s the schema whose NULL type has to be set 
 @param t the specified type]]>
      </doc>
    </method>
    <method name="isTwoLevelAccessRequired" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="twoLevelAccess is no longer needed">
      <doc>
      <![CDATA[@return the twoLevelAccess
 @deprecated twoLevelAccess is no longer needed]]>
      </doc>
    </method>
    <method name="setTwoLevelAccessRequired"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="twoLevelAccess is no longer needed">
      <param name="twoLevelAccess" type="boolean"/>
      <doc>
      <![CDATA[@param twoLevelAccess the twoLevelAccess to set
 @deprecated twoLevelAccess is no longer needed]]>
      </doc>
    </method>
    <method name="getPigSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rSchema" type="org.apache.pig.ResourceSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="findFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="canonicalName" type="java.lang.String"/>
      <doc>
      <![CDATA[Look for a FieldSchema instance in the schema hierarchy which has the given canonical name.
 @param canonicalName canonical name
 @return the FieldSchema instance found]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The Schema class encapsulates the notion of a schema for a relational operator.
 A schema is a list of columns that describe the output of a relational operator.
 Each column in the relation is represented as a FieldSchema, a static class inside
 the Schema. A column by definition has an alias, a type and a possible schema (if the
 column is a bag or a tuple). In addition, each column in the schema has a unique
 auto generated name used for tracking the lineage of the column in a sequence of
 statements.

 The lineage of the column is tracked using a map of the predecessors' columns to
 the operators that generate the predecessor columns. The predecessor columns are the
 columns required in order to generate the column under consideration.  Similarly, a
 reverse lookup of operators that generate the predecessor column to the predecessor
 column is maintained.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.schema.Schema -->
  <!-- start class org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema -->
  <class name="Schema.FieldSchema" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="Schema.FieldSchema" type="java.lang.String, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor for any type.
 
 @param a
            Alias, if known. If unknown leave null.
 @param t
            Type, using codes from
            {@link org.apache.pig.data.DataType}.]]>
      </doc>
    </constructor>
    <constructor name="Schema.FieldSchema" type="java.lang.String, org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor for tuple fields.
 
 @param a
            Alias, if known. If unknown leave null.
 @param s
            Schema of this tuple.]]>
      </doc>
    </constructor>
    <constructor name="Schema.FieldSchema" type="java.lang.String, org.apache.pig.impl.logicalLayer.schema.Schema, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Constructor for tuple fields.
 
 @param a
            Alias, if known. If unknown leave null.
 @param s
            Schema of this tuple.
 @param t
            Type, using codes from
            {@link org.apache.pig.data.DataType}.]]>
      </doc>
    </constructor>
    <constructor name="Schema.FieldSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Copy Constructor.
 
 @param fs
           Source FieldSchema]]>
      </doc>
    </constructor>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[Two field schemas are equal if types and schemas
  are equal in all levels.

  In order to relax alias equivalent requirement,
  instead use equals(FieldSchema fschema,
                               FieldSchema fother,
                               boolean relaxInner,
                               boolean relaxAlias)]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="castable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="castFs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="inputFs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <doc>
      <![CDATA[Recursively compare two schemas to check if the input schema 
 can be cast to the cast schema
 @param castFs schema of the cast operator
 @param  inputFs schema of the cast input
 @return true or falsew!]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fschema" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="fother" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="relaxInner" type="boolean"/>
      <param name="relaxAlias" type="boolean"/>
      <doc>
      <![CDATA[Compare two field schema for equality
 @param fschema
 @param fother
 @param relaxInner If true, we don't check inner tuple schemas
 @param relaxAlias If true, we don't check aliases
 @return true if FieldSchemas are equal, false otherwise]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[Make a deep copy of this FieldSchema and return it.
 @return clone of the this FieldSchema.
 @throws CloneNotSupportedException]]>
      </doc>
    </method>
    <method name="mergePrefixFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="otherFs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively prefix merge two schemas
 @param otherFs the other field schema to be merged with
 @return the prefix merged field schema this can be null if one schema is null and
         allowIncompatibleTypes is true

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="mergePrefixFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="otherFs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively prefix merge two schemas
 @param otherFs the other field schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  field schema take precedence
 @return the prefix merged field schema this can be null if one schema is null and
         allowIncompatibleTypes is true

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="mergePrefixFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="otherFs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="otherTakesAliasPrecedence" type="boolean"/>
      <param name="allowMergeableTypes" type="boolean"/>
      <exception name="SchemaMergeException" type="org.apache.pig.impl.logicalLayer.schema.SchemaMergeException"/>
      <doc>
      <![CDATA[Recursively prefix merge two schemas
 @param otherFs the other field schema to be merged with
 @param otherTakesAliasPrecedence true if aliases from the other
                                  field schema take precedence
 @param allowMergeableTypes true if "mergeable" types should be allowed.
   Two types are mergeable if any of the following conditions is true IN THE
   BELOW ORDER of checks:
   1) if either one has a type null or unknown and other has a type OTHER THAN
   null or unknown, the result type will be the latter non null/unknown type
   2) If either type is bytearray, then result type will be the other (possibly non BYTEARRAY) type
   3) If current type can be cast to the other type, then the result type will be the
   other type 
 @return the prefix merged field schema this can be null. 

 @throws SchemaMergeException if they cannot be merged]]>
      </doc>
    </method>
    <method name="setFieldSchemaDefaultType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
      <param name="t" type="byte"/>
      <doc>
      <![CDATA[Recursively set NULL type to the specifid type 
 @param fs the field schema whose NULL type has to be set 
 @param t the specified type]]>
      </doc>
    </method>
    <method name="findFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="canonicalName" type="java.lang.String"/>
      <doc>
      <![CDATA[Find a field schema instance in this FieldSchema hierarchy (including "this")
 that matches the given canonical name.
 
 @param canonicalName canonical name
 @return the FieldSchema instance found]]>
      </doc>
    </method>
    <field name="alias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Alias for this field.]]>
      </doc>
    </field>
    <field name="type" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Datatype, using codes from {@link org.apache.pig.data.DataType}.]]>
      </doc>
    </field>
    <field name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[If this is a tuple itself, it can have a schema. Otherwise this field
 must be null.]]>
      </doc>
    </field>
    <field name="canonicalName" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Canonical name.  This name uniquely identifies a field throughout
 the query.  Unlike a an alias, it cannot be changed.  It will
 change when the field is transformed in some way (such as being
 used in an arithmetic expression or passed to a udf).  At that
 point a new canonical name will be generated for the field.]]>
      </doc>
    </field>
    <field name="canonicalNamer" type="org.apache.pig.impl.logicalLayer.CanonicalNamer"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Canonical namer object to generate new canonical names on
 request. In order to ensure unique and consistent names, across
 all field schema objects, the object is made static.]]>
      </doc>
    </field>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema -->
  <!-- start class org.apache.pig.impl.logicalLayer.schema.SchemaMergeException -->
  <class name="SchemaMergeException" extends="org.apache.pig.impl.logicalLayer.FrontendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaMergeException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="SchemaMergeException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new FrontendException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.schema.SchemaMergeException -->
  <!-- start class org.apache.pig.impl.logicalLayer.schema.SchemaUtil -->
  <class name="SchemaUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tupleName" type="java.lang.String"/>
      <param name="fieldNames" type="java.util.List"/>
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according the tuple name and two list: names of
 fields, types of fields

 @param tupleName
 @param fieldNames
 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tupleName" type="java.lang.String"/>
      <param name="fieldNames" type="java.lang.String[]"/>
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according the tuple name and two arrays: names
 of fields, types of fields

 @param tupleName
 @param fieldNames
 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNames" type="java.util.List"/>
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according the two list: names of fields, types
 of fields, the default tuple name is t.

 @param fieldNames
 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according one list: types of fields, the
 default names of fields are f0,f1,f2..., and the tuple name is t.

 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="names" type="java.lang.String[]"/>
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according the two arrays: names of fields,
 types of fields, the default tuple name is t.

 @param names
 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newTupleSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according one array: types of fields, the
 default names of fields are f0,f1,f2..., and the tuple name is t.

 @param dataTypes
 @return tuple schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bagName" type="java.lang.String"/>
      <param name="tupleName" type="java.lang.String"/>
      <param name="fieldNames" type="java.util.List"/>
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a bag schema according the bag name,tuple name and two list: name
 of fields, type of fields

 @param bagName
 @param tupleName
 @param fieldNames
 @param dataTypes
 @return bag schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bagName" type="java.lang.String"/>
      <param name="tupleName" type="java.lang.String"/>
      <param name="fieldNames" type="java.lang.String[]"/>
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="names" type="java.util.List"/>
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a bag schema according two list: name of fields, type of fields,
 and the default bag name is b, the default tuple name is t.

 @param names
 @param dataTypes
 @return bag schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataTypes" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according one list: types of fields, the
 default names of fields are f0,f1,f2..., and the tuple is t, the bag name
 is b.

 @param dataTypes
 @return bag schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="names" type="java.lang.String[]"/>
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according two arrays: names of field,types of
 fields. The default tuple name is t, and the bag is b.

 @param names
 @param dataTypes
 @return bag schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="newBagSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dataTypes" type="java.lang.Byte[]"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create a new tuple schema according one array: the type of fields, the
 tuple name is t, and the bag name is b.

 @param dataTypes
 @return bag schema
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A utility class for simplify the schema creation, especially for bag and
 tuple schema. Currently, it only support simple schema creation, nested tuple
 and bag is not supported]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.schema.SchemaUtil -->
</package>
<package name="org.apache.pig.impl.logicalLayer.validators">
  <!-- start class org.apache.pig.impl.logicalLayer.validators.TypeCheckerException -->
  <class name="TypeCheckerException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypeCheckerException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param op - The logical operator where the error occurred
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param op - The logical operator where the error occurred
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="TypeCheckerException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new TypeCheckerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.logicalLayer.validators.TypeCheckerException -->
</package>
<package name="org.apache.pig.impl.plan">
  <!-- start class org.apache.pig.impl.plan.CompilationMessageCollector -->
  <class name="CompilationMessageCollector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Iterable"/>
    <constructor name="CompilationMessageCollector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="message" type="java.lang.String"/>
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
    </method>
    <method name="collect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="message" type="java.lang.String"/>
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
      <param name="kind" type="java.lang.Enum"/>
    </method>
    <method name="hasMessageType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
    </method>
    <method name="hasError" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasMessage" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="get" return="org.apache.pig.impl.plan.CompilationMessageCollector.Message"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <method name="getKindAggregate" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
    </method>
    <method name="logAggregate"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="aggMap" type="java.util.Map"/>
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <method name="logMessages"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="messageCollector" type="org.apache.pig.impl.plan.CompilationMessageCollector"/>
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
      <param name="aggregate" type="boolean"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <method name="logMessages"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="messageType" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"/>
      <param name="aggregate" type="boolean"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <method name="logAllMessages"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="messageCollector" type="org.apache.pig.impl.plan.CompilationMessageCollector"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <method name="logAllMessages"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <doc>
    <![CDATA[This class is used for collecting all messages (error + warning) in
 compilation process. These messages are reported back to users
 at the end of compilation.

 iterator() has to be called after CompilationMessageCollector is fully
 populated otherwise the state is undefined.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.CompilationMessageCollector -->
  <!-- start class org.apache.pig.impl.plan.CompilationMessageCollector.Message -->
  <class name="CompilationMessageCollector.Message" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CompilationMessageCollector.Message" type="java.lang.String, org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="CompilationMessageCollector.Message" type="java.lang.String, org.apache.pig.impl.plan.CompilationMessageCollector.MessageType, java.lang.Enum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMessageType" return="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getKind" return="java.lang.Enum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.plan.CompilationMessageCollector.Message -->
  <!-- start class org.apache.pig.impl.plan.CompilationMessageCollector.MessageType -->
  <class name="CompilationMessageCollector.MessageType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="Unknown" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="Error" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="Warning" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="Info" type="org.apache.pig.impl.plan.CompilationMessageCollector.MessageType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.plan.CompilationMessageCollector.MessageType -->
  <!-- start class org.apache.pig.impl.plan.CompilationMessageCollector.Unknown -->
  <class name="CompilationMessageCollector.Unknown" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.plan.CompilationMessageCollector.Unknown[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.plan.CompilationMessageCollector.Unknown"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="UNKNOWN_MESSAGE_KIND" type="org.apache.pig.impl.plan.CompilationMessageCollector.Unknown"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.plan.CompilationMessageCollector.Unknown -->
  <!-- start class org.apache.pig.impl.plan.DependencyOrderWalker -->
  <class name="DependencyOrderWalker" extends="org.apache.pig.impl.plan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DependencyOrderWalker" type="org.apache.pig.impl.plan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <constructor name="DependencyOrderWalker" type="org.apache.pig.impl.plan.OperatorPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.
 @param boolean walkLeavesInOrder Sort the leaves before walking]]>
      </doc>
    </constructor>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.impl.plan.PlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.impl.plan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
    </method>
    <method name="doAllPredecessors"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.impl.plan.Operator"/>
      <param name="seen" type="java.util.Set"/>
      <param name="fifo" type="java.util.Collection"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[DependencyOrderWalker traverses the graph in such a way that no node is visited
 before all the nodes it depends on have been visited.  Beyond this, it does not
 guarantee any particular order.  So, you have a graph with node 1 2 3 4, and
 edges 1->3, 2->3, and 3->4, this walker guarnatees that 1 and 2 will be visited
 before 3 and 3 before 4, but it does not guarantee whether 1 or 2 will be
 visited first.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.DependencyOrderWalker -->
  <!-- start class org.apache.pig.impl.plan.DepthFirstWalker -->
  <class name="DepthFirstWalker" extends="org.apache.pig.impl.plan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DepthFirstWalker" type="org.apache.pig.impl.plan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.impl.plan.PlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.impl.plan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
    </method>
    <doc>
    <![CDATA[DepthFirstWalker traverses a plan in a depth first manner.  One important note
 is that, in compliance with the PlanWalker contract, it only visits each node in
 the graph once.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.DepthFirstWalker -->
  <!-- start class org.apache.pig.impl.plan.DotPlanDumper -->
  <class name="DotPlanDumper" extends="org.apache.pig.impl.plan.PlanDumper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotPlanDumper" type="org.apache.pig.impl.plan.OperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DotPlanDumper" type="org.apache.pig.impl.plan.OperatorPlan, java.io.PrintStream, boolean, java.util.Set, java.util.Set, java.util.Set"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="dump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="dumpMultiInputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="dumpMultiOutputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
    </method>
    <method name="dumpNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
    </method>
    <method name="dumpOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
    </method>
    <method name="dumpEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="suc" type="org.apache.pig.impl.plan.Operator"/>
    </method>
    <method name="makeDumper" return="org.apache.pig.impl.plan.PlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Used to generate the label for an operator.
 @param op operator to dump]]>
      </doc>
    </method>
    <method name="getAttributes" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Used to generate the the attributes of a node
 @param op operator]]>
      </doc>
    </method>
    <method name="dumpInvisibleOperators"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
    </method>
    <field name="mSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mMultiInputSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mMultiOutputSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class puts everything that is needed to dump a plan in a
 format readable by graphviz's dot algorithm. Out of the box it does
 not print any nested plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.DotPlanDumper -->
  <!-- start class org.apache.pig.impl.plan.MapKeysInfo -->
  <class name="MapKeysInfo" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapKeysInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="MapKeysInfo" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="MapKeysInfo" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="MapKeysInfo" type="boolean, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKeys" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="needAllKeys" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.plan.MapKeysInfo -->
  <!-- start class org.apache.pig.impl.plan.NodeIdGenerator -->
  <class name="NodeIdGenerator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getGenerator" return="org.apache.pig.impl.plan.NodeIdGenerator"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the NodeIdGenerator singleton.
 @return]]>
      </doc>
    </method>
    <method name="getNextNodeId" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <doc>
      <![CDATA[Returns the next ID to be used for the current Thread.
 
 @param scope
 @return]]>
      </doc>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <doc>
      <![CDATA[Reset the given scope IDs to 0 for the current Thread.
 @param scope]]>
      </doc>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reset all scope IDs to 0 for the current Thread.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Generates IDs as long values in a thread safe manner. Each thread has its own generated IDs.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.NodeIdGenerator -->
  <!-- start class org.apache.pig.impl.plan.Operator -->
  <class name="Operator" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Comparable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="Operator" type="org.apache.pig.impl.plan.OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param k Operator key to assign to this node.]]>
      </doc>
    </constructor>
    <method name="getOperatorKey" return="org.apache.pig.impl.plan.OperatorKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the operator key for this operator.]]>
      </doc>
    </method>
    <method name="visit"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.impl.plan.PlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Visit this node with the provided visitor. This should only be called by
 the visitor class itself, never directly.
 
 @param v
            Visitor to visit with.
 @throws VisitorException
             if the visitor has a problem.]]>
      </doc>
    </method>
    <method name="supportsMultipleInputs" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Indicates whether this operator supports multiple inputs.
 
 @return true if it does, otherwise false.]]>
      </doc>
    </method>
    <method name="supportsMultipleOutputs" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Indicates whether this operator supports multiple outputs.
 
 @return true if it does, otherwise false.]]>
      </doc>
    </method>
    <method name="name" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
      <doc>
      <![CDATA[Compares to Operators based on their opKey]]>
      </doc>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Needed to ensure that the list iterators'
 outputs are deterministic. Without this
 we are totally at object id's mercy.]]>
      </doc>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.impl.plan.Operator"/>
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="CloneNotSupportedException" type="java.lang.CloneNotSupportedException"/>
      <doc>
      <![CDATA[@see java.lang.Object#clone()
 Do not use the clone method directly. Operators are cloned when logical plans
 are cloned using {@link LogicalPlanCloner}]]>
      </doc>
    </method>
    <method name="getProjectionMap" return="org.apache.pig.impl.plan.ProjectionMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Produce a map describing how this operator modifies its projection.
 @return ProjectionMap null indicates it does not know how the projection
 changes, for example a join of two inputs where one input does not have
 a schema.]]>
      </doc>
    </method>
    <method name="unsetProjectionMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Unset the projection map as if it had not been calculated.  This is used by
 anyone who reorganizes the tree and needs to have projection maps recalculated.]]>
      </doc>
    </method>
    <method name="regenerateProjectionMap" return="org.apache.pig.impl.plan.ProjectionMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Regenerate the projection map by unsetting and getting the projection map]]>
      </doc>
    </method>
    <method name="rewire"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldPred" type="org.apache.pig.impl.plan.Operator"/>
      <param name="oldPredIndex" type="int"/>
      <param name="newPred" type="org.apache.pig.impl.plan.Operator"/>
      <param name="useOldPred" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Make any necessary changes to a node based on a change of position in the
 plan. This allows operators to rewire their projections, etc. when they
 are relocated in a plan.
 
 @param oldPred
            Operator that was previously the predecessor.
 @param oldPredIndex
            position of the old predecessor in the list of predecessors
 @param newPred
            Operator that will now be the predecessor.
 @param useOldPred
            If true use oldPred's projection map for the rewire; otherwise
            use newPred's projection map
 @throws PlanException]]>
      </doc>
    </method>
    <field name="mKey" type="org.apache.pig.impl.plan.OperatorKey"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[OperatorKey associated with this operator. This key is used to find the
 operator in an OperatorPlan.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Base class for all types of operators.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.Operator -->
  <!-- start class org.apache.pig.impl.plan.OperatorKey -->
  <class name="OperatorKey" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Comparable"/>
    <constructor name="OperatorKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="OperatorKey" type="java.lang.String, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScope" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getId" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.impl.plan.OperatorKey"/>
    </method>
    <method name="genOpKey" return="org.apache.pig.impl.plan.OperatorKey"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <doc>
      <![CDATA[Utility function for creating operator keys.
 @param scope Scope to use in creating the key.
 @return new operator key.]]>
      </doc>
    </method>
    <method name="fromString" return="org.apache.pig.impl.plan.OperatorKey"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="java.lang.String"/>
    </method>
    <field name="scope" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="id" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.plan.OperatorKey -->
  <!-- start class org.apache.pig.impl.plan.OperatorPlan -->
  <class name="OperatorPlan" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Iterable"/>
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRoots" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a list of all nodes in the graph that are roots.  A root is defined to
 be a node that has no input.]]>
      </doc>
    </method>
    <method name="getLeaves" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a list of all nodes in the graph that are leaves.  A leaf is defined to
 be a node that has no output.]]>
      </doc>
    </method>
    <method name="getOperatorKey" return="org.apache.pig.impl.plan.OperatorKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Given an operator, find its OperatorKey.
 @param op Logical operator.
 @return associated OperatorKey]]>
      </doc>
    </method>
    <method name="getOperator" return="org.apache.pig.impl.plan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="opKey" type="org.apache.pig.impl.plan.OperatorKey"/>
      <doc>
      <![CDATA[Given an OperatorKey, find the associated operator.
 @param opKey OperatorKey
 @return associated operator.]]>
      </doc>
    </method>
    <method name="getKeys" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the map of operator key and associated operators
 @return map of operator key and operators.]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Insert an operator into the plan.  This only inserts it as a node in
 the graph, it does not connect it to any other operators.  That should
 be done as a separate step using connect.
 @param op Operator to add to the plan.]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.impl.plan.Operator"/>
      <param name="to" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Create an edge between two nodes.  The direction of the edge implies data
 flow.
 @param from Operator data will flow from.
 @param to Operator data will flow to.
 @throws PlanException if this edge will create multiple inputs for an
 operator that does not support multiple inputs or create multiple outputs
 for an operator that does not support multiple outputs.]]>
      </doc>
    </method>
    <method name="createSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.impl.plan.Operator"/>
      <param name="to" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Create an soft edge between two nodes.
 @param from Operator dependent upon.
 @param to Operator having the dependency.
 @throws PlanException if the nodes is not in plan]]>
      </doc>
    </method>
    <method name="removeSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.impl.plan.Operator"/>
      <param name="to" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Remove an soft edge
 @param from Operator dependent upon
 @param to Operator having the dependency]]>
      </doc>
    </method>
    <method name="disconnect" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.impl.plan.Operator"/>
      <param name="to" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Remove an edge from between two nodes. 
 Use {@link org.apache.pig.impl.plan.OperatorPlan#insertBetween(Operator, Operator, Operator)} 
 if disconnect is used in the process of inserting a new node between two nodes 
 by calling disconnect followed by a connect.
 @param from Operator data would flow from.
 @param to Operator data would flow to.
 @return true if the nodes were connected according to the specified data
 flow, false otherwise.]]>
      </doc>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Remove an operator from the plan.  Any edges that the node has will
 be removed as well.
 @param op Operator to remove.]]>
      </doc>
    </method>
    <method name="trimBelow"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Trim everything below a given operator.  The specified operator will
 NOT be removed.
 @param op Operator to trim everything after.]]>
      </doc>
    </method>
    <method name="trimAbove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Trim everything above a given operator.  The specified operator will
 NOT be removed.
 @param op Operator to trim everything before.]]>
      </doc>
    </method>
    <method name="getPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Find all of the nodes that have edges to the indicated node from
 themselves.
 @param op Node to look to
 @return Collection of nodes.]]>
      </doc>
    </method>
    <method name="getSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Find all of the nodes that have edges from the indicated node to
 themselves.
 @param op Node to look from
 @return Collection of nodes.]]>
      </doc>
    </method>
    <method name="getSoftLinkPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Find all of the nodes that have soft edges to the indicated node from
 themselves.
 @param op Node to look to
 @return Collection of nodes.]]>
      </doc>
    </method>
    <method name="getSoftLinkSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Find all of the nodes that have soft edges from the indicated node to
 themselves.
 @param op Node to look from
 @return Collection of nodes.]]>
      </doc>
    </method>
    <method name="pathExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.impl.plan.Operator"/>
      <param name="to" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[A method to check if there is a path from a given node to another node
 @param from the start node for checking
 @param to the end node for checking
 @return true if path exists, false otherwise]]>
      </doc>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="merge" return="org.apache.pig.impl.plan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inpPlan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Merges the operators in the incoming operPlan with
 this plan's operators. By merging I mean just making
 a combined graph with each one as a component
 It doesn't support merging of shared plans
 @param inpPlan
 @return this pointer
 @throws PlanException]]>
      </doc>
    </method>
    <method name="mergeSharedPlan" return="org.apache.pig.impl.plan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inpPlan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Merges the operators in the incoming plan with this plan's operators.
 The plans can have shared components. 

 @param inpPlan
 @return this pointer
 @throws PlanException]]>
      </doc>
    </method>
    <method name="addAsLeaf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="leaf" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Utility method heavily used in the MRCompiler
 Adds the leaf operator to the plan and connects
 all existing leaves to the new leaf
 @param leaf
 @throws PlanException]]>
      </doc>
    </method>
    <method name="isSingleLeafPlan" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="insertBetween"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="after" type="org.apache.pig.impl.plan.Operator"/>
      <param name="newNode" type="org.apache.pig.impl.plan.Operator"/>
      <param name="before" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Given two connected nodes add another node between them.
 'newNode' will be placed in same position in predecessor list as 'before' (old node).
 @param after Node to insert this node after
 @param newNode new node to insert.  This node must have already been
 added to the plan.
 @param before Node to insert this node before
 @throws PlanException if it encounters trouble disconnecting or
 connecting nodes.]]>
      </doc>
    </method>
    <method name="doInsertBetween"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="after" type="org.apache.pig.impl.plan.Operator"/>
      <param name="newNode" type="org.apache.pig.impl.plan.Operator"/>
      <param name="before" type="org.apache.pig.impl.plan.Operator"/>
      <param name="rewire" type="boolean"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
    <method name="replace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldNode" type="org.apache.pig.impl.plan.Operator"/>
      <param name="newNode" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Replace an existing node in the graph with a new node.  The new node
 will be connected to all the nodes the old node was.  The old node will
 be removed. The new node is assumed to have no incoming or outgoing edges
 @param oldNode Node to be replaced
 @param newNode Node to add in place of oldNode
 @throws PlanException]]>
      </doc>
    </method>
    <method name="removeAndReconnect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Remove a node in a way that connects the node's predecessor (if any)
 with the node's successor (if any).  This function does not handle the
 case where the node has multiple predecessors or successors.
 @param node Node to be removed
 @throws PlanException if the node has more than one predecessor or
 successor.]]>
      </doc>
    </method>
    <method name="removeAndReconnectMultiSucc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Remove a node in a way that connects the node's predecessor (if any)
 with the node's successors (if any).  This function handles the
 case where the node has *one* predecessor and one or more successors.
 It replaces the predecessor in same position as node was in
 each of the successors predecessor list(getPredecessors()), to 
 preserve input ordering 
 for eg, it is used to remove redundant project(*) from plan
 which will have only one predecessor,but can have multiple success
 @param node Node to be removed
 @throws PlanException if the node has more than one predecessor]]>
      </doc>
    </method>
    <method name="dump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="swap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="first" type="org.apache.pig.impl.plan.Operator"/>
      <param name="second" type="org.apache.pig.impl.plan.Operator"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Swap two operators in a plan.  Both of the operators must have single
 inputs and single outputs.
 @param first operator
 @param second operator
 @throws PlanException if either operator is not single input and output.]]>
      </doc>
    </method>
    <method name="pushBefore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="first" type="org.apache.pig.impl.plan.Operator"/>
      <param name="second" type="org.apache.pig.impl.plan.Operator"/>
      <param name="inputNum" type="int"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Push one operator in front of another.  This function is for use when
 the first operator has multiple inputs.  The caller can specify
 which input of the first operator the second operator should be pushed to.
 @param first operator, assumed to have multiple inputs.
 @param second operator, will be pushed in front of first
 @param inputNum indicates which input of the first operator the second
 operator will be pushed onto.  Numbered from 0.
 @throws PlanException if inputNum does not exist for first operator]]>
      </doc>
    </method>
    <method name="pushAfter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="first" type="org.apache.pig.impl.plan.Operator"/>
      <param name="second" type="org.apache.pig.impl.plan.Operator"/>
      <param name="outputNum" type="int"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
      <doc>
      <![CDATA[Push one operator after another.  This function is for use when the second
 operator has multiple outputs.  The caller can specify which output of the
 second operator the first operator should be pushed to.
 @param first operator, assumed to have multiple outputs
 @param second operator, will be pushed after the first operator
 @param outputNum indicates which output of the first operator the second 
 operator will be pushed onto.  Numbered from 0.
 @throws PlanException if outputNum does not exist for first operator]]>
      </doc>
    </method>
    <field name="mOps" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mKeys" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mFromEdges" type="org.apache.pig.impl.util.MultiMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mToEdges" type="org.apache.pig.impl.util.MultiMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mSoftFromEdges" type="org.apache.pig.impl.util.MultiMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mSoftToEdges" type="org.apache.pig.impl.util.MultiMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A generic graphing class for use by LogicalPlan, PhysicalPlan, etc.  One
 important aspect of this package is that it guarantees that once a graph is
 constructed, manipulations on that graph will maintain the ordering of
 inputs and outputs for a given node.  That is, if a node has two inputs, 0
 and 1, it is guaranteed that everytime it asks for its inputs, it will
 receive them in the same order.  This allows operators that need to
 distinguish their inputs (such as binary operators that need to know left
 from right) to work without needing to store their inputs themselves.  This
 is an extra burden on the graph package and not in line with the way graphs
 are generally understood mathematically.  But it greatly reducing the need
 for graph manipulators (such as the validators and optimizers) to
 understand the internals of various nodes.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.OperatorPlan -->
  <!-- start class org.apache.pig.impl.plan.OperatorPlan.IndexHelper -->
  <class name="OperatorPlan.IndexHelper" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="OperatorPlan.IndexHelper" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getIndex" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.plan.OperatorPlan.IndexHelper -->
  <!-- start class org.apache.pig.impl.plan.PlanDumper -->
  <class name="PlanDumper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanDumper" type="org.apache.pig.impl.plan.OperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="isVerbose" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="dump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is the public interface. Dump writes the plan and nested
 plans to the stream.]]>
      </doc>
    </method>
    <method name="makeDumper" return="org.apache.pig.impl.plan.PlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
      <doc>
      <![CDATA[makeDumper is a factory method. Used by subclasses to specify
 what dumper should handle the nested plan.
 @param plan Plan that the new dumper should handle
 @return the dumper for plan]]>
      </doc>
    </method>
    <method name="dumpOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Will be called to dump a simple operator
 @param op the operator to be dumped]]>
      </doc>
    </method>
    <method name="dumpMultiInputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
      <doc>
      <![CDATA[Will be called when an operator has nested plans, which are
 connected to one of the multiple inputs.
 @param op the nested operator
 @param plans a map of input operator to connected nested plan]]>
      </doc>
    </method>
    <method name="dumpMultiOutputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
      <doc>
      <![CDATA[Will be called for nested operators, where the plans represent
 how the output of the operator is processed. 
 @param op the nested operator
 @param plans a collection of sub plans.]]>
      </doc>
    </method>
    <method name="dumpNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
      <doc>
      <![CDATA[Will be called for nested operators. The operators are not
 specifically connected to any input or output operators of E
 @param op the nested operator
 @param plans a collection of sub plans.]]>
      </doc>
    </method>
    <method name="dumpEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <param name="suc" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Will be called to dump the edges of the plan. Each edge results
 in one call.
 @param op tail of the edge
 @param suc head of the edge]]>
      </doc>
    </method>
    <method name="getMultiInputNestedPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested plans, which are
 connected to specific input operators.
 @param op operator
 @return Map describing the input to nested plan relationship.]]>
      </doc>
    </method>
    <method name="getMultiOutputNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested output plans

 @param op operator
 @return Map describing the input to nested plan relationship.]]>
      </doc>
    </method>
    <method name="getNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.impl.plan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested plans (without
 connections to in- or output operators.
 @param op operator
 @return Collection of nested plans.]]>
      </doc>
    </method>
    <method name="join"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="sep" type="java.lang.String"/>
      <param name="strings" type="java.lang.String[]"/>
      <doc>
      <![CDATA[Helper function to print a string array.
 @param sep Separator
 @param strings Array to print]]>
      </doc>
    </method>
    <field name="ps" type="java.io.PrintStream"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plan" type="org.apache.pig.impl.plan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isVerbose" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class dumps a nested plan to a print stream. It does not walk
 the graph in any particular fashion it merely iterates over all
 operators and edges and calls a corresponding dump function. If a
 node of the plan has nested plans this will be dumped when the
 node is handled.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.PlanDumper -->
  <!-- start class org.apache.pig.impl.plan.PlanException -->
  <class name="PlanException" extends="org.apache.pig.impl.logicalLayer.FrontendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="PlanException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.plan.PlanException -->
  <!-- start class org.apache.pig.impl.plan.PlanValidationException -->
  <class name="PlanValidationException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanValidationException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="org.apache.pig.newplan.Operator, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="org.apache.pig.newplan.Operator, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="PlanValidationException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new PlanValidationException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.plan.PlanValidationException -->
  <!-- start class org.apache.pig.impl.plan.PlanVisitor -->
  <class name="PlanVisitor" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanVisitor" type="org.apache.pig.impl.plan.OperatorPlan, org.apache.pig.impl.plan.PlanWalker"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan OperatorPlan this visitor will visit.
 @param walker PlanWalker this visitor will use to traverse the plan.]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Entry point for visiting the plan.
 @throws VisitorException if an error is encountered while visiting.]]>
      </doc>
    </method>
    <method name="getPlan" return="org.apache.pig.impl.plan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="walker" type="org.apache.pig.impl.plan.PlanWalker"/>
      <doc>
      <![CDATA[Push the current walker onto the stack of saved walkers and begin using
 the newly passed walker as the current walker.
 @param walker new walker to set as the current walker.]]>
      </doc>
    </method>
    <method name="popWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Pop the next to previous walker off of the stack and set it as the current
 walker.  This will drop the reference to the current walker.
 @throws VisitorException if there are no more walkers on the stack.  In
 this case the current walker is not reset.]]>
      </doc>
    </method>
    <field name="mPlan" type="org.apache.pig.impl.plan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mCurrentWalker" type="org.apache.pig.impl.plan.PlanWalker"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Guaranteed to always point to the walker currently being used.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[A visitor mechanism for navigating and operating on a plan of 
 Operators.  This class contains the logic to traverse the plan.  It does not
 visit individual nodes.  That is left to implementing classes (such as
 LOVisitor).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.PlanVisitor -->
  <!-- start class org.apache.pig.impl.plan.PlanWalker -->
  <class name="PlanWalker" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanWalker" type="org.apache.pig.impl.plan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="walk"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.impl.plan.PlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.  This can't be set in
 the constructor because the visitor is constructing this class, and does
 not yet have a 'this' pointer to send as an argument.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.impl.plan.PlanWalker"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <doc>
      <![CDATA[Return a new instance of this same type of walker for a subplan.
 When this method is called the same type of walker with the
 provided plan set as the plan, must be returned.  This can then be
 used to walk subplans.  This allows abstract visitors to clone
 walkers without knowning the type of walker their subclasses used.
 @param plan Plan for the new walker.
 @return Instance of the same type of walker with mPlan set to plan.]]>
      </doc>
    </method>
    <method name="getPlan" return="org.apache.pig.impl.plan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
    </method>
    <field name="mPlan" type="org.apache.pig.impl.plan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[PlanWalker encapsulates the logic to traverse a plan.  It is used only by
 visitors.

 All walkers must be constructed in a way that they only visit a given node
 once in a traversal.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.PlanWalker -->
  <!-- start class org.apache.pig.impl.plan.ProjectionMap -->
  <class name="ProjectionMap" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectionMap" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param changes
            to indicate if this projection map changes its input or not]]>
      </doc>
    </constructor>
    <constructor name="ProjectionMap" type="org.apache.pig.impl.util.MultiMap, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param mapFields
            the mapping of input column to output column
 @param removedFields
            the list of input columns that are removed
 @param addedFields
            the list of columns that are added to the output]]>
      </doc>
    </constructor>
    <method name="getMappedFields" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the mapping of input column to output column]]>
      </doc>
    </method>
    <method name="setMappedFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="org.apache.pig.impl.util.MultiMap"/>
      <doc>
      <![CDATA[@param fields
            the mapping of input column to output column]]>
      </doc>
    </method>
    <method name="getRemovedFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the list of input columns that are removed]]>
      </doc>
    </method>
    <method name="setRemovedFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="java.util.List"/>
      <doc>
      <![CDATA[@param fields
            the list of input columns that are removed]]>
      </doc>
    </method>
    <method name="getAddedFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the list of columns that are added to the output]]>
      </doc>
    </method>
    <method name="setAddedFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="java.util.List"/>
      <doc>
      <![CDATA[@param fields
            the list of columns that are added to the output]]>
      </doc>
    </method>
    <method name="changes" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this projection map changes its input or not]]>
      </doc>
    </method>
    <method name="getChanges" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this projection map changes its input or not]]>
      </doc>
    </method>
    <method name="setChanges"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="changes" type="boolean"/>
      <doc>
      <![CDATA[@param changes
            if this projection map changes its input or not]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A struct detailing how a projection is altered by an operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.ProjectionMap -->
  <!-- start class org.apache.pig.impl.plan.ProjectionMap.Column -->
  <class name="ProjectionMap.Column" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectionMap.Column" type="org.apache.pig.impl.util.Pair"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param inputColumn
            A pair of integers representing the input number and the
            input column number]]>
      </doc>
    </constructor>
    <constructor name="ProjectionMap.Column" type="org.apache.pig.impl.util.Pair, boolean, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param inputColumn
            A pair of integers representing the input number and the
            input column number
 @param cast
            true if the input column has a cast
 @param castType
            the data type of the cast]]>
      </doc>
    </constructor>
    <method name="getInputColumn" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the mapped column details
 
 @return A pair of integers representing the input number and the
         input column number]]>
      </doc>
    </method>
    <method name="getCast" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Check if the column is cast
 
 @return true if the input column has a cast; false otherwise]]>
      </doc>
    </method>
    <method name="cast" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Check if the column is cast
 
 @return true if the input column has a cast; false otherwise]]>
      </doc>
    </method>
    <method name="getCastType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the data type of the cast
 
 @return the data type of the cast]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A wrapper for projection map columns to contain the input number, input
 column. Additionally, if a cast is used, record the type of the cast]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.ProjectionMap.Column -->
  <!-- start class org.apache.pig.impl.plan.RequiredFields -->
  <class name="RequiredFields" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RequiredFields" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param needAllFields
            to indicate if this required fields needs all the fields from
            its input]]>
      </doc>
    </constructor>
    <constructor name="RequiredFields" type="boolean, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param needAllFields
            to indicate if this required fields needs no fields from
            its input]]>
      </doc>
    </constructor>
    <constructor name="RequiredFields" type="java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param fields
            the list of input columns that are required]]>
      </doc>
    </constructor>
    <method name="getFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the list of input columns that are required]]>
      </doc>
    </method>
    <method name="getField" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <doc>
      <![CDATA[@param i
         the index of the required field
 @return the ith required input column]]>
      </doc>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the size of required input columns]]>
      </doc>
    </method>
    <method name="setFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fields" type="java.util.List"/>
      <doc>
      <![CDATA[@param fields
            the list of input columns that are required]]>
      </doc>
    </method>
    <method name="needAllFields" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this required fields needs all the fields from its input(s)]]>
      </doc>
    </method>
    <method name="getNeedAllFields" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this required fields needs all the fields from its input(s)]]>
      </doc>
    </method>
    <method name="setNeedAllFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="needAllFields" type="boolean"/>
      <doc>
      <![CDATA[@param needAllFields
            to indicate if this required fields needs all the fields from
            its input; cannot be true if needNoFields() is true]]>
      </doc>
    </method>
    <method name="needNoFields" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this required fields needs no fields from its input(s)]]>
      </doc>
    </method>
    <method name="getNeedNoFields" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return if this required fields needs no fields from its input(s)]]>
      </doc>
    </method>
    <method name="setNeedNoFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="needNoFields" type="boolean"/>
      <doc>
      <![CDATA[@param needNoFields
            to indicate if this required fields needs no fields from
            its input; cannot be true if needAllFields() is true]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="merge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="r2" type="org.apache.pig.impl.plan.RequiredFields"/>
      <doc>
      <![CDATA[Merge with RequiredFields r2. Merge both required fields and required map keys 
 @param r2
            Required fields to merge]]>
      </doc>
    </method>
    <method name="reIndex"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <doc>
      <![CDATA[Set the index of all fields to i  
 @param i
            New index to set]]>
      </doc>
    </method>
    <method name="mergeMapKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="int"/>
      <param name="column" type="int"/>
      <param name="key" type="java.lang.String"/>
      <doc>
      <![CDATA[Merge another map key into existing required map keys list
 @param input
            The input of the field to merge
 @param column
            The column of the field to merge
 @param key
            The key to merge]]>
      </doc>
    </method>
    <method name="mergeMapKeysInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="int"/>
      <param name="column" type="int"/>
      <param name="mapKeysInfo" type="org.apache.pig.impl.plan.MapKeysInfo"/>
      <doc>
      <![CDATA[Merge a MapKeysInfo structure to existing required map keys list
 @param input
            The input of the field to merge
 @param column
            The column of the field to merge
 @param mapKeysInfo
            The MapKeysInfo structure to merge]]>
      </doc>
    </method>
    <method name="setMapKeysInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="int"/>
      <param name="column" type="int"/>
      <param name="mapKeysInfo" type="org.apache.pig.impl.plan.MapKeysInfo"/>
      <doc>
      <![CDATA[Set a MapKeysInfo structure to the required map keys list
 @param input
            The input of the field to set
 @param column
            The column of the field to set
 @param mapKeysInfo
            The MapKeysInfo structure to set]]>
      </doc>
    </method>
    <method name="getMapKeysInfo" return="org.apache.pig.impl.plan.MapKeysInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <doc>
      <![CDATA[Get the ith MapKeysInfo structure 
 @param i
            The index of the MapKeysInfo, the index of MapKeysInfo is synchronized with mFields]]>
      </doc>
    </method>
    <method name="setMapKeysInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <param name="mapKeysInfo" type="org.apache.pig.impl.plan.MapKeysInfo"/>
      <doc>
      <![CDATA[Set the ith MapKeysInfo structure 
 @param i
            The index of the MapKeysInfo, the index of MapKeysInfo is synchronized with mFields
 @param mapKeysInfo
            The MapKeysInfo to set]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A struct detailing how a projection is altered by an operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.RequiredFields -->
  <!-- start class org.apache.pig.impl.plan.ReverseDependencyOrderWalker -->
  <class name="ReverseDependencyOrderWalker" extends="org.apache.pig.impl.plan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ReverseDependencyOrderWalker" type="org.apache.pig.impl.plan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.impl.plan.PlanVisitor"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.impl.plan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
    </method>
    <method name="doAllSuccessors"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.impl.plan.Operator"/>
      <param name="seen" type="java.util.Set"/>
      <param name="fifo" type="java.util.Collection"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[ReverseDependencyOrderWalker traverses the graph in such a way that no node is visited
 before all the nodes that are its successors on have been visited.  Beyond this, it does not
 guarantee any particular order.  So, you have a graph with node 1 2 3 4, and
 edges 1->3, 2->3, and 3->4, this walker guarantees that 4 will be visited
 before 3 and 3 before 1 and 2, but it does not guarantee whether 1 or 2 will be
 visited first.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.plan.ReverseDependencyOrderWalker -->
  <!-- start class org.apache.pig.impl.plan.VisitorException -->
  <class name="VisitorException" extends="org.apache.pig.impl.logicalLayer.FrontendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="VisitorException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="org.apache.pig.newplan.Operator, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="org.apache.pig.newplan.Operator, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="org.apache.pig.newplan.Operator, java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param op - logical operator where the exception occurs
 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="VisitorException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new VisitorException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.plan.VisitorException -->
</package>
<package name="org.apache.pig.impl.plan.optimizer">
  <!-- start class org.apache.pig.impl.plan.optimizer.OptimizerException -->
  <class name="OptimizerException" extends="org.apache.pig.impl.plan.VisitorException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="OptimizerException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with null as the error message.]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified cause.

 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, byte, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, byte, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer]]>
      </doc>
    </constructor>
    <constructor name="OptimizerException" type="java.lang.String, int, byte, boolean, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new OptimizerException with the specified message, error code, error source, retriable or not, detalied message for the developer and cause.

 @param message - The error message (which is saved for later retrieval by the <link>Throwable.getMessage()</link> method) shown to the user 
 @param errCode - The error code shown to the user 
 @param errSrc - The error source 
 @param retry - If the exception is retriable or not
 @param detailedMsg - The detailed message shown to the developer 
 @param cause - The cause (which is saved for later retrieval by the <link>Throwable.getCause()</link> method) indicating the source of this exception. A null value is permitted, and indicates that the cause is nonexistent or unknown.]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.plan.optimizer.OptimizerException -->
</package>
<package name="org.apache.pig.impl.streaming">
  <!-- start class org.apache.pig.impl.streaming.DefaultInputHandler -->
  <class name="DefaultInputHandler" extends="org.apache.pig.impl.streaming.InputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultInputHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DefaultInputHandler" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInputType" return="org.apache.pig.impl.streaming.InputHandler.InputType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="process" type="java.lang.Process"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[DefaultInputHandler handles the input for the Pig-Streaming
 executable in a synchronous manner by feeding it input
 via its <code>stdin</code>.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.DefaultInputHandler -->
  <!-- start class org.apache.pig.impl.streaming.DefaultOutputHandler -->
  <class name="DefaultOutputHandler" extends="org.apache.pig.impl.streaming.OutputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DefaultOutputHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DefaultOutputHandler" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputType" return="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[FileOutputHandler handles the output from the Pig-Streaming
 executable in an synchronous manner by reading its output
 via its <code>stdout</code>.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.DefaultOutputHandler -->
  <!-- start class org.apache.pig.impl.streaming.ExecutableManager -->
  <class name="ExecutableManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExecutableManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new {@link ExecutableManager}.]]>
      </doc>
    </constructor>
    <method name="configure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Configure and initialize the {@link ExecutableManager}.

 @param stream POStream operator
 @throws IOException
 @throws ExecException]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Close and cleanup the {@link ExecutableManager}.
 @throws IOException]]>
      </doc>
    </method>
    <method name="exec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Start execution of the external process.

 This takes care of setting up the environment of the process and also
 starts ProcessErrorThread to process the <code>stderr</code> of
 the managed process.

 @throws IOException]]>
      </doc>
    </method>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Start execution of the {@link ExecutableManager}.

 @throws IOException]]>
      </doc>
    </method>
    <method name="processError"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="error" type="java.lang.String"/>
      <doc>
      <![CDATA[Workhorse to process the stderr stream of the managed process.

 By default <code>ExecuatbleManager</code> just sends out the received
 error message to the <code>stderr</code> of itself.

 @param error
            error message from the managed process.]]>
      </doc>
    </method>
    <field name="command" type="org.apache.pig.impl.streaming.StreamingCommand"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="exitCode" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="stdin" type="java.io.DataOutputStream"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputRecords" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputBytes" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outputRecords" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outputBytes" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outerrThreadsError" type="java.lang.Throwable"
      transient="false" volatile="true"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[{@link ExecutableManager} manages an external executable which processes data
 in a Pig query.

 The <code>ExecutableManager</code> is responsible for startup/teardown of
 the external process and also for managing it. It feeds input records to the
 executable via it's <code>stdin</code>, collects the output records from
 the <code>stdout</code> and also diagnostic information from the
 <code>stdout</code>.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.ExecutableManager -->
  <!-- start class org.apache.pig.impl.streaming.FileInputHandler -->
  <class name="FileInputHandler" extends="org.apache.pig.impl.streaming.InputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileInputHandler" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="getInputType" return="org.apache.pig.impl.streaming.InputHandler.InputType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="bindTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="os" type="java.io.OutputStream"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="process" type="java.lang.Process"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[FileInputHandler handles the input for the Pig-Streaming
 executable in an asynchronous manner by feeding it input
 via an external file specified by the user.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.FileInputHandler -->
  <!-- start class org.apache.pig.impl.streaming.FileOutputHandler -->
  <class name="FileOutputHandler" extends="org.apache.pig.impl.streaming.OutputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileOutputHandler" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="getOutputType" return="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="bindTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="is" type="org.apache.pig.impl.io.BufferedPositionedInputStream"/>
      <param name="offset" type="long"/>
      <param name="end" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[FileOutputHandler handles the output from the Pig-Streaming
 executable in an asynchronous manner by reading it from
 an external file specified by the user.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.FileOutputHandler -->
  <!-- start class org.apache.pig.impl.streaming.HandlerFactory -->
  <class name="HandlerFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HandlerFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createInputHandler" return="org.apache.pig.impl.streaming.InputHandler"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="command" type="org.apache.pig.impl.streaming.StreamingCommand"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Create an <code>InputHandler</code> for the given input specification
 of the <code>StreamingCommand</code>.
 
 @param command <code>StreamingCommand</code>
 @return <code>InputHandler</code> for the given input specification
 @throws ExecException]]>
      </doc>
    </method>
    <method name="createOutputHandler" return="org.apache.pig.impl.streaming.OutputHandler"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="command" type="org.apache.pig.impl.streaming.StreamingCommand"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Create an <code>OutputHandler</code> for the given output specification
 of the <code>StreamingCommand</code>.
 
 @param command <code>StreamingCommand</code>
 @return <code>OutputHandler</code> for the given output specification
 @throws ExecException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Factory to create an {@link InputHandler} or {@link OutputHandler}
 depending on the specification of the {@link StreamingCommand}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.HandlerFactory -->
  <!-- start class org.apache.pig.impl.streaming.InputHandler -->
  <class name="InputHandler" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InputHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInputType" return="org.apache.pig.impl.streaming.InputHandler.InputType"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the handled <code>InputType</code>
 @return the handled <code>InputType</code>]]>
      </doc>
    </method>
    <method name="putNext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Send the given input <code>Tuple</code> to the managed executable.

 @param t input <code>Tuple</code>
 @throws IOException]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="process" type="java.lang.Process"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Close the <code>InputHandler</code> since there is no more input
 to be sent to the managed process.
 @param process the managed process - this could be null in some cases
 like when input is through files. In that case, the process would not
 have been exec'ed yet - if this method if overridden it is the responsibility
 of the implementer to check that the process is usable. The managed process
 object is supplied by the ExecutableManager to this call so that this method
 can check if the process is alive if it needs to know.

 @throws IOException]]>
      </doc>
    </method>
    <method name="bindTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="os" type="java.io.OutputStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Bind the <code>InputHandler</code> to the <code>OutputStream</code>
 from which it reads input and sends it to the managed process.

 @param os <code>OutputStream</code> from which to read input data for the
           managed process
 @throws IOException]]>
      </doc>
    </method>
    <field name="serializer" type="org.apache.pig.PigToStream"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="alreadyClosed" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[{@link InputHandler} is responsible for handling the input to the
 Pig-Streaming external command.

 The managed executable could be fed input in a {@link InputType#SYNCHRONOUS}
 manner via its <code>stdin</code> or in an {@link InputType#ASYNCHRONOUS}
 manner via an external file which is subsequently read by the executable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.InputHandler -->
  <!-- start class org.apache.pig.impl.streaming.InputHandler.InputType -->
  <class name="InputHandler.InputType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.streaming.InputHandler.InputType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.streaming.InputHandler.InputType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="SYNCHRONOUS" type="org.apache.pig.impl.streaming.InputHandler.InputType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ASYNCHRONOUS" type="org.apache.pig.impl.streaming.InputHandler.InputType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.streaming.InputHandler.InputType -->
  <!-- start class org.apache.pig.impl.streaming.OutputHandler -->
  <class name="OutputHandler" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="OutputHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputType" return="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the handled <code>OutputType</code>.
 @return the handled <code>OutputType</code>]]>
      </doc>
    </method>
    <method name="bindTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="is" type="org.apache.pig.impl.io.BufferedPositionedInputStream"/>
      <param name="offset" type="long"/>
      <param name="end" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Bind the <code>OutputHandler</code> to the <code>InputStream</code>
 from which to read the output data of the managed process.

 @param is <code>InputStream</code> from which to read the output data
           of the managed process
 @throws IOException]]>
      </doc>
    </method>
    <method name="getNext" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Get the next output <code>Tuple</code> of the managed process.

 @return the next output <code>Tuple</code> of the managed process
 @throws IOException]]>
      </doc>
    </method>
    <method name="getRecordDelimiter" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Close the <code>OutputHandler</code>.
 @throws IOException]]>
      </doc>
    </method>
    <field name="END_OF_OUTPUT" type="java.lang.Object"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="deserializer" type="org.apache.pig.StreamToPig"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="in" type="org.apache.hadoop.util.LineReader"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="alreadyClosed" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[{@link OutputHandler} is responsible for handling the output of the
 Pig-Streaming external command.

 The output of the managed executable could be fetched in a
 {@link OutputType#SYNCHRONOUS} manner via its <code>stdout</code> or in an
 {@link OutputType#ASYNCHRONOUS} manner via an external file to which the
 process wrote its output.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.OutputHandler -->
  <!-- start class org.apache.pig.impl.streaming.OutputHandler.OutputType -->
  <class name="OutputHandler.OutputType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.streaming.OutputHandler.OutputType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="SYNCHRONOUS" type="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ASYNCHRONOUS" type="org.apache.pig.impl.streaming.OutputHandler.OutputType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.streaming.OutputHandler.OutputType -->
  <!-- start class org.apache.pig.impl.streaming.PigStreamingUDF -->
  <class name="PigStreamingUDF" extends="org.apache.pig.PigStreamingBase"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigStreamingUDF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigStreamingUDF" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="serializeToBytes" return="org.apache.pig.data.WritableByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getLoadCaster" return="org.apache.pig.LoadCaster"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="deserialize" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <param name="offset" type="int"/>
      <param name="length" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getRecordDelim" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.PigStreamingUDF -->
  <!-- start class org.apache.pig.impl.streaming.StreamingCommand -->
  <class name="StreamingCommand" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="StreamingCommand" type="org.apache.pig.impl.PigContext, java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new <code>StreamingCommand</code> with the given command.
 
 @param pigContext PigContext structure
 @param argv parsed arguments of the <code>command</code>]]>
      </doc>
    </constructor>
    <method name="getExecutable" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the command to be executed.
 
 @return the command to be executed]]>
      </doc>
    </method>
    <method name="setExecutable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="executable" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the executable for the <code>StreamingCommand</code>.
 
 @param executable the executable for the <code>StreamingCommand</code>]]>
      </doc>
    </method>
    <method name="setCommandArgs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="argv" type="java.lang.String[]"/>
      <doc>
      <![CDATA[Set the command line arguments for the <code>StreamingCommand</code>.
 
 @param argv the command line arguments for the 
             <code>StreamingCommand</code>]]>
      </doc>
    </method>
    <method name="getCommandArgs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the parsed command arguments.
 
 @return the parsed command arguments as <code>String[]</code>]]>
      </doc>
    </method>
    <method name="getShipSpecs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the list of files which need to be shipped to the cluster.
 
 @return the list of files which need to be shipped to the cluster]]>
      </doc>
    </method>
    <method name="getCacheSpecs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the list of files which need to be cached on the execute nodes.
 
 @return the list of files which need to be cached on the execute nodes]]>
      </doc>
    </method>
    <method name="addPathToShip"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Add a file to be shipped to the cluster. 
 
 Users can use this to distribute executables and other necessary files
 to the clusters.
 
 @param path path of the file to be shipped to the cluster]]>
      </doc>
    </method>
    <method name="addPathToCache"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Add a file to be cached on execute nodes on the cluster. The file is
 assumed to be available at the shared filesystem.
 
 @param path path of the file to be cached on the execute nodes]]>
      </doc>
    </method>
    <method name="addHandleSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="handle" type="org.apache.pig.impl.streaming.StreamingCommand.Handle"/>
      <param name="handleSpec" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"/>
      <doc>
      <![CDATA[Attach a {@link HandleSpec} to a given {@link Handle}
 @param handle <code>Handle</code> to which the specification is to 
               be attached.
 @param handleSpec <code>HandleSpec</code> for the given handle.]]>
      </doc>
    </method>
    <method name="setInputSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spec" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"/>
      <doc>
      <![CDATA[Set the input specification for the <code>StreamingCommand</code>.
 
 @param spec input specification]]>
      </doc>
    </method>
    <method name="getInputSpec" return="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the input specification of the <code>StreamingCommand</code>.
 
 @return input specification of the <code>StreamingCommand</code>]]>
      </doc>
    </method>
    <method name="setOutputSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spec" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"/>
      <doc>
      <![CDATA[Set the specification for the primary output of the 
 <code>StreamingCommand</code>.
 
 @param spec specification for the primary output of the 
             <code>StreamingCommand</code>]]>
      </doc>
    </method>
    <method name="getOutputSpec" return="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the specification of the primary output of the 
 <code>StreamingCommand</code>.
 
 @return specification of the primary output of the 
         <code>StreamingCommand</code>]]>
      </doc>
    </method>
    <method name="getHandleSpecs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="handle" type="org.apache.pig.impl.streaming.StreamingCommand.Handle"/>
      <doc>
      <![CDATA[Get specifications for the given <code>Handle</code>.
 
 @param handle <code>Handle</code> of the stream
 @return specification for the given <code>Handle</code>]]>
      </doc>
    </method>
    <method name="getPersistStderr" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Should the stderr of the managed process be persisted?
 
 @return <code>true</code> if the stderr of the managed process should be
         persisted, <code>false</code> otherwise.]]>
      </doc>
    </method>
    <method name="setPersistStderr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="persistStderr" type="boolean"/>
      <doc>
      <![CDATA[Specify if the stderr of the managed process should be persisted.
 
 @param persistStderr <code>true</code> if the stderr of the managed 
                      process should be persisted, else <code>false</code>]]>
      </doc>
    </method>
    <method name="getLogDir" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the directory where the log-files of the command are persisted.
 
 @return the directory where the log-files of the command are persisted]]>
      </doc>
    </method>
    <method name="setLogDir"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="logDir" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the directory where the log-files of the command are persisted.
 
 @param logDir the directory where the log-files of the command are persisted]]>
      </doc>
    </method>
    <method name="getLogFilesLimit" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the maximum number of tasks whose stderr logs files are persisted.
 
 @return the maximum number of tasks whose stderr logs files are persisted]]>
      </doc>
    </method>
    <method name="setLogFilesLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="logFilesLimit" type="int"/>
      <doc>
      <![CDATA[Set the maximum number of tasks whose stderr logs files are persisted.
 @param logFilesLimit the maximum number of tasks whose stderr logs files 
                      are persisted]]>
      </doc>
    </method>
    <method name="setShipFiles"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="shipFiles" type="boolean"/>
      <doc>
      <![CDATA[Set whether files should be shipped or not.
 
 @param shipFiles <code>true</code> if files of this command should be
                  shipped, <code>false</code> otherwise]]>
      </doc>
    </method>
    <method name="getShipFiles" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get whether files for this command should be shipped or not.
 
 @return <code>true</code> if files of this command should be shipped, 
         <code>false</code> otherwise]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="MAX_TASKS" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[{@link StreamingCommand} represents the specification of an external
 command to be executed in a Pig Query. 
 
 <code>StreamingCommand</code> encapsulates all relevant details of the
 command specified by the user either directly via the <code>STREAM</code>
 operator or indirectly via a <code>DEFINE</code> operator. It includes
 details such as input/output/error specifications and also files to be
 shipped to the cluster and files to be cached.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingCommand -->
  <!-- start class org.apache.pig.impl.streaming.StreamingCommand.Handle -->
  <class name="StreamingCommand.Handle" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.streaming.StreamingCommand.Handle[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.streaming.StreamingCommand.Handle"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="INPUT" type="org.apache.pig.impl.streaming.StreamingCommand.Handle"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUT" type="org.apache.pig.impl.streaming.StreamingCommand.Handle"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Handle to communicate with the external process.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingCommand.Handle -->
  <!-- start class org.apache.pig.impl.streaming.StreamingCommand.HandleSpec -->
  <class name="StreamingCommand.HandleSpec" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Comparable"/>
    <implements name="java.io.Serializable"/>
    <implements name="java.lang.Cloneable"/>
    <constructor name="StreamingCommand.HandleSpec" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new {@link HandleSpec} with a given name using the default
 {@link PigStorage} serializer/deserializer.
 
 @param handleName name of the handle (one of <code>stdin</code>,
                   <code>stdout</code> or a file-path)]]>
      </doc>
    </constructor>
    <constructor name="StreamingCommand.HandleSpec" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new {@link HandleSpec} with a given name using the default
 {@link PigStorage} serializer/deserializer.
 
 @param handleName name of the handle (one of <code>stdin</code>,
                   <code>stdout</code> or a file-path)
 @param spec serializer/deserializer spec]]>
      </doc>
    </constructor>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.pig.impl.streaming.StreamingCommand.HandleSpec"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the <b>name</b> of the <code>HandleSpec</code>.
 
 @return the <b>name</b> of the <code>HandleSpec</code> (one of 
         <code>stdin</code>, <code>stdout</code> or a file-path)]]>
      </doc>
    </method>
    <method name="setName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the <b>name</b> of the <code>HandleSpec</code>.
 
 @param name <b>name</b> of the <code>HandleSpec</code> (one of 
         <code>stdin</code>, <code>stdout</code> or a file-path)]]>
      </doc>
    </method>
    <method name="getSpec" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the serializer/deserializer spec of the <code>HandleSpec</code>.
 
 @return the serializer/deserializer spec of the 
         <code>HandleSpec</code>]]>
      </doc>
    </method>
    <method name="setSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spec" type="java.lang.String"/>
      <doc>
      <![CDATA[Set the serializer/deserializer spec of the <code>HandleSpec</code>.
 
 @param spec the serializer/deserializer spec of the 
             <code>HandleSpec</code>]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clone" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Specification about the usage of the {@link Handle} to communicate
 with the external process.
 
 It specifies the stream-handle which can be one of <code>stdin</code>/
 <code>stdout</code>/<code>stderr</code> or a named file and also the
 serializer/deserializer specification to be used to read/write data 
 to/from the stream.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingCommand.HandleSpec -->
  <!-- start class org.apache.pig.impl.streaming.StreamingDelimiters -->
  <class name="StreamingDelimiters" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingDelimiters"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingDelimiters" type="byte, byte, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param preWrapDelim
 @param postWrapDelim
 @param useEmptyNull - In the past empty was used to serialize null.  But this can
      make it impossible to differentiate between an empty string and null.  Set
      to false if you want to use a special character to represent null.]]>
      </doc>
    </constructor>
    <method name="getTupleBegin" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTupleEnd" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBagBegin" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBagEnd" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapBegin" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapEnd" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldDelim" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapKeyDelim" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNull" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getParamDelim" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRecordEnd" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="updateDepth" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="buf" type="byte[]"/>
      <param name="currDepth" type="int"/>
      <param name="index" type="int"/>
      <doc>
      <![CDATA[@return - The new depth.  Depth is increased if at the end of a byte sequence
 that indicates the start of a bag, tuple, or map.  Depth is decreased if at the 
 end of a byte sequence that indicates the end of a bug, tuple, or map.]]>
      </doc>
    </method>
    <method name="isDelimiter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="delimiter" type="byte[]"/>
      <param name="buf" type="byte[]"/>
      <param name="index" type="int"/>
      <param name="depth" type="int"/>
      <param name="endIndex" type="int"/>
      <doc>
      <![CDATA[@param delimiter
 @param buf
 @param index
 @param depth
 @param endIndex
 @return - True iff the delimiter]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingDelimiters -->
  <!-- start class org.apache.pig.impl.streaming.StreamingUDFException -->
  <class name="StreamingUDFException" extends="org.apache.pig.backend.executionengine.ExecException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUDFException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingUDFException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingUDFException" type="java.lang.String, java.lang.Integer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingUDFException" type="java.lang.String, java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingUDFException" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="StreamingUDFException" type="java.lang.String, java.lang.String, java.lang.Integer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLanguage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLineNumber" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingUDFException -->
  <!-- start class org.apache.pig.impl.streaming.StreamingUDFInputHandler -->
  <class name="StreamingUDFInputHandler" extends="org.apache.pig.impl.streaming.DefaultInputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUDFInputHandler" type="org.apache.pig.PigStreamingBase"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingUDFInputHandler -->
  <!-- start class org.apache.pig.impl.streaming.StreamingUDFOutputHandler -->
  <class name="StreamingUDFOutputHandler" extends="org.apache.pig.impl.streaming.DefaultOutputHandler"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUDFOutputHandler" type="org.apache.pig.impl.streaming.PigStreamingUDF"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRecordDelimiter" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingUDFOutputHandler -->
  <!-- start class org.apache.pig.impl.streaming.StreamingUDFOutputSchemaException -->
  <class name="StreamingUDFOutputSchemaException" extends="java.lang.Exception"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUDFOutputSchemaException" type="java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLineNumber" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingUDFOutputSchemaException -->
  <!-- start class org.apache.pig.impl.streaming.StreamingUtil -->
  <class name="StreamingUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createProcess" return="java.lang.ProcessBuilder"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="command" type="org.apache.pig.impl.streaming.StreamingCommand"/>
      <doc>
      <![CDATA[Create an external process for StreamingCommand command.
 
 @param command
 @return]]>
      </doc>
    </method>
    <method name="addJobConfToEnvironment"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="env" type="java.util.Map"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.streaming.StreamingUtil -->
</package>
<package name="org.apache.pig.impl.util">
  <!-- start class org.apache.pig.impl.util.BagFormat -->
  <class name="BagFormat" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BagFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="format" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bag" type="org.apache.pig.data.DataBag"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.BagFormat -->
  <!-- start class org.apache.pig.impl.util.CastUtils -->
  <class name="CastUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CastUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="convertToType" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="caster" type="org.apache.pig.LoadCaster"/>
      <param name="bytes" type="byte[]"/>
      <param name="fieldSchema" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <param name="dataType" type="byte"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param caster LoadCaster to be used to convert the bytes into a field.
 @param bytes
 @param fieldSchema schema of Bag or Tuple; pass in null if a simple type.
 @param dataType type from DataType
 @return converted object.
 @throws IOException]]>
      </doc>
    </method>
    <method name="stringToDouble" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="stringToFloat" return="java.lang.Float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="stringToInteger" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="stringToLong" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="stringToBoolean" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.util.CastUtils -->
  <!-- start class org.apache.pig.impl.util.CompilerUtils -->
  <class name="CompilerUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CompilerUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="addEmptyBagOuterJoin"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="inputSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="skewedRightOuterJoin" type="boolean"/>
      <param name="isFirstReduceOfKeyClassName" type="java.lang.String"/>
      <exception name="PlanException" type="org.apache.pig.impl.plan.PlanException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.CompilerUtils -->
  <!-- start class org.apache.pig.impl.util.ConfigurationValidator -->
  <class name="ConfigurationValidator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConfigurationValidator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="validatePigProperties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <doc>
      <![CDATA[All pig configurations should be validated in here before use
 @param properties]]>
      </doc>
    </method>
    <method name="getValidatedProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <doc>
      <![CDATA[Validate properties which need to be validated and return *ONLY* those
 @param properties The Properties object containing all PIG properties
 @return The properties object containing *ONLY* properties which were validated
 (Typically these are user editable properties and should match the properties
 validated in ValidatePigProperties(Properties properties))]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.ConfigurationValidator -->
  <!-- start interface org.apache.pig.impl.util.GroupingSpillable -->
  <interface name="GroupingSpillable"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <doc>
    <![CDATA[Interface to be implemented by classes that group data in memory]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.impl.util.GroupingSpillable -->
  <!-- start class org.apache.pig.impl.util.HashOutputStream -->
  <class name="HashOutputStream" extends="java.io.OutputStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HashOutputStream" type="com.google.common.hash.HashFunction"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="int"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getHashCode" return="com.google.common.hash.HashCode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.HashOutputStream -->
  <!-- start class org.apache.pig.impl.util.IdentityHashSet -->
  <class name="IdentityHashSet" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.Set"/>
    <constructor name="IdentityHashSet"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="add" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="element" type="java.lang.Object"/>
    </method>
    <method name="addAll" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="elements" type="java.util.Collection"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="contains" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="element" type="java.lang.Object"/>
    </method>
    <method name="containsAll" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="elements" type="java.util.Collection"/>
    </method>
    <method name="isEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="remove" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="element" type="java.lang.Object"/>
    </method>
    <method name="removeAll" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="elements" type="java.util.Collection"/>
    </method>
    <method name="retainAll" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="elements" type="java.util.Collection"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toArray" return="java.lang.Object[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toArray" return="java.lang.Object[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dummy" type="java.lang.Object[]"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.IdentityHashSet -->
  <!-- start class org.apache.pig.impl.util.JarManager -->
  <class name="JarManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JarManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createPigScriptUDFJar" return="java.io.File"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getDefaultJars" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="findContainingJar" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="my_class" type="java.lang.Class"/>
      <doc>
      <![CDATA[Find a jar that contains a class of the same name, if any. It will return a jar file, even if
 that is not the first thing on the class path that has a class with the same name.

 @param my_class
            the class to find
 @return a jar file that contains the class, or null
 @throws IOException]]>
      </doc>
    </method>
    <method name="addDependencyJars"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <param name="classes" type="java.lang.Class[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Add the jars containing the given classes to the job's configuration
 such that JobClient will ship them to the cluster and add them to
 the DistributedCache

 @param job
           Job object
 @param classes
            classes to find
 @throws IOException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.JarManager -->
  <!-- start class org.apache.pig.impl.util.JavaCompilerHelper -->
  <class name="JavaCompilerHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JavaCompilerHelper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="compile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="target" type="java.lang.String"/>
      <param name="sources" type="org.apache.pig.impl.util.JavaCompilerHelper.JavaSourceFromString[]"/>
    </method>
    <method name="addToClassPath"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
    </method>
    <method name="getClassPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.JavaCompilerHelper -->
  <!-- start class org.apache.pig.impl.util.JavaCompilerHelper.JavaSourceFromString -->
  <class name="JavaCompilerHelper.JavaSourceFromString" extends="javax.tools.SimpleJavaFileObject"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JavaCompilerHelper.JavaSourceFromString" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCharContent" return="java.lang.CharSequence"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ignoreEncodingErrors" type="boolean"/>
    </method>
    <doc>
    <![CDATA[This class allows code to be generated directly from a String, instead of having to be
 on disk.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.JavaCompilerHelper.JavaSourceFromString -->
  <!-- start class org.apache.pig.impl.util.LineageTracer -->
  <class name="LineageTracer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LineageTracer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="insert"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="union"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="org.apache.pig.data.Tuple"/>
      <param name="t2" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getRepresentative" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getCounts" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getWeightedCounts" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="specialTuples" type="org.apache.pig.impl.util.IdentityHashSet"/>
      <param name="multiplier" type="int"/>
    </method>
    <method name="getMembers" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getMembershipMap" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.LineageTracer -->
  <!-- start class org.apache.pig.impl.util.LinkedMultiMap -->
  <class name="LinkedMultiMap" extends="org.apache.pig.impl.util.MultiMap"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LinkedMultiMap"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LinkedMultiMap" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param size Initial size of the map]]>
      </doc>
    </constructor>
  </class>
  <!-- end class org.apache.pig.impl.util.LinkedMultiMap -->
  <!-- start class org.apache.pig.impl.util.LogUtils -->
  <class name="LogUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="warn"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="msg" type="java.lang.String"/>
      <param name="warningEnum" type="org.apache.pig.PigWarning"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
    <method name="getPermissionException" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="top" type="java.lang.Exception"/>
    </method>
    <method name="getPigException" return="org.apache.pig.PigException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="top" type="java.lang.Throwable"/>
    </method>
    <method name="writeLog"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.Throwable"/>
      <param name="logFileName" type="java.lang.String"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
      <param name="verbose" type="boolean"/>
      <param name="headerMessage" type="java.lang.String"/>
    </method>
    <method name="writeLog"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.Throwable"/>
      <param name="logFileName" type="java.lang.String"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
      <param name="verbose" type="boolean"/>
      <param name="headerMessage" type="java.lang.String"/>
      <param name="displayFooter" type="boolean"/>
      <param name="displayMessage" type="boolean"/>
    </method>
    <method name="writeLog"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="headerMessage" type="java.lang.String"/>
      <param name="message" type="java.lang.String"/>
      <param name="logFileName" type="java.lang.String"/>
      <param name="log" type="org.apache.commons.logging.Log"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.LogUtils -->
  <!-- start class org.apache.pig.impl.util.MultiMap -->
  <class name="MultiMap" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="MultiMap"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="MultiMap" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param size Initial size of the map]]>
      </doc>
    </constructor>
    <method name="put"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="value" type="java.lang.Object"/>
      <doc>
      <![CDATA[Add an element to the map.
 @param key The key to store the value under.  If the key already
 exists the value will be added to the collection for that key, it
 will not replace the existing value (as in a standard map).
 @param value value to store.]]>
      </doc>
    </method>
    <method name="put"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="values" type="java.util.Collection"/>
      <doc>
      <![CDATA[Add a key to the map with a collection of elements.
 @param key The key to store the value under.  If the key already
 exists the value will be added to the collection for that key, it
 will not replace the existing value (as in a standard map).
 @param values collection of values to store.]]>
      </doc>
    </method>
    <method name="get" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <doc>
      <![CDATA[Get the collection of values associated with a given key.
 @param key Key to fetch values for.
 @return list of values, or null if the key is not in the map.]]>
      </doc>
    </method>
    <method name="remove" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <param name="value" type="java.lang.Object"/>
      <doc>
      <![CDATA[Remove one value from an existing key.  If that is the last value
 for the key, then remove the key too.
 @param key Key to remove the value from.
 @param value Value to remove.
 @return The value being removed, or null if the key or value does
 not exist.]]>
      </doc>
    </method>
    <method name="removeKey" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
      <doc>
      <![CDATA[Remove all the values associated with the given key
 @param key the key to be removed
 @return list of all value being removed]]>
      </doc>
    </method>
    <method name="keySet" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a set of all the keys in this map.
 @return Set of keys.]]>
      </doc>
    </method>
    <method name="values" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a single collection of all the values in the map.  All of the
 values in the map will be conglomerated into one collection.  There
 will not be any duplicate removal.
 @return collection of values.]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the number of keys in the map.
 @return number of keys.]]>
      </doc>
    </method>
    <method name="isEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="containsKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
    </method>
    <method name="containsValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <field name="mMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[An implementation of multi-map.  We can't use Apache commons
 MultiValueMap because it isn't serializable.  And we don't want to use
 MultiHashMap, as it is marked deprecated.
 
 This class can't extend Map, because it needs to change the semantics of
 put, so that you give it one key and one value, and it either creates a
 new entry with the key and a new collection of value (if the is not yet
 in the map) or adds the values to the existing collection for the key
 (if the key is already in the map).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.MultiMap -->
  <!-- start class org.apache.pig.impl.util.NumValCarrier -->
  <class name="NumValCarrier" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NumValCarrier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="makeNameFromDataType" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="type" type="byte"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.NumValCarrier -->
  <!-- start class org.apache.pig.impl.util.ObjectSerializer -->
  <class name="ObjectSerializer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ObjectSerializer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="serialize" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.io.Serializable"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="deserialize" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="encodeBytes" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="byte[]"/>
      <exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException"/>
    </method>
    <method name="decodeBytes" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
      <exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.ObjectSerializer -->
  <!-- start class org.apache.pig.impl.util.Pair -->
  <class name="Pair" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Serializable"/>
    <constructor name="Pair" type="java.lang.Object, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param f First element in pair.
 @param s Second element in pair.]]>
      </doc>
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <field name="first" type="java.lang.Object"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="second" type="java.lang.Object"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Copy of C++ STL pair container.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.Pair -->
  <!-- start class org.apache.pig.impl.util.PropertiesUtil -->
  <class name="PropertiesUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PropertiesUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="loadDefaultProperties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <doc>
      <![CDATA[Loads the default properties from pig-default.properties and
 pig.properties.
 @param properties Properties object that needs to be loaded with the
 properties' values.]]>
      </doc>
    </method>
    <method name="loadPropertiesFromFile"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
      <param name="fileName" type="java.lang.String"/>
      <doc>
      <![CDATA[Loads the properties from a given file.
 @param properties Properties object that is to be loaded.
 @param fileName file name of the file that contains the properties.]]>
      </doc>
    </method>
    <method name="loadDefaultProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Loads default properties.
 @return default properties]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.PropertiesUtil -->
  <!-- start class org.apache.pig.impl.util.RewindableIterator -->
  <class name="RewindableIterator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RewindableIterator" type="java.util.Iterator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="hasNext" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasNext" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="k" type="int"/>
    </method>
    <method name="rewind"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="noRewind"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="next" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.RewindableIterator -->
  <!-- start interface org.apache.pig.impl.util.Spillable -->
  <interface name="Spillable"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Instructs an object to spill whatever it can to disk and release
 references to any data structures it spills.
 @return number of objects spilled.]]>
      </doc>
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Requests that an object return an estimate of its in memory size.
 @return estimated in memory size.]]>
      </doc>
    </method>
  </interface>
  <!-- end interface org.apache.pig.impl.util.Spillable -->
  <!-- start class org.apache.pig.impl.util.SpillableMemoryManager -->
  <class name="SpillableMemoryManager" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="javax.management.NotificationListener"/>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInstance" return="org.apache.pig.impl.util.SpillableMemoryManager"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="configure"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="handleNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="n" type="javax.management.Notification"/>
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="clearSpillables"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="registerSpillable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.impl.util.Spillable"/>
      <doc>
      <![CDATA[Register a spillable to be tracked. No need to unregister, the tracking will stop
 when the spillable is GCed.
 @param s the spillable to track.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class Tracks the tenured pool and a list of Spillable objects. When memory gets low, this
 class will start requesting Spillable objects to free up memory.
 <p>
 Low memory is defined as more than 50% of the tenured pool being allocated. Spillable objects are
 tracked using WeakReferences so that the objects can be GCed even though this class has a reference
 to them.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.SpillableMemoryManager -->
  <!-- start class org.apache.pig.impl.util.StorageUtil -->
  <class name="StorageUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="StorageUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="parseFieldDel" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="delimiter" type="java.lang.String"/>
      <doc>
      <![CDATA[Transform a <code>String</code> into a byte representing the
 field delimiter.

 @param delimiter a string that may be in single-quoted form
 @return the field delimiter in byte form]]>
      </doc>
    </method>
    <method name="putField"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <param name="field" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putField"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <param name="field" type="java.lang.Object"/>
      <param name="includeTypeInformation" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="putField"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.OutputStream"/>
      <param name="field" type="java.lang.Object"/>
      <param name="delims" type="org.apache.pig.impl.streaming.StreamingDelimiters"/>
      <param name="includeTypeInformation" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Serialize an object to an {@link OutputStream} in the
 field-delimited form.

 @param out an OutputStream object
 @param field an object to be serialized
 @throws IOException if serialization fails.]]>
      </doc>
    </method>
    <method name="textToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="org.apache.hadoop.io.Text"/>
      <param name="fieldDel" type="byte"/>
      <doc>
      <![CDATA[Transform a line of <code>Text</code> to a <code>Tuple</code>

 @param val a line of text
 @param fieldDel the field delimiter
 @return tuple constructed from the text]]>
      </doc>
    </method>
    <method name="bytesToTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="buf" type="byte[]"/>
      <param name="offset" type="int"/>
      <param name="length" type="int"/>
      <param name="fieldDel" type="byte"/>
      <doc>
      <![CDATA[Transform bytes from a byte array up to the specified length to a <code>Tuple</code>

 @param buf the byte array
 @param length number of bytes to consume from the byte array
 @param fieldDel the field delimiter
 @return tuple constructed from the bytes]]>
      </doc>
    </method>
    <field name="DEFAULT_DELIMITERS" type="org.apache.pig.impl.streaming.StreamingDelimiters"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This util class provides methods that are shared by storage class
 {@link PigStorage} and streaming class {@link PigStreaming}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.StorageUtil -->
  <!-- start class org.apache.pig.impl.util.StringUtils -->
  <class name="StringUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StringUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="unescapeInputString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.String"/>
    </method>
    <method name="join" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="java.util.AbstractCollection"/>
      <param name="delimiter" type="java.lang.String"/>
    </method>
    <method name="getPathStrings" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="commaSeparatedPaths" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.StringUtils -->
  <!-- start class org.apache.pig.impl.util.TupleFormat -->
  <class name="TupleFormat" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TupleFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="format" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <doc>
      <![CDATA[Default implementation of format of tuple (each filed is delimited by
 tab)
 
 @param tuple
 @return Default format of Tuple]]>
      </doc>
    </method>
    <field name="mLog" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Default implementation of format of Tuple. Dump and PigDump use this default
 implementation]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.TupleFormat -->
  <!-- start class org.apache.pig.impl.util.UDFContext -->
  <class name="UDFContext" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getUDFContext" return="org.apache.pig.impl.util.UDFContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return a Thread Local {@link UDFContext}]]>
      </doc>
    </method>
    <method name="setUdfContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="udfContext" type="org.apache.pig.impl.util.UDFContext"/>
    </method>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setClientSystemProps"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="getClientSystemProps" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the System Properties (Read only) as on the client machine from where Pig
 was launched. This will include command line properties passed at launch
 time
 @return client side System Properties including command line properties]]>
      </doc>
    </method>
    <method name="addJobConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Adds the JobConf to this singleton.  Will be
 called on the backend by the Map and Reduce
 functions so that UDFs can obtain the JobConf
 on the backend.]]>
      </doc>
    </method>
    <method name="getJobConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the JobConf.  This should only be called on
 the backend.  It will return null on the frontend.
 @return JobConf for this job.  This is a copy of the
 JobConf.  Nothing written here will be kept by the system.
 getUDFConf should be used for recording UDF specific
 information.]]>
      </doc>
    </method>
    <method name="getUDFProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="java.lang.Class"/>
      <param name="args" type="java.lang.String[]"/>
      <doc>
      <![CDATA[Get a properties object that is specific to this UDF.
 Note that if a given UDF is called multiple times in a script,
 and each instance passes different arguments, then each will
 be provided with different configuration object.
 This can be used by loaders to pass their input object path
 or URI and separate themselves from other instances of the
 same loader.  Constructor arguments could also be used,
 as they are available on both the front and back end.

 Note that this can only be used to share information
 across instantiations of the same function in the front end
 and between front end and back end.  It cannot be used to
 share information between instantiations (that is, between
 map and/or reduce instances) on the back end at runtime.
 @param c of the UDF obtaining the properties object.
 @param args String arguments that make this instance of
 the UDF unique.
 @return A reference to the properties object specific to
 the calling UDF.  This is a reference, not a copy.
 Any changes to this object will automatically be
 propogated to other instances of the UDF calling this
 function.]]>
      </doc>
    </method>
    <method name="getUDFProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="java.lang.Class"/>
      <doc>
      <![CDATA[Get a properties object that is specific to this UDF.
 Note that if a given UDF is called multiple times in a script,
 they will all be provided the same configuration object.  It
 is up to the UDF to make sure the multiple instances do not
 stomp on each other.

 It is guaranteed that this properties object will be separate
 from that provided to any other UDF.

 Note that this can only be used to share information
 across instantiations of the same function in the front end
 and between front end and back end.  It cannot be used to
 share information between instantiations (that is, between
 map and/or reduce instances) on the back end at runtime.
 @param c of the UDF obtaining the properties object.
 @return A reference to the properties object specific to
 the calling UDF.  This is a reference, not a copy.
 Any changes to this object will automatically be
 propogated to other instances of the UDF calling this
 function.]]>
      </doc>
    </method>
    <method name="serialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Serialize the UDF specific information into an instance
 of JobConf.  This function is intended to be called on
 the front end in preparation for sending the data to the
 backend.
 @param conf JobConf to serialize into
 @throws IOException if underlying serialization throws it]]>
      </doc>
    </method>
    <method name="deserialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Populate the udfConfs field.  This function is intended to
 be called by Map.configure or Reduce.configure on the backend.
 It assumes that addJobConf has already been called.
 @throws IOException if underlying deseralization throws it]]>
      </doc>
    </method>
    <method name="reset"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isUDFConfEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isFrontend" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Convenience method for UDF code to check where it runs (see PIG-2576)
 @return boolean type value]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.impl.util.UDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Make a shallow copy of the context.]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.UDFContext -->
  <!-- start class org.apache.pig.impl.util.UDFContextSeparator -->
  <class name="UDFContextSeparator" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UDFContextSeparator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getUnKnownKeys" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="planOpKey" type="java.lang.String"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ld" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
    <method name="serializeUDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="planOpKey" type="java.lang.String"/>
      <param name="udfTypes" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="serializeUDFContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="planOpKey" type="java.lang.String"/>
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.UDFContextSeparator -->
  <!-- start class org.apache.pig.impl.util.UDFContextSeparator.UDFType -->
  <class name="UDFContextSeparator.UDFType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.impl.util.UDFContextSeparator.UDFType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.impl.util.UDFContextSeparator.UDFType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="LOADFUNC" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STOREFUNC" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="USERFUNC" type="org.apache.pig.impl.util.UDFContextSeparator.UDFType"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.impl.util.UDFContextSeparator.UDFType -->
  <!-- start class org.apache.pig.impl.util.UriUtil -->
  <class name="UriUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UriUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isHDFSFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uri" type="java.lang.String"/>
    </method>
    <method name="isHDFSFileOrLocalOrS3N" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uri" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.UriUtil -->
  <!-- start class org.apache.pig.impl.util.Utils -->
  <class name="Utils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Utils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isVendorIBM" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method checks whether JVM vendor is IBM
 @return true if IBM JVM is being used
 false otherwise]]>
      </doc>
    </method>
    <method name="isHadoop23" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isHadoop2" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="is64bitJVM" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="checkNullEquals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj1" type="java.lang.Object"/>
      <param name="obj2" type="java.lang.Object"/>
      <param name="checkEquality" type="boolean"/>
      <doc>
      <![CDATA[This method is a helper for classes to implement {@link java.lang.Object#equals(java.lang.Object)}
 checks if two objects are equals - two levels of checks are
 made - first if both are null or not null. If either is null,
 check is made whether both are null.
 If both are non null, equality also is checked if so indicated
 @param obj1 first object to be compared
 @param obj2 second object to be compared
 @param checkEquality flag to indicate whether object equality should
 be checked if obj1 and obj2 are non-null
 @return true if the two objects are equal
 false otherwise]]>
      </doc>
    </method>
    <method name="checkNullAndClass" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj1" type="java.lang.Object"/>
      <param name="obj2" type="java.lang.Object"/>
      <doc>
      <![CDATA[This method is a helper for classes to implement {@link java.lang.Object#equals(java.lang.Object)}
 The method checks whether the two arguments are both null or both not null and
 whether they are of the same class
 @param obj1 first object to compare
 @param obj2 second object to compare
 @return true if both objects are null or both are not null
 and if both are of the same class if not null
 false otherwise]]>
      </doc>
    </method>
    <method name="getScriptSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loadFuncSignature" type="java.lang.String"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[A helper function for retrieving the script schema set by the LOLoad
 function.

 @param loadFuncSignature
 @param conf
 @return Schema
 @throws IOException]]>
      </doc>
    </method>
    <method name="getScriptSchemaKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loadFuncSignature" type="java.lang.String"/>
    </method>
    <method name="getSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="wrappedLoadFunc" type="org.apache.pig.LoadFunc"/>
      <param name="location" type="java.lang.String"/>
      <param name="checkExistence" type="boolean"/>
      <param name="job" type="org.apache.hadoop.mapreduce.Job"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getSchemaFromString" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schemaString" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[@param schemaString a String representation of the Schema <b>without</b>
                     any enclosing curly-braces.<b>Not</b> for use with
                     <code>Schema#toString</code>
 @return Schema instance
 @throws ParserException]]>
      </doc>
    </method>
    <method name="getSchemaFromBagSchemaString" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schemaString" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[getSchemaFromBagSchemaString
 <b>NOTE: use this call</b> when you need to generate a Schema object
 from the representation generated by <code>Schema#toString</code>.
 This call strips the enclosing outer curly braces from the <code>toString</code>
 representation, which are placed there because the actual representation of
 the schema data is as a Bag-type relation.
 @param schemaString a String representation of the Schema to instantiate,
                     in the form generated by <code>Schema.toString()</code>
 @return Schema instance
 @throws ParserException]]>
      </doc>
    </method>
    <method name="parseSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schemaString" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
    </method>
    <method name="parseConstant" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="constantString" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
    </method>
    <method name="getSchemaWithInputSourceTag" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.ResourceSchema"/>
      <param name="fieldName" type="java.lang.String"/>
      <doc>
      <![CDATA[This method adds FieldSchema of 'input source tag/path' as the first
 field. This will be called only when PigStorage is invoked with
 '-tagFile' or '-tagPath' option and the schema file is present to be
 loaded.

 @param schema
 @param fieldName
 @return ResourceSchema]]>
      </doc>
    </method>
    <method name="getTmpFileCompressorName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getTmpFileStorageObject" return="org.apache.pig.FileInputLoadFunc"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTmpFileStorageClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="setMapredCompressionCodecProps"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="setTmpFileCompressionOnConf"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getStringFromArray" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arr" type="java.lang.String[]"/>
    </method>
    <method name="buildSimpleFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="className" type="java.lang.String"/>
      <param name="types" type="byte[]"/>
    </method>
    <method name="slashisize" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
      <doc>
      <![CDATA[Replace sequences of two slashes ("\\") with one slash ("\")
 (not escaping a slash in grunt is disallowed, but a double slash doesn't get converted
 into a regular slash, so we have to do it instead)
 @param str
 @return the resulting string]]>
      </doc>
    </method>
    <method name="mergeCollection" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="a" type="java.util.Collection"/>
      <param name="b" type="java.util.Collection"/>
    </method>
    <method name="getCompositeStream" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <param name="properties" type="java.util.Properties"/>
    </method>
    <method name="recomputeProperties"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobConf" type="org.apache.hadoop.mapred.JobConf"/>
      <param name="properties" type="java.util.Properties"/>
      <doc>
      <![CDATA[Method to apply pig properties to JobConf (replaces properties with
 resulting jobConf values).

 @param conf JobConf with appropriate hadoop resource files
 @param properties Pig properties that will override hadoop properties;
 properties might be modified]]>
      </doc>
    </method>
    <method name="getStackStraceStr" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="java.lang.Throwable"/>
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="isLocal" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="substituteVars" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="expr" type="java.lang.String"/>
    </method>
    <method name="depthFirstSearchForFile" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="statusArray" type="org.apache.hadoop.fs.FileStatus[]"/>
      <param name="fileSystem" type="org.apache.hadoop.fs.FileSystem"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Finds a valid path for a file from a FileStatus object.
 @param fileStatus FileStatus object corresponding to a file,
 or a directory.
 @param fileSystem FileSystem in with the file should be found
 @return The first file found
 @throws IOException]]>
      </doc>
    </method>
    <method name="depthFirstSearchForFile" return="org.apache.hadoop.fs.Path"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="statusArray" type="org.apache.hadoop.fs.FileStatus[]"/>
      <param name="fileSystem" type="org.apache.hadoop.fs.FileSystem"/>
      <param name="filter" type="org.apache.hadoop.fs.PathFilter"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Finds a valid path for a file from an array of FileStatus objects.
 @param statusArray Array of FileStatus objects in which to search
 for the file.
 @param fileSystem FileSystem in which to search for the first file.
 @return The first file found.
 @throws IOException]]>
      </doc>
    </method>
    <method name="extractHeapSizeInMB" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.String"/>
    </method>
    <method name="setDefaultTimeZone"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <field name="VISIBLE_FILES" type="org.apache.hadoop.fs.PathFilter"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A PathFilter that filters out invisible files.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Class with utility static methods]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.Utils -->
  <!-- start class org.apache.pig.impl.util.WrappedIOException -->
  <class name="WrappedIOException" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="This class was introduced to overcome the limitation that before 
 Java 1.6, {@link IOException} did not have a constructor which took a 
 {@link Throwable} argument. Since Pig code is now compiled with Java 1.6 and 
 {@link EvalFunc} and {@link LoadFunc} user implementations should also use 
 Java 1.6, they can use {@link IOException} instead. From Java 1.6, 
 {@link IOException} has constructors which take a {@link Throwable}
 argument.">
    <constructor name="WrappedIOException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="wrap" return="java.io.IOException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="java.lang.Throwable"/>
    </method>
    <method name="wrap" return="java.io.IOException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="message" type="java.lang.String"/>
      <param name="e" type="java.lang.Throwable"/>
    </method>
    <doc>
    <![CDATA[@deprecated This class was introduced to overcome the limitation that before 
 Java 1.6, {@link IOException} did not have a constructor which took a 
 {@link Throwable} argument. Since Pig code is now compiled with Java 1.6 and 
 {@link EvalFunc} and {@link LoadFunc} user implementations should also use 
 Java 1.6, they can use {@link IOException} instead. From Java 1.6, 
 {@link IOException} has constructors which take a {@link Throwable}
 argument.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.WrappedIOException -->
</package>
<package name="org.apache.pig.impl.util.avro">
  <!-- start class org.apache.pig.impl.util.avro.AvroArrayReader -->
  <class name="AvroArrayReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="AvroArrayReader" type="org.apache.avro.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates new instance of AvroRecordReader.
 @param s The input schema.]]>
      </doc>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentValue" return="org.apache.avro.generic.GenericData.Record"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Returns current value.
 @return the current value
 @throws IOException when an IO error occurs
 @throws InterruptedException when interrupted]]>
      </doc>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.NullWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isplit" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="tc" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <doc>
    <![CDATA[RecordReader for Avro files]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroArrayReader -->
  <!-- start class org.apache.pig.impl.util.avro.AvroBagWrapper -->
  <class name="AvroBagWrapper" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.DataBag"/>
    <constructor name="AvroBagWrapper" type="org.apache.avro.generic.GenericArray"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create new AvroBagWrapper instance.
 @param a Avro array to wrap in bag]]>
      </doc>
    </constructor>
    <method name="spill" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="size" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSorted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isDistinct" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="addAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.DataBag"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markStale"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stale" type="boolean"/>
    </method>
    <doc>
    <![CDATA[Class that implements the Pig bag interface, wrapping an Avro array.
 Designed to reduce data copying.
 @param <T> Type of objects in Avro array]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroBagWrapper -->
  <!-- start class org.apache.pig.impl.util.avro.AvroMapWrapper -->
  <class name="AvroMapWrapper" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.Map"/>
    <constructor name="AvroMapWrapper" type="java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates a new AvroMapWrapper object from the map object {@m}.
 @param m The map to wrap.]]>
      </doc>
    </constructor>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEmpty" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="containsKey" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
    </method>
    <method name="containsValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="value" type="java.lang.Object"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
    </method>
    <method name="put" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.CharSequence"/>
      <param name="value" type="java.lang.Object"/>
    </method>
    <method name="remove" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Object"/>
    </method>
    <method name="putAll"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="m" type="java.util.Map"/>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="keySet" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="values" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="entrySet" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Wrapper for map objects, so we can translate UTF8 objects to
 Strings if we encounter them.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroMapWrapper -->
  <!-- start class org.apache.pig.impl.util.avro.AvroRecordReader -->
  <class name="AvroRecordReader" extends="org.apache.hadoop.mapreduce.RecordReader"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="AvroRecordReader" type="org.apache.avro.Schema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates new instance of AvroRecordReader.
 @param s The input schema.]]>
      </doc>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getCurrentValue" return="org.apache.avro.generic.GenericData.Record"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
      <doc>
      <![CDATA[Returns current value.
 @return the current value
 @throws IOException when an IO error occurs
 @throws InterruptedException when interrupted]]>
      </doc>
    </method>
    <method name="getCurrentKey" return="org.apache.hadoop.io.NullWritable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isplit" type="org.apache.hadoop.mapreduce.InputSplit"/>
      <param name="tc" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="nextKeyValue" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <doc>
    <![CDATA[RecordReader for Avro files]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroRecordReader -->
  <!-- start class org.apache.pig.impl.util.avro.AvroRecordWriter -->
  <class name="AvroRecordWriter" extends="org.apache.hadoop.mapreduce.RecordWriter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AvroRecordWriter" type="org.apache.hadoop.fs.Path, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Creates new AvroRecordWriter.
 @param s Schema for the files on this output path
 @param o Output path
 @param c Hadoop configuration
 @throws IOException]]>
      </doc>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="org.apache.hadoop.mapreduce.TaskAttemptContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.io.NullWritable"/>
      <param name="value" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="prepareToWrite"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[RecordWriter for Avro objects.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroRecordWriter -->
  <!-- start class org.apache.pig.impl.util.avro.AvroStorageDataConversionUtilities -->
  <class name="AvroStorageDataConversionUtilities" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AvroStorageDataConversionUtilities"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="packIntoAvro" return="org.apache.avro.generic.GenericData.Record"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
      <param name="s" type="org.apache.avro.Schema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Packs a Pig Tuple into an Avro record.
 @param t the Pig tuple to pack into the avro object
 @param s The avro schema for which to determine the type
 @return the avro record corresponding to the input tuple
 @throws IOException]]>
      </doc>
    </method>
    <method name="packIntoAvro" return="org.apache.avro.generic.GenericData.Array"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="db" type="org.apache.pig.data.DataBag"/>
      <param name="s" type="org.apache.avro.Schema"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Packs a Pig DataBag into an Avro array.
 @param db the Pig databad to pack into the avro array
 @param s The avro schema for which to determine the type
 @return the avro array corresponding to the input bag
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Utility classes for AvroStorage; contains static methods
 for converting between Avro and Pig objects.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroStorageDataConversionUtilities -->
  <!-- start class org.apache.pig.impl.util.avro.AvroStorageSchemaConversionUtilities -->
  <class name="AvroStorageSchemaConversionUtilities" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AvroStorageSchemaConversionUtilities"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getPigType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Determines the pig object type of the Avro schema.
 @param s The avro schema for which to determine the type
 @return the byte representing the schema type
 @throws ExecException
 @see org.apache.avro.Schema.Type]]>
      </doc>
    </method>
    <method name="isUnionOfSimpleTypes" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
    </method>
    <method name="avroSchemaToResourceSchema" return="org.apache.pig.ResourceSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <param name="allowRecursiveSchema" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Translates an Avro schema to a Resource Schema (for Pig).
 @param s The avro schema for which to determine the type
 @param allowRecursiveSchema Flag indicating whether to
 throw an error if a recursive schema definition is found
 @throws IOException
 @return the corresponding pig schema]]>
      </doc>
    </method>
    <method name="resourceSchemaToAvroSchema" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rs" type="org.apache.pig.ResourceSchema"/>
      <param name="recordName" type="java.lang.String"/>
      <param name="recordNameSpace" type="java.lang.String"/>
      <param name="definedRecordNames" type="java.util.Map"/>
      <param name="doubleColonsToDoubleUnderscores" type="java.lang.Boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Translated a ResourceSchema to an Avro Schema.
 @param rs Input schema.
 @param recordName Record name
 @param recordNameSpace Namespace
 @param definedRecordNames Map of already defined record names
 to schema objects
 @return the translated schema
 @throws IOException]]>
      </doc>
    </method>
    <method name="isNullableUnion" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <doc>
      <![CDATA[Checks to see if an avro schema is a combination of
 null and another object.
 @param s The object to check
 @return whether it's a nullable union]]>
      </doc>
    </method>
    <method name="removeSimpleUnion" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.avro.Schema"/>
      <doc>
      <![CDATA[Given an input schema that is a union of an avro schema
 and null (or just a union with one type), return the avro schema.
 @param s The input schema object
 @return The non-null part of the union]]>
      </doc>
    </method>
    <method name="newSchemaFromRequiredFieldList" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldSchema" type="org.apache.avro.Schema"/>
      <param name="rfl" type="org.apache.pig.LoadPushDown.RequiredFieldList"/>
      <doc>
      <![CDATA[Takes an Avro Schema and a Pig RequiredFieldList and returns a new schema
 with only the requried fields, or no if the function can't extract only
 those fields. Useful for push down projections.
 @param oldSchema The avro schema from which to extract the schema
 @param rfl the Pig required field list
 @return the new schema, or null]]>
      </doc>
    </method>
    <method name="newSchemaFromRequiredFieldList" return="org.apache.avro.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldSchema" type="org.apache.avro.Schema"/>
      <param name="rfl" type="java.util.List"/>
      <doc>
      <![CDATA[Takes an Avro Schema and a Pig RequiredFieldList and returns a new schema
 with only the required fields, or no if the function can't extract only
 those fields. Useful for push down projections.
 @param oldSchema The avro schema from which to extract the schema
 @param rfl List of required fields
 @return the new schema]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Static methods for converting from Avro Schema object to Pig Schema objects,
 and vice versa.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroStorageSchemaConversionUtilities -->
  <!-- start class org.apache.pig.impl.util.avro.AvroTupleWrapper -->
  <class name="AvroTupleWrapper" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.data.Tuple"/>
    <constructor name="AvroTupleWrapper" type="org.apache.avro.generic.IndexedRecord"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Creates a new AvroTupleWrapper object.
 @param o The object to wrap]]>
      </doc>
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pos" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getPigObject" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <doc>
      <![CDATA[@param o An Avro object to convert to an equivalent type in Pig
 @return Equivalent Pig object]]>
      </doc>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="int"/>
      <param name="arg1" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toDelimitedString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg0" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="d" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Object that wraps an Avro object in a tuple.
 @param <T> The type of the Avro object]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.impl.util.avro.AvroTupleWrapper -->
</package>
<package name="org.apache.pig.impl.util.hive">
  <!-- start class org.apache.pig.impl.util.hive.HiveUtils -->
  <class name="HiveUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="HiveUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="convertHiveToPig" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
      <param name="oi" type="org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector"/>
      <param name="includedColumns" type="boolean[]"/>
    </method>
    <method name="getPrimaryFromHive" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
      <param name="poi" type="org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector"/>
    </method>
    <method name="getResourceFieldSchema" return="org.apache.pig.ResourceSchema.ResourceFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ti" type="org.apache.hadoop.hive.serde2.typeinfo.TypeInfo"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTypeInfo" return="org.apache.hadoop.hive.serde2.typeinfo.TypeInfo"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.pig.ResourceSchema.ResourceFieldSchema"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="createObjectInspector" return="org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="info" type="org.apache.hadoop.hive.serde2.typeinfo.TypeInfo"/>
    </method>
    <method name="getConstantObjectInspector" return="org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.hive.HiveUtils -->
  <!-- start class org.apache.pig.impl.util.hive.HiveUtils.Field -->
  <class name="HiveUtils.Field" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.hive.serde2.objectinspector.StructField"/>
    <constructor name="HiveUtils.Field" type="java.lang.String, org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFieldName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldObjectInspector" return="org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldID" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldComment" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.impl.util.hive.HiveUtils.Field -->
</package>
<package name="org.apache.pig.newplan">
  <!-- start class org.apache.pig.newplan.BaseOperatorPlan -->
  <class name="BaseOperatorPlan" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.newplan.OperatorPlan"/>
    <constructor name="BaseOperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BaseOperatorPlan" type="org.apache.pig.newplan.BaseOperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get number of nodes in the plan.]]>
      </doc>
    </method>
    <method name="getSources" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all operators in the plan that have no predecessors.
 @return all operators in the plan that have no predecessors, or
 an empty list if the plan is empty.]]>
      </doc>
    </method>
    <method name="getSinks" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all operators in the plan that have no successors.
 @return all operators in the plan that have no successors, or
 an empty list if the plan is empty.]]>
      </doc>
    </method>
    <method name="getPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators immediately before it in the
 plan.
 @param op operator to fetch predecessors of
 @return list of all operators imeediately before op, or an empty list
 if op is a root.]]>
      </doc>
    </method>
    <method name="getSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators immediately after it.
 @param op operator to fetch successors of
 @return list of all operators imeediately after op, or an empty list
 if op is a leaf.]]>
      </doc>
    </method>
    <method name="getSoftLinkPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators softly immediately before it in the
 plan.
 @param op operator to fetch predecessors of
 @return list of all operators immediately before op, or an empty list
 if op is a root.]]>
      </doc>
    </method>
    <method name="getSoftLinkSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators softly immediately after it.
 @param op operator to fetch successors of
 @return list of all operators immediately after op, or an empty list
 if op is a leaf.]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Add a new operator to the plan.  It will not be connected to any
 existing operators.
 @param op operator to add]]>
      </doc>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Remove an operator from the plan.
 @param op Operator to be removed
 @throws FrontendException if the remove operation attempts to 
 remove an operator that is still connected to other operators.]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="fromPos" type="int"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <param name="toPos" type="int"/>
      <doc>
      <![CDATA[Connect two operators in the plan, controlling which position in the
 edge lists that the from and to edges are placed.
 @param from Operator edge will come from
 @param fromPos Position in the array for the from edge
 @param to Operator edge will go to
 @param toPos Position in the array for the to edge]]>
      </doc>
    </method>
    <method name="isConnected" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Check if given two operators are directly connected.
 @param from Operator edge will come from
 @param to Operator edge will go to]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Connect two operators in the plan.
 @param from Operator edge will come from
 @param to Operator edge will go to]]>
      </doc>
    </method>
    <method name="createSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Create an soft edge between two nodes.
 @param from Operator dependent upon
 @param to Operator having the dependency]]>
      </doc>
    </method>
    <method name="removeSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Remove an soft edge
 @param from Operator dependent upon
 @param to Operator having the dependency]]>
      </doc>
    </method>
    <method name="disconnect" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Disconnect two operators in the plan.
 @param from Operator edge is coming from
 @param to Operator edge is going to
 @return pair of positions, indicating the position in the from and
 to arrays.
 @throws FrontendException if the two operators aren't connected.]]>
      </doc>
    </method>
    <method name="getOperators" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="p1" type="org.apache.pig.newplan.OperatorPlan"/>
      <param name="p2" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="replace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOperator" type="org.apache.pig.newplan.Operator"/>
      <param name="newOperator" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="removeAndReconnect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operatorToRemove" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="insertBetween"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pred" type="org.apache.pig.newplan.Operator"/>
      <param name="operatorToInsert" type="org.apache.pig.newplan.Operator"/>
      <param name="succ" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="pathExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[A method to check if there is a path from a given node to another node
 @param from the start node for checking
 @param to the end node for checking
 @return true if path exists, false otherwise]]>
      </doc>
    </method>
    <method name="moveTree"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="root" type="org.apache.pig.newplan.Operator"/>
      <param name="newPlan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Move everything below a given operator to the new operator plan.  The specified operator will
 be moved and will be the root of the new operator plan
 @param root Operator to move everything after
 @param newPlan new operator plan to move things into
 @throws PlanException]]>
      </doc>
    </method>
    <method name="trimBelow"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Trim everything below a given operator.  The specified operator will
 NOT be removed.
 @param op Operator to trim everything after.
 @throws FrontendException]]>
      </doc>
    </method>
    <field name="ops" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="fromEdges" type="org.apache.pig.newplan.PlanEdge"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="toEdges" type="org.apache.pig.newplan.PlanEdge"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="softFromEdges" type="org.apache.pig.newplan.PlanEdge"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="softToEdges" type="org.apache.pig.newplan.PlanEdge"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.BaseOperatorPlan -->
  <!-- start class org.apache.pig.newplan.DependencyOrderWalker -->
  <class name="DependencyOrderWalker" extends="org.apache.pig.newplan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DependencyOrderWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="doAllPredecessors"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.newplan.Operator"/>
      <param name="seen" type="java.util.Set"/>
      <param name="fifo" type="java.util.Collection"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A walker to walk graphs in dependency order.  It is guaranteed that a node
 will not be visited until all of its predecessors have been visited.  This
 is equivalent to doing a topilogical sort on the graph and then visiting
 the nodes in order.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.DependencyOrderWalker -->
  <!-- start class org.apache.pig.newplan.DepthFirstWalker -->
  <class name="DepthFirstWalker" extends="org.apache.pig.newplan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DepthFirstWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws FrontendException if an error is encountered while walking.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Do a depth first traversal of the graph.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.DepthFirstWalker -->
  <!-- start class org.apache.pig.newplan.DotPlanDumper -->
  <class name="DotPlanDumper" extends="org.apache.pig.newplan.PlanDumper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotPlanDumper" type="org.apache.pig.newplan.BaseOperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DotPlanDumper" type="org.apache.pig.newplan.BaseOperatorPlan, java.io.PrintStream, boolean, java.util.Set, java.util.Set, java.util.Set"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="dump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="dumpMultiInputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="dumpMultiOutputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
    </method>
    <method name="dumpNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
    </method>
    <method name="dumpOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="dumpEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="suc" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="makeDumper" return="org.apache.pig.newplan.PlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Used to generate the label for an operator.
 @param op operator to dump]]>
      </doc>
    </method>
    <method name="getAttributes" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Used to generate the the attributes of a node
 @param op operator]]>
      </doc>
    </method>
    <method name="dumpInvisibleOperators"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="reverse" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
    </method>
    <field name="mSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mMultiInputSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mMultiOutputSubgraphs" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class puts everything that is needed to dump a plan in a
 format readable by graphviz's dot algorithm. Out of the box it does
 not print any nested plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.DotPlanDumper -->
  <!-- start class org.apache.pig.newplan.FilterExtractor -->
  <class name="FilterExtractor" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FilterExtractor" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan logical plan corresponding the filter's comparison condition
 @param partitionCols list of partition columns of the table which is
 being loaded in the LOAD statement which is input to the filter]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFilteredPlan" return="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return new filtered plan after pushdownable filters are removed]]>
      </doc>
    </method>
    <method name="canPushDown" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return true if pushdown is possible]]>
      </doc>
    </method>
    <method name="isFilterRemovable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the filterRemovable]]>
      </doc>
    </method>
    <method name="getPushDownExpression" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the push condition from the filter]]>
      </doc>
    </method>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="addToFilterPlan" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="binExpr" type="org.apache.pig.newplan.logical.expression.BinaryExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="unaryExpr" type="org.apache.pig.newplan.logical.expression.UnaryExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.BinaryExpression"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="unaryOp" type="org.apache.pig.newplan.logical.expression.UnaryExpression"/>
    </method>
    <method name="getExpression" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getExpression" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.BinaryExpression"/>
      <param name="opType" type="org.apache.pig.Expression.OpType"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getExpression" return="org.apache.pig.Expression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="unaryOp" type="org.apache.pig.newplan.logical.expression.UnaryExpression"/>
      <param name="opType" type="org.apache.pig.Expression.OpType"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="LOG" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="originalPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[We visit this plan to create the filteredPlan]]>
      </doc>
    </field>
    <field name="filteredPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Plan that is created after all pushable filters are removed]]>
      </doc>
    </field>
    <field name="pushdownExprPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Plan that can be pushed down]]>
      </doc>
    </field>
    <field name="filterExpr" type="org.apache.pig.newplan.logical.expression.LogicalExpression"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Final filterExpr after we are done]]>
      </doc>
    </field>
    <field name="pushdownExpr" type="org.apache.pig.Expression"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@{code Expression} to pushdown]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Extracts filter predicates for interfaces implementing {@code LoadPredicatePushdown}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.FilterExtractor -->
  <!-- start class org.apache.pig.newplan.FilterExtractor.KeyState -->
  <class name="FilterExtractor.KeyState" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="FilterExtractor.KeyState"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.newplan.FilterExtractor.KeyState -->
  <!-- start class org.apache.pig.newplan.Operator -->
  <class name="Operator" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Operator" type="java.lang.String, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Accept a visitor at this node in the graph.
 @param v Visitor to accept.
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLocation" return="org.apache.pig.parser.SourceLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loc" type="org.apache.pig.parser.SourceLocation"/>
    </method>
    <method name="getPlan" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the plan associated with this operator.
 @return plan]]>
      </doc>
    </method>
    <method name="annotate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="val" type="java.lang.Object"/>
      <doc>
      <![CDATA[Add an annotation to a node in the plan.
 @param key string name of this annotation
 @param val value, as an Object]]>
      </doc>
    </method>
    <method name="getAnnotation" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <doc>
      <![CDATA[Look to see if a node is annotated.
 @param key string name of annotation to look for
 @return value of the annotation, as an Object, or null if the key is
 not present in the map.]]>
      </doc>
    </method>
    <method name="removeAnnotation" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <doc>
      <![CDATA[Remove an annotation
 @param key the key of the annotation
 @return the original value of the annotation]]>
      </doc>
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operator" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This is like a shallow equals comparison.
 It returns true if two operators have equivalent properties even if they are 
 different objects. Here properties mean equivalent plan and equivalent name.
 @param operator
 @return true if two object have equivalent properties, else false]]>
      </doc>
    </method>
    <field name="location" type="org.apache.pig.parser.SourceLocation"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="name" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plan" type="org.apache.pig.newplan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="annotations" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="hashPrime" type="int"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.Operator -->
  <!-- start interface org.apache.pig.newplan.OperatorPlan -->
  <interface name="OperatorPlan"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get number of nodes in the plan.
 @return number of nodes in the plan]]>
      </doc>
    </method>
    <method name="getSources" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all operators in the plan that have no predecessors.
 @return all operators in the plan that have no predecessors, or
 an empty list if the plan is empty.]]>
      </doc>
    </method>
    <method name="getSinks" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all operators in the plan that have no successors.
 @return all operators in the plan that have no successors, or
 an empty list if the plan is empty.]]>
      </doc>
    </method>
    <method name="getPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators immediately before it in the
 plan.
 @param op operator to fetch predecessors of
 @return list of all operators immediately before op, or an empty list
 if op is a root.]]>
      </doc>
    </method>
    <method name="getSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators immediately after it.
 @param op operator to fetch successors of
 @return list of all operators immediately after op, or an empty list
 if op is a leaf.]]>
      </doc>
    </method>
    <method name="getSoftLinkPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators softly immediately before it in the
 plan.
 @param op operator to fetch predecessors of
 @return list of all operators immediately before op, or an empty list
 if op is a root.]]>
      </doc>
    </method>
    <method name="getSoftLinkSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[For a given operator, get all operators softly immediately after it.
 @param op operator to fetch successors of
 @return list of all operators immediately after op, or an empty list
 if op is a leaf.]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Add a new operator to the plan.  It will not be connected to any
 existing operators.
 @param op operator to add]]>
      </doc>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Remove an operator from the plan.
 @param op Operator to be removed
 @throws FrontendException if the remove operation attempts to 
 remove an operator that is still connected to other operators.]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="fromPos" type="int"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <param name="toPos" type="int"/>
      <doc>
      <![CDATA[Connect two operators in the plan, controlling which position in the
 edge lists that the from and to edges are placed.
 @param from Operator edge will come from
 @param fromPos Position in the array for the from edge
 @param to Operator edge will go to
 @param toPos Position in the array for the to edge]]>
      </doc>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Connect two operators in the plan.
 @param from Operator edge will come from
 @param to Operator edge will go to]]>
      </doc>
    </method>
    <method name="createSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Create an soft edge between two nodes.
 @param from Operator dependent upon
 @param to Operator having the dependency]]>
      </doc>
    </method>
    <method name="removeSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Remove an soft edge
 @param from Operator dependent upon
 @param to Operator having the dependency]]>
      </doc>
    </method>
    <method name="disconnect" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Disconnect two operators in the plan.
 @param from Operator edge is coming from
 @param to Operator edge is going to
 @return pair of positions, indicating the position in the from and
 to arrays.
 @throws FrontendException if the two operators aren't connected.]]>
      </doc>
    </method>
    <method name="getOperators" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get an iterator of all operators in this plan
 @return an iterator of all operators in this plan]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This is like a shallow comparison.
 Two plans are equal if they have equivalent operators and equivalent 
 structure.
 @param other  object to compare
 @return boolean if both the plans are equivalent
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="replace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOperator" type="org.apache.pig.newplan.Operator"/>
      <param name="newOperator" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This method replace the oldOperator with the newOperator, make all connection
 to the new operator in the place of old operator
 @param oldOperator operator to be replaced
 @param newOperator operator to replace
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="removeAndReconnect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operatorToRemove" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This method remove a node operatorToRemove. It also Connect all its successors to 
 predecessor/connect all it's predecessors to successor
 @param operatorToRemove operator to remove
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="insertBetween"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pred" type="org.apache.pig.newplan.Operator"/>
      <param name="operatorToInsert" type="org.apache.pig.newplan.Operator"/>
      <param name="succ" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This method insert node operatorToInsert between pred and succ. Both pred and succ cannot be null
 @param pred predecessor of inserted node after this method
 @param operatorToInsert operato to insert
 @param succ successor of inserted node after this method
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="pathExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.Operator"/>
      <param name="store" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[check if there is a path in the plan graph between the load operator to the store operator.
 @param load load operator
 @param store store operator
 @return true if yes, no otherwise.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface that defines graph operations on plans.  Plans are modeled as
 graphs with restrictions on the types of connections and operations allowed.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.newplan.OperatorPlan -->
  <!-- start class org.apache.pig.newplan.OperatorSubPlan -->
  <class name="OperatorSubPlan" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.newplan.OperatorPlan"/>
    <constructor name="OperatorSubPlan" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getBasePlan" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="fromPos" type="int"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <param name="toPos" type="int"/>
    </method>
    <method name="connect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="disconnect" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getSinks" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOperators" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getSources" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="createSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="removeSoftLink"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getSoftLinkPredecessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getSoftLinkSuccessors" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="insertBetween"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pred" type="org.apache.pig.newplan.Operator"/>
      <param name="operatorToInsert" type="org.apache.pig.newplan.Operator"/>
      <param name="succ" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="removeAndReconnect"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operatorToRemove" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="replace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oldOperator" type="org.apache.pig.newplan.Operator"/>
      <param name="newOperator" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="pathExists" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
    </method>
    <doc>
    <![CDATA[Class to represent a view of a plan. The view contains a subset of the plan.
 All the operators returned from the view are the same objects to the operators
 in its base plan. It is used to represent match results.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.OperatorSubPlan -->
  <!-- start class org.apache.pig.newplan.PartitionFilterExtractor -->
  <class name="PartitionFilterExtractor" extends="org.apache.pig.newplan.FilterExtractor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionFilterExtractor" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan logical plan corresponding the filter's comparison condition
 @param partitionCols list of partition columns of the table which is
 being loaded in the LOAD statement which is input to the filter]]>
      </doc>
    </constructor>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.BinaryExpression"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="unaryOp" type="org.apache.pig.newplan.logical.expression.UnaryExpression"/>
    </method>
    <doc>
    <![CDATA[This is a rewrite of {@code PColFilterExtractor}
 Extracts partition filters for interfaces implementing LoadMetaData]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.PartitionFilterExtractor -->
  <!-- start class org.apache.pig.newplan.PlanDumper -->
  <class name="PlanDumper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanDumper" type="org.apache.pig.newplan.BaseOperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setVerbose"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="isVerbose" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="dump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is the public interface. Dump writes the plan and nested
 plans to the stream.]]>
      </doc>
    </method>
    <method name="makeDumper" return="org.apache.pig.newplan.PlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
      <doc>
      <![CDATA[makeDumper is a factory method. Used by subclasses to specify
 what dumper should handle the nested plan.
 @param plan Plan that the new dumper should handle
 @return the dumper for plan]]>
      </doc>
    </method>
    <method name="dumpOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Will be called to dump a simple operator
 @param op the operator to be dumped]]>
      </doc>
    </method>
    <method name="dumpMultiInputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
      <doc>
      <![CDATA[Will be called when an operator has nested plans, which are
 connected to one of the multiple inputs.
 @param op the nested operator
 @param plans a map of input operator to connected nested plan]]>
      </doc>
    </method>
    <method name="dumpMultiOutputNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
      <doc>
      <![CDATA[Will be called for nested operators, where the plans represent
 how the output of the operator is processed. 
 @param op the nested operator
 @param plans a collection of sub plans.]]>
      </doc>
    </method>
    <method name="dumpNestedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="plans" type="java.util.Collection"/>
      <doc>
      <![CDATA[Will be called for nested operators. The operators are not
 specifically connected to any input or output operators of E
 @param op the nested operator
 @param plans a collection of sub plans.]]>
      </doc>
    </method>
    <method name="dumpEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="suc" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Will be called to dump the edges of the plan. Each edge results
 in one call.
 @param op tail of the edge
 @param suc head of the edge]]>
      </doc>
    </method>
    <method name="getMultiInputNestedPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested plans, which are
 connected to specific input operators.
 @param op operator
 @return Map describing the input to nested plan relationship.]]>
      </doc>
    </method>
    <method name="getMultiOutputNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested output plans

 @param op operator
 @return Map describing the input to nested plan relationship.]]>
      </doc>
    </method>
    <method name="getNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Used to determine if an operator has nested plans (without
 connections to in- or output operators.
 @param op operator
 @return Collection of nested plans.]]>
      </doc>
    </method>
    <method name="join"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="sep" type="java.lang.String"/>
      <param name="strings" type="java.lang.String[]"/>
      <doc>
      <![CDATA[Helper function to print a string array.
 @param sep Separator
 @param strings Array to print]]>
      </doc>
    </method>
    <field name="ps" type="java.io.PrintStream"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isVerbose" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class dumps a nested plan to a print stream. It does not walk
 the graph in any particular fashion it merely iterates over all
 operators and edges and calls a corresponding dump function. If a
 node of the plan has nested plans this will be dumped when the
 node is handled.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.PlanDumper -->
  <!-- start class org.apache.pig.newplan.PlanEdge -->
  <class name="PlanEdge" extends="org.apache.pig.impl.util.MultiMap"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanEdge"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PlanEdge" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param size Initial size of the map]]>
      </doc>
    </constructor>
    <method name="put"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.newplan.Operator"/>
      <param name="value" type="org.apache.pig.newplan.Operator"/>
      <param name="pos" type="int"/>
      <doc>
      <![CDATA[Add an element to the map.
 @param key The key to store the value under.  If the key already
 exists the value will be added to the collection for that key, it
 will not replace the existing value (as in a standard map).
 @param value value to store.
 @param pos position in the arraylist to store the new value at.
 Positions are zero based.]]>
      </doc>
    </method>
    <method name="removeWithPosition" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.pig.newplan.Operator"/>
      <param name="value" type="org.apache.pig.newplan.Operator"/>
      <doc>
      <![CDATA[Remove one value from an existing key and return which position in
 the arraylist the value was at..  If that is the last value
 for the key, then remove the key too.
 @param key Key to remove the value from.
 @param value Value to remove.
 @return A pair containing the value being removed and an integer
 indicating the position, or null if the key or value does
 not exist.  Positions are zero based.]]>
      </doc>
    </method>
    <method name="shallowClone" return="org.apache.pig.newplan.PlanEdge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.PlanEdge -->
  <!-- start class org.apache.pig.newplan.PlanVisitor -->
  <class name="PlanVisitor" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan OperatorPlan this visitor will visit.
 @param walker PlanWalker this visitor will use to traverse the plan.]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Entry point for visiting the plan.
 @throws VisitorException if an error is encountered while visiting.]]>
      </doc>
    </method>
    <method name="getPlan" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="pushWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="walker" type="org.apache.pig.newplan.PlanWalker"/>
      <doc>
      <![CDATA[Push the current walker onto the stack of saved walkers and begin using
 the newly passed walker as the current walker.
 @param walker new walker to set as the current walker.]]>
      </doc>
    </method>
    <method name="popWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Pop the next to previous walker off of the stack and set it as the current
 walker.  This will drop the reference to the current walker.
 @throws VisitorException if there are no more walkers on the stack.  In
 this case the current walker is not reset.]]>
      </doc>
    </method>
    <field name="DEFAULT_SCOPE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plan" type="org.apache.pig.newplan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentWalker" type="org.apache.pig.newplan.PlanWalker"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Guaranteed to always point to the walker currently being used.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[A visitor mechanism for navigating and operating on a plan of 
 Operators.  This class contains the logic to traverse the plan.  It does
 not visit individual nodes.  That is left to implementing classes
 (such as LOVisitor).]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.PlanVisitor -->
  <!-- start class org.apache.pig.newplan.PlanWalker -->
  <class name="PlanWalker" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="walk"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.  This can't be set in
 the constructor because the visitor is constructing this class, and does
 not yet have a 'this' pointer to send as an argument.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
      <doc>
      <![CDATA[Return a new instance of this same type of walker for a subplan.
 When this method is called the same type of walker with the
 provided plan set as the plan, must be returned.  This can then be
 used to walk subplans.  This allows abstract visitors to clone
 walkers without knowning the type of walker their subclasses used.
 @param plan Plan for the new walker.
 @return Instance of the same type of walker with plan set to plan.]]>
      </doc>
    </method>
    <method name="getPlan" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
      <doc>
      <![CDATA[Set the plan for this walker to operate on.
 @param plan to walk]]>
      </doc>
    </method>
    <field name="plan" type="org.apache.pig.newplan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.PlanWalker -->
  <!-- start class org.apache.pig.newplan.PredicatePushDownFilterExtractor -->
  <class name="PredicatePushDownFilterExtractor" extends="org.apache.pig.newplan.FilterExtractor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PredicatePushDownFilterExtractor" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="checkPushDown" return="org.apache.pig.newplan.FilterExtractor.KeyState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.BinaryExpression"/>
    </method>
    <method name="isSupportedOpType" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="unaryOp" type="org.apache.pig.newplan.logical.expression.UnaryExpression"/>
    </method>
    <doc>
    <![CDATA[We traverse the expression plan bottom up and separate it into two plans
 - pushdownExprPlan, plan that can be pushed down to the loader and
 - filterExprPlan, remaining plan that needs to be evaluated by pig

 If the predicate is not removable then filterExprPlan will not have
 the pushdownExprPlan removed.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.PredicatePushDownFilterExtractor -->
  <!-- start class org.apache.pig.newplan.ReverseDependencyOrderWalker -->
  <class name="ReverseDependencyOrderWalker" extends="org.apache.pig.newplan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ReverseDependencyOrderWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="doAllSuccessors"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.newplan.Operator"/>
      <param name="seen" type="java.util.Set"/>
      <param name="fifo" type="java.util.Collection"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Visit a plan in the reverse of the dependency order.  That is, every node
 after every node that depends on it is visited.  Thus this is equivalent to
 doing a reverse topilogical sort on the graph and then visiting it in order.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.ReverseDependencyOrderWalker -->
  <!-- start class org.apache.pig.newplan.ReverseDependencyOrderWalkerWOSeenChk -->
  <class name="ReverseDependencyOrderWalkerWOSeenChk" extends="org.apache.pig.newplan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ReverseDependencyOrderWalkerWOSeenChk" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 @param visitor Visitor this walker is being used by.
 @throws VisitorException if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="doAllSuccessors"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.pig.newplan.Operator"/>
      <param name="fifo" type="java.util.Collection"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Visit a plan in the reverse of the dependency order.  That is, every node
 after every node that depends on it is visited.  Thus this is equivalent to
 doing a reverse topilogical sort on the graph and then visiting it in order.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.ReverseDependencyOrderWalkerWOSeenChk -->
  <!-- start class org.apache.pig.newplan.SubtreeDependencyOrderWalker -->
  <class name="SubtreeDependencyOrderWalker" extends="org.apache.pig.newplan.DependencyOrderWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SubtreeDependencyOrderWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SubtreeDependencyOrderWalker" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.Operator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.SubtreeDependencyOrderWalker -->
</package>
<package name="org.apache.pig.newplan.logical">
  <!-- start class org.apache.pig.newplan.logical.DotLOPrinter -->
  <class name="DotLOPrinter" extends="org.apache.pig.newplan.DotPlanDumper"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DotLOPrinter" type="org.apache.pig.newplan.BaseOperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="makeDumper" return="org.apache.pig.newplan.DotPlanDumper"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
      <param name="ps" type="java.io.PrintStream"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getAttributes" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getMultiInputNestedPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getNestedPlans" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="reverse" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.BaseOperatorPlan"/>
    </method>
    <doc>
    <![CDATA[This class can print a logical plan in the DOT format. It uses
 clusters to illustrate nesting. If "verbose" is off, it will skip
 any nesting.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.DotLOPrinter -->
  <!-- start class org.apache.pig.newplan.logical.Util -->
  <class name="Util" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Util"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="translateSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="translateFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"/>
    </method>
    <method name="translateSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <doc>
      <![CDATA[This function translates the new LogicalSchema into old Schema format required
 by PhysicalOperators
 @param schema LogicalSchema to be converted to Schema
 @return Schema that is converted from LogicalSchema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="fixSchemaAddTupleInBag" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sch" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[If schema argument has fields where a bag does not contain a tuple schema,
 it inserts a tuple schema. It does so for all inner levels.
 eg bag({int}) => bag({(int)})
 @param sch
 @return modified schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="translateFieldSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
    </method>
    <method name="addForEachAfter" return="org.apache.pig.newplan.logical.relational.LOForEach"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <param name="branch" type="int"/>
      <param name="columnsToDrop" type="java.util.Set"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getLogicalRelationalOperators" return="java.util.LinkedList"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="opClass" type="java.lang.Class"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Returns a LinkedList of operators contained within the physical plan
 which implement the supplied class, in dependency order. Returns an empty
 LinkedList of no such operators exist.
 @param plan
 @param opClass
 @return a LinkedList of operators contained within the plan which
         implement the supplied class; empty if no such ops exist.
 @throws FrontendException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.Util -->
</package>
<package name="org.apache.pig.newplan.logical.expression">
  <!-- start class org.apache.pig.newplan.logical.expression.AddExpression -->
  <class name="AddExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AddExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Add Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.AddExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.AllSameExpressionVisitor -->
  <class name="AllSameExpressionVisitor" extends="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AllSameExpressionVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="execute"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Method to call on every node in the logical expression plan.
 @param op Node that is currently being visited.]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="andExpr" type="org.apache.pig.newplan.logical.expression.AndExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="exp" type="org.apache.pig.newplan.logical.expression.OrExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="equal" type="org.apache.pig.newplan.logical.expression.EqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="constant" type="org.apache.pig.newplan.logical.expression.ConstantExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.newplan.logical.expression.CastExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="greaterThanExpression" type="org.apache.pig.newplan.logical.expression.GreaterThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lessThanExpression" type="org.apache.pig.newplan.logical.expression.LessThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LessThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.IsNullExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NegativeExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.AddExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.SubtractExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MultiplyExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ModExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.DivideExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MapLookupExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.BinCondExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.UserFuncExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="derefenceExpression" type="org.apache.pig.newplan.logical.expression.DereferenceExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.RegexExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.AllSameExpressionVisitor -->
  <!-- start class org.apache.pig.newplan.logical.expression.AndExpression -->
  <class name="AndExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AndExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Boolean and expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.AndExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.BinaryExpression -->
  <class name="BinaryExpression" extends="org.apache.pig.newplan.logical.expression.LogicalExpression"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinaryExpression" type="java.lang.String, org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param name of the operator
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="getLhs" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the left hand side of this binary expression.
 @return expression on the left hand side
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getRhs" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the right hand side of this binary expression.
 @return expression on the right hand side
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Superclass for all binary expressions]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.BinaryExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.BinCondExpression -->
  <class name="BinCondExpression" extends="org.apache.pig.newplan.logical.expression.LogicalExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BinCondExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the
 left and right hand side operators and the condition operator
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="getCondition" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Returns the operator which handles this condition
 @return expression which handles the condition
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getLhs" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the left hand side of this expression.
 @return expression on the left hand side
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getRhs" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the right hand side of this expression.
 @return expression on the right hand side
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.BinCondExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.CastExpression -->
  <class name="CastExpression" extends="org.apache.pig.newplan.logical.expression.UnaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CastExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spec" type="org.apache.pig.FuncSpec"/>
      <doc>
      <![CDATA[Set the <code>FuncSpec</code> that performs the casting functionality
 @param spec the <code>FuncSpec</code> that does the casting]]>
      </doc>
    </method>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the <code>FuncSpec</code> that performs the casting functionality
 @return the <code>FuncSpec</code> that does the casting]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.CastExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ColumnExpression -->
  <class name="ColumnExpression" extends="org.apache.pig.newplan.logical.expression.LogicalExpression"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnExpression" type="java.lang.String, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param name of the operator
 @param plan LogicalExpressionPlan this column expression is part of]]>
      </doc>
    </constructor>
    <doc>
    <![CDATA[Super class for all column expressions, including projection, constants, and deferences.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ColumnExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ConstantExpression -->
  <class name="ConstantExpression" extends="org.apache.pig.newplan.logical.expression.ColumnExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantExpression" type="org.apache.pig.newplan.OperatorPlan, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Adds expression to the plan 
 @param plan LogicalExpressionPlan this constant is a part of.
 @param val Value of this constant.]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the value of this constant.
 @return value of the constant]]>
      </doc>
    </method>
    <method name="setValue"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="inheritSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A constant]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ConstantExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.DereferenceExpression -->
  <class name="DereferenceExpression" extends="org.apache.pig.newplan.logical.expression.ColumnExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DereferenceExpression" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DereferenceExpression" type="org.apache.pig.newplan.OperatorPlan, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="DereferenceExpression" type="org.apache.pig.newplan.OperatorPlan, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setRawColumns"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cols" type="java.util.List"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="getBagColumns" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setBagColumns"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="columns" type="java.util.List"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getReferredExpression" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getRawColumns" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[get one or elements out of a tuple or a bag
 
 in case of Tuple( a#2:int, b#3:bag{ b_a#4:int, b_b#5:float }, c#6:int ) # 1
 (the number after # represents the uid)
 
 Dereference ( 0 ) --> a:int
 - dereference of single column in a tuple gives the field
 
 Dereference ( 0,2 ) --> Tuple(a#2:int, c#6:int) #7 
 - dereference of more than one column gives a tuple 
 
 Dereference ( 1 ) --> Dereference ( 1 ) --> b:bag{b_b#5:float}#8 
 - dereference of a bag gives a bag]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.DereferenceExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.DivideExpression -->
  <class name="DivideExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DivideExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Divide Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.DivideExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.EqualExpression -->
  <class name="EqualExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EqualExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Equality test expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.EqualExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ExpToPhyTranslationVisitor -->
  <class name="ExpToPhyTranslationVisitor" extends="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExpToPhyTranslationVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <constructor name="ExpToPhyTranslationVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getPhysicalPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.AndExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.OrExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.EqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.GreaterThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LessThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LessThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MapLookupExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ConstantExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.CastExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.IsNullExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NegativeExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.AddExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.RegexExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.SubtractExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MultiplyExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.DivideExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ModExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.BinCondExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.UserFuncExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.DereferenceExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="currentOp" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="logToPhyMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentPlans" type="java.util.Deque"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="nodeGen" type="org.apache.pig.impl.plan.NodeIdGenerator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pc" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ExpToPhyTranslationVisitor -->
  <!-- start class org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression -->
  <class name="GreaterThanEqualExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GreaterThanEqualExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.GreaterThanExpression -->
  <class name="GreaterThanExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GreaterThanExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.GreaterThanExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.IsNullExpression -->
  <class name="IsNullExpression" extends="org.apache.pig.newplan.logical.expression.UnaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IsNullExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.IsNullExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.LessThanEqualExpression -->
  <class name="LessThanEqualExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LessThanEqualExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.LessThanEqualExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.LessThanExpression -->
  <class name="LessThanExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LessThanExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.LessThanExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.LogicalExpression -->
  <class name="LogicalExpression" extends="org.apache.pig.newplan.Operator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalExpression" type="java.lang.String, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param name of the operator
 @param plan LogicalExpressionPlan this is part of]]>
      </doc>
    </constructor>
    <method name="getNextUid" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetNextUid"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hasFieldSchema" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is a convenience method to avoid the side-effectful nature of getFieldSchema().
 It simply returns whether or not fieldSchema is currently null.]]>
      </doc>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the field schema for the output of this expression operator.  This does
 not merely return the field schema variable.  If schema is not yet set, this
 will attempt to construct it.  Therefore it is abstract since each
 operator will need to construct its field schema differently.
 @return the FieldSchema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="resetFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the data type for this expression.
 @return data type, one of the static bytes of DataType]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="neverUseForRealSetFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Create the deep copy of this expression and add that into the passed
 LogicalExpressionPlan Return the copy of this expression with updated
 logical expression plan.
 @param lgExpPlan LogicalExpressionPlan in which this expression will be added.
 @return LogicalExpression with its own logical expression plan.
 @throws IOException.]]>
      </doc>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Erase all cached uid, regenerate uid when we regenerating schema.
 This process currently only used in ImplicitSplitInsert, which will
 insert split and invalidate some uids in plan]]>
      </doc>
    </method>
    <field name="fieldSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="uidOnlyFieldSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Logical representation of expression operators.  Expression operators have
 a data type and a uid.  Uid is a unique id for each expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.LogicalExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.LogicalExpressionPlan -->
  <class name="LogicalExpressionPlan" extends="org.apache.pig.newplan.BaseOperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalExpressionPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="merge" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <doc>
      <![CDATA[Merge all nodes in lgExpPlan, keep the connections
 @param lgExpPlan plan to merge
 @return sources of the merged plan]]>
      </doc>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A plan containing LogicalExpressionOperators.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.LogicalExpressionPlan -->
  <!-- start class org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor -->
  <class name="LogicalExpressionVisitor" extends="org.apache.pig.newplan.PlanVisitor"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalExpressionVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.AndExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.OrExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.EqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ConstantExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.CastExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.GreaterThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LessThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LessThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NotExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.IsNullExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.NegativeExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.AddExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.SubtractExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MultiplyExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ModExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.DivideExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.MapLookupExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.BinCondExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.UserFuncExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.DereferenceExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.RegexExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.ScalarExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A visitor for expression plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor -->
  <!-- start class org.apache.pig.newplan.logical.expression.MapLookupExpression -->
  <class name="MapLookupExpression" extends="org.apache.pig.newplan.logical.expression.ColumnExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapLookupExpression" type="org.apache.pig.newplan.OperatorPlan, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getMap" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getLookupKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.MapLookupExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ModExpression -->
  <class name="ModExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ModExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Mod Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ModExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.MultiplyExpression -->
  <class name="MultiplyExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MultiplyExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Multiply Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.MultiplyExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.NegativeExpression -->
  <class name="NegativeExpression" extends="org.apache.pig.newplan.logical.expression.UnaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NegativeExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.NegativeExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.NotEqualExpression -->
  <class name="NotEqualExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NotEqualExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[NotEquality test expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.NotEqualExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.NotExpression -->
  <class name="NotExpression" extends="org.apache.pig.newplan.logical.expression.UnaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NotExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.NotExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.OrExpression -->
  <class name="OrExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="OrExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Boolean OR Expression]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.OrExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ProjectExpression -->
  <class name="ProjectExpression" extends="org.apache.pig.newplan.logical.expression.ColumnExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectExpression" type="org.apache.pig.newplan.OperatorPlan, int, int, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Adds projection to the plan.
 @param plan LogicalExpressionPlan this projection will be a part of
 @param inputNum Input number this project references.
 @param colNum Column number this project references.
 @param attachedRelationalOp]]>
      </doc>
    </constructor>
    <constructor name="ProjectExpression" type="org.apache.pig.newplan.OperatorPlan, int, java.lang.String, org.apache.pig.newplan.Operator, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Adds projection to the plan.
 @param plan
 @param inputNum
 @param alias
 @param attachedRelationalOp
 @throws FrontendException]]>
      </doc>
    </constructor>
    <constructor name="ProjectExpression" type="org.apache.pig.newplan.OperatorPlan, int, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor for range projection
 Adds projection to the plan.
 The start and end alias/column-number should be set separately.
 @param plan
 @param inputNum
 @param attachedRelationalOp]]>
      </doc>
    </constructor>
    <constructor name="ProjectExpression" type="org.apache.pig.newplan.logical.expression.ProjectExpression, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[like a copy constructor, but with a plan argument
 @param projExpr
 @param plan]]>
      </doc>
    </constructor>
    <method name="setColumnNumberFromAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[If there is an alias, finds the column number from it.
 @throws FrontendException if there is no such alias]]>
      </doc>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="getInputNum" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Input number this project references.  This is the input number for the
 relational operator that contains this expression.  The count is zero
 based.
 @return input number]]>
      </doc>
    </method>
    <method name="setInputNum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputNum" type="int"/>
    </method>
    <method name="getColNum" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Column number this project references.  The column number is the column
 in the relational operator that contains this expression.  The count
 is zero based.
 @return column number]]>
      </doc>
    </method>
    <method name="getColAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProjectedOperator" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setColNum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="colNum" type="int"/>
      <doc>
      <![CDATA[Set the column number for this project.  This should only be called by
 ProjectionPatcher.  Stupid Java needs friends.
 @param colNum new column number for projection]]>
      </doc>
    </method>
    <method name="isProjectStar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRangeProject" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isRangeOrStarProject" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="findReferent" return="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Find the LogicalRelationalOperator that this projection refers to.
 @return LRO this projection refers to
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAttachedRelationalOp" return="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAttachedRelationalOp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="attachedRelationalOp" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getStartCol" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the startCol]]>
      </doc>
    </method>
    <method name="setStartCol"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="startCol" type="int"/>
      <doc>
      <![CDATA[@param startCol the startCol to set]]>
      </doc>
    </method>
    <method name="getEndCol" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the endCol]]>
      </doc>
    </method>
    <method name="setEndCol"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endCol" type="int"/>
      <doc>
      <![CDATA[@param endCol the endCol to set]]>
      </doc>
    </method>
    <method name="setStartAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="startAlias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param startAlias
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="setEndAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="endAlias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param endAlias
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Projection of columns in an expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ProjectExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.RegexExpression -->
  <class name="RegexExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RegexExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Regex Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.RegexExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.ScalarExpression -->
  <class name="ScalarExpression" extends="org.apache.pig.newplan.logical.expression.UserFuncExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScalarExpression" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ScalarExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.Operator, org.apache.pig.newplan.Operator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getImplicitReferencedOperator" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setImplicitReferencedOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="implicitReferencedOperator" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="setAttachedLogicalOperator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="attachedLogicalOperator" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getAttachedLogicalOperator" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.ScalarExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.SubtractExpression -->
  <class name="SubtractExpression" extends="org.apache.pig.newplan.logical.expression.BinaryExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SubtractExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param plan plan this operator is part of
 @param lhs expression on its left hand side
 @param rhs expression on its right hand side]]>
      </doc>
    </constructor>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.Operator#accept(org.apache.pig.newplan.PlanVisitor)]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Subtract Operator]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.SubtractExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.UnaryExpression -->
  <class name="UnaryExpression" extends="org.apache.pig.newplan.logical.expression.LogicalExpression"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UnaryExpression" type="java.lang.String, org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Will add this operator to the plan and connect it to the 
 left and right hand side operators.
 @param name of the operator
 @param plan plan this operator is part of
 @param exp expression that this expression operators on]]>
      </doc>
    </constructor>
    <method name="getExpression" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the expression that this unary expression operators on.
 @return expression on the left hand side
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Superclass for all unary expressions]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.UnaryExpression -->
  <!-- start class org.apache.pig.newplan.logical.expression.UserFuncExpression -->
  <class name="UserFuncExpression" extends="org.apache.pig.newplan.logical.expression.LogicalExpression"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UserFuncExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.FuncSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UserFuncExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.FuncSpec, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UserFuncExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.FuncSpec, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UserFuncExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.FuncSpec, java.util.List, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="UserFuncExpression" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.FuncSpec, java.util.List, boolean, boolean, boolean, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFuncSpec" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isDeterministic" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getArguments" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setFuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="funcSpec" type="org.apache.pig.FuncSpec"/>
      <doc>
      <![CDATA[@param funcSpec the FuncSpec to set]]>
      </doc>
    </method>
    <method name="getFieldSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lgExpPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isViaDefine" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEvalFunc" return="org.apache.pig.EvalFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.expression.UserFuncExpression -->
</package>
<package name="org.apache.pig.newplan.logical.optimizer">
  <!-- start class org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor -->
  <class name="AllExpressionVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AllExpressionVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param plan LogicalPlan to visit
 @param walker Walker to use to visit the plan.]]>
      </doc>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get a new instance of the expression visitor to apply to 
 a given expression.
 @param expr LogicalExpressionPlan that will be visited
 @return a new LogicalExpressionVisitor for that expression]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cu" type="org.apache.pig.newplan.logical.relational.LOCube"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="currentOp" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A visitor that walks a logical plan and then applies a given
 LogicalExpressionVisitor to all expressions it encounters.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.AllSameRalationalNodesVisitor -->
  <class name="AllSameRalationalNodesVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AllSameRalationalNodesVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param plan OperatorPlan to visit
 @param walker Walker to use to visit the plan]]>
      </doc>
    </constructor>
    <method name="execute"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Method to call on every node in the logical plan.
 @param op Node that is currently being visited.]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="union" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loNative" type="org.apache.pig.newplan.logical.relational.LONative"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cube" type="org.apache.pig.newplan.logical.relational.LOCube"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A visitor that walks the logical plan and calls the same method on every
 type of node.  Subclasses can extend this and implement the execute
 method, and this method will be called on every node in the graph.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.AllSameRalationalNodesVisitor -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.LogicalPlanOptimizer -->
  <class name="LogicalPlanOptimizer" extends="org.apache.pig.newplan.optimizer.PlanOptimizer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalPlanOptimizer" type="org.apache.pig.newplan.OperatorPlan, int, java.util.Set"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LogicalPlanOptimizer" type="org.apache.pig.newplan.OperatorPlan, int, java.util.Set, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new LogicalPlanOptimizer.
 @param p               Plan to optimize.
 @param iterations      Maximum number of optimizer iterations.
 @param turnOffRules    Optimization rules to disable. "all" disables all non-mandatory
                        rules. null enables all rules.
 @param pc              PigContext object]]>
      </doc>
    </constructor>
    <method name="buildRuleSets" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.LogicalPlanOptimizer -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.LogicalPlanPrinter -->
  <class name="LogicalPlanPrinter" extends="org.apache.pig.newplan.PlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalPlanPrinter" type="org.apache.pig.newplan.OperatorPlan, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@param ps PrintStream to output plan information to
 @param plan Logical plan to print]]>
      </doc>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="depthFirstLP"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="SEPERATE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="tabs" type="java.util.ArrayList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="reverse" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A visitor mechanism printing out the logical plan.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.LogicalPlanPrinter -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.ProjectionPatcher -->
  <class name="ProjectionPatcher" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.newplan.optimizer.PlanTransformListener"/>
    <constructor name="ProjectionPatcher"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="transformed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fp" type="org.apache.pig.newplan.OperatorPlan"/>
      <param name="tp" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@link org.apache.pig.newplan.optimizer.PlanTransformListener#transformed(org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.OperatorPlan)]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A PlanTransformListener that will patch up references in projections.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.ProjectionPatcher -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.ProjectionPatcher.ProjectionFinder -->
  <class name="ProjectionPatcher.ProjectionFinder" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectionPatcher.ProjectionFinder" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.ProjectionPatcher.ProjectionFinder -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.SchemaPatcher -->
  <class name="SchemaPatcher" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.newplan.optimizer.PlanTransformListener"/>
    <constructor name="SchemaPatcher"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="transformed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fp" type="org.apache.pig.newplan.OperatorPlan"/>
      <param name="tp" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[@throws FrontendException 
 @link org.apache.pig.newplan.optimizer.PlanTransformListener#transformed(org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.OperatorPlan)]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A PlanTransformListener for the logical optimizer that will patch up schemas
 after a plan has been transformed.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.SchemaPatcher -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.SchemaResetter -->
  <class name="SchemaResetter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaResetter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <constructor name="SchemaResetter" type="org.apache.pig.newplan.OperatorPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCube" type="org.apache.pig.newplan.logical.relational.LOCube"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCogroup" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplit" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loUnion" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loRank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loDistinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLimit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loStream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <exception name="PlanValidationException" type="org.apache.pig.impl.plan.PlanValidationException"/>
      <doc>
      <![CDATA[Check if schema is valid (ready to be part of a final logical plan)
 @param schema
 @throws PlanValidationException if the if any field in schema has uid -1
 or (skipDuplicateUidCheck is true and there are duplicate uids in schema)]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.SchemaResetter -->
  <!-- start class org.apache.pig.newplan.logical.optimizer.UidResetter -->
  <class name="UidResetter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UidResetter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCogroup" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplit" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loUnion" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loRank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loDistinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLimit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loStream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.optimizer.UidResetter -->
</package>
<package name="org.apache.pig.newplan.logical.relational">
  <!-- start class org.apache.pig.newplan.logical.relational.LOCogroup -->
  <class name="LOCogroup" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOCogroup" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor for use in defining rule patterns
 @param plan]]>
      </doc>
    </constructor>
    <constructor name="LOCogroup" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.util.MultiMap, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOCogroup" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.util.MultiMap, org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getGroupType" return="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetGroupType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getGeneratedInputUids" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns an Unmodifiable Map of Input Number to Uid
 @return Unmodifiable Map<Integer,Long>]]>
      </doc>
    </method>
    <method name="getExpressionPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setExpressionPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="setGroupType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gt" type="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"/>
    </method>
    <method name="setInnerFlags"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="flags" type="boolean[]"/>
    </method>
    <method name="getInner" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <field name="OPTION_GROUPTYPE" type="java.lang.Integer"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[static constant to refer to the option of selecting a group type]]>
      </doc>
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOCogroup -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE -->
  <class name="LOCogroup.GROUPTYPE" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="REGULAR" type="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLLECTED" type="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGE" type="org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Enum for the type of group]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOCogroup.GROUPTYPE -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOCross -->
  <class name="LOCross" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOCross" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isNested" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setNested"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nested" type="boolean"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="nested" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOCross -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOCube -->
  <class name="LOCube" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOCube" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOCube" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.util.MultiMap"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getExpressionPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setExpressionPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="getOperations" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOperations"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operations" type="java.util.List"/>
    </method>
    <doc>
    <![CDATA[CUBE operator implementation for data cube computation.
 <p>
 Cube operator syntax
 
 <pre>
 {@code alias = CUBE rel BY { CUBE | ROLLUP }(col_ref) [, { CUBE | ROLLUP }(col_ref) ...];}
 alias - output alias 
 CUBE - operator
 rel - input relation
 BY - operator
 CUBE | ROLLUP - cube or rollup operation
 col_ref - column references or * or range in the schema referred by rel
 </pre>
 
 </p>
 <p>
 The cube computation and rollup computation using UDFs
 {@link org.apache.pig.builtin.CubeDimensions} and
 {@link org.apache.pig.builtin.RollupDimensions} can be represented like below
 
 <pre>
 {@code
 events = LOAD '/logs/events' USING EventLoader() AS (lang, event, app_id, event_id, total);
 eventcube = CUBE events BY CUBE(lang, event), ROLLUP(app_id, event_id);
 result = FOREACH eventcube GENERATE FLATTEN(group) as (lang, event),
          COUNT_STAR(cube), SUM(cube.total);
 STORE result INTO 'cuberesult';
 }
 </pre>
 
 In the above example, CUBE(lang, event) will generate all combinations of
 aggregations {(lang, event), (lang, ), ( , event), ( , )}. 
 For n dimensions, 2^n combinations of aggregations will be generated.
 
 Similarly, ROLLUP(app_id, event_id) will generate aggregations from the most
 detailed to the most general (grandtotal) level in the hierarchical order
 like {(app_id, event_id), (app_id, ), ( , )}. For n dimensions,
 n+1 combinations of aggregations will be generated.
 
 The output of the above example query will have the following combinations of
 aggregations {(lang, event, app_id, event_id), (lang, , app_id, event_id), 
 ( , event, app_id, event_id), ( , , app_id, event_id), (lang, event, app_id, ), 
 (lang, , app_id, ), ( , event, app_id, ), ( , , app_id, ), (lang, event, , ), 
 (lang, , , ), ( , event, , ), ( , , , )}
 
 Total number of combinations will be ( 2^n * (n+1) )
 
 Since cube and rollup clause use null to represent "all" values of a dimension, 
 if the dimension values contain null values it will be converted to "unknown" 
 before computing cube or rollup. 
 </p>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOCube -->
  <!-- start class org.apache.pig.newplan.logical.relational.LODistinct -->
  <class name="LODistinct" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LODistinct" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInput" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LODistinct -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOFilter -->
  <class name="LOFilter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOFilter" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOFilter" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOFilter" type="org.apache.pig.newplan.logical.relational.LogicalPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOFilter" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.newplan.logical.expression.LogicalExpressionPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFilterPlan" return="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFilterPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filterPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
    </method>
    <method name="isSample" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInput" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOFilter -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOForEach -->
  <class name="LOForEach" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOForEach" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInnerPlan" return="org.apache.pig.newplan.logical.relational.LogicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInnerPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="p" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="findReacheableInnerLoadFromBoundaryProject" return="org.apache.pig.impl.util.Pair"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="dumpNestedSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="nestedAlias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOForEach -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOGenerate -->
  <class name="LOGenerate" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOGenerate" type="org.apache.pig.newplan.OperatorPlan, java.util.List, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOGenerate" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setOutputPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plans" type="java.util.List"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getOutputPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFlattenFlags" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFlattenFlags"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="flatten" type="boolean[]"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUserDefinedSchema" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUserDefinedSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userDefinedSchema" type="java.util.List"/>
    </method>
    <method name="getOutputPlanSchemas" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the output schema corresponding to each input expression plan
 @return list of output schemas]]>
      </doc>
    </method>
    <method name="setOutputPlanSchemas"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputPlanSchemas" type="java.util.List"/>
    </method>
    <method name="getUidOnlySchemas" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUidOnlySchemas"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uidOnlySchemas" type="java.util.List"/>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOGenerate -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalPlan -->
  <class name="LogicalPlan" extends="org.apache.pig.newplan.BaseOperatorPlan"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalPlan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Equality is checked by calling equals on every leaf in the plan.  This
 assumes that plans are always connected graphs.  It is somewhat
 inefficient since every leaf will test equality all the way to
 every root.  But it is only intended for use in testing, so that
 should be ok.  Checking predecessors (as opposed to successors) was
 chosen because splits (which have multiple successors) do not depend
 on order of outputs for correctness, whereas joins (with multiple
 predecessors) do.  That is, reversing the outputs of split in the
 graph has no correctness implications, whereas reversing the inputs
 of join can.  This method of doing equals will detect predecessors
 in different orders but not successors in different orders.
 It will return false if either plan has non deterministic EvalFunc.]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="java.io.PrintStream"/>
      <param name="format" type="java.lang.String"/>
      <param name="verbose" type="boolean"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="findByAlias" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Returns the signature of the LogicalPlan. The signature is a unique identifier for a given
 plan generated by a Pig script. The same script run multiple times with the same version of
 Pig is guaranteed to produce the same signature, even if the input or output locations differ.

 @return a unique identifier for the logical plan
 @throws FrontendException if signature can't be computed]]>
      </doc>
    </method>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="scope" type="java.lang.String"/>
      <param name="skipInputOutputValidation" type="boolean"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="optimize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[LogicalPlan is the logical view of relational operations Pig will execute
 for a given script.  Note that it contains only relational operations.
 All expressions will be contained in LogicalExpressionPlans inside
 each relational operator.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalPlan -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalPlanData -->
  <class name="LogicalPlanData" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalPlanData" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNumLogicalRelationOperators" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the number of {@link LogicalRelationalOperator}s present in the
 pig script.
 
 @return number of logical relational operators (Load, Join, Store etc)]]>
      </doc>
    </method>
    <method name="getNumSources" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return number of Load statements in the script]]>
      </doc>
    </method>
    <method name="getNumSinks" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return number of Store statements in the script]]>
      </doc>
    </method>
    <method name="getSources" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return This method return the list of Load paths defined in the
         script/query.]]>
      </doc>
    </method>
    <method name="getSinks" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return This method returns the list of store paths in the script/query.]]>
      </doc>
    </method>
    <method name="getLoadFuncs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return This method returns the list of LoadFunc(s) used.]]>
      </doc>
    </method>
    <method name="getStoreFuncs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return This method returns the list of StoreFunc(s) used.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class provides information regarding the LogicalPlan. Make sure to avoid
 exposing LogicalPlan itself. Only data regarding the logical plan could be
 exposed but none of Pig internals (plans, operators etc) should be.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalPlanData -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor -->
  <class name="LogicalRelationalNodesVisitor" extends="org.apache.pig.newplan.PlanVisitor"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalRelationalNodesVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cube" type="org.apache.pig.newplan.logical.relational.LOCube"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCogroup" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplit" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loUnion" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loRank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loDistinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLimit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loCross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loStream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nativeMR" type="org.apache.pig.newplan.logical.relational.LONative"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A visitor for logical plans.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalRelationalOperator -->
  <class name="LogicalRelationalOperator" extends="org.apache.pig.newplan.Operator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalRelationalOperator" type="java.lang.String, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param name of this operator
 @param plan this operator is in]]>
      </doc>
    </constructor>
    <constructor name="LogicalRelationalOperator" type="java.lang.String, org.apache.pig.newplan.OperatorPlan, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param name of this operator
 @param plan this operator is in
 @param rp requested parallelism]]>
      </doc>
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the schema for the output of this relational operator.  This does
 not merely return the schema variable.  If schema is not yet set, this
 will attempt to construct it.  Therefore it is abstract since each
 operator will need to construct its schema differently.
 @return the schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="setSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
    </method>
    <method name="resetSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reset the schema to null so that the next time getSchema is called
 the schema will be regenerated from scratch.]]>
      </doc>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Erase all cached uid, regenerate uid when we regenerating schema.
 This process currently only used in ImplicitSplitInsert, which will
 insert split and invalidate some uids in plan]]>
      </doc>
    </method>
    <method name="getRequestedParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the requestedParallelism for this operator.
 @return requestedParallelsim]]>
      </doc>
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the alias of this operator.  That is, if the Pig Latin for this operator
 was 'X = sort W by $0' then the alias will be X.  For store and split it will
 be the alias being stored or split.  Note that because of this this alias
 is not guaranteed to be unique to a single operator.
 @return alias]]>
      </doc>
    </method>
    <method name="setAlias"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="setRequestedParallelism"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="parallel" type="int"/>
    </method>
    <method name="getLineNumber" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the line number in the submitted Pig Latin script where this operator
 occurred.
 @return line number]]>
      </doc>
    </method>
    <method name="neverUseForRealSetSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <doc>
      <![CDATA[Only to be used by unit tests.  This is a back door cheat to set the schema
 without having to calculate it.  This should never be called by production
 code, only by tests.
 @param schema to set]]>
      </doc>
    </method>
    <method name="checkEquality" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Do some basic equality checks on two relational operators.  Equality
 is defined here as having equal schemas and  predecessors that are equal.
 This is intended to be used by operators' equals methods.
 @param other LogicalRelationalOperator to compare predecessors against
 @return true if the isEquals() methods of this node's predecessor(s) returns
 true when invoked with other's predecessor(s).
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCustomPartitioner" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCustomPartitioner"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="customPartitioner" type="java.lang.String"/>
    </method>
    <method name="pinOption"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="opt" type="java.lang.Integer"/>
    </method>
    <method name="isPinnedOption" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="opt" type="java.lang.Integer"/>
    </method>
    <method name="fixDuplicateUids"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fss" type="java.util.List"/>
      <doc>
      <![CDATA[In the case of an operation which manipualtes columns (such as a foreach or a join)
 it is possible for multiple columns to have been derived from the same
 column and thus have duplicate UID's. This detects that case and resets the uid.
 See PIG-3020 and PIG-3093 for more information.
 @param fss a list of LogicalFieldSchemas to check the uids of]]>
      </doc>
    </method>
    <field name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="requestedParallelism" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="alias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="lineNum" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mCustomPartitioner" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Name of the customPartitioner if one is used, this is set to null otherwise.]]>
      </doc>
    </field>
    <field name="mPinnedOptions" type="java.util.HashSet"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[A HashSet to indicate whether an option (such a Join Type) was pinned
 by the user or can be chosen at runtime by the optimizer.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[Logical representation of relational operators.  Relational operators have
 a schema.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalRelationalOperator -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalSchema -->
  <class name="LogicalSchema" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Reset uids of all fieldschema that the schema contains]]>
      </doc>
    </method>
    <method name="castable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inSch" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="outSch" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <doc>
      <![CDATA[Recursively compare two schemas to check if the input schema 
 can be cast to the cast schema
 @param inSch schema of the cast input
 @param outSch schema of the cast operator
 @return true if castable]]>
      </doc>
    </method>
    <method name="addField"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="field" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <doc>
      <![CDATA[Add a field to this schema.
 @param field to be added to the schema]]>
      </doc>
    </method>
    <method name="getField" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Fetch a field by alias
 @param alias
 @return field associated with alias, or null if no such field
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="getFieldSubNameMatch" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Given an alias name, find the associated LogicalFieldSchema. If exact name is 
 not found see if any field matches the part of the 'namespaced' alias.
 eg. if given alias is nm::a , and schema is (a,b). It will return 
 FieldSchema of a.
 if given alias is nm::a and schema is (nm2::a, b), it will return null
 @param alias Alias to look up.
 @return LogicalFieldSchema, or null if no such alias is in this tuple.]]>
      </doc>
    </method>
    <method name="getFieldPosition" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="getField" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <doc>
      <![CDATA[Fetch a field by field number
 @param fieldNum field number to fetch
 @return field]]>
      </doc>
    </method>
    <method name="getFields" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all fields
 @return list of all fields]]>
      </doc>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the size of the schema.
 @return size]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[Two schemas are equal if they are of equal size and their fields
 schemas considered in order are equal. This function does 
 not compare the alias of the fields.]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <param name="compareAlias" type="boolean"/>
      <doc>
      <![CDATA[Two schemas are equal if they are of equal size and their fields
 schemas considered in order are equal. If compareAlias argument is 
 set to true, the alias of the fields are also compared.
 @param other
 @param compareAlias
 @return true if equal]]>
      </doc>
    </method>
    <method name="findField" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uid" type="long"/>
      <doc>
      <![CDATA[Look for the index of the field that contains the specified uid
 @param uid the uid to look for
 @return the index of the field, -1 if not found]]>
      </doc>
    </method>
    <method name="merge" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s1" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="s2" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="mode" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Merge two schemas.
 @param s1 In Load/ForEach, s1 is user declared schema; In Union, s1 is left side.
 @param s2 In Load/ForEach, s2 is infered schema; In Union, s2 is right side.
 @param mode We merge schema in Load/Foreach/Union. In Load/Foreach, we always take s1 if compatible (s1 is set to be user defined schema),
 In union, we take more specific type (between numeric and string, we take string). In the case type mismatch in s1/s2, 
 we expect TypeCheckingVisitor will fill the gap later. 
 @return a merged schema, or null if the merge fails]]>
      </doc>
    </method>
    <method name="isEqualUnlessUnknown" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s1" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="s2" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="mergeUid" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uidOnlySchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="mergeSchemasByAlias" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schemas" type="java.util.List"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Merges collection of schemas using their column aliases 
 (unlike mergeSchema(..) functions which merge using positions)
 Schema will not be merged if types are incompatible, 
 as per DataType.mergeType(..)
 For Tuples and Bags, SubSchemas have to be equal be considered compatible
 @param schemas - list of schemas to be merged using their column alias
 @return merged schema]]>
      </doc>
    </method>
    <method name="mergeSchemaByAlias" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema1" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="schema2" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Merges two schemas using their column aliases 
 (unlike mergeSchema(..) functions which merge using positions)
 Schema will not be merged if types are incompatible, 
 as per DataType.mergeType(..)
 For Tuples and Bags, SubSchemas have to be equal be considered compatible]]>
      </doc>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="other" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="relaxInner" type="boolean"/>
      <param name="relaxAlias" type="boolean"/>
      <doc>
      <![CDATA[Recursively compare two schemas for equality
 @param schema
 @param other
 @param relaxInner if true, inner schemas will not be checked
 @param relaxAlias if true, aliases will not be checked
 @return true if schemas are equal, false otherwise]]>
      </doc>
    </method>
    <method name="normalize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Old Pig schema does not require a tuple schema inside a bag;
 Now it is required to have that; this method is to fill the gap]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Schema, from a logical perspective.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalSchema -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema -->
  <class name="LogicalSchema.LogicalFieldSchema" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogicalSchema.LogicalFieldSchema" type="java.lang.String, org.apache.pig.newplan.logical.relational.LogicalSchema, byte"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LogicalSchema.LogicalFieldSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LogicalSchema.LogicalFieldSchema" type="java.lang.String, org.apache.pig.newplan.logical.relational.LogicalSchema, byte, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <doc>
      <![CDATA[Equality is defined as having the same type and either the same schema
 or both null schema.  Alias and uid are not checked.]]>
      </doc>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
      <param name="compareAlias" type="boolean"/>
      <doc>
      <![CDATA[Equality is defined as having the same type and either the same schema
 or both null schema. if compareAlias argument is set to true, alias
 is also compared.
 @param other 
 @param compareAlias
 @return true if equal]]>
      </doc>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="verbose" type="boolean"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="stampFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Give new value for uid if uid of field schema or those in fields schema
 of inner schema are -1.]]>
      </doc>
    </method>
    <method name="mergeUid" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uidOnlyFieldSchema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Adds the uid from FieldSchema argument to this FieldSchema
 If the argument is null, it stamps this FieldSchema with uid
 @param uidOnlyFieldSchema
 @return FieldSchema 
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Rest uid of this fieldschema and inner schema]]>
      </doc>
    </method>
    <method name="cloneUid" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="deepCopy" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fschema" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="fother" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="relaxInner" type="boolean"/>
      <param name="relaxAlias" type="boolean"/>
      <doc>
      <![CDATA[Compare two field schema for equality

 @param relaxInner If true, we don't check inner tuple schemas
 @param relaxAlias If true, we don't check aliases
 @return true if FieldSchemas are equal, false otherwise]]>
      </doc>
    </method>
    <method name="castable" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inFs" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="outFs" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <doc>
      <![CDATA[Check if FieldSchema inFs is castable to outFs
 @param inFs
 @param outFs
 @return true if it is castable]]>
      </doc>
    </method>
    <method name="merge" return="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs1" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="fs2" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="mode" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Merge two LogicalFieldSchema, the behavior of merge depends on mode. 
 If mode==MergeType.LoadForEach or MergeType.LoadForEachInner, take left side if compatible, otherwise, throw exception.
 If mode==MergeType.UnionInner, if not same type, throw exception, end up with null inner schema.
 If mode==MergeType.Union, take more specific type.
 @param fs1 In Load/Foreach, fs1 is user declared schema; in Union, fs1 is left side
 @param fs2 In Load/Foreach, fs1 is inferred schema; in Union, fs1 is left side
 @param mode merge mode]]>
      </doc>
    </method>
    <method name="isEqualUnlessUnknown" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fs1" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <param name="fs2" type="org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="normalize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Old Pig field schema does not require a tuple schema inside a bag;
 Now it is required to have that; this method is to fill the gap]]>
      </doc>
    </method>
    <field name="alias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="type" type="byte"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="uid" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalSchema.LogicalFieldSchema -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode -->
  <class name="LogicalSchema.MergeMode" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="LoadForEach" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LoadForEachInner" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="Union" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UnionInner" type="org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogicalSchema.MergeMode -->
  <!-- start class org.apache.pig.newplan.logical.relational.LogToPhyTranslationVisitor -->
  <class name="LogToPhyTranslationVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LogToPhyTranslationVisitor" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getLogToPhyMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPhysicalPlan" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLoad" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loNative" type="org.apache.pig.newplan.logical.relational.LONative"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loRank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Transformation from Logical to Physical Plan involves the following steps:
 First, it is generated a random number which will link a POCounter within a PORank.
 On this way, avoiding possible collisions on parallel rank operations.
 Then, if it is row number mode:
 <pre>
 In case of a RANK operation (row number mode), are used two steps:
   1.- Each tuple is counted sequentially on each mapper, and are produced global counters
   2.- Global counters are gathered and summed, each tuple calls to the respective counter value
       in order to calculate the corresponding rank value.
 </pre>
 or not:
 <pre>
 In case of a RANK BY operation, then are necessary five steps:
   1.- Group by the fields involved on the rank operation: POPackage
   2.- In case of multi-fields, the key (group field) is flatten: POForEach
   3.- Sort operation by the fields available after flattening: POSort
   4.- Each group is sequentially counted on each mapper through a global counter: POCounter
   5.- Global counters are summed and passed to the rank operation: PORank
 </pre>
 @param loRank describe if the rank operation is on a row number mode
 or is rank by (dense or not)]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loStore" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loj" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loUnion" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loDistinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLimit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplit" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loSplitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="updateWithEmptyBagCheck"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fePlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="joinInput" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[updates plan with check for empty bag and if bag is empty to flatten a bag
 with as many null's as dictated by the schema
 @param fePlan the plan to update
 @param joinInput the relation for which the corresponding bag is being checked
 @throws FrontendException]]>
      </doc>
    </method>
    <field name="logToPhyMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentPlans" type="java.util.Deque"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentPlan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="nodeGen" type="org.apache.pig.impl.plan.NodeIdGenerator"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pc" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LogToPhyTranslationVisitor -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOInnerLoad -->
  <class name="LOInnerLoad" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOInnerLoad" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.relational.LOForEach, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOInnerLoad" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.relational.LOForEach, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <constructor name="LOInnerLoad" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.newplan.logical.relational.LOForEach, org.apache.pig.newplan.logical.expression.ProjectExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="resetSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProjection" return="org.apache.pig.newplan.logical.expression.ProjectExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getColNum" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLOForEach" return="org.apache.pig.newplan.logical.relational.LOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the LOForEach operator that contains this operator as part of inner plan
 @return the LOForEach operator]]>
      </doc>
    </method>
    <method name="sourceIsBag" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loc" type="org.apache.pig.parser.SourceLocation"/>
    </method>
    <doc>
    <![CDATA[Operator to map the data into the inner plan of LOForEach
 It can only be used in the inner plan of LOForEach]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOInnerLoad -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOJoin -->
  <class name="LOJoin" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOJoin" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOJoin" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.impl.util.MultiMap, org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE, boolean[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setJoinPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="joinPlans" type="org.apache.pig.impl.util.MultiMap"/>
    </method>
    <method name="setInnerFlags"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isInner" type="boolean[]"/>
    </method>
    <method name="setJoinType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jt" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"/>
    </method>
    <method name="isInner" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputIndex" type="int"/>
    </method>
    <method name="getInnerFlags" return="boolean[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJoinType" return="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetJoinType"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJoinPlan" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputIndex" type="int"/>
    </method>
    <method name="getExpressionPlans" return="org.apache.pig.impl.util.MultiMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get all of the expressions plans that are in this join.
 @return collection of all expression plans.]]>
      </doc>
    </method>
    <method name="getExpressionPlanValues" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <field name="OPTION_JOIN" type="java.lang.Integer"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[static constant to refer to the option of selecting a join type]]>
      </doc>
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOJoin -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE -->
  <class name="LOJoin.JOINTYPE" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="HASH" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REPLICATED" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SKEWED" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGE" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGESPARSE" type="org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Enum for the type of join]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOJoin.JOINTYPE -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOLimit -->
  <class name="LOLimit" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOLimit" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOLimit" type="org.apache.pig.newplan.logical.relational.LogicalPlan, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOLimit" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="long"/>
    </method>
    <method name="getLimitPlan" return="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimitPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mlimitPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInput" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOLimit -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOLoad -->
  <class name="LOLoad" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOLoad" type="org.apache.pig.newplan.logical.relational.LogicalSchema, org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[used for pattern matching
 
 @param schema schema user specified in script, or null if not
 specified.
 @param plan logical plan this load is part of.]]>
      </doc>
    </constructor>
    <constructor name="LOLoad" type="org.apache.pig.impl.io.FileSpec, org.apache.pig.newplan.logical.relational.LogicalSchema, org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.hadoop.conf.Configuration, org.apache.pig.LoadFunc, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Used from the LogicalPlanBuilder

 @param loader FuncSpec for load function to use for this load.
 @param schema schema user specified in script, or null if not specified.
 @param plan logical plan this load is part of.
 @param conf
 @param loadFunc the LoadFunc that was instantiated from loader
 @param signature the signature that will be passed to the LoadFunc]]>
      </doc>
    </constructor>
    <method name="getSchemaFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLoadFunc" return="org.apache.pig.LoadFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setScriptSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
    </method>
    <method name="setRequiredFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="requiredFields" type="java.util.List"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the schema for this load.  The schema will be either be what was
 given by the user in the script or what the load functions getSchema
 call returned.  Otherwise null will be returned, indicating that the
 schema is unknown.
 @return schema, or null if unknown]]>
      </doc>
    </method>
    <method name="getFileSpec" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getDeterminedSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setCastState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="state" type="org.apache.pig.newplan.logical.relational.LOLoad.CastState"/>
    </method>
    <method name="getCastState" return="org.apache.pig.newplan.logical.relational.LOLoad.CastState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isCastAdjusted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getConfiguration" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isTmpLoad" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTmpLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isTmpLoad" type="boolean"/>
    </method>
    <method name="getScriptSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="long"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOLoad -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOLoad.CastState -->
  <class name="LOLoad.CastState" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.newplan.logical.relational.LOLoad.CastState[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.newplan.logical.relational.LOLoad.CastState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="INSERTED" type="org.apache.pig.newplan.logical.relational.LOLoad.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NONEED" type="org.apache.pig.newplan.logical.relational.LOLoad.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NOADJUST" type="org.apache.pig.newplan.logical.relational.LOLoad.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOLoad.CastState -->
  <!-- start class org.apache.pig.newplan.logical.relational.LONative -->
  <class name="LONative" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LONative" type="org.apache.pig.newplan.OperatorPlan, java.lang.String, java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getNativeMRJar" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the nativeMRJar]]>
      </doc>
    </method>
    <method name="setNativeMRJar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nativeMRJar" type="java.lang.String"/>
      <doc>
      <![CDATA[@param nativeMRJar the nativeMRJar to set]]>
      </doc>
    </method>
    <method name="getParams" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the params]]>
      </doc>
    </method>
    <method name="setParams"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="params" type="java.lang.String[]"/>
      <doc>
      <![CDATA[@param params the params to set]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LONative -->
  <!-- start class org.apache.pig.newplan.logical.relational.LORank -->
  <class name="LORank" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LORank" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LORank" type="org.apache.pig.newplan.OperatorPlan, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRankColPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRankColPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rankColPlans" type="java.util.List"/>
    </method>
    <method name="getAscendingCol" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAscendingCol"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ascCols" type="java.util.List"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Get the schema for the output of LORank.
 Composed by long value prepended to the
 rest of the input schema
 @return the schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isDenseRank" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get if it is a dense RANK BY
 @return boolean]]>
      </doc>
    </method>
    <method name="setIsDenseRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isDenseRank" type="boolean"/>
      <doc>
      <![CDATA[Set if it is a dense RANK BY
 @param isDenseRank if is dense rank or not]]>
      </doc>
    </method>
    <method name="isRowNumber" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get if it is a simple RANK operation.
 Which means a row number attached to each tuple.
 @return boolean]]>
      </doc>
    </method>
    <method name="setIsRowNumber"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rowNumber" type="boolean"/>
      <doc>
      <![CDATA[Set if it is a simple RANK operation.
 @param rowNumber if is a row number operation]]>
      </doc>
    </method>
    <doc>
    <![CDATA[RANK operator implementation.
 Operator Syntax:
 <pre>
 {@code alias = RANK rel ( BY (col_ref) (ASC|DESC)? ( DENSE )? )?;}
 alias - output alias
 RANK - operator
 rel - input relation
 BY - operator
 col_ref - STAR or Column References or a range in the schema of rel
 DENSE - dense rank means a sequential value without gasp among different tuple values.
 </pre>]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LORank -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOSort -->
  <class name="LOSort" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOSort" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOSort" type="org.apache.pig.newplan.OperatorPlan, java.util.List, java.util.List, org.apache.pig.FuncSpec"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSortColPlans" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSortColPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortPlans" type="java.util.List"/>
    </method>
    <method name="getAscendingCols" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setAscendingCols"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ascCols" type="java.util.List"/>
    </method>
    <method name="getUserFunc" return="org.apache.pig.FuncSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="func" type="org.apache.pig.FuncSpec"/>
    </method>
    <method name="isStar" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStar"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="boolean"/>
    </method>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="l" type="long"/>
    </method>
    <method name="getLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isLimited" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getSortInfo" return="org.apache.pig.SortInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInput" return="org.apache.pig.newplan.Operator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="createCopy" return="org.apache.pig.newplan.logical.relational.LOSort"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOSort -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOSplit -->
  <class name="LOSplit" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOSplit" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOSplit -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOSplitOutput -->
  <class name="LOSplitOutput" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOSplitOutput" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOSplitOutput" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFilterPlan" return="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFilterPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filterPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputUids" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uid" type="long"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOSplitOutput -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOStore -->
  <class name="LOStore" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOStore" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.impl.io.FileSpec, org.apache.pig.StoreFuncInterface, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getOutputSpec" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStoreFunc" return="org.apache.pig.StoreFuncInterface"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getSortInfo" return="org.apache.pig.SortInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSortInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sortInfo" type="org.apache.pig.SortInfo"/>
    </method>
    <method name="isTmpStore" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTmpStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isTmpStore" type="boolean"/>
    </method>
    <method name="setInputSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="org.apache.pig.impl.io.FileSpec"/>
    </method>
    <method name="getInputSpec" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSignature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFileSpec" return="org.apache.pig.impl.io.FileSpec"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOStore -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOStream -->
  <class name="LOStream" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOStream" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.impl.streaming.ExecutableManager, org.apache.pig.impl.streaming.StreamingCommand, org.apache.pig.newplan.logical.relational.LogicalSchema"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getStreamingCommand" return="org.apache.pig.impl.streaming.StreamingCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the StreamingCommand object associated
 with this operator
 
 @return the StreamingCommand object]]>
      </doc>
    </method>
    <method name="getExecutableManager" return="org.apache.pig.impl.streaming.ExecutableManager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return the ExecutableManager]]>
      </doc>
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setCastState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="state" type="org.apache.pig.newplan.logical.relational.LOStream.CastState"/>
    </method>
    <method name="getCastState" return="org.apache.pig.newplan.logical.relational.LOStream.CastState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isCastAdjusted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScriptSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOStream -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOStream.CastState -->
  <class name="LOStream.CastState" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.newplan.logical.relational.LOStream.CastState[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.newplan.logical.relational.LOStream.CastState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="INSERTED" type="org.apache.pig.newplan.logical.relational.LOStream.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NONEED" type="org.apache.pig.newplan.logical.relational.LOStream.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NOADJUST" type="org.apache.pig.newplan.logical.relational.LOStream.CastState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOStream.CastState -->
  <!-- start class org.apache.pig.newplan.logical.relational.LOUnion -->
  <class name="LOUnion" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LOUnion" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="LOUnion" type="org.apache.pig.newplan.OperatorPlan, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="isOnSchema" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="org.apache.pig.newplan.Operator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getInputUids" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uid" type="long"/>
    </method>
    <method name="resetUid"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="setUnionOnSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="flag" type="boolean"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.LOUnion -->
  <!-- start class org.apache.pig.newplan.logical.relational.MapSideMergeValidator -->
  <class name="MapSideMergeValidator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapSideMergeValidator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="validateMapSideMerge" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preds" type="java.util.List"/>
      <param name="lp" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="LogicalToPhysicalTranslatorException" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.LogicalToPhysicalTranslatorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.MapSideMergeValidator -->
  <!-- start class org.apache.pig.newplan.logical.relational.SchemaNotDefinedException -->
  <class name="SchemaNotDefinedException" extends="java.lang.RuntimeException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaNotDefinedException" type="java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SchemaNotDefinedException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SchemaNotDefinedException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.newplan.logical.relational.SchemaNotDefinedException -->
</package>
<package name="org.apache.pig.newplan.logical.rules">
  <!-- start class org.apache.pig.newplan.logical.rules.AddForEach -->
  <class name="AddForEach" extends="org.apache.pig.newplan.logical.rules.WholePlanRule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AddForEach" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.AddForEach -->
  <!-- start class org.apache.pig.newplan.logical.rules.AddForEach.AddForEachTransformer -->
  <class name="AddForEach.AddForEachTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AddForEach.AddForEachTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.AddForEach.AddForEachTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.ColumnMapKeyPrune -->
  <class name="ColumnMapKeyPrune" extends="org.apache.pig.newplan.logical.rules.WholePlanRule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnMapKeyPrune" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This Rule prunes columns and map keys and set to loader. This rule depends
 on MapKeysPruneHelper to calculate what keys are required for a loader,
 and ColumnPruneHelper to calculate the required columns for a loader. Then
 it combines the map keys and columns info to set into the loader.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ColumnMapKeyPrune -->
  <!-- start class org.apache.pig.newplan.logical.rules.ColumnMapKeyPrune.ColumnMapKeyPruneTransformer -->
  <class name="ColumnMapKeyPrune.ColumnMapKeyPruneTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnMapKeyPrune.ColumnMapKeyPruneTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ColumnMapKeyPrune.ColumnMapKeyPruneTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.ColumnPruneHelper -->
  <class name="ColumnPruneHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnPruneHelper" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getColumns" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="schema" type="org.apache.pig.newplan.logical.relational.LogicalSchema"/>
      <param name="uids" type="java.util.Set"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="INPUTUIDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="OUTPUTUIDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REQUIREDCOLS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Helper class used by ColumnMapKeyPrune to figure out what columns can be pruned.
 It doesn't make any changes to the operator plan]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ColumnPruneHelper -->
  <!-- start class org.apache.pig.newplan.logical.rules.ColumnPruneVisitor -->
  <class name="ColumnPruneVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnPruneVisitor" type="org.apache.pig.newplan.OperatorPlan, java.util.Map, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="addRequiredItems"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <param name="requiredItem" type="org.apache.pig.impl.util.Pair"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="union" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ColumnPruneVisitor -->
  <!-- start class org.apache.pig.newplan.logical.rules.ConstantCalculator -->
  <class name="ConstantCalculator" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantCalculator" type="java.lang.String, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ConstantCalculator -->
  <!-- start class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer -->
  <class name="ConstantCalculator.ConstantCalculatorTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantCalculator.ConstantCalculatorTransformer" type="java.util.List, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorExpressionVisitor -->
  <class name="ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorExpressionVisitor" extends="org.apache.pig.newplan.logical.expression.AllSameExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorExpressionVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="execute"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.expression.LogicalExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorExpressionVisitor -->
  <!-- start class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorLogicalPlanVisitor -->
  <class name="ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorLogicalPlanVisitor" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorLogicalPlanVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ConstantCalculator.ConstantCalculatorTransformer.ConstantCalculatorLogicalPlanVisitor -->
  <!-- start class org.apache.pig.newplan.logical.rules.FilterAboveForeach -->
  <class name="FilterAboveForeach" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FilterAboveForeach" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This Rule moves Filter Above Foreach.
 It checks if uid on which filter works on
 is present in the predecessor of foreach.
 If so it transforms it.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.FilterAboveForeach -->
  <!-- start class org.apache.pig.newplan.logical.rules.FilterAboveForeach.FilterAboveForEachTransformer -->
  <class name="FilterAboveForeach.FilterAboveForEachTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FilterAboveForeach.FilterAboveForEachTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.FilterAboveForeach.FilterAboveForEachTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.FilterConstantCalculator -->
  <class name="FilterConstantCalculator" extends="org.apache.pig.newplan.logical.rules.ConstantCalculator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FilterConstantCalculator" type="java.lang.String, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.FilterConstantCalculator -->
  <!-- start class org.apache.pig.newplan.logical.rules.ForEachConstantCalculator -->
  <class name="ForEachConstantCalculator" extends="org.apache.pig.newplan.logical.rules.ConstantCalculator"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ForEachConstantCalculator" type="java.lang.String, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.ForEachConstantCalculator -->
  <!-- start class org.apache.pig.newplan.logical.rules.GroupByConstParallelSetter -->
  <class name="GroupByConstParallelSetter" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroupByConstParallelSetter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Rule: If a LOCogroup is 'group all', set the parallelism to 1,
 or in general - if the group-by expression is just a constant
 then set parallelism to 1
 LogicalExpressionSimplifier could be used to convert an expression 
 with constants into a single ConstantExpression]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.GroupByConstParallelSetter -->
  <!-- start class org.apache.pig.newplan.logical.rules.GroupByConstParallelSetter.GroupAllParallelSetterTransformer -->
  <class name="GroupByConstParallelSetter.GroupAllParallelSetterTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroupByConstParallelSetter.GroupAllParallelSetterTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.GroupByConstParallelSetter.GroupAllParallelSetterTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.LimitOptimizer -->
  <class name="LimitOptimizer" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LimitOptimizer" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.LimitOptimizer -->
  <!-- start class org.apache.pig.newplan.logical.rules.LimitOptimizer.OptimizeLimitTransformer -->
  <class name="LimitOptimizer.OptimizeLimitTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LimitOptimizer.OptimizeLimitTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.LimitOptimizer.OptimizeLimitTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.LoadTypeCastInserter -->
  <class name="LoadTypeCastInserter" extends="org.apache.pig.newplan.logical.rules.TypeCastInserter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LoadTypeCastInserter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="determineSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[if we are inserting casts in a load and if the loader implements
 determineSchema(), insert casts only where necessary Note that in this
 case, the data coming out of the loader is not a BYTEARRAY but is
 whatever determineSchema() says it is.]]>
      </doc>
    </method>
    <method name="markCastInserted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="markCastNoNeed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="isCastAdjusted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.LoadTypeCastInserter -->
  <!-- start interface org.apache.pig.newplan.logical.rules.LogicalRelationalNodeValidator -->
  <interface name="LogicalRelationalNodeValidator"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Validates logical operators as defined in the logical plan of a pig
 script.
 
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Implementors of this interface would define validations based on logical
 operators within a Pig script. The validations could be called from
 {@link HExecutionEngine#compile(org.apache.pig.newplan.logical.relational.LogicalPlan, java.util.Properties)}]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.newplan.logical.rules.LogicalRelationalNodeValidator -->
  <!-- start class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper -->
  <class name="MapKeysPruneHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapKeysPruneHelper" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="REQUIRED_MAPKEYS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This filter Marks every Load Operator which has a Map 
 with MAP_MARKER_ANNOTATION. The annotation value is 
 <code>Map<Integer,Set<String>><code> where Integer is the column number 
 of the field and Set is the set of Keys in this field ( field is a map field only ).
 
 It does this for only the top level schema in load. 
 
 Algorithm:
  Traverse the Plan in ReverseDependency order ( ie. Sink to Source )
      For LogicalRelationalOperators having MapLookupExpression in their 
          expressionPlan collect uid and keys related to it. This is
          retained in the visitor
      For ForEach having nested LogicalPlan use the same visitor hence
          there is no distinction required
      At Sources find all the uids provided by this source and annotate this 
      LogicalRelationalOperator ( load ) with <code>Map<Integer,Set<String>></code>
      containing only the column numbers that this LogicalRelationalOperator generates
      
 NOTE: This is a simple Map Pruner. If a map key is mentioned in the script
      then this pruner assumes you need the key. This pruner is not as optimized
      as column pruner ( which removes a column if it is mentioned but never used )]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper -->
  <!-- start class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper.FullMapCollector -->
  <class name="MapKeysPruneHelper.FullMapCollector" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapKeysPruneHelper.FullMapCollector" type="org.apache.pig.newplan.OperatorPlan, java.util.Set"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="union" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cogroup" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper.FullMapCollector -->
  <!-- start class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper.MapMarker -->
  <class name="MapKeysPruneHelper.MapMarker" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MapKeysPruneHelper.MapMarker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[This class collects all the information required to create
 the list of keys required for a map]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MapKeysPruneHelper.MapMarker -->
  <!-- start class org.apache.pig.newplan.logical.rules.MergeFilter -->
  <class name="MergeFilter" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MergeFilter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MergeFilter -->
  <!-- start class org.apache.pig.newplan.logical.rules.MergeFilter.MergeFilterTransformer -->
  <class name="MergeFilter.MergeFilterTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MergeFilter.MergeFilterTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MergeFilter.MergeFilterTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.MergeForEach -->
  <class name="MergeForEach" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MergeForEach" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MergeForEach -->
  <!-- start class org.apache.pig.newplan.logical.rules.MergeForEach.MergeForEachTransformer -->
  <class name="MergeForEach.MergeForEachTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MergeForEach.MergeForEachTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.MergeForEach.MergeForEachTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.OptimizerUtils -->
  <class name="OptimizerUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="OptimizerUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="findGenerate" return="org.apache.pig.newplan.logical.relational.LOGenerate"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <doc>
      <![CDATA[Find generate op from the foreach operator.
 @param foreach the LOForEach instance
 @return LOGenerate instance]]>
      </doc>
    </method>
    <method name="hasFlatten" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <doc>
      <![CDATA[Check if a given LOGenerate operator has any flatten fields.
 @param gen the given LOGenerate instance
 @return true if LOGenerate instance contains flatten fields, false otherwise]]>
      </doc>
    </method>
    <method name="hasFlatten" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <doc>
      <![CDATA[Helper method to find if a given LOForEach instance contains any flatten fields.
 @param foreach foreach the LOForEach instance
 @return true if LOForEach instance contains flatten fields, false otherwise]]>
      </doc>
    </method>
    <method name="planHasNonDeterministicUdf" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filterPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Helper method to determine if the logical expression plan for a Filter contains
 non-deterministic operations and should therefore be treated extra carefully
 during optimization.

 @param filterPlan
 @return true of the filter plan contains a non-deterministic UDF
 @throws FrontendException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.OptimizerUtils -->
  <!-- start class org.apache.pig.newplan.logical.rules.PartitionFilterOptimizer -->
  <class name="PartitionFilterOptimizer" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionFilterOptimizer" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PartitionFilterOptimizer -->
  <!-- start class org.apache.pig.newplan.logical.rules.PartitionFilterOptimizer.PartitionFilterPushDownTransformer -->
  <class name="PartitionFilterOptimizer.PartitionFilterPushDownTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PartitionFilterOptimizer.PartitionFilterPushDownTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="updateMappedColNames"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="org.apache.pig.Expression"/>
    </method>
    <method name="getMappedKeys" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="partitionKeys" type="java.lang.String[]"/>
      <doc>
      <![CDATA[The partition keys in the argument are as reported by
 {@link LoadMetadata#getPartitionKeys(String, org.apache.hadoop.conf.Configuration)}.
 The user may have renamed these by providing a schema with different names
 in the load statement - this method will replace the former names with
 the latter names.
 @param partitionKeys
 @return]]>
      </doc>
    </method>
    <method name="setupColNameMaps"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="subPlan" type="org.apache.pig.newplan.OperatorSubPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PartitionFilterOptimizer.PartitionFilterPushDownTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.PredicatePushdownOptimizer -->
  <class name="PredicatePushdownOptimizer" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PredicatePushdownOptimizer" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PredicatePushdownOptimizer -->
  <!-- start class org.apache.pig.newplan.logical.rules.PushDownForEachFlatten -->
  <class name="PushDownForEachFlatten" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PushDownForEachFlatten" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[It's generally a good idea to do flattens as late as possible as
 they tend to generate more rows (and so more I/O). This optimization
 swaps the order of SORTs, CROSSes and JOINs that come after 
 FOREACH..GENERATE..FLATTENs. FILTERs are re-ordered by the 
 {@link FilterAboveForeach} rule so are ignored here.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PushDownForEachFlatten -->
  <!-- start class org.apache.pig.newplan.logical.rules.PushUpFilter -->
  <class name="PushUpFilter" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PushUpFilter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PushUpFilter -->
  <!-- start class org.apache.pig.newplan.logical.rules.PushUpFilter.PushUpFilterTransformer -->
  <class name="PushUpFilter.PushUpFilterTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PushUpFilter.PushUpFilterTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.PushUpFilter.PushUpFilterTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.SplitFilter -->
  <class name="SplitFilter" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SplitFilter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.SplitFilter -->
  <!-- start class org.apache.pig.newplan.logical.rules.SplitFilter.SplitFilterTransformer -->
  <class name="SplitFilter.SplitFilterTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SplitFilter.SplitFilterTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.SplitFilter.SplitFilterTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.StreamTypeCastInserter -->
  <class name="StreamTypeCastInserter" extends="org.apache.pig.newplan.logical.rules.TypeCastInserter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamTypeCastInserter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="determineSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="markCastInserted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="markCastNoNeed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="isCastAdjusted" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.StreamTypeCastInserter -->
  <!-- start class org.apache.pig.newplan.logical.rules.TypeCastInserter -->
  <class name="TypeCastInserter" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypeCastInserter" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="determineSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markCastInserted"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="markCastNoNeed"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
    <method name="isCastAdjusted" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.TypeCastInserter -->
  <!-- start class org.apache.pig.newplan.logical.rules.TypeCastInserter.TypeCastInserterTransformer -->
  <class name="TypeCastInserter.TypeCastInserterTransformer" extends="org.apache.pig.newplan.optimizer.Transformer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypeCastInserter.TypeCastInserterTransformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="transform"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.TypeCastInserter.TypeCastInserterTransformer -->
  <!-- start class org.apache.pig.newplan.logical.rules.WholePlanRule -->
  <class name="WholePlanRule" extends="org.apache.pig.newplan.optimizer.Rule"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="WholePlanRule" type="java.lang.String, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="match" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Super class for all rules that operates on the whole plan. It doesn't look for
 a specific pattern. An example of such kind rule is ColumnPrune.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.rules.WholePlanRule -->
</package>
<package name="org.apache.pig.newplan.logical.visitor">
  <!-- start class org.apache.pig.newplan.logical.visitor.CastLineageSetter -->
  <class name="CastLineageSetter" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CastLineageSetter" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.impl.plan.CompilationMessageCollector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="exprPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Find uid lineage information. Set the load function in CastExpression 
 if it needs to convert bytearray to another type.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.CastLineageSetter -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ColumnAliasConversionVisitor -->
  <class name="ColumnAliasConversionVisitor" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ColumnAliasConversionVisitor" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="exprPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Logical plan visitor which will convert all column alias references to column
 indexes, using the underlying anonymous expression plan visitor.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ColumnAliasConversionVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.DanglingNestedNodeRemover -->
  <class name="DanglingNestedNodeRemover" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DanglingNestedNodeRemover" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.DanglingNestedNodeRemover -->
  <!-- start class org.apache.pig.newplan.logical.visitor.DuplicateForEachColumnRewriteVisitor -->
  <class name="DuplicateForEachColumnRewriteVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DuplicateForEachColumnRewriteVisitor" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.DuplicateForEachColumnRewriteVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ImplicitSplitInsertVisitor -->
  <class name="ImplicitSplitInsertVisitor" extends="org.apache.pig.newplan.logical.optimizer.AllSameRalationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ImplicitSplitInsertVisitor" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="execute"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ImplicitSplitInsertVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.InputOutputFileValidatorVisitor -->
  <class name="InputOutputFileValidatorVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InputOutputFileValidatorVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.InputOutputFileValidatorVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.LineageFindRelVisitor -->
  <class name="LineageFindRelVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LineageFindRelVisitor" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getUid2LoadFuncMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="innerLoad" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fe" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="relOp" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loLimit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="relOp" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="relOp" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="relOp" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="relOp" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Create mapping between uid and Load FuncSpec when the LogicalExpression 
 associated with it is known to hold an unmodified element of data returned
 by the load function.
 This information is used to find the LoadCaster to be used to cast bytearrays
 into other other types.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.LineageFindRelVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ProjectStarExpander -->
  <class name="ProjectStarExpander" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectStarExpander" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cu" type="org.apache.pig.newplan.logical.relational.LOCube"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A visitor to walk operators that contain a nested plan and translate project( * )
 operators to a list of projection operators, i.e., 
 project( * ) -> project(0), project(1), ... project(n-2), project(n-1)
 If input schema is null, project(*) is not expanded.
 It also expands project range ( eg $1 .. $5). It won't expand project-range-to-end
 (eg $3 ..) if the input schema is null.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ProjectStarExpander -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ProjectStarExpanderUtil -->
  <class name="ProjectStarExpanderUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjectStarExpanderUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[Util function(s) for project-(star/range) expansion]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ProjectStarExpanderUtil -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ProjStarInUdfExpander -->
  <class name="ProjStarInUdfExpander" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ProjStarInUdfExpander" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="exprPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Expand project-star or project-range when used as udf argument.
 This is different from {@link ProjectStarExpander} because in those 
 cases, the project star gets expanded as new {@link LogicalExpressionPlan}.
 In case of project-star or project-range within udf, it should get expanded
 only as multiple inputs to this udf, no addtional {@link LogicalExpressionPlan}s
 are created.
 The expansion happens only if input schema is not null]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ProjStarInUdfExpander -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ResetProjectionAttachedRelationalOpVisitor -->
  <class name="ResetProjectionAttachedRelationalOpVisitor" extends="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ResetProjectionAttachedRelationalOpVisitor" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pe" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ResetProjectionAttachedRelationalOpVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ScalarVariableValidator -->
  <class name="ScalarVariableValidator" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScalarVariableValidator" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <field name="ERR_MSG_SCALAR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This validator checks the correctness of use of scalar variables in logical
 operators. It assesses the validity of the expression by making sure there is
 no projection in it. Currently it works for Limit and Sample (see PIG-1926)]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ScalarVariableValidator -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ScalarVariableValidator.ProjectFinder -->
  <class name="ScalarVariableValidator.ProjectFinder" extends="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScalarVariableValidator.ProjectFinder" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.newplan.PlanWalker"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="found" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="project" type="org.apache.pig.newplan.logical.expression.ProjectExpression"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ScalarVariableValidator.ProjectFinder -->
  <!-- start class org.apache.pig.newplan.logical.visitor.ScalarVisitor -->
  <class name="ScalarVisitor" extends="org.apache.pig.newplan.logical.optimizer.AllExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScalarVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.PigContext, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="getVisitor" return="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="exprPlan" type="org.apache.pig.newplan.logical.expression.LogicalExpressionPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[Logical plan visitor which handles scalar projections. It will find or create a LOStore 
 and a soft link between the store operator to a scalar expression. It will also sync the file name
 between the store and scalar expression.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.ScalarVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.SchemaAliasVisitor -->
  <class name="SchemaAliasVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchemaAliasVisitor" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[The logic here is to check if we have duplicate alias in each schema
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="splitOutput" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="union" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cross" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.newplan.logical.relational.LOStream"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nativeMR" type="org.apache.pig.newplan.logical.relational.LONative"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.SchemaAliasVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.SortInfoSetter -->
  <class name="SortInfoSetter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SortInfoSetter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.SortInfoSetter -->
  <!-- start class org.apache.pig.newplan.logical.visitor.StoreAliasSetter -->
  <class name="StoreAliasSetter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StoreAliasSetter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.StoreAliasSetter -->
  <!-- start class org.apache.pig.newplan.logical.visitor.TypeCheckingExpVisitor -->
  <class name="TypeCheckingExpVisitor" extends="org.apache.pig.newplan.logical.expression.LogicalExpressionVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypeCheckingExpVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.plan.CompilationMessageCollector, org.apache.pig.newplan.logical.relational.LogicalRelationalOperator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.AddExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.SubtractExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.MultiplyExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.DivideExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.ModExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="negExp" type="org.apache.pig.newplan.logical.expression.NegativeExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="notExp" type="org.apache.pig.newplan.logical.expression.NotExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="orExp" type="org.apache.pig.newplan.logical.expression.OrExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="andExp" type="org.apache.pig.newplan.logical.expression.AndExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.LessThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.LessThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.GreaterThanExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.GreaterThanEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.EqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binOp" type="org.apache.pig.newplan.logical.expression.NotEqualExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.newplan.logical.expression.CastExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[For Basic Types:
 0) Casting to itself is always ok
 1) Casting from number to number is always ok
 2) ByteArray to anything is ok
 3) number to chararray is ok
 For Composite Types:
 Recursively traverse the schemas till you get a basic type
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rg" type="org.apache.pig.newplan.logical.expression.RegexExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[{@link RegexExpression} expects CharArray as input
 Itself always returns Boolean
 @param rg
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binCond" type="org.apache.pig.newplan.logical.expression.BinCondExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="map" type="org.apache.pig.newplan.logical.expression.MapLookupExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="deref" type="org.apache.pig.newplan.logical.expression.DereferenceExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="func" type="org.apache.pig.newplan.logical.expression.UserFuncExpression"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="schemaEqualsForMatching" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="udfSchema" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <param name="udfSchemaType" type="org.apache.pig.EvalFunc.SchemaType"/>
      <param name="ignoreByteArrays" type="boolean"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Compare two schemas for equality for argument matching purposes. This is
 a more relaxed form of Schema.equals wherein first the Datatypes of the
 field schema are checked for equality. Then if a field schema in the udf
 schema is for a complex type AND if the inner schema is NOT null, check
 for schema equality of the inner schemas of the UDF field schema and
 input field schema

 @param inputSchema
 @param udfSchema
 @param ignoreByteArrays
 @return true if FieldSchemas are equal for argument matching, false
         otherwise
 @throws FrontendException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.TypeCheckingExpVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.TypeCheckingRelVisitor -->
  <class name="TypeCheckingRelVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TypeCheckingRelVisitor" type="org.apache.pig.newplan.OperatorPlan, org.apache.pig.impl.plan.CompilationMessageCollector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[The schema of filter output will be the same as filter input
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gen" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="innerLoad" type="org.apache.pig.newplan.logical.relational.LOInnerLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="forEach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="u" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[LODistinct, output schema should be the same as input
 @param op
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limit" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cs" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[Return concatenated of all fields from all input operators
 If one of the inputs have no schema then we cannot construct
 the output schema.
 @param cs
 @throws VisitorException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[The schema of sort output will be the same as sort input.
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.newplan.logical.relational.LORank"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[The schema of rank output will be the same as input, plus a rank field.
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[The schema of split output will be the same as split input]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[LOJoin visitor
 @throws FrontendException]]>
      </doc>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[COGroup
 All group by cols from all inputs have to be of the
 same type
 @throws FrontendException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.TypeCheckingRelVisitor -->
  <!-- start class org.apache.pig.newplan.logical.visitor.UDFFinder -->
  <class name="UDFFinder" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UDFFinder" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="foreach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="generate" type="org.apache.pig.newplan.logical.relational.LOGenerate"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getUDFList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return true if the plan had any UDFs; false otherwise]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.UDFFinder -->
  <!-- start class org.apache.pig.newplan.logical.visitor.UnionOnSchemaSetter -->
  <class name="UnionOnSchemaSetter" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UnionOnSchemaSetter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="union" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[A visitor that modifies the logical plan (if necessary) for union-onschema
 functionality. It runs logical plan validator so that the correct schema
 of its inputs is available. It inserts foreach statements in its input
 if the input operator schema does not match the schema created by 
 merging all input schemas.
 
 Migrated from the old UnionOnSchemaSetter class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.logical.visitor.UnionOnSchemaSetter -->
</package>
<package name="org.apache.pig.newplan.optimizer">
  <!-- start class org.apache.pig.newplan.optimizer.PlanOptimizer -->
  <class name="PlanOptimizer" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanOptimizer" type="org.apache.pig.newplan.OperatorPlan, java.util.List, int"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param p Plan to optimize
 @param rs List of RuleSets to use to optimize
 @param iterations maximum number of optimization iterations,
 set to -1 for default]]>
      </doc>
    </constructor>
    <method name="addPlanTransformListener"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="listener" type="org.apache.pig.newplan.optimizer.PlanTransformListener"/>
      <doc>
      <![CDATA[Adds a listener to the optimization.  This listener will be fired
 after each rule transforms a plan.  Listeners are guaranteed to
 be fired in the order they are added.
 @param listener]]>
      </doc>
    </method>
    <method name="optimize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Run the optimizer.  This method attempts to match each of the Rules
 against the plan.  If a Rule matches, it then calls the check
 method of the associated Transformer to give the it a chance to
 check whether it really wants to do the optimization.  If that
 returns true as well, then Transformer.transform is called.
 @throws FrontendException]]>
      </doc>
    </method>
    <field name="ruleSets" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="plan" type="org.apache.pig.newplan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="listeners" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="maxIter" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[The core class of the optimizer.  The basic design of this class is that it
 is provided a list of RuleSets.  RuleSets represent all of the optimizer
 rules that can be run together.  The rules in the RuleSet will be run
 repeatedly until either no rule in the RuleSet passes check and calls
 transform or until maxIter iterations (default 500) has been made over
 the RuleSet.  Then the next RuleSet will be moved to.  Once finished,
 a given RuleSet is never returned to.

 Each rule is has two parts:  a pattern and and associated transformer.
 Transformers have two important functions:   check(), and transform().
 The pattern describes a pattern of node types that the optimizer will
 look to match.  If that match is found anywhere in the plan, then check()
 will be called.  check() allows the rule to look more in depth at the
 matched pattern and decide whether the rule should be run or not.  For
 example, one might design a rule to push filters above join that would
 look for the pattern filter(join) (meaning a filter followed by a join).
 But only certain types of filters can be pushed.  The check() function
 would need to decide whether the filter that it found was pushable or not.
 If check() returns true, the rule is said to have matched, and transform()
 is then called.  This function is responsible for making changes in the
 logical plan.  Once transform is complete PlanPatcher.patchUp will be
 called to do any necessary cleanup in the plan, such as resetting
 schemas, etc.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.optimizer.PlanOptimizer -->
  <!-- start interface org.apache.pig.newplan.optimizer.PlanTransformListener -->
  <interface name="PlanTransformListener"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="transformed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fp" type="org.apache.pig.newplan.OperatorPlan"/>
      <param name="tp" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Notification that a plan has been transformed.  The listener is free in
 this method to make changes to the annotations on the plan now that it
 has been transformed.
 @param fp  the full plan that has been transformed
 @param tp  a plan containing only the operators that have been transformed
 @throws FrontendException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[An interface to describe listeners that are notified when a plan is
 modified.  The purpose of these listeners is to make modifications to
 annotations on the plan after the plan is modified.  For example, if there
 is a plan that has ... -&gt; Join -&gt; Filter -&gt; ... which is transformed
 by pushing the filter before the join, then the input schema of the filter
 will mostly likely change.  A schema listener can be used to make these
 changes.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.newplan.optimizer.PlanTransformListener -->
  <!-- start class org.apache.pig.newplan.optimizer.Rule -->
  <class name="Rule" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Rule" type="java.lang.String, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create this rule by using the default pattern that this rule provided
 @param n Name of this rule
 @param mandatory if it is set to false, this rule can be disabled by user]]>
      </doc>
    </constructor>
    <constructor name="Rule" type="java.lang.String, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param n Name of this rule
 @param p Pattern to look for.]]>
      </doc>
    </constructor>
    <method name="buildPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Build the pattern that this rule will look for
 @return  the pattern to look for by this rule]]>
      </doc>
    </method>
    <method name="getNewTransformer" return="org.apache.pig.newplan.optimizer.Transformer"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the transformer for this rule.  Abstract because the rule
 may want to choose how to instantiate the transformer.  
 This should never return a cached transformer, it should
 always return a fresh one with no state.
 @return Transformer to use with this rule]]>
      </doc>
    </method>
    <method name="getPattern" return="org.apache.pig.newplan.OperatorPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Return the pattern to be matched for this rule
 @return the pattern to be matched for this rule]]>
      </doc>
    </method>
    <method name="isSkipListener" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="setSkipListener"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="skip" type="boolean"/>
    </method>
    <method name="match" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Search for all the sub-plans that matches the pattern
 defined by this rule. 
 See class description above for limitations on the patterns supported.
 @return A list of all matched sub-plans. The returned plans are
        partial views of the original OperatorPlan. Each is a 
        sub-set of the original plan and represents the same
        topology as the pattern, but operators in the returned plan  
        are the same objects as the original plan. Therefore, 
        a call getPlan() from any node in the return plan would 
        return the original plan.
        
 @param plan the OperatorPlan to look for matches to the pattern]]>
      </doc>
    </method>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isMandatory" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="name" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pattern" type="org.apache.pig.newplan.OperatorPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="currentPlan" type="org.apache.pig.newplan.OperatorPlan"
      transient="true" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="log" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Rules describe a pattern of operators.  They also reference a Transformer.
 If the pattern of operators is found one or more times in the provided plan,
 then the optimizer will use the associated Transformer to transform the
 plan.
 Note: the pattern matching logic implemented here has a limitation 
 that it assumes that all the leaves in the pattern are siblings. See more 
 detailed description here - https://issues.apache.org/jira/browse/PIG-1742
 If new rules use patterns that don't work with this limitation, the pattern
 match logic will need to be updated.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.newplan.optimizer.Rule -->
  <!-- start class org.apache.pig.newplan.optimizer.Transformer -->
  <class name="Transformer" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Transformer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="check" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[check if the transform should be done.  If this is being called then
 the pattern matches, but there may be other criteria that must be met
 as well.
 @param matched the sub-set of the plan that matches the pattern. This 
        subset has the same graph as the pattern, but the operators
        point to the same objects as the plan to be matched.
 @return true if the transform should be done.
 @throws Transformer]]>
      </doc>
    </method>
    <method name="transform"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="matched" type="org.apache.pig.newplan.OperatorPlan"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Transform the tree
 @param matched the sub-set of the plan that matches the pattern. This 
        subset has the same graph as the pattern, but the operators
        point to the same objects as the plan to be matched.
 @throws Transformer]]>
      </doc>
    </method>
    <method name="reportChanges" return="org.apache.pig.newplan.OperatorPlan"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Report what parts of the tree were transformed.  This is so that 
 listeners can know which part of the tree to visit and modify
 schemas, annotations, etc.  So any nodes that were removed need
 will not be in this plan, only nodes that were added or moved.
 @return OperatorPlan that describes just the changed nodes.]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.newplan.optimizer.Transformer -->
</package>
<package name="org.apache.pig.parser">
  <!-- start class org.apache.pig.parser.DryRunGruntParser -->
  <class name="DryRunGruntParser" extends="org.apache.pig.tools.pigscript.parser.PigScriptParser"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DryRunGruntParser" type="java.io.Reader, java.lang.String, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getResult" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="parseStopOnError" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="prompt"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="quit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="printAliases"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processFsCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmdTokens" type="java.lang.String[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processShCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmdTokens" type="java.lang.String[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processSQLCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDescribe"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processExplain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <param name="isVerbose" type="boolean"/>
      <param name="format" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processRegister"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jar" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processRegister"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="scriptingEngine" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processSet"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processSet"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCD"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processKill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jobid" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processLS"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processPWD"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="printHelp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="processHistory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="withNumbers" type="boolean"/>
    </method>
    <method name="processMove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopyToLocal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopyFromLocal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processMkdir"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dir" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processPig"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processRemove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="opt" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processIllustrate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="script" type="java.lang.String"/>
      <param name="batch" type="boolean"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="printClear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="processDefault"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDeclare"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.parser.DryRunGruntParser -->
  <!-- start class org.apache.pig.parser.DuplicatedSchemaAliasException -->
  <class name="DuplicatedSchemaAliasException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DuplicatedSchemaAliasException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.DuplicatedSchemaAliasException -->
  <!-- start class org.apache.pig.parser.InvalidCommandException -->
  <class name="InvalidCommandException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvalidCommandException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCmd" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.InvalidCommandException -->
  <!-- start class org.apache.pig.parser.InvalidPathException -->
  <class name="InvalidPathException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvalidPathException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.net.MalformedURLException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEx" return="java.net.MalformedURLException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.InvalidPathException -->
  <!-- start class org.apache.pig.parser.InvalidScalarProjectionException -->
  <class name="InvalidScalarProjectionException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvalidScalarProjectionException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, org.apache.pig.newplan.logical.expression.ScalarExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="InvalidScalarProjectionException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, org.apache.pig.newplan.logical.expression.ScalarExpression, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor that takes an additional string to be concatenated 
  with the exception message]]>
      </doc>
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.InvalidScalarProjectionException -->
  <!-- start class org.apache.pig.parser.LogicalPlanBuilder -->
  <class name="LogicalPlanBuilder" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getNextId" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
    </method>
    <method name="newOperatorKey" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
    </method>
    <method name="typeToClass" return="java.lang.Class"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="clazz" type="java.lang.Class"/>
    </method>
    <method name="getLastRel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loc" type="org.apache.pig.parser.SourceLocation"/>
      <exception name="ParserValidationException" type="org.apache.pig.parser.ParserValidationException"/>
    </method>
    <method name="getLastRel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.LogicalPlanBuilder -->
  <!-- start class org.apache.pig.parser.NonProjectExpressionException -->
  <class name="NonProjectExpressionException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NonProjectExpressionException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, org.apache.pig.newplan.logical.expression.LogicalExpression"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getExpression" return="org.apache.pig.newplan.logical.expression.LogicalExpression"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.NonProjectExpressionException -->
  <!-- start class org.apache.pig.parser.ParserException -->
  <class name="ParserException" extends="org.apache.pig.impl.logicalLayer.FrontendException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParserException" type="org.antlr.runtime.RecognitionException"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ParserException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ParserException" type="java.lang.String, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ParserException" type="java.lang.String, java.lang.Throwable"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.ParserException -->
  <!-- start class org.apache.pig.parser.ParserValidationException -->
  <class name="ParserValidationException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParserValidationException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ParserValidationException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.Exception"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCause" return="java.lang.Throwable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.ParserValidationException -->
  <!-- start class org.apache.pig.parser.PigParserNode -->
  <class name="PigParserNode" extends="org.antlr.runtime.tree.CommonTree"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigParserNode" type="org.antlr.runtime.Token, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigParserNode" type="org.antlr.runtime.Token, java.lang.String, org.antlr.runtime.Token"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="PigParserNode" type="org.apache.pig.parser.PigParserNode"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="dupNode" return="org.antlr.runtime.tree.Tree"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getStartLine" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInvocationStack"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stack" type="java.util.List"/>
    </method>
    <method name="getInvocationStack" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNextInvocationPoint" return="org.apache.pig.parser.PigParserNode.InvocationPoint"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.PigParserNode -->
  <!-- start class org.apache.pig.parser.PigParserNode.InvocationPoint -->
  <class name="PigParserNode.InvocationPoint" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigParserNode.InvocationPoint" type="int, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLine" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMacro" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.PigParserNode.InvocationPoint -->
  <!-- start class org.apache.pig.parser.PigParserNodeAdaptor -->
  <class name="PigParserNodeAdaptor" extends="org.antlr.runtime.tree.CommonTreeAdaptor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="create" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.antlr.runtime.Token"/>
    </method>
  </class>
  <!-- end class org.apache.pig.parser.PigParserNodeAdaptor -->
  <!-- start class org.apache.pig.parser.PigRecognitionException -->
  <class name="PigRecognitionException" extends="org.antlr.runtime.RecognitionException"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigRecognitionException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="msgHeader" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Subclass of Antlr RecognitionException which should be the parent class of all parser related 
 exception classes. We need this layer because of the line number problem in tree parser in 
 Antlr-3.2. You will need a token where the exception occurs in order to instantiate an instance
 of this class.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.parser.PigRecognitionException -->
  <!-- start class org.apache.pig.parser.PlanGenerationFailureException -->
  <class name="PlanGenerationFailureException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PlanGenerationFailureException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.Exception"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEx" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCause" return="java.lang.Throwable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.PlanGenerationFailureException -->
  <!-- start class org.apache.pig.parser.QueryParserDriver -->
  <class name="QueryParserDriver" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="QueryParserDriver" type="org.apache.pig.impl.PigContext, java.lang.String, java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="parseSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
    </method>
    <method name="parseConstant" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
    </method>
    <method name="parse" return="org.apache.pig.newplan.logical.relational.LogicalPlan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="query" type="java.lang.String"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
    </method>
    <method name="getOperators" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLastRel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.QueryParserDriver -->
  <!-- start class org.apache.pig.parser.QueryParserFileStream -->
  <class name="QueryParserFileStream" extends="org.antlr.runtime.ANTLRFileStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="QueryParserFileStream" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="QueryParserFileStream" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="LA" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <doc>
    <![CDATA[Pig's implementation class of file stream, used to make ANTLR case insensitive
  while preserving case.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.parser.QueryParserFileStream -->
  <!-- start class org.apache.pig.parser.QueryParserStreamUtil -->
  <class name="QueryParserStreamUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="QueryParserStreamUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="LA" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
      <param name="n" type="int"/>
      <param name="p" type="int"/>
      <param name="data" type="char[]"/>
      <doc>
      <![CDATA[Refer to ANTLRStringStream class for definitions of n, p, and data.
 @param i look ahead number]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.parser.QueryParserStreamUtil -->
  <!-- start class org.apache.pig.parser.QueryParserStringStream -->
  <class name="QueryParserStringStream" extends="org.antlr.runtime.ANTLRStringStream"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="QueryParserStringStream" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="LA" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="i" type="int"/>
    </method>
    <doc>
    <![CDATA[Pig's Implementation class for String stream, used to make ANTLR case insensitive
  while preserving case.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.parser.QueryParserStringStream -->
  <!-- start class org.apache.pig.parser.QueryParserUtils -->
  <class name="QueryParserUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="QueryParserUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="removeQuotes" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="str" type="java.lang.String"/>
    </method>
    <method name="attachStorePlan"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scope" type="java.lang.String"/>
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="fileName" type="java.lang.String"/>
      <param name="func" type="java.lang.String"/>
      <param name="input" type="org.apache.pig.newplan.Operator"/>
      <param name="alias" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.parser.QueryParserUtils -->
  <!-- start class org.apache.pig.parser.RegisterResolver -->
  <class name="RegisterResolver" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RegisterResolver" type="org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="parseRegister"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="scriptingLang" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param path
 @param scriptingLang
 @param namespace
 @throws IOException]]>
      </doc>
    </method>
    <method name="resolve" return="java.net.URI[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uri" type="java.net.URI"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param uri
 @return List of URIs
 @throws IOException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.parser.RegisterResolver -->
  <!-- start class org.apache.pig.parser.SourceLocation -->
  <class name="SourceLocation" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SourceLocation" type="java.lang.String, int, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SourceLocation" type="org.apache.pig.parser.PigParserNode"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="SourceLocation" type="org.apache.pig.parser.SourceLocation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="file" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="line" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="offset" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="node" return="org.apache.pig.parser.PigParserNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.SourceLocation -->
  <!-- start class org.apache.pig.parser.StreamingCommandUtils -->
  <class name="StreamingCommandUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StreamingCommandUtils" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.parser.StreamingCommandUtils -->
  <!-- start class org.apache.pig.parser.UndefinedAliasException -->
  <class name="UndefinedAliasException" extends="org.apache.pig.parser.PigRecognitionException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UndefinedAliasException" type="org.antlr.runtime.IntStream, org.apache.pig.parser.SourceLocation, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.parser.UndefinedAliasException -->
</package>
<package name="org.apache.pig.pen">
  <!-- start class org.apache.pig.pen.AugmentBaseDataVisitor -->
  <class name="AugmentBaseDataVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AugmentBaseDataVisitor" type="org.apache.pig.newplan.OperatorPlan, java.util.Map, java.util.Map, java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="setLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNewBaseData" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getOriLimitMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cs" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="forEach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="u" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lm" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.AugmentBaseDataVisitor -->
  <!-- start class org.apache.pig.pen.EquivalenceClasses -->
  <class name="EquivalenceClasses" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EquivalenceClasses"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLoToEqClassMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="logToPhyMap" type="java.util.Map"/>
      <param name="logToDataMap" type="java.util.Map"/>
      <param name="forEachInnerLogToPhyMap" type="java.util.Map"/>
      <param name="poToEqclassesMap" type="java.util.HashMap"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.EquivalenceClasses -->
  <!-- start class org.apache.pig.pen.ExampleGenerator -->
  <class name="ExampleGenerator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExampleGenerator" type="org.apache.pig.newplan.logical.relational.LogicalPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLineage" return="org.apache.pig.pen.util.LineageTracer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLogToPhyMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setMaxRecords"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="max" type="int"/>
    </method>
    <method name="getExamples" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getData" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getData" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newBaseData" type="java.util.Map"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="getEqClasses" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLoToEqClassMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class is used to generate example tuples for the ILLUSTRATE purpose]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.pen.ExampleGenerator -->
  <!-- start class org.apache.pig.pen.FakeRawKeyValueIterator -->
  <class name="FakeRawKeyValueIterator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.mapred.RawKeyValueIterator"/>
    <constructor name="FakeRawKeyValueIterator" type="boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKey" return="org.apache.hadoop.io.DataInputBuffer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProgress" return="org.apache.hadoop.util.Progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="org.apache.hadoop.io.DataInputBuffer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="next" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.pen.FakeRawKeyValueIterator -->
  <!-- start interface org.apache.pig.pen.Illustrable -->
  <interface name="Illustrable"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="setIllustrator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="illustrator" type="org.apache.pig.pen.Illustrator"/>
    </method>
    <method name="illustratorMarkup" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.lang.Object"/>
      <param name="out" type="java.lang.Object"/>
      <param name="eqClassIndex" type="int"/>
      <doc>
      <![CDATA[input tuple mark up to be illustrate-able
 @param in             input tuple
 @param out            output tuple before wrapped in ExampleTuple
 @param eqClassIndex   index into equivalence classes in illustrator
 
 @return               tuple]]>
      </doc>
    </method>
  </interface>
  <!-- end interface org.apache.pig.pen.Illustrable -->
  <!-- start class org.apache.pig.pen.Illustrator -->
  <class name="Illustrator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Illustrator" type="org.apache.pig.pen.util.LineageTracer, java.util.LinkedList, org.apache.pig.pen.IllustratorAttacher, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="Illustrator" type="org.apache.pig.pen.util.LineageTracer, java.util.LinkedList, int, org.apache.pig.pen.IllustratorAttacher, org.apache.pig.newplan.logical.relational.LogicalSchema, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getSubExpResults" return="java.util.ArrayList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLineage" return="org.apache.pig.pen.util.LineageTracer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEquivalenceClasses" return="java.util.LinkedList"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSubExpResult"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="result" type="boolean"/>
    </method>
    <method name="setEquivalenceClasses"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eqClasses" type="java.util.LinkedList"/>
      <param name="po" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator"/>
    </method>
    <method name="ceilingCheck" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="org.apache.pig.impl.util.IdentityHashSet"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addInputs"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="inputs" type="org.apache.pig.impl.util.IdentityHashSet"/>
    </method>
    <method name="addData"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getData" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOriginalLimit" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setOriginalLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="oriLimit" type="long"/>
    </method>
    <method name="setEqClassesShared"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEqClassesShared" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSchema" return="org.apache.pig.newplan.logical.relational.LogicalSchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Class used by physical operators to generate example tuples for the ILLUSTRATE
 purpose]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.pen.Illustrator -->
  <!-- start class org.apache.pig.pen.IllustratorAttacher -->
  <class name="IllustratorAttacher" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="IllustratorAttacher" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.pen.util.LineageTracer, int, java.util.Map, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </constructor>
    <method name="revisit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[revisit an enhanced physical plan from MR compilation
 @param plan a physical plan to be traversed]]>
      </doc>
    </method>
    <method name="getDataMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ld" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="st" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nfe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="un" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="spl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDemux"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="demux" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRank"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rank" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PORank"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="counter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCounter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitProject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="proj" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGreaterThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="grt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GreaterThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLessThan"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lt" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LessThanExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitGTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="gte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.GTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLTOrEqual"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lte" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.LTOrEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.EqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNotEqualTo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eq" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.NotEqualToExpr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitRegexp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="re" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORegexp"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitIsNull"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isNull" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POIsNull"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitAnd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="and" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POAnd"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitOr"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="or" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POOr"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitNot"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="not" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONot"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitBinCond"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="binCond" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POBinCond"/>
    </method>
    <method name="visitNegative"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="negative" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PONegative"/>
    </method>
    <method name="visitUserFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="userFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitComparisonFunc"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="compFunc" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMapLookUp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mapLookUp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp"/>
    </method>
    <method name="visitCast"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cast" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lim" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOOptimizedForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="optimizedForEach" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POOptimizedForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
      <doc>
      <![CDATA[@param optimizedForEach]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The class used to (re)attach illustrators to physical operators]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.pen.IllustratorAttacher -->
  <!-- start class org.apache.pig.pen.LineageTrimmingVisitor -->
  <class name="LineageTrimmingVisitor" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LineageTrimmingVisitor" type="org.apache.pig.newplan.logical.relational.LogicalPlan, java.util.Map, org.apache.pig.pen.ExampleGenerator, java.util.Map, org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cs" type="org.apache.pig.newplan.logical.relational.LOCross"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dt" type="org.apache.pig.newplan.logical.relational.LODistinct"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filter" type="org.apache.pig.newplan.logical.relational.LOFilter"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.newplan.logical.relational.LOStore"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="forEach" type="org.apache.pig.newplan.logical.relational.LOForEach"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="limOp" type="org.apache.pig.newplan.logical.relational.LOLimit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.newplan.logical.relational.LOLoad"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="s" type="org.apache.pig.newplan.logical.relational.LOSort"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplit"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.newplan.logical.relational.LOSplitOutput"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="u" type="org.apache.pig.newplan.logical.relational.LOUnion"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.LineageTrimmingVisitor -->
  <!-- start class org.apache.pig.pen.LocalMapReduceSimulator -->
  <class name="LocalMapReduceSimulator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LocalMapReduceSimulator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="launchPig"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="php" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"/>
      <param name="baseData" type="java.util.Map"/>
      <param name="lineage" type="org.apache.pig.pen.util.LineageTracer"/>
      <param name="attacher" type="org.apache.pig.pen.IllustratorAttacher"/>
      <param name="eg" type="org.apache.pig.pen.ExampleGenerator"/>
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <exception name="PigException" type="org.apache.pig.PigException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="getPhyToMRMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Main class that launches pig for Map Reduce]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.pen.LocalMapReduceSimulator -->
  <!-- start class org.apache.pig.pen.PhysicalPlanResetter -->
  <class name="PhysicalPlanResetter" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PhysicalPlanResetter" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitPackage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pkg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPackage"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <doc>
    <![CDATA[This visitor visits the physical plan and resets it for next MRCompilation]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.pen.PhysicalPlanResetter -->
  <!-- start class org.apache.pig.pen.POOptimizeDisabler -->
  <class name="POOptimizeDisabler" extends="org.apache.pig.newplan.logical.relational.LogicalRelationalNodesVisitor"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="POOptimizeDisabler" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.newplan.logical.relational.LOJoin"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cg" type="org.apache.pig.newplan.logical.relational.LOCogroup"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.POOptimizeDisabler -->
</package>
<package name="org.apache.pig.pen.util">
  <!-- start class org.apache.pig.pen.util.DisplayExamples -->
  <class name="DisplayExamples" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="DisplayExamples"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="printTabular" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="exampleData" type="java.util.Map"/>
      <param name="forEachInnerLogToDataMap" type="java.util.Map"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="printSimple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="exampleData" type="java.util.Map"/>
    </method>
    <field name="MAX_DATAATOM_LENGTH" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.pen.util.DisplayExamples -->
  <!-- start class org.apache.pig.pen.util.ExampleTuple -->
  <class name="ExampleTuple" extends="org.apache.pig.data.AbstractTuple"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ExampleTuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ExampleTuple" type="java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ExampleTuple" type="org.apache.pig.data.Tuple"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="toTuple" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="val" type="java.lang.Object"/>
    </method>
    <method name="get" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="getAll" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getType" return="byte"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="isNull" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="reference"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fieldNum" type="int"/>
      <param name="val" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="size" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
    </method>
    <field name="synthetic" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="omittable" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.pen.util.ExampleTuple -->
  <!-- start class org.apache.pig.pen.util.LineageTracer -->
  <class name="LineageTracer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="LineageTracer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="insert"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="union"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t1" type="org.apache.pig.data.Tuple"/>
      <param name="t2" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getRepresentative" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getCounts" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getWeightedCounts" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="syntheticMultipler" type="float"/>
      <param name="omittableMultiplier" type="float"/>
    </method>
    <method name="getMembers" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="org.apache.pig.data.Tuple"/>
    </method>
    <method name="getMembershipMap" return="java.util.IdentityHashMap"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.pen.util.LineageTracer -->
  <!-- start class org.apache.pig.pen.util.MetricEvaluation -->
  <class name="MetricEvaluation" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MetricEvaluation"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getRealness" return="float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="exampleData" type="java.util.Map"/>
      <param name="overallRealness" type="boolean"/>
    </method>
    <method name="getConciseness" return="float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="exampleData" type="java.util.Map"/>
      <param name="OperatorToEqClasses" type="java.util.Map"/>
      <param name="overallConciseness" type="boolean"/>
    </method>
    <method name="getCompleteness" return="float"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.newplan.Operator"/>
      <param name="exampleData" type="java.util.Map"/>
      <param name="OperatorToEqClasses" type="java.util.Map"/>
      <param name="overallCompleteness" type="boolean"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.util.MetricEvaluation -->
  <!-- start class org.apache.pig.pen.util.PreOrderDepthFirstWalker -->
  <class name="PreOrderDepthFirstWalker" extends="org.apache.pig.newplan.PlanWalker"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PreOrderDepthFirstWalker" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param plan
            Plan for this walker to traverse.]]>
      </doc>
    </constructor>
    <method name="setBranchFlag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBranchFlag" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="walk"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="visitor" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Begin traversing the graph.
 
 @param visitor
            Visitor this walker is being used by.
 @throws VisitorException
             if an error is encountered while walking.]]>
      </doc>
    </method>
    <method name="spawnChildWalker" return="org.apache.pig.newplan.PlanWalker"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.OperatorPlan"/>
    </method>
  </class>
  <!-- end class org.apache.pig.pen.util.PreOrderDepthFirstWalker -->
</package>
<package name="org.apache.pig.scripting">
  <!-- start class org.apache.pig.scripting.BoundScript -->
  <class name="BoundScript" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="runSingle" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run a pipeline on Hadoop.
 If there are no stores in this pipeline then nothing will be run.
 @return {@link PigStats}, null if there is no bound query to run.
 @throws IOException]]>
      </doc>
    </method>
    <method name="runSingle" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="prop" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run a pipeline on Hadoop.
 If there are no stores in this pipeline then nothing will be run.
 @param prop Map of properties that Pig should set when running the script.
 This is intended for use with scripting languages that do not support
 the Properties object.
 @return {@link PigStats}, null if there is no bound query to run.
 @throws IOException]]>
      </doc>
    </method>
    <method name="runSingle" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="propfile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run a pipeline on Hadoop.
 If there are no stores in this pipeline then nothing will be run.
 @param propfile File with properties that Pig should set when running the script.
 @return {@link PigStats}, null if there is no bound query to run.
 @throws IOException]]>
      </doc>
    </method>
    <method name="run" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run multiple instances of bound pipeline on Hadoop in parallel.
 If there are no stores in this pipeline then nothing will be run.
 Bind is called first with the list of maps of variables to bind.
 @return a list of {@link PigStats}, one for each map of variables passed
 to bind.
 @throws IOException]]>
      </doc>
    </method>
    <method name="run" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="prop" type="java.util.Properties"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run multiple instances of bound pipeline on Hadoop in parallel.
 @param prop Map of properties that Pig should set when running the script.
 This is intended for use with scripting languages that do not support
 the Properties object.
 @return a list of {@link PigStats}, one for each map of variables passed
 to bind.
 @throws IOException]]>
      </doc>
    </method>
    <method name="run" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="propfile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run multiple instances of bound pipeline on Hadoop in parallel.
 @param propfile File with properties that Pig should set when running the script.
 @return a list of PigResults, one for each map of variables passed
 to bind.
 @throws IOException]]>
      </doc>
    </method>
    <method name="illustrate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run illustrate for this pipeline.  Results will be printed to stdout.
 @throws IOException if illustrate fails.]]>
      </doc>
    </method>
    <method name="explain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Explain this pipeline.  Results will be printed to stdout.
 @throws IOException if explain fails.]]>
      </doc>
    </method>
    <method name="describe"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Describe the schema of an alias in this pipeline.
 Results will be printed to stdout.
 @param alias to be described
 @throws IOException if describe fails.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This represents an instance of a bound pipeline.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.BoundScript -->
  <!-- start class org.apache.pig.scripting.Pig -->
  <class name="Pig" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Pig" type="java.lang.String, org.apache.pig.scripting.ScriptPigContext, java.lang.String"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="fs" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run a filesystem command.  Any output from this command is written to
 stdout or stderr as appropriate.
 @param cmd Filesystem command to run along with its arguments as one
 string.
 @throws IOException]]>
      </doc>
    </method>
    <method name="sql" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Run a sql command.  Any output from this command is written to
 stdout or stderr as appropriate.
 @param cmd sql command to run along with its arguments as one
 string. Currently only hcat is supported as a sql backend
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerJar"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jarfile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register a jar for use in Pig.  Once this is done this jar will be
 registered for <b>all subsequent</b> Pig pipelines in this script.
 If you wish to register it for only a single Pig pipeline, use
 register within that definition.
 @param jarfile Path of jar to include.
 @throws IOException if the indicated jarfile cannot be found.]]>
      </doc>
    </method>
    <method name="registerUDF"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="udffile" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Register scripting UDFs for use in Pig. Once this is done all UDFs
 defined in the file will be available for <b>all subsequent</b>
 Pig pipelines in this script. If you wish to register UDFS for
 only a single Pig pipeline, use register within that definition.
 @param udffile Path of the script UDF file
 @param namespace namespace of the UDFs
 @throws IOException]]>
      </doc>
    </method>
    <method name="define"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="definition" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define an alias for a UDF or a streaming command.  This definition
 will then be present for <b>all subsequent</b> Pig pipelines defined in this
 script.  If you wish to define it for only a single Pig pipeline, use
 define within that definition.
 @param alias name of the defined alias
 @param definition string this alias is defined as]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="var" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Set a variable for use in Pig Latin.  This set
 will then be present for <b>all subsequent</b> Pig pipelines defined in this
 script.  If you wish to set it for only a single Pig pipeline, use
 set within that definition.
 @param var variable to set
 @param value to set it to]]>
      </doc>
    </method>
    <method name="compile" return="org.apache.pig.scripting.Pig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pl" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a Pig pipeline.
 @param pl Pig Latin definition of the pipeline.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile.]]>
      </doc>
    </method>
    <method name="compile" return="org.apache.pig.scripting.Pig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="pl" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a named portion of a Pig pipeline.  This allows it
 to be imported into another pipeline.
 @param name Name that will be used to define this pipeline.
 The namespace is global.
 @param pl Pig Latin definition of the pipeline.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile.]]>
      </doc>
    </method>
    <method name="compileFromFile" return="org.apache.pig.scripting.Pig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a Pig pipeline based on Pig Latin in a separate file.
 @param filename File to read Pig Latin from.  This must be a purely
 Pig Latin file.  It cannot contain host language constructs in it.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile or the file
 cannot be found.]]>
      </doc>
    </method>
    <method name="compileFromFile" return="org.apache.pig.scripting.Pig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a named Pig pipeline based on Pig Latin in a separate file.
 This allows it to be imported into another pipeline.
 @param name Name that will be used to define this pipeline.
 The namespace is global.
 @param filename File to read Pig Latin from.  This must be a purely
 Pig Latin file.  It cannot contain host language constructs in it.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile or the file
 cannot be found.]]>
      </doc>
    </method>
    <method name="bind" return="org.apache.pig.scripting.BoundScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vars" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Bind this to a set of variables. Values must be provided
 for all Pig Latin parameters.
 @param vars map of variables to bind.  Keys should be parameters defined
 in the Pig Latin.  Values should be strings that provide values for those
 parameters.  They can be either constants or variables from the host
 language.  Host language variables must contain strings.
 @return a {@link BoundScript} object
 @throws IOException if there is not a key for each
 Pig Latin parameter or if they contain unsupported types.]]>
      </doc>
    </method>
    <method name="bind" return="org.apache.pig.scripting.BoundScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vars" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Bind this to multiple sets of variables.  This will
 cause the Pig Latin script to be executed in parallel over these sets of
 variables.
 @param vars list of maps of variables to bind.  Keys should be parameters defined
 in the Pig Latin.  Values should be strings that provide values for those
 variables.  They can be either constants or variables from the host
 language.  Host language variables must be strings.
 @return a {@link BoundScript} object
 @throws IOException  if there is not a key for each
 Pig Latin parameter or if they contain unsupported types.]]>
      </doc>
    </method>
    <method name="bind" return="org.apache.pig.scripting.BoundScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Bind a Pig object to variables in the host language (optional
 operation).  This does an implicit mapping of variables in the host
 language to parameters in Pig Latin.  For example, if the user
 provides a Pig Latin statement
 <tt> p = Pig.compile("A = load '$input';");</tt>
 and then calls this function it will look for a variable called
 <tt>input</tt> in the host language.  Scoping rules of the host
 language will be followed in selecting which variable to bind.  The
 variable bound must contain a string value.  This method is optional
 because not all host languages may support searching for in scope
 variables.
 @throws IOException if host language variables are not found to resolve all
 Pig Latin parameters or if they contain unsupported types.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[The class being used in scripts to interact with Pig]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.Pig -->
  <!-- start class org.apache.pig.scripting.ScriptEngine -->
  <class name="ScriptEngine" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getScriptAsStream" return="java.io.InputStream"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptPath" type="java.lang.String"/>
      <doc>
      <![CDATA[open a stream load a script locally or in the classpath
 @param scriptPath the path of the script
 @return a stream (it is the responsibility of the caller to close it)
 @throws IllegalStateException if we could not open a stream]]>
      </doc>
    </method>
    <method name="getSupportedScriptLang" return="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="file" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param file the file to inspect
 @return the Supported Script Lang if this is a supported script language
 @throws IOException if there was an error reading the file or if the file defines explicitly an unknown #!]]>
      </doc>
    </method>
    <method name="registerFunctions"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Registers scripting language functions as Pig functions with given namespace
 
 @param path path of the script
 @param namespace namespace for the functions
 @param pigContext pigcontext to register functions to pig in the given namespace
 @throws IOException]]>
      </doc>
    </method>
    <method name="main" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Actually runs the script file. This method will be implemented by 
 individual script engines.
 
 @param context {@link ScriptPigContext} to run the script file
 @param scriptFile the file
 @throws IOException]]>
      </doc>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Gets ScriptEngine classname or keyword for the scripting language]]>
      </doc>
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns a map from local variable names to their values
 @throws IOException]]>
      </doc>
    </method>
    <method name="getJarPath" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="clazz" type="java.lang.Class"/>
      <exception name="FileNotFoundException" type="java.io.FileNotFoundException"/>
      <doc>
      <![CDATA[Figures out the jar location from the class 
 @param clazz class in the jar file
 @return the jar file location, null if the class was not loaded from a jar
 @throws FileNotFoundException]]>
      </doc>
    </method>
    <method name="getInstance" return="org.apache.pig.scripting.ScriptEngine"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptingLang" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Gets instance of the scriptEngine for the given scripting language
 
 @param scriptingLang ScriptEngine classname or keyword for the scriptingLang
 @return scriptengine for the given scripting language
 @throws IOException]]>
      </doc>
    </method>
    <method name="run" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Runs a script file. 
 @param pigContext {@link PigContext} to run the script file
 @param scriptFile the file
 @return a collection of {@link PigStats} objects. One for each runtime 
 instance of {@link Pig} in the script. For named pipelines, the
 map key is the name of the pipeline. For unnamed pipeline, the map key 
 is the script id associated with the instance. 
 @throws ExecException
 @throws IOException]]>
      </doc>
    </method>
    <method name="getPigStatsMap" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Gets the collection of {@link PigStats} after the script is run.]]>
      </doc>
    </method>
    <field name="NAMESPACE_SEPARATOR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Base class for various scripting implementations]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.ScriptEngine -->
  <!-- start class org.apache.pig.scripting.ScriptEngine.SupportedScriptLang -->
  <class name="ScriptEngine.SupportedScriptLang" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="contains" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="supportedScriptLang" type="java.lang.String"/>
    </method>
    <method name="accepts" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="file" type="java.lang.String"/>
      <param name="firstLine" type="java.lang.String"/>
      <doc>
      <![CDATA[If other discovery mechanisms come up they can also override accepts()
 @param file the path of the file
 @param firstLine The first line of the file (possibly containing #!...)]]>
      </doc>
    </method>
    <method name="getEngineClassName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="jruby" type="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="jython" type="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="javascript" type="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="groovy" type="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="streaming_python" type="org.apache.pig.scripting.ScriptEngine.SupportedScriptLang"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.scripting.ScriptEngine.SupportedScriptLang -->
  <!-- start class org.apache.pig.scripting.ScriptingOutputCapturer -->
  <class name="ScriptingOutputCapturer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScriptingOutputCapturer" type="org.apache.pig.ExecType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getStandardOutputRootWriteLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getTaskLogDir" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobId" type="java.lang.String"/>
      <param name="taskId" type="java.lang.String"/>
      <param name="hadoopLogDir" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="startCapturingOutput"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUdfOutput" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="registerOutputLocation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="functionName" type="java.lang.String"/>
      <param name="fileName" type="java.lang.String"/>
    </method>
    <method name="getRunId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isClassCapturingOutput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isInstanceCapturingOutput" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setInstanceCapturingOutput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="instanceCapturingOutput" type="boolean"/>
    </method>
    <doc>
    <![CDATA[This class helps a scripting UDF capture user output by managing when to capture output and where
 the output is written to.
 
 For illustrate, we will only capture output for the last run (with the final set of data) and
   we need to keep track of the file containing that output for returning w/ the illustrate results.
 For runs, all standard output is written to the user logs.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.ScriptingOutputCapturer -->
  <!-- start class org.apache.pig.scripting.ScriptPigContext -->
  <class name="ScriptPigContext" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="set" return="org.apache.pig.scripting.ScriptPigContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="engine" type="org.apache.pig.scripting.ScriptEngine"/>
    </method>
    <method name="get" return="org.apache.pig.scripting.ScriptPigContext"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScriptEngine" return="org.apache.pig.scripting.ScriptEngine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigContext" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Context for embedded Pig script.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.ScriptPigContext -->
</package>
<package name="org.apache.pig.scripting.groovy">
  <!-- start interface org.apache.pig.scripting.groovy.AccumulatorAccumulate -->
  <interface name="AccumulatorAccumulate"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Accumulator UDF to indicate that it will
 act as the 'accumulate' method of the UDF.

 The value of the annotation is the name of the Accumulator UDF
 it belongs to.

 The annotated method MUST NOT be static and MUST accept a single groovy.lang.Tuple as parameter.
 Its return value, if any, is ignored.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AccumulatorAccumulate -->
  <!-- start interface org.apache.pig.scripting.groovy.AccumulatorCleanup -->
  <interface name="AccumulatorCleanup"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Accumulator UDF to indicate that it will
 act as the 'cleanup' method of the UDF.

 The value of the annotation is the name of the Accumulator UDF
 it belongs to.

 The annotated method MUST NOT be static and MUST NOT accept any parameters.
 Its return value, if any, is ignored.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AccumulatorCleanup -->
  <!-- start interface org.apache.pig.scripting.groovy.AccumulatorGetValue -->
  <interface name="AccumulatorGetValue"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Accumulator UDF to indicate that it will
 act as the 'getValue' method of the UDF.

 The value of the annotation is the name of the Accumulator UDF
 it belongs to.

 The annotated method MUST NOT be static and MUST NOT accept any parameters.
 Its return value will be that of the Accumulator UDF.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AccumulatorGetValue -->
  <!-- start interface org.apache.pig.scripting.groovy.AlgebraicFinal -->
  <interface name="AlgebraicFinal"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Algebraic UDF to indicate that it will
 act as the exec method of the 'Final' class of the UDF.

 The value of the annotation is the name of the Algebraic UDF
 it belongs to.

 The annotated method MUST NOT accept any parameters.
 Its return value will be that of the Algebraic UDF.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AlgebraicFinal -->
  <!-- start interface org.apache.pig.scripting.groovy.AlgebraicInitial -->
  <interface name="AlgebraicInitial"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Algebraic UDF to indicate that it will
 act as the exec method of the 'Initial' class of the UDF.

 The value of the annotation is the name of the Algebraic UDF
 it belongs to.

 The annotated method MUST accept a single groovy.lang.Tuple parameter,
 and MUST return a groovy.lang.Tuple or Object[].]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AlgebraicInitial -->
  <!-- start interface org.apache.pig.scripting.groovy.AlgebraicIntermed -->
  <interface name="AlgebraicIntermed"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This annotation is to be used on a Groovy method which
 is part of an Algebraic UDF to indicate that it will
 act as the exec method of the 'Intermed' class of the UDF.

 The value of the annotation is the name of the Algebraic UDF
 it belongs to.

 The annotated method MUST accept a single groovy.lang.Tuple parameter,
 and MUST return a groovy.lang.Tuple or Object[].]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.AlgebraicIntermed -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAccumulatorEvalFunc -->
  <class name="GroovyAccumulatorEvalFunc" extends="org.apache.pig.AccumulatorEvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAccumulatorEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAccumulatorEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc" extends="org.apache.pig.AlgebraicEvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper -->
  <class name="GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper" extends="org.apache.pig.scripting.groovy.GroovyEvalFunc"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigDecimalGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BigIntegerGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.BooleanGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.ChararrayGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Unlike EvalFuncs and Accumulators, the type must be known at compile time
 (ie it
 can't return Object), as Pig inspects the type and ensures that it is
 valid. This
 is why class specific shells are provided here.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataBagGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DataByteArrayGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DateTimeGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.DoubleGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.FloatGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Initial -->
  <class name="GroovyAlgebraicEvalFunc.Initial" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc.Initial" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Initial -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.IntegerGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Intermed -->
  <class name="GroovyAlgebraicEvalFunc.Intermed" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.Intermed"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc.Intermed" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Intermed -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.LongGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.MapGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc -->
  <class name="GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc.Final -->
  <class name="GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyAlgebraicEvalFunc.TupleGroovyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyEvalFunc -->
  <class name="GroovyEvalFunc" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyEvalFunc"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyEvalFunc" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="GroovyEvalFunc" type="java.lang.String, java.lang.String, java.lang.String, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <method name="getInvocationTarget" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="method" type="java.lang.reflect.Method"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyEvalFunc -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyEvalFuncObject -->
  <class name="GroovyEvalFuncObject" extends="org.apache.pig.scripting.groovy.GroovyEvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyEvalFuncObject"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GroovyEvalFuncObject" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <constructor name="GroovyEvalFuncObject" type="java.lang.String, java.lang.String, java.lang.String, java.lang.Object"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyEvalFuncObject -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyScriptEngine -->
  <class name="GroovyScriptEngine" extends="org.apache.pig.scripting.ScriptEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="main" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="registerFunctions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getEngine" return="groovy.util.GroovyScriptEngine"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyScriptEngine -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyUtils -->
  <class name="GroovyUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GroovyUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="groovyToPig" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="groovyObject" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Converts an object created on the Groovy side to its Pig counterpart.

 The conversions are as follow:

 Groovy Pig
 Object[] Tuple
 groovy.lang.Tuple Tuple
 org.apache.pig.data.Tuple Tuple
 org.apache.pig.data.DataBag DataBag
 java.util.Map Map
 java.util.List DataBag
 Byte/Short/Integer int
 Long long
 Float float
 Double double
 BigInteger BigInteger
 BigDecimal BigDecimal
 String chararray
 byte[] DataByteArray (copy)
 Boolean boolean
 org.joda.time.DateTime org.joda.time.DateTime
 null null

 anything else raises an exception

 @param groovyObject
          Groovy object to convert
 @return the Pig counterpart of groovyObject

 @throws ExecException]]>
      </doc>
    </method>
    <method name="pigToGroovy" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigObject" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Converts an object created on the Pig side to its Groovy counterpart.

 The conversions are as follow:

 Pig Groovy
 Tuple groovy.lang.tuple
 DataBag groovy.lang.Tuple containing the bag's size and an iterator on its
 content
 Map java.util.Map
 int/long/float/double as is
 chararray String
 bytearray byte[] (copy)
 boolean boolean
 BigInteger BigInteger
 BigDecimal BigDecimal
 org.joda.time.DateTime org.joda.time.DateTime
 null null

 anything else raises an exception

 @param pigObject
 @return Object
 @throws ExecException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyUtils -->
  <!-- start class org.apache.pig.scripting.groovy.GroovyUtils.DataBagGroovyIterator -->
  <class name="GroovyUtils.DataBagGroovyIterator" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.Iterator"/>
    <constructor name="GroovyUtils.DataBagGroovyIterator" type="java.util.Iterator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="hasNext" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="next" return="groovy.lang.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="remove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.groovy.GroovyUtils.DataBagGroovyIterator -->
  <!-- start interface org.apache.pig.scripting.groovy.OutputSchemaFunction -->
  <interface name="OutputSchemaFunction"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.annotation.Annotation"/>
    <method name="value" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </interface>
  <!-- end interface org.apache.pig.scripting.groovy.OutputSchemaFunction -->
</package>
<package name="org.apache.pig.scripting.jruby">
  <!-- start class org.apache.pig.scripting.jruby.JrubyAccumulatorEvalFunc -->
  <class name="JrubyAccumulatorEvalFunc" extends="org.apache.pig.AccumulatorEvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAccumulatorEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor is used by JrubyScriptEngine to register a Ruby class as an Accumulator.
 The path and methodName are used to find the ruby Class, which is then instantated and used.]]>
      </doc>
    </constructor>
    <method name="accumulate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This uses the "exec" method required of AccumulatorPigUdf Ruby classes. It streams the data bags
 it receives through the exec method defined on the registered class.]]>
      </doc>
    </method>
    <method name="cleanup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getValue" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method calls "get" on the AccumulatorPigUdf Ruby class that was specified.]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This provides the Schema of the output, and leverages the get_output_schema function on the class object
 that is defined on the ruby side.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class provides a bridge between Ruby classes that extend AccumulatorPigUdf
 and their execution in Pig. This class passes a Bag of data to the Ruby "exec"
 function, and ultimate gets the value by calling "get" on the class instance
 that receives methods.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAccumulatorEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc" extends="org.apache.pig.AlgebraicEvalFunc"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The constructor takes information on the script and method being invoked and registers it with the
 superclass (which is necessary for AlgebraicEvalFunc).]]>
      </doc>
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInitial" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getIntermed" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="mBagFactory" type="org.apache.pig.data.BagFactory"
      transient="false" volatile="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="mTupleFactory" type="org.apache.pig.data.TupleFactory"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="rubyEngine" type="org.jruby.embed.ScriptingContainer"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="ruby" type="org.jruby.Ruby"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class provides the bridge between Ruby classes that extend the AlgebraicPigUdf
 "interface" by implementing an initial, intermed, and final method. Unlike EvalFuncs
 and Accumulators, the type must be known at compile time (ie it can't return Object),
 as Pig inspects the type and ensures that it is valid. This is why class specific
 shells are provided at the bottom. This class leverages AlgebraicEvalFunc to provide
 the Accumulator and EvalFunc implementations.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper -->
  <class name="JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper" extends="org.apache.pig.EvalFunc"
    abstract="true"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper" type="java.lang.String, java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[In addition to registering the fileName and the functionName (which are given based on the
 arguments passed to super() in the containing class's constructor, each extending class
 will register their "stage," which will serve as the method to invoke on the Ruby class.]]>
      </doc>
    </constructor>
    <method name="getStage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReceiver" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFunctionName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isInitialized" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="java.lang.Object"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="receiver" type="java.lang.Object"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="isInitialized" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="stage" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This is a lightweight wrapper shell that registers information on the method being called,
 and provides the initializer that the static Algebraic classes (Initial, Intermed, Final)
 will use to execute.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Unlike EvalFuncs and Accumulators, the type must be known at compile time (ie it
 can't return Object), as Pig inspects the type and ensures that it is valid. This
 is why class specific shells are provided here. This is also the reason why the
 Ruby Algebraic interface is the only interface that does not currently allow overriding
 outputSchema, and a fixed one must be provided.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.BagJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.ChararrayJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DataByteArrayJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.DoubleJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class invokes the final method on the given Ruby class. It passes along the DataBag contained
 in the Tuple it is given, and the raw result.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.FloatJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Initial -->
  <class name="JrubyAlgebraicEvalFunc.Initial" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.Initial"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.Initial" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class invokes the initial method on the given Ruby class. As a courtesy to the user, it unwraps the
 DataBag that is given to Initial and passes Ruby just the first Tuple that it contains, as the contract
 for the Initial function in Algebraic is that it is given a DataBag with one and only one Tuple. Finally,
 it wraps the Ruby output in a Tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Initial -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.IntegerJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Intermed -->
  <class name="JrubyAlgebraicEvalFunc.Intermed" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.AlgebraicFunctionWrapper"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.Intermed"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.Intermed" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class invokes the intermed method on the given Ruby class. It passes along the DataBag contained
 in the Tuple it is given, and wraps the Ruby output in a Tuple.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Intermed -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.LongJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.MapJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc -->
  <class name="JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getFinal" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc.Final -->
  <class name="JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc.Final" extends="org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.Final"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc.Final"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc.Final" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyAlgebraicEvalFunc.TupleJrubyAlgebraicEvalFunc.Final -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyEvalFunc -->
  <class name="JrubyEvalFunc" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyEvalFunc" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[The constructor for this class registers the filename of the Ruby script
 and the name of the method we care about. The difference between function name
 and method name is that the former is the name that was used to register the function,
 whereas the method name is the actual method that must be invoked. The two are often
 the same, but not always. functionName is the key to the list of EvalFuncs that
 are registered.]]>
      </doc>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[The exec method passes the tuple argument to the Ruby function, and converts the result back to Pig.]]>
      </doc>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[This method uses the schema method of the function encapsulation object to get the Schema information for
 the Ruby method.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class serves at the bridge between Ruby methods that
 are registered with and extend PigUdf, and their execution in
 Pig. An instance of the containing class is created, and their
 method name will be called against that instance. If they have
 a schema function associated, then when outputSchema is called,
 that function will be given the input Schema and the output will
 be given to Pig.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyEvalFunc -->
  <!-- start class org.apache.pig.scripting.jruby.JrubyScriptEngine -->
  <class name="JrubyScriptEngine" extends="org.apache.pig.scripting.ScriptEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JrubyScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="registerFunctions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Evaluates the script containing ruby udfs to determine what udfs are defined as well as
 what libaries and other external resources are necessary. These libraries and resources
 are then packaged with the job jar itself.]]>
      </doc>
    </method>
    <method name="main" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="rubyEngine" type="org.jruby.embed.ScriptingContainer"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Implementation of the script engine for Jruby, which facilitates the registration
 of scripts as UDFs, and also provides information (via the nested class RubyFunctions)
 on the registered functions.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.JrubyScriptEngine -->
  <!-- start class org.apache.pig.scripting.jruby.PigJrubyLibrary -->
  <class name="PigJrubyLibrary" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.jruby.runtime.load.Library"/>
    <constructor name="PigJrubyLibrary"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="load"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="runtime" type="org.jruby.Ruby"/>
      <param name="wrap" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[This method is called from JRuby to register any classes in
 the library.

 @param  runtime the current Ruby runtime
 @param  wrap    ignored
 @throws IOException]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.runtime.builtin.IRubyObject"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This method facilitates conversion from Ruby objects to Pig objects. This is
 a general class which detects the subclass and invokes the appropriate conversion
 routine. It will fail on an unsupported datatype.

 @param  rbObject      a Ruby object to convert
 @return               the Pig analogue of the Ruby object
 @throws ExecException if rbObject is not of a known type that can be converted]]>
      </doc>
    </method>
    <method name="rubyToPig" return="org.apache.pig.data.Tuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyArray"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyHash"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyBoolean"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.apache.pig.scripting.jruby.RubySchema"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyString"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyBignum"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyFixnum"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Double"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyFloat"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyInteger"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.apache.pig.scripting.jruby.RubyDataBag"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.apache.pig.scripting.jruby.RubyDataByteArray"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="rubyToPig" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rbObject" type="org.jruby.RubyNil"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  rbObject object to convert
 @return          analogous Pig type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Object"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This is the method which provides conversion from Pig to Ruby. In this case, an
 instance of the Ruby runtime is necessary. This method provides the general detection
 of the type and then calls the more specific conversion methods.

 @param  ruby          the Ruby runtime to create objects in
 @param  object        the Pig object to convert to Ruby
 @return               Ruby analogue of object
 @throws ExecException object is not a convertible Pig type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyArray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="org.apache.pig.data.Tuple"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param  ruby          the Ruby runtime to create objects in
 @param  object        object to convert
 @return               analogous Ruby type
 @throws ExecException object contained an object that could not convert]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyBoolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Boolean"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.apache.pig.scripting.jruby.RubyDataBag"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="org.apache.pig.data.DataBag"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyHash"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.util.Map"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[A type specific conversion routine for Pig Maps. This only deals with maps
 with String keys, which is all that Pig supports.

 @param  ruby          the Ruby runtime to create objects in
 @param  object        map to convert. In Pig, only maps with String keys are
                       supported
 @return               analogous Ruby type
 @throws ExecException object contains a key that can't be convert to a Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.apache.pig.scripting.jruby.RubyDataByteArray"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="org.apache.pig.data.DataByteArray"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyString"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.String"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Integer"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Long"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyFloat"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Float"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="pigToRuby" return="org.jruby.RubyFloat"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ruby" type="org.jruby.Ruby"/>
      <param name="object" type="java.lang.Double"/>
      <doc>
      <![CDATA[A type specific conversion routine.

 @param ruby   the Ruby runtime to create objects in
 @param object object to convert
 @return       analogous Ruby type]]>
      </doc>
    </method>
    <method name="enumeratorize" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="runtime" type="org.jruby.Ruby"/>
      <param name="obj" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[This is a hack to get around the fact that in JRuby 1.6.7, the enumeratorize method
 isn't public. In 1.7.0, it will be made public and this can be gotten rid of, but
 until then the Jruby API doesn't provide an easy way (or even a difficult way, really)
 to provide this functionality; thus, it felt much cleaner to use reflection to make
 public a method that will soon be public anyway instead of doing something much hairier.

 @param runtime the Ruby runtime to create objects in
 @param obj     the Enumerable object to wrap
 @param name    the name of the method that still needs a block (ie each or flatten)
 @return        enumerator Ruby object wrapping the given Enumerable]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class provides the ability to present to Ruby a library that was written in Java.
 In JRuby, there are two ways to present a library to ruby: one is to implement it in
 ruby as a module or class, and the other is to implement it in Java and then register
 it with the runtime. For the Pig datatypes we provide Ruby implementations for,
 it was easier to implement them in Java and provide a Ruby interface via the annotations
 that Jruby provides.

 Additionally, this class provides static object conversion functionality to and from Pig
 and JRuby.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.PigJrubyLibrary -->
  <!-- start class org.apache.pig.scripting.jruby.RubyDataBag -->
  <class name="RubyDataBag" extends="org.jruby.RubyObject"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Iterable"/>
    <constructor name="RubyDataBag" type="org.jruby.Ruby, org.jruby.RubyClass"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor encapsulated an empty bag.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata]]>
      </doc>
    </constructor>
    <constructor name="RubyDataBag" type="org.jruby.Ruby, org.jruby.RubyClass, org.apache.pig.data.DataBag"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor encapsulates the bag that is passed to it. Note:
 the resultant RubyDataBag will encapsulated that bag directly, not
 a copy.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param db   a DataBag to encapsulate]]>
      </doc>
    </constructor>
    <method name="getBag" return="org.apache.pig.data.DataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="define" return="org.jruby.RubyClass"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="runtime" type="org.jruby.Ruby"/>
      <doc>
      <![CDATA[This method registers the class with the given runtime. It is not necessary to do this here,
 but it is simpler to associate the methods necessary to register the class with the class
 itself, so on the Library side it is possible to just specify "RubyDataBag.define(runtime)".

 @param runtime an instance of the Ruby runtime
 @return        a RubyClass object with metadata about the registered class]]>
      </doc>
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubyDataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[The initialize method is the method used on the Ruby side to construct
 the RubyDataBag object. The default is just an empty bag.

 @return the initialized RubyDataBag]]>
      </doc>
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubyDataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[The initialize method can optionally receive a DataBag. In the case of
 a RubyDataBag, a RubyDataBag will be returned that directly encapsulates it.

 @param arg an IRubyObject that is a RubyDataBag to encapsulate
 @return    the initialized RubyDataBag]]>
      </doc>
    </method>
    <method name="clear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This method deletes all of the entries in the underlying DataBag.]]>
      </doc>
    </method>
    <method name="isDistinct" return="org.jruby.RubyBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This returns whether the encapsulated DatBag is distinct, per the distinct setting.

 @param context the context the method is being executed in
 @return        true if it the encapsulated is distinct, false otherwise]]>
      </doc>
    </method>
    <method name="isSorted" return="org.jruby.RubyBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This returns whether the encapsulated DatBag is distinct, per the sorted setting.

 @param context the context the method is being executed in
 @return        true if it the encapsulated is sorted, false otherwise]]>
      </doc>
    </method>
    <method name="size" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This returns the size of the encapsulated DataBag.

 @param context the context the method is being executed in
 @return        the size of the encapsulated DataBag]]>
      </doc>
    </method>
    <method name="add"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[The add method accepts a varargs argument; each argument can be either a random
 object, a DataBag, or a RubyArray. In the case of a random object, that object
 will be converted to a Pig object and put into a Tuple. In the case of a
 RubyArray, it will be treated as a Tuple and added. In the case of a DataBag,
 it will iterate over the DataBag and add all of the elements to the element
 encapsulated by RubyDataBag.

 @param context the context the method is being executed in
 @param args    varargs passed to add. Each argument can be a RubyDataBag, whose
                      contents will be copied; a RubyArray, which will be treated as a
                      Tuple, or another object which will be converted over per
                      {@link PigJrubyLibrary#rubyToPig}.]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.scripting.jruby.RubyDataBag"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This method returns a copy of the encapsulated DataBag.

 @param context the context the method is being executed in
 @return        the copied RubyDataBag]]>
      </doc>
    </method>
    <method name="isEmpty" return="org.jruby.RubyBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This method returns whether or not the encapsulated DataBag is empty.

 @param context the context the method is being executed in
     i @return        true if the encapsulated DAtaBag is empty, false otherwise]]>
      </doc>
    </method>
    <method name="inspect" return="org.jruby.RubyString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <doc>
      <![CDATA[This method returns a string representation of the RubyDataBag. If given an optional
 argument, then if that argument is true, the contents of the bag will also be printed.

 @param context the context the method is being executed in
 @param args    optional true/false argument passed to inspect
 @return        string representation of the RubyDataBag]]>
      </doc>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="each" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="block" type="org.jruby.runtime.Block"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This is an implementation of the each method which opens up the Enumerable interface,
 and makes it very convenient to iterate over the elements of a DataBag. Note that currently,
 due to a deficiency in JRuby, it is not possible to call each without a block given.

 @param context the context the method is being executed in
 @param block   a block to call on the elements of the bag
 @return        enumerator object if null block given, nil otherwise]]>
      </doc>
    </method>
    <method name="flatten" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="block" type="org.jruby.runtime.Block"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[This is a convenience method which will run the given block on the first element
 of each tuple contained.

 @param context the context the method is being executed in
 @param block   a block to call on the elements of the bag
 @return        enumerator object if null block given, nil otherwise]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This provides a Ruby-esque way to interact with DataBag objects. It encapsulates
 a bag object, and provides an easy to use interface. One difference between the
 Ruby and the the Java API on DataBag is that in Ruby you iterate on the bag directly.
 <p>
 The RubyDataBag class  uses JRuby's API for the defintion Ruby class using Java code.
 The comments in this class will more extensively explain the annotations for those not
 familiar with JRuby.
 <p>
 In JRuby, the annotations are provided for convenience, and are detected and used
 by the "defineAnnotatedMethods" method. The JRubyClass annotation sets the class name
 as it will be seen in the Ruby runtime, and alows you to include any modules. In the
 case of the RubyDataBag, within Ruby we just want it to be called DataBag, and we
 want it to be enumerable.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.RubyDataBag -->
  <!-- start class org.apache.pig.scripting.jruby.RubyDataByteArray -->
  <class name="RubyDataByteArray" extends="org.jruby.RubyObject"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RubyDataByteArray" type="org.jruby.Ruby, org.jruby.RubyClass"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor encapsulated a null DataByteArray.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata]]>
      </doc>
    </constructor>
    <constructor name="RubyDataByteArray" type="org.jruby.Ruby, org.jruby.RubyClass, org.apache.pig.data.DataByteArray"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Given a DataByteArray, this constructor creates a new one which copies the underlying bytes.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param dba  a DataByteArray to copy then encapsulate]]>
      </doc>
    </constructor>
    <constructor name="RubyDataByteArray" type="org.jruby.Ruby, org.jruby.RubyClass, org.apache.pig.data.DataByteArray, org.apache.pig.data.DataByteArray"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor makes a RubyDataByteArray whose underlying bytes are a concatenation
 of the given bytes. The new DataByteArray will not point to the original bytes.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param dba1 first DataByteArray in the concatentation
 @param dba2 second DAtaByteArray whose bytes will be concatenated to the first's]]>
      </doc>
    </constructor>
    <constructor name="RubyDataByteArray" type="org.jruby.Ruby, org.jruby.RubyClass, byte[]"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor creates a new DataByteArray with a reference to the provided bytes.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param buf  a byte array to encapsulate directly]]>
      </doc>
    </constructor>
    <method name="define" return="org.jruby.RubyClass"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="runtime" type="org.jruby.Ruby"/>
      <doc>
      <![CDATA[Registers the DataByteArray class with the Ruby runtime.

 @param runtime an instance of the Ruby runtime
 @return a RubyClass object with metadata about the registered class]]>
      </doc>
    </method>
    <method name="getDBA" return="org.apache.pig.data.DataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubyDataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is the default initializer, which returns an empty DataByteArray.

 @return the initialized RubyDataByteArray]]>
      </doc>
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubyDataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[Given a String or a set of bytes[], initializes the encapsulated DataByteArray
 using {@link DataByteArray#set}. In the case of a DataByteArray, will copy
 the underlying bytes.

 @param arg a value to set the encapsulated DataByteArray to. A DataByteArray
                  will be copied, whereas a byte array will be encapsulated directly,
                  and a string's bits will be used per {@link DataByteArray#set}.
 @return    the initialized RubyDataByteArray]]>
      </doc>
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubyDataByteArray"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[Given two RubyDataByteArrays, initializes the encapsulated DataByteArray
 to be a concatentation of the copied bits of the first and second.

 @param arg1 the first RubyDataByteArray whose bits will be used
 @param arg2 the second RubyDataByteArray whose bits will be concatenated
                   after the first's
 @return     the initialized RubyDataBytearray]]>
      </doc>
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This calls to the append function of the underlying DataByteArray. This accepts
 the same types that set accepts.

 @param context the context the method is being executed in
 @param arg a value to append to the encpasulated DataByteArray. In the case of a
            RubyDataByteArray, the bytes will be copied and appended; in the case
            of a String, the bits will be added; in the case of a byte array,
            the bytes will be appended directly.]]>
      </doc>
    </method>
    <method name="compare" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This calls to the static method compare of DataByteArray. Given two DataByteArrays, it will call it
 on the underlying bytes.

 @param context the context the method is being executed in
 @param self    an class which contains metadata on the calling class (required for static Ruby methods)
 @param arg1    a RubyDataByteArray or byte array to compare
 @param arg2    a RubyDataByteArray or byte array to compare
 @return        the Fixnum result of comparing arg1 and arg2's bytes]]>
      </doc>
    </method>
    <method name="compareTo" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This calls the compareTo method of the encapsulated DataByteArray.

 @param context the context the method is being executed in
 @param arg     a RubyDataByteArray or byte array to compare to the
                encapsulated DataByteArray
 @return        the result of compareTo on the encapsulated DataByteArray
                      and arg]]>
      </doc>
    </method>
    <method name="equals" return="org.jruby.RubyBoolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[Overrides equality leveraging DataByteArray's equality.

 @param context the context the method is being executed in
 @param arg     a RubyDataByteArray against which to test equality
 @return        true if they are equal, false otherwise]]>
      </doc>
    </method>
    <method name="hash" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[Overrides ruby's hash leveraging DataByteArray's hash.

 @param context the context the method is being executed in
 @return        the encapsulated DataByteArray's hashCode()]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This method calls the set method of the underlying DataByteArray with one exception:
 if given a RubyDataByteArray, it will set the encapsulated DataByteArray to be equal.

 @param arg an object to set the encapsulated DataByteArray's bits to. In the case of
            a RubyString or byte array, the underlying bytes will be sit directly. In
            the case of a RubyDataByteArray, the encapsulated DataByteArray will be set
            equal to arg.]]>
      </doc>
    </method>
    <method name="size" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[@param context the context the method is being executed in
 @return the size of the encapsulated DataByteArray]]>
      </doc>
    </method>
    <method name="plus" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This method accepts as an argument anything that could be passed to set (ie a
 RubyDataByteArray, RubyString, or byte array). It then adds those values together.

 @param context the context the method is being executed in
 @param arg     any argument that can validly initialize a RubyDataByteArray
 @return        a <u>new</u> RubyDataByteArray that is the concatentation of
                the encapsulated DataByteArray and arg]]>
      </doc>
    </method>
    <method name="toString" return="org.jruby.runtime.builtin.IRubyObject"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[@param context the context the method is being executed in
 @return        the string representation of the encapsulated DataByteArray]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class presents a native Ruby object for interacting with and manipulating
 DataByteArray objects. For more information on what the annotations mean, see
 {@link RubyDataBag}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.RubyDataByteArray -->
  <!-- start class org.apache.pig.scripting.jruby.RubySchema -->
  <class name="RubySchema" extends="org.jruby.RubyObject"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RubySchema" type="org.jruby.Ruby, org.jruby.RubyClass"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <constructor name="RubySchema" type="org.jruby.Ruby, org.jruby.RubyClass, org.apache.pig.impl.logicalLayer.schema.Schema, boolean"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor sets the encapsulated Schema to be equal to
 the given Schema. If copy is true, it is set equal to a copy.
 If it is false, it is set directly equal.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param s    a Schema to encapsulate
 @param copy a boolean value. If true, s will be copied and the copy
             will be encapsulated. If false, it will be encapsulated
             directly.]]>
      </doc>
    </constructor>
    <constructor name="RubySchema" type="org.jruby.Ruby, org.jruby.RubyClass, org.apache.pig.impl.logicalLayer.schema.Schema"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor sets the encapsulated Schema to be equal to the
 given Schema.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param s    a Schema to encapsulate]]>
      </doc>
    </constructor>
    <constructor name="RubySchema" type="org.jruby.Ruby, org.jruby.RubyClass, java.lang.String"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This constructor is provided for convenience and sets the
 internal Schema equal to the result of a call to
 {@link Utils#getSchemaFromString}.

 @param ruby an instance of the ruby runtime
 @param rc   an instance of the class object with meatadata
 @param s    a String which will be passed to
             {@link Utils#getSchemaFromString}]]>
      </doc>
    </constructor>
    <method name="define" return="org.jruby.RubyClass"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="runtime" type="org.jruby.Ruby"/>
      <doc>
      <![CDATA[This method registers the class with the given runtime.

 @param runtime an instance of the Ruby runtime
 @return        a RubyClass object with metadata about the registered class]]>
      </doc>
    </method>
    <method name="initialize" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <doc>
      <![CDATA[The ruby initializer accepts any number of arguments. With no arguments,
 it will return an empty Schema object. It can accept any number of arguments.
 To understand the valid arguments, see the documentation for {@link #rubyArgToSchema}.

 @param args a varargs which can take any number of valid arguments to
             {@link #rubyArgToSchema}
 @return     the initialized RubySchema]]>
      </doc>
    </method>
    <method name="nullBytearray" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased bytearray Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullBoolean" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased Boolean Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullChararray" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased chararray Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullLong" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased long Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullInt" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased int Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullDouble" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased double Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullFloate" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased float Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullDateTime" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased datetime Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullTuple" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased tuple Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullBag" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased bag Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="nullMap" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a static helper method to create a null aliased map Schema.
 This is useful in cases where you do not want the output to have an explicit
 name, which {@link Utils#getSchemaFromString} will assign.

 @param context the context the method is being executed in
 @param self    an instance of the RubyClass with metadata on
                the Ruby class object this method is being
                statically invoked against
 @return        a null-aliased bytearray schema]]>
      </doc>
    </method>
    <method name="rubyArgToSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg" type="java.lang.Object"/>
      <doc>
      <![CDATA[This is a helper function which converts objects into Schema objects. The valid
 options are as follows:
 <p>
 A RubyString, which will have {@link Utils#getSchemaFromString} called on it, and
 it will be added.
 <p>
 A RubySchema, which will be added directly. IMPORTANT NOTE: since this API abstracts
 away from the distinction between Schema/FieldSchema, its important to understand
 how a Schema is added to another. In this case, the FieldSchema is pulled directly
 out of the given Schema. Thus, where in Pig a Schema.FieldSchema might be passed around,
 internally to this class, generally a Schema will be passed around encapsulating it.
 <p>
 A list will create the Schema for a Tuple whose elements will be the elements of the
 list. Each element will be subjected to the same rules applied here.
 <p>
 A hash in the form of:<br>
 <code>{"name:tuple"=>["x:int","y:int,z:int"], "name2:bag"=>["a:chararray"]}</code><br>
 The keys must be a tuple, bag, or map, and the value must be an array.

 @param arg an object (generally an IRubyObject or String) to convert. See above for
                  the rules on valid arguments
 @return    the Schema constructed for the given argument]]>
      </doc>
    </method>
    <method name="tuple" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes a name and an array of arguments and constructs a Tuple schema
 from them.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg1    the name for the RubySchema
 @param arg2    a list of arguments to instantiate the new RubySchema
 @return        the new Tuple RubySchema]]>
      </doc>
    </method>
    <method name="tuple" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes an array of arguments and constructs a Tuple schema from them. The name
 will be set automatically.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg     a list of arguments to instantiate the new RubySchema
 @return        the new RubySchema]]>
      </doc>
    </method>
    <method name="map" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes a name and an array of arguments and constructs a Map schema
 from them.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg1    the name for the RubySchema
 @param arg2    a list of arguments to instantiate the new RubySchema
 @return        the new RubySchema]]>
      </doc>
    </method>
    <method name="map" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes an array of arguments and constructs a Map schema from them. The name
 will be set automatically.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg     a list of arguments to instantiate the new RubySchema
 @return        the new RubySchema]]>
      </doc>
    </method>
    <method name="bag" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes a name and an array of arguments and constructs a Bag schema
 from them.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg1    the name for the RubySchema
 @param arg2    a list of arguments to instantiate the new RubySchema
 @return        the new RubySchema]]>
      </doc>
    </method>
    <method name="bag" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="self" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a ruby method which takes an array of arguments and constructs a Bag schema from them. The name
 will be set automatically.

 @param context the context the method is being executed in
 @param self    the RubyClass for the Class object this was invoked on
 @param arg     a list of arguments to instantiate the new RubySchema
 @return        the new RubySchema]]>
      </doc>
    </method>
    <method name="toString" return="org.jruby.RubyString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[The toString method just leverages Schema's printing.

 @param context the context the method is being executed in
 @return        a String representation of the encapsulated Schema object]]>
      </doc>
    </method>
    <method name="get" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is the ruby method which allows people to access elements of the RubySchema object.
 It can be given either a single numeric index, or a Range object to specify a range of indices.
 It's important to note that the Schema object returned from this references the Schema stored
 internally, so if the user wants to make changes without affecting this object, it must be cloned.

 @param context the context the method is being executed in
 @param arg     a Fixnum index, Range object to specify a range of values to return, or
                a String to look up by alias name
 @return        the RubySchema object encapsulated the found Schema]]>
      </doc>
    </method>
    <method name="get" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg1" type="org.jruby.runtime.builtin.IRubyObject"/>
      <param name="arg2" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This is a version of [] which allows the range to be specified as such: [1,2].

 @param context the context the method is being executed in
 @param arg1    a Fixnum start index
 @param arg2    a Fixnum end index
 @return        the RubySchema object encapsulated the found Schema]]>
      </doc>
    </method>
    <method name="set" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <doc>
      <![CDATA[This allows the users to set an index or a range of values to
 a specified RubySchema. The first argument must be a Fixnum or Range,
 and the second argument may optionally be a Fixnum. The given index
 (or range of indices) will be replaced by a RubySchema instantiated
 based on the remaining arguments.

 @param context the contextthe method is being executed in
 @param args    a varargs which has to be at least length two.
 @return        the RubySchema that was added]]>
      </doc>
    </method>
    <method name="add" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <doc>
      <![CDATA[This method provides addition semantics, without modifying the original Schema.
 This method can be given any number of arguments, much as with the constructor.

 @param context the context the method is being executed in
 @param args    a varargs which can be any valid set of arguments that
                can initialize a RubySchema
 @return        the Rresult of the addition]]>
      </doc>
    </method>
    <method name="addInPlace"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="args" type="org.jruby.runtime.builtin.IRubyObject[]"/>
      <doc>
      <![CDATA[This method provides addition semantics, modifying the original Schema in place.
 This method can be given any number of arguments, much as with the constructor.

 @param context the context the method is being executed in
 @param args    a varargs which can be any valid set of arguments that
                can initialize a RubySchema]]>
      </doc>
    </method>
    <method name="clone" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[@param context the context the method is being executed in
 @return        a RubySchema copy of the Schema]]>
      </doc>
    </method>
    <method name="find" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[Given a field name this string will search the RubySchema for a FieldSchema
 with that name and return it encapsulated in a Schema.

 @param context the context the method is being executed in
 @param arg     a RubyString serving as an alias to look
                for in the Schema
 @return        the found RubySchema]]>
      </doc>
    </method>
    <method name="index" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[Given a field name, this will return the index of it in the schema.

 @param context the context the method is being executed in
 @param arg     a field name to look for
 @return        the index for that field name]]>
      </doc>
    </method>
    <method name="size" return="org.jruby.RubyFixnum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[@param context the context the method is being executed in
 @return        the size of the encapsulated Schema]]>
      </doc>
    </method>
    <method name="getInternalSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[This is a helper method to pull out the native Java type from the ruby object.

 @return the encapsulated Schema]]>
      </doc>
    </method>
    <method name="get" return="org.apache.pig.scripting.jruby.RubySchema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This method allows access into the Schema nested in the encapsulated Schema. For example,
 if the encapsulated Schema is a bag Schema, this allows the user to access the schema of
 the interior Tuple.

 @param context the context the method is being executed in
 @return        a RubySchema encapsulating the nested Schema]]>
      </doc>
    </method>
    <method name="getName" return="org.jruby.RubyString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.jruby.runtime.ThreadContext"/>
      <doc>
      <![CDATA[This method allows the user to see the name of the alias of the FieldSchema of the encapsulated
 Schema. This method only works if the Schema has one FieldSchema.

 @param context the context the method is being executed in
 @return        the name of the Schema]]>
      </doc>
    </method>
    <method name="setName" return="org.jruby.RubyString"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="arg" type="org.jruby.runtime.builtin.IRubyObject"/>
      <doc>
      <![CDATA[This method allows the user to set the name of the alias of the FieldSchema of the encapsulated
 Schema. This method only works if the Schema has one FieldSchema.

 @param arg a RubyString to set the name to
 @return    the new name]]>
      </doc>
    </method>
    <doc>
    <![CDATA[This class encapsulated a native Schema object, and provides a more convenient
 interface for manipulating Schemas. It hides the Schema/FieldSchema distinction
 from the user, and tries to present a cleaner, more Ruby-esque API to the user.
 For general information on JRuby's API definition annotations,
 see {@link RubyDataBag}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jruby.RubySchema -->
</package>
<package name="org.apache.pig.scripting.js">
  <!-- start class org.apache.pig.scripting.js.JsFunction -->
  <class name="JsFunction" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JsFunction" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.js.JsFunction -->
  <!-- start class org.apache.pig.scripting.js.JSPig -->
  <class name="JSPig" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="fs" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See {@link Pig}
 @param cmd Filesystem command to run along with its arguments as one string.
 @throws IOException]]>
      </doc>
    </method>
    <method name="registerJar"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jarfile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See {@link Pig}
 @param jarfile Path of jar to include.
 @throws IOException if the indicated jarfile cannot be found.]]>
      </doc>
    </method>
    <method name="registerUDF"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="udffile" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See {@link Pig}
 @param udffile Path of the script UDF file
 @param namespace namespace of the UDFs
 @throws IOException]]>
      </doc>
    </method>
    <method name="define"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="definition" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See {@link Pig}
 @param alias name of the defined alias
 @param definition string this alias is defined as]]>
      </doc>
    </method>
    <method name="set"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="var" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See {@link Pig}
 @param var variable to set
 @param value to set it to]]>
      </doc>
    </method>
    <method name="compile" return="org.apache.pig.scripting.js.JSPig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pl" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a Pig pipeline.  
 @param pl Pig Latin definition of the pipeline.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile.]]>
      </doc>
    </method>
    <method name="compile" return="org.apache.pig.scripting.js.JSPig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="pl" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a named portion of a Pig pipeline.  This allows it
 to be imported into another pipeline.
 @param name Name that will be used to define this pipeline.
 The namespace is global.
 @param pl Pig Latin definition of the pipeline.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile.]]>
      </doc>
    </method>
    <method name="compileFromFile" return="org.apache.pig.scripting.js.JSPig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a Pig pipeline based on Pig Latin in a separate file.
 @param filename File to read Pig Latin from.  This must be a purely 
 Pig Latin file.  It cannot contain host language constructs in it.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile or the file
 cannot be found.]]>
      </doc>
    </method>
    <method name="compileFromFile" return="org.apache.pig.scripting.js.JSPig"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="filename" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Define a named Pig pipeline based on Pig Latin in a separate file.
 This allows it to be imported into another pipeline.
 @param name Name that will be used to define this pipeline.
 The namespace is global.
 @param filename File to read Pig Latin from.  This must be a purely 
 Pig Latin file.  It cannot contain host language constructs in it.
 @return Pig object representing this pipeline.
 @throws IOException if the Pig Latin does not compile or the file
 cannot be found.]]>
      </doc>
    </method>
    <method name="bind" return="org.apache.pig.scripting.BoundScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[javascript helper for binding parameters. 
 See: {@link Pig#bind(Map)}
 @param o a javascript object to be converted into a Map
 @return the bound script
 @throws IOException if {@link Pig#bind(Map)} throws an IOException]]>
      </doc>
    </method>
    <method name="bind" return="org.apache.pig.scripting.BoundScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[See: {@link Pig#bind()}
 @throws IOException if host language variables are not found to resolve all
 Pig Latin parameters or if they contain unsupported types.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Pig entry point from javascript
 @author Julien Le Dem]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.js.JSPig -->
  <!-- start class org.apache.pig.scripting.js.JsScriptEngine -->
  <class name="JsScriptEngine" extends="org.apache.pig.scripting.ScriptEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JsScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getInstance" return="org.apache.pig.scripting.js.JsScriptEngine"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="jsEval" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <doc>
      <![CDATA[evaluate a javascript String
 @param name the name of the script (for error messages)
 @param script the content of the script
 @return the result]]>
      </doc>
    </method>
    <method name="jsEval" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="scriptReader" type="java.io.Reader"/>
      <doc>
      <![CDATA[evaluate javascript from a reader
 @param name the name of the script (for error messages)
 @param scriptReader the content of the script
 @return the result]]>
      </doc>
    </method>
    <method name="jsPut"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="value" type="java.lang.Object"/>
      <doc>
      <![CDATA[put a value in the current scope
 @param name the name of the variable
 @param value its value]]>
      </doc>
    </method>
    <method name="jsCall" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="functionName" type="java.lang.String"/>
      <param name="passedParams" type="java.lang.Object[]"/>
      <doc>
      <![CDATA[call a javascript function
 @param functionName the name of the function
 @param passedParams the parameters to pass
 @return the result of the function]]>
      </doc>
    </method>
    <method name="jsNewObject" return="org.mozilla.javascript.Scriptable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[creates a new JavaScript object
 @return an empty object]]>
      </doc>
    </method>
    <method name="jsNewArray" return="org.mozilla.javascript.Scriptable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="size" type="long"/>
      <doc>
      <![CDATA[creates a new javascript array
 @param size the size of the array
 @return an empty array of the given size]]>
      </doc>
    </method>
    <method name="eval" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expr" type="java.lang.String"/>
    </method>
    <method name="load"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <param name="script" type="java.io.InputStream"/>
    </method>
    <method name="main" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="registerFunctions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[{@link ScriptEngine} implementation for JavaScript]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.js.JsScriptEngine -->
</package>
<package name="org.apache.pig.scripting.jython">
  <!-- start class org.apache.pig.scripting.jython.JythonFunction -->
  <class name="JythonFunction" extends="org.apache.pig.EvalFunc"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JythonFunction" type="java.lang.String, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="exec" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="outputSchema" return="org.apache.pig.impl.logicalLayer.schema.Schema"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="input" type="org.apache.pig.impl.logicalLayer.schema.Schema"/>
    </method>
    <doc>
    <![CDATA[Python implementation of a Pig UDF Performs mappings between Python & Pig
 data structures]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jython.JythonFunction -->
  <!-- start class org.apache.pig.scripting.jython.JythonScriptEngine -->
  <class name="JythonScriptEngine" extends="org.apache.pig.scripting.ScriptEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JythonScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="registerFunctions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getFunction" return="org.python.core.PyFunction"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="functionName" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Gets the Python function object.
 @param path Path of the jython script file containing the function.
 @param functionName Name of the function
 @return a function object
 @throws IOException]]>
      </doc>
    </method>
    <method name="main" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="load"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="script" type="java.io.InputStream"/>
      <param name="scriptFile" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[execs the script text using the interpreter. populates the pig context
 with necessary module paths. does not close the inputstream.
 @param script
 @param scriptFile
 @param pigContext
 @throws IOException]]>
      </doc>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[Implementation of the script engine for Jython]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.scripting.jython.JythonScriptEngine -->
  <!-- start class org.apache.pig.scripting.jython.JythonUtils -->
  <class name="JythonUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JythonUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="pythonToPig" return="java.lang.Object"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pyObject" type="org.python.core.PyObject"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </method>
    <method name="pigToPython" return="org.python.core.PyObject"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="object" type="java.lang.Object"/>
    </method>
    <method name="pigTupleToPyTuple" return="org.python.core.PyTuple"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tuple" type="org.apache.pig.data.Tuple"/>
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.jython.JythonUtils -->
</package>
<package name="org.apache.pig.scripting.streaming.python">
  <!-- start class org.apache.pig.scripting.streaming.python.PythonScriptEngine -->
  <class name="PythonScriptEngine" extends="org.apache.pig.scripting.ScriptEngine"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PythonScriptEngine"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="registerFunctions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="main" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.impl.PigContext"/>
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getScriptingLang" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="getParamsFromVariables" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.scripting.streaming.python.PythonScriptEngine -->
</package>
<package name="org.apache.pig.tools">
  <!-- start class org.apache.pig.tools.DownloadResolver -->
  <class name="DownloadResolver" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getInstance" return="org.apache.pig.tools.DownloadResolver"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return Singleton Object]]>
      </doc>
    </method>
    <method name="downloadArtifact" return="java.net.URI[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="uri" type="java.net.URI"/>
      <param name="pigServer" type="org.apache.pig.PigServer"/>
      <exception name="ParserException" type="org.apache.pig.parser.ParserException"/>
      <doc>
      <![CDATA[@param uri
 @return List of URIs of the downloaded jars
 @throws ParserException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.DownloadResolver -->
  <!-- start class org.apache.pig.tools.ToolsPigServer -->
  <class name="ToolsPigServer" extends="org.apache.pig.PigServer"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToolsPigServer" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param execTypeString can be 'mapreduce' or 'local'.  Local mode will 
 use Hadoop's local job runner to execute the job on the local machine.
 Mapreduce mode will connect to a cluster to execute the job.
 @throws ExecException if throws by PigServer
 @throws IOException if throws by PigServer]]>
      </doc>
    </constructor>
    <constructor name="ToolsPigServer" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@param ctx the context to use to construct the PigServer
 @throws ExecException if throws by PigServer
 @throws IOException if throws by PigServer]]>
      </doc>
    </constructor>
    <constructor name="ToolsPigServer" type="org.apache.pig.ExecType, java.util.Properties"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[@param execType execution type to start the engine in.
 @param properties to use for this run
 @throws ExecException if throws by PigServer]]>
      </doc>
    </constructor>
    <method name="registerNoRun"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
      <param name="params" type="java.util.Map"/>
      <param name="paramFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Register a script without running it.  This method is not compatible with
 {@link #registerQuery(String)}, {@link #registerScript(String)}, 
 {@link #store(String, String)} or {@link #openIterator(String)}.  It can be
 used with {@link #getPlans()} and {@link #runPlan(LogicalPlan, String)} in this class 
 only. The proper control flow is for the caller to call registerNoRun() and then
 getPlans() to get a copy of the plans.  The user can then modify the
 logical plan.  It can then be returned via runPlan(), which will execute
 the plan.
 @param fileName File containing Pig Latin script to register.
 @param params  the key is the parameter name, and the value is the parameter value
 @param paramFiles   files which have the parameter setting
 @throws IOException if it encounters problems reading the script
 @throws FrontendException if it encounters problems parsing the script]]>
      </doc>
    </method>
    <method name="getPlans" return="org.apache.pig.tools.ToolsPigServer.PigPlans"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a class containing the Pig plans.  For now it just contains
 the new logical plan.  At some point in the future it should contain
 the MR plan as well.
 @return the pig plans.]]>
      </doc>
    </method>
    <method name="runPlan" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="newPlan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
      <param name="jobName" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
      <doc>
      <![CDATA[Given a (modified) new logical plan, run the script.
 @param newPlan plan to run
 @param jobName name to give the MR jobs associated with this run
 @return list of exec jobs describing the jobs that were run.
 @throws FrontendException if plan translation fails.
 @throws ExecException if running the job fails.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[ToolsPigServer is a subclass of PigServer intended only for Pig tools.  Users
 should not use this interface, as we make no promises about its stability or
 continued existence.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.ToolsPigServer -->
  <!-- start class org.apache.pig.tools.ToolsPigServer.PigPlans -->
  <class name="ToolsPigServer.PigPlans" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ToolsPigServer.PigPlans" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="lp" type="org.apache.pig.newplan.logical.relational.LogicalPlan"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.ToolsPigServer.PigPlans -->
</package>
<package name="org.apache.pig.tools.cmdline">
  <!-- start class org.apache.pig.tools.cmdline.CmdLineParser -->
  <class name="CmdLineParser" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CmdLineParser" type="java.lang.String[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param args String array of arguments passed to the program.]]>
      </doc>
    </constructor>
    <method name="registerOpt"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="char"/>
      <param name="s" type="java.lang.String"/>
      <param name="ve" type="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected"/>
      <doc>
      <![CDATA[Register a command line option.
 @param c Single character designator for this option.  It cannot be '-'.
 @param s Full word designator for this option.  This can be null, in which case
 no long designator will exist for this option.
 @param ve If REQUIRED, a value will be expected with this option.  If
 OPTIONAL a value will be accepted if it is seen.
 @throws AssertionError if there is no short option, or if this option has already been
 used.]]>
      </doc>
    </method>
    <method name="getNextOpt" return="char"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ParseException" type="java.text.ParseException"/>
      <doc>
      <![CDATA[Get the next option.
 @return The short designator for the next argument.  If there are no more arguments
 than the special designator CmdLineParser.EndOfOpts will be returned.
 @throws ParseException if an unknown option is found or an option that
 expects a value does not have one or a value that does not expect a value does have
 one.]]>
      </doc>
    </method>
    <method name="getRemainingArgs" return="java.lang.String[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get any remaining arguments.
 @return In general this function will null.
 Only if the caller passed a '-' or '--' followed by other arguments.  In that case
 the remainder of the args array will be returned.]]>
      </doc>
    </method>
    <method name="getValStr" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the value, as a string.
 @return The value associated with the current option.  If there is no value,
 then null will be returned.]]>
      </doc>
    </method>
    <method name="getValInt" return="java.lang.Integer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="NumberFormatException" type="java.lang.NumberFormatException"/>
      <doc>
      <![CDATA[Get the value, as an Integer.
 @return The value associated with the current option.  If there is not value, then
 null will be returned.
 @throws NumberFormatException if the value cannot be converted to an integer.]]>
      </doc>
    </method>
    <field name="EndOfOpts" type="char"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.cmdline.CmdLineParser -->
  <!-- start class org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected -->
  <class name="CmdLineParser.ValueExpected" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="REQUIRED" type="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="OPTIONAL" type="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NOT_ACCEPTED" type="org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.cmdline.CmdLineParser.ValueExpected -->
</package>
<package name="org.apache.pig.tools.counters">
  <!-- start class org.apache.pig.tools.counters.PigCounterHelper -->
  <class name="PigCounterHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigCounterHelper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="incrCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="counterName" type="java.lang.String"/>
      <param name="incr" type="long"/>
      <doc>
      <![CDATA[Mocks the Reporter.incrCounter, but adds buffering.
 See org.apache.hadoop.mapred.Reporter's incrCounter.]]>
      </doc>
    </method>
    <method name="incrCounter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.Enum"/>
      <param name="incr" type="long"/>
      <doc>
      <![CDATA[Mocks the Reporter.incrCounter, but adds buffering.
 See org.apache.hadoop.mapred.Reporter's incrCounter.]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A helper class to deal with Hadoop counters in Pig.  They are stored within the singleton
 PigStatusReporter instance, but are null for some period of time at job startup, even after
 Pig has been invoked.  This class buffers counters, trying each time to get a valid Reporter and flushing
 stored counters each time it does.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.counters.PigCounterHelper -->
</package>
<package name="org.apache.pig.tools.grunt">
  <!-- start class org.apache.pig.tools.grunt.Command -->
  <class name="Command" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Command"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="execute"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="commandline" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.grunt.Command -->
  <!-- start class org.apache.pig.tools.grunt.Grunt -->
  <class name="Grunt" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Grunt" type="java.io.BufferedReader, org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="ExecException" type="org.apache.pig.backend.executionengine.ExecException"/>
    </constructor>
    <method name="setConsoleReader"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="c" type="jline.ConsoleReader"/>
    </method>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="exec" return="int[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="Throwable" type="java.lang.Throwable"/>
    </method>
    <method name="checkScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptFile" type="java.lang.String"/>
      <exception name="Throwable" type="java.lang.Throwable"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.grunt.Grunt -->
  <!-- start class org.apache.pig.tools.grunt.GruntParser -->
  <class name="GruntParser" extends="org.apache.pig.tools.pigscript.parser.PigScriptParser"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GruntParser" type="java.io.Reader"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="java.io.Reader, org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="java.io.InputStream, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="java.io.InputStream, java.lang.String, org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="java.io.InputStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="java.io.InputStream, org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="org.apache.pig.tools.pigscript.parser.PigScriptParserTokenManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="GruntParser" type="org.apache.pig.tools.pigscript.parser.PigScriptParserTokenManager, org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setInteractive"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isInteractive" type="boolean"/>
    </method>
    <method name="setValidateEachStatement"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="b" type="boolean"/>
    </method>
    <method name="parseStopOnError" return="int[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="parseStopOnError" return="int[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sameBatch" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
      <doc>
      <![CDATA[Parses Pig commands in either interactive mode or batch mode.
 In interactive mode, executes the plan right away whenever a
 STORE command is encountered.

 @throws IOException, ParseException]]>
      </doc>
    </method>
    <method name="setLoadOnly"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="loadOnly" type="boolean"/>
    </method>
    <method name="setScriptIllustrate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="prompt"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="quit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="isDone" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="parseOnly"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processDescribe"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processExplain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <param name="isVerbose" type="boolean"/>
      <param name="format" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processExplain"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <param name="isVerbose" type="boolean"/>
      <param name="format" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <param name="dontPrintOutput" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="explainCurrentBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="explainCurrentBatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dontPrintOutput" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="printAliases"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="printClear"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="processRegister"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jar" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processRegister"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="scriptingLang" type="java.lang.String"/>
      <param name="namespace" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="script" type="java.lang.String"/>
      <param name="batch" type="boolean"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processSet"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processSet"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processCat"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCD"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDump"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processIllustrate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
      <param name="script" type="java.lang.String"/>
      <param name="target" type="java.lang.String"/>
      <param name="params" type="java.util.List"/>
      <param name="files" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.pigscript.parser.ParseException"/>
    </method>
    <method name="processKill"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="jobid" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processLS"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processPWD"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processHistory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="withNumbers" type="boolean"/>
    </method>
    <method name="printHelp"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="processMove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopy"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopyToLocal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processCopyFromLocal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="src" type="java.lang.String"/>
      <param name="dst" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processMkdir"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="dir" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processPig"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processRemove"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="path" type="java.lang.String"/>
      <param name="options" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processFsCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmdTokens" type="java.lang.String[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processShCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmdTokens" type="java.lang.String[]"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="runSQLCommand" return="int"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="hcatBin" type="java.lang.String"/>
      <param name="cmd" type="java.lang.String"/>
      <param name="mInteractive" type="boolean"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processSQLCommand"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="cmd" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDefault"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="processDeclare"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="value" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setExplainState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="explainState" type="org.apache.pig.tools.grunt.GruntParser.ExplainState"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.grunt.GruntParser -->
  <!-- start class org.apache.pig.tools.grunt.GruntParser.ExplainState -->
  <class name="GruntParser.ExplainState" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="GruntParser.ExplainState" type="java.lang.String, java.lang.String, java.lang.String, boolean, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <field name="mTime" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mCount" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mAlias" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mTarget" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mScript" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mVerbose" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mFormat" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="mLast" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.grunt.GruntParser.ExplainState -->
  <!-- start class org.apache.pig.tools.grunt.GruntParser.StreamPrinter -->
  <class name="GruntParser.StreamPrinter" extends="java.lang.Thread"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="GruntParser.StreamPrinter" type="java.io.InputStream, java.lang.String, java.io.PrintStream"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="run"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[StreamPrinter.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.grunt.GruntParser.StreamPrinter -->
  <!-- start class org.apache.pig.tools.grunt.PigCompletor -->
  <class name="PigCompletor" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="jline.Completor"/>
    <constructor name="PigCompletor"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="loadCandidateKeywords" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="java.io.InputStream"/>
      <param name="candidates" type="java.util.Set"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="complete" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="buffer" type="java.lang.String"/>
      <param name="cursor" type="int"/>
      <param name="candidates" type="java.util.List"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.grunt.PigCompletor -->
  <!-- start class org.apache.pig.tools.grunt.PigCompletorAliases -->
  <class name="PigCompletorAliases" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="jline.Completor"/>
    <constructor name="PigCompletorAliases" type="org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="complete" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="buffer" type="java.lang.String"/>
      <param name="cursor" type="int"/>
      <param name="candidates" type="java.util.List"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.grunt.PigCompletorAliases -->
</package>
<package name="org.apache.pig.tools.parameters">
  <!-- start class org.apache.pig.tools.parameters.ParameterSubstitutionException -->
  <class name="ParameterSubstitutionException" extends="org.apache.pig.tools.parameters.ParseException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParameterSubstitutionException" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.tools.parameters.ParameterSubstitutionException -->
  <!-- start class org.apache.pig.tools.parameters.ParameterSubstitutionPreprocessor -->
  <class name="ParameterSubstitutionPreprocessor" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ParameterSubstitutionPreprocessor" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param limit - max number of parameters to expect. Smaller values would
 would not cause incorrect behavior but would impact performance]]>
      </doc>
    </constructor>
    <constructor name="ParameterSubstitutionPreprocessor" type="org.apache.pig.tools.parameters.PreprocessorContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="genSubstitutedFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigInput" type="java.io.BufferedReader"/>
      <param name="pigOutput" type="java.io.Writer"/>
      <exception name="ParseException" type="org.apache.pig.tools.parameters.ParseException"/>
      <doc>
      <![CDATA[This is the main API that takes script template and produces pig script 
 @param pigInput - input stream that contains pig file
 @param pigOutput - stream where transformed file is written
 @param paramVal - map of parameter names to values]]>
      </doc>
    </method>
    <method name="genSubstitutedFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigInput" type="java.io.BufferedReader"/>
      <param name="pigOutput" type="java.io.Writer"/>
      <param name="params" type="java.lang.String[]"/>
      <param name="paramFiles" type="java.lang.String[]"/>
      <exception name="ParseException" type="org.apache.pig.tools.parameters.ParseException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.parameters.ParameterSubstitutionPreprocessor -->
  <!-- start class org.apache.pig.tools.parameters.PreprocessorContext -->
  <class name="PreprocessorContext" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PreprocessorContext" type="int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@param limit - max number of parameters. Passing
                smaller number only impacts performance]]>
      </doc>
    </constructor>
    <constructor name="PreprocessorContext" type="java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getParamVal" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="processShellCmd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="val" type="java.lang.String"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This method generates parameter value by running specified command

 @param key - parameter name
 @param val - string containing command to be executed]]>
      </doc>
    </method>
    <method name="processOrdLine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="val" type="java.lang.String"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
      <doc>
      <![CDATA[This method generates value for the specified key by
 performing substitution if needed within the value first.

 @param key - parameter name
 @param val - value supplied for the key]]>
      </doc>
    </method>
    <method name="processShellCmd"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="val" type="java.lang.String"/>
      <param name="overwrite" type="java.lang.Boolean"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[This method generates parameter value by running specified command

 @param key - parameter name
 @param val - string containing command to be executed]]>
      </doc>
    </method>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preprocessorCmd" type="java.lang.String"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="processOrdLine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="java.lang.String"/>
      <param name="val" type="java.lang.String"/>
      <param name="overwrite" type="java.lang.Boolean"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
      <doc>
      <![CDATA[This method generates value for the specified key by
 performing substitution if needed within the value first.

 @param key - parameter name
 @param val - value supplied for the key
 @param overwrite - specifies whether the value should be replaced if it already exists]]>
      </doc>
    </method>
    <method name="loadParamVal"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="params" type="java.util.List"/>
      <param name="paramFiles" type="java.util.List"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="ParseException" type="org.apache.pig.tools.parameters.ParseException"/>
    </method>
    <method name="substitute" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="line" type="java.lang.String"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
    </method>
    <method name="substitute" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="line" type="java.lang.String"/>
      <param name="parentKey" type="java.lang.String"/>
      <exception name="ParameterSubstitutionException" type="org.apache.pig.tools.parameters.ParameterSubstitutionException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.parameters.PreprocessorContext -->
</package>
<package name="org.apache.pig.tools.pigstats">
  <!-- start class org.apache.pig.tools.pigstats.EmptyPigStats -->
  <class name="EmptyPigStats" extends="org.apache.pig.tools.pigstats.PigStats"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="EmptyPigStats"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="EmptyPigStats" type="org.apache.pig.impl.PigContext, org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobClient" return="org.apache.hadoop.mapred.JobClient"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEmbedded" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllStats" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllErrorMessages" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJobGraph" return="org.apache.pig.tools.pigstats.PigStats.JobGraph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOutputLocations" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOutputNames" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberBytes" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
    </method>
    <method name="getNumberRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
    </method>
    <method name="getOutputAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBytesWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRecordWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOutputStats" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="result" return="org.apache.pig.tools.pigstats.OutputStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="getInputStats" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setBackendException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobId" type="java.lang.String"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="start"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="stop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberSuccessfulJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberFailedJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[EmptyPigStats encapsulates dummy statistics of a fetch task, since during a
 fetch no MR jobs are executed]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.EmptyPigStats -->
  <!-- start class org.apache.pig.tools.pigstats.InputStats -->
  <class name="InputStats" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="InputStats" type="java.lang.String, long, long, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBytes" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSuccessful" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputType" return="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="markSampleInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markIndexerInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="markSideFileInput"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class encapsulates the runtime statistics of a user specified input.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.InputStats -->
  <!-- start class org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE -->
  <class name="InputStats.INPUT_TYPE" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="regular" type="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="sampler" type="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="indexer" type="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="side" type="org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.InputStats.INPUT_TYPE -->
  <!-- start class org.apache.pig.tools.pigstats.JobStats -->
  <class name="JobStats" extends="org.apache.pig.newplan.Operator"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="JobStats" type="java.lang.String, org.apache.pig.tools.pigstats.PigStats.JobGraph"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobId" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getState" return="org.apache.pig.tools.pigstats.JobStats.JobState"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSuccessful" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSuccessful"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="isSuccessful" type="boolean"/>
    </method>
    <method name="getErrorMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getException" return="java.lang.Exception"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getOutputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInputs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAliasLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFeature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHdfsBytesRead" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHdfsBytesWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBytesWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total bytes written to user specified HDFS
 locations of this job.]]>
      </doc>
    </method>
    <method name="getRecordWrittern" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total number of records in user specified output
 locations of this job.]]>
      </doc>
    </method>
    <method name="accept"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="isEqual" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operator" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="setErrorMsg"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errorMsg" type="java.lang.String"/>
    </method>
    <method name="setBackendException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="calculateMedianValue" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="durations" type="java.util.List"/>
      <doc>
      <![CDATA[Calculate the median value from the given array
 @param durations
 @return median value]]>
      </doc>
    </method>
    <method name="isSampler" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isIndexer" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberMaps" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getNumberMaps} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getNumberMaps} instead.]]>
      </doc>
    </method>
    <method name="getNumberReduces" return="int"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getNumberReduces} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getNumberReduces} instead.]]>
      </doc>
    </method>
    <method name="getMaxMapTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMaxMapTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMaxMapTime} instead.]]>
      </doc>
    </method>
    <method name="getMinMapTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMinMapTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMinMapTime} instead.]]>
      </doc>
    </method>
    <method name="getAvgMapTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getAvgMapTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getAvgMapTime} instead.]]>
      </doc>
    </method>
    <method name="getMaxReduceTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMaxReduceTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMaxReduceTime} instead.]]>
      </doc>
    </method>
    <method name="getMinReduceTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMinReduceTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMinReduceTime} instead.]]>
      </doc>
    </method>
    <method name="getAvgREduceTime" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getAvgREduceTime} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getAvgREduceTime} instead.]]>
      </doc>
    </method>
    <method name="getMapInputRecords" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMapInputRecords} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMapInputRecords} instead.]]>
      </doc>
    </method>
    <method name="getMapOutputRecords" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMapOutputRecords} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMapOutputRecords} instead.]]>
      </doc>
    </method>
    <method name="getReduceInputRecords" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getReduceInputRecords} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getReduceInputRecords} instead.]]>
      </doc>
    </method>
    <method name="getReduceOutputRecords" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getReduceOutputRecords} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getReduceOutputRecords} instead.]]>
      </doc>
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getSMMSpillCount} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getSMMSpillCount} instead.]]>
      </doc>
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getProactiveSpillCountObjects} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getProactiveSpillCountObjects} instead.]]>
      </doc>
    </method>
    <method name="getProactiveSpillCountRecs" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getProactiveSpillCountRecs} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getProactiveSpillCountRecs} instead.]]>
      </doc>
    </method>
    <method name="getHadoopCounters" return="org.apache.hadoop.mapred.Counters"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getHadoopCounters} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getHadoopCounters} instead.]]>
      </doc>
    </method>
    <method name="getMultiStoreCounters" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMultiStoreCounters} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMultiStoreCounters} instead.]]>
      </doc>
    </method>
    <method name="getMultiInputCounters" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMultiInputCounters} instead.">
      <doc>
      <![CDATA[@deprecated If you are using mapreduce, please cast JobStats to org.apache.pig.tools.pigstats.mapreduce.MRJobStats,
 then use {@link org.apache.pig.tools.pigstats.mapreduce.MRJobStats#getMultiInputCounters} instead.]]>
      </doc>
    </method>
    <method name="getOutputSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sto" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Looks up the output size reader from OUTPUT_SIZE_READER_KEY and invokes
 it to get the size of output. If OUTPUT_SIZE_READER_KEY is not set,
 defaults to FileBasedOutputSizeReader.
 @param sto POStore
 @param conf configuration]]>
      </doc>
    </method>
    <field name="ALIAS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ALIAS_LOCATION" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FEATURE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SUCCESS_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FAILURE_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="state" type="org.apache.pig.tools.pigstats.JobStats.JobState"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="outputs" type="java.util.ArrayList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="inputs" type="java.util.ArrayList"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="conf" type="org.apache.hadoop.conf.Configuration"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="hdfsBytesRead" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="hdfsBytesWritten" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class encapsulates the runtime statistics of a MapReduce job.
 Job statistics is collected when job is completed.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.JobStats -->
  <!-- start class org.apache.pig.tools.pigstats.JobStats.JobState -->
  <class name="JobStats.JobState" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.tools.pigstats.JobStats.JobState[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.tools.pigstats.JobStats.JobState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="UNKNOWN" type="org.apache.pig.tools.pigstats.JobStats.JobState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SUCCESS" type="org.apache.pig.tools.pigstats.JobStats.JobState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FAILED" type="org.apache.pig.tools.pigstats.JobStats.JobState"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.JobStats.JobState -->
  <!-- start class org.apache.pig.tools.pigstats.OutputStats -->
  <class name="OutputStats" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="OutputStats" type="java.lang.String, long, long, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getBytes" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setBytes"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="bytes" type="long"/>
    </method>
    <method name="getRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setRecords"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="records" type="long"/>
    </method>
    <method name="getNumberRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFunctionName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSuccessful" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setSuccessful"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="success" type="boolean"/>
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPOStore" return="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setPOStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <doc>
    <![CDATA[This class encapsulates the runtime statistics of an user specified output.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.OutputStats -->
  <!-- start interface org.apache.pig.tools.pigstats.PigProgressNotificationListener -->
  <interface name="PigProgressNotificationListener"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.util.EventListener"/>
    <method name="initialPlanNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <doc>
      <![CDATA[Invoked before any Hadoop jobs (or a Tez DAG) are run with the plan that is to be executed.

 @param scriptId the unique id of the script
 @param plan the OperatorPlan that is to be executed]]>
      </doc>
    </method>
    <method name="launchStartedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="numJobsToLaunch" type="int"/>
      <doc>
      <![CDATA[Invoked just before launching Hadoop jobs (or tez DAGs) spawned by the script.
 @param scriptId the unique id of the script
 @param numJobsToLaunch the total number of Hadoop jobs (or Tez DAGs) spawned by the script]]>
      </doc>
    </method>
    <method name="jobsSubmittedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="numJobsSubmitted" type="int"/>
      <doc>
      <![CDATA[Invoked just before submitting a batch of Hadoop jobs (or Tez DAGs).
 @param scriptId the unique id of the script
 @param numJobsSubmitted the number of Hadoop jobs (or Tez DAGs) in the batch]]>
      </doc>
    </method>
    <method name="jobStartedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="assignedJobId" type="java.lang.String"/>
      <doc>
      <![CDATA[Invoked after a Hadoop job (or Tez DAG) is started.
 @param scriptId the unique id of the script
 @param assignedJobId the Hadoop job id (or Tez DAG job id)]]>
      </doc>
    </method>
    <method name="jobFinishedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="jobStats" type="org.apache.pig.tools.pigstats.JobStats"/>
      <doc>
      <![CDATA[Invoked just after a Hadoop job (or Tez DAG) is completed successfully.
 @param scriptId the unique id of the script
 @param jobStats the {@link JobStats} object associated with the Hadoop job (or Tez DAG)]]>
      </doc>
    </method>
    <method name="jobFailedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="jobStats" type="org.apache.pig.tools.pigstats.JobStats"/>
      <doc>
      <![CDATA[Invoked when a Hadoop job fails.
 @param scriptId the unique id of the script
 @param jobStats the {@link JobStats} object associated with the Hadoop job]]>
      </doc>
    </method>
    <method name="outputCompletedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="outputStats" type="org.apache.pig.tools.pigstats.OutputStats"/>
      <doc>
      <![CDATA[Invoked just after an output is successfully written.
 @param scriptId the unique id of the script
 @param outputStats the {@link OutputStats} object associated with the output]]>
      </doc>
    </method>
    <method name="progressUpdatedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="progress" type="int"/>
      <doc>
      <![CDATA[Invoked to update the execution progress.
 @param scriptId the unique id of the script
 @param progress the percentage of the execution progress]]>
      </doc>
    </method>
    <method name="launchCompletedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="numJobsSucceeded" type="int"/>
      <doc>
      <![CDATA[Invoked just after all Hadoop jobs (Tez DAGs) spawned by the script are completed.
 @param scriptId the unique id of the script
 @param numJobsSucceeded the total number of Hadoop jobs (Tez DAGs) succeeded]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Should be implemented by an object that wants to receive notifications
 from {@link PigRunner}.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.tools.pigstats.PigProgressNotificationListener -->
  <!-- start class org.apache.pig.tools.pigstats.PigStats -->
  <class name="PigStats" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigStats"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="start" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stats" type="org.apache.pig.tools.pigstats.PigStats"/>
    </method>
    <method name="getReturnCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns code are defined in {@link ReturnCode}]]>
      </doc>
    </method>
    <method name="getErrorMessage" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns error message string]]>
      </doc>
    </method>
    <method name="getErrorCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the error code of {@link PigException}]]>
      </doc>
    </method>
    <method name="getErrorThrowable" return="java.lang.Throwable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the error code of {@link PigException}]]>
      </doc>
    </method>
    <method name="getJobClient" return="org.apache.hadoop.mapred.JobClient"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEmbedded" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isSuccessful" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllStats" return="java.util.Map"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllErrorMessages" return="java.util.List"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigProperties" return="java.util.Properties"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the properties associated with the script]]>
      </doc>
    </method>
    <method name="getJobGraph" return="org.apache.pig.tools.pigstats.PigStats.JobGraph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the DAG of jobs spawned by the script]]>
      </doc>
    </method>
    <method name="getOutputLocations" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of output locations in the script]]>
      </doc>
    </method>
    <method name="getOutputNames" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the list of output names in the script]]>
      </doc>
    </method>
    <method name="getNumberBytes" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <doc>
      <![CDATA[Returns the number of bytes for the given output location,
 -1 for invalid location or name.]]>
      </doc>
    </method>
    <method name="getNumberRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <doc>
      <![CDATA[Returns the number of records for the given output location,
 -1 for invalid location or name.]]>
      </doc>
    </method>
    <method name="getOutputAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="location" type="java.lang.String"/>
      <doc>
      <![CDATA[Returns the alias associated with this output location]]>
      </doc>
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total spill counts from {@link SpillableMemoryManager}.]]>
      </doc>
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total number of bags that spilled proactively]]>
      </doc>
    </method>
    <method name="getProactiveSpillCountRecords" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total number of records that spilled proactively]]>
      </doc>
    </method>
    <method name="getBytesWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total bytes written to user specified HDFS
 locations of this script.]]>
      </doc>
    </method>
    <method name="getRecordWritten" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the total number of records in user specified output
 locations of this script.]]>
      </doc>
    </method>
    <method name="getHadoopVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScriptId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFeatures" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getDuration" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns the number of jobs for this script]]>
      </doc>
    </method>
    <method name="getOutputStats" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="result" return="org.apache.pig.tools.pigstats.OutputStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="alias" type="java.lang.String"/>
    </method>
    <method name="getInputStats" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setErrorMessage"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errorMessage" type="java.lang.String"/>
    </method>
    <method name="setErrorCode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="errorCode" type="int"/>
    </method>
    <method name="setErrorThrowable"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.Throwable"/>
    </method>
    <method name="setReturnCode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="returnCode" type="int"/>
    </method>
    <method name="setBackendException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobId" type="java.lang.String"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="getPigContext" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="start"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="stop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberSuccessfulJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberFailedJobs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="DATE_FORMAT" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="startTime" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="endTime" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="userId" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="jobPlan" type="org.apache.pig.tools.pigstats.PigStats.JobGraph"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigContext" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="aliasOuputMap" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorCode" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorMessage" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="errorThrowable" type="java.lang.Throwable"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="returnCode" type="int"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[PigStats encapsulates the statistics collected from a running script. It
 includes status of the execution, the DAG of its Hadoop jobs, as well as
 information about outputs and inputs of the script.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.PigStats -->
  <!-- start class org.apache.pig.tools.pigstats.PigStats.JobGraph -->
  <class name="PigStats.JobGraph" extends="org.apache.pig.newplan.BaseOperatorPlan"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Iterable"/>
    <constructor name="PigStats.JobGraph"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJobList" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns a List representation of the Job graph. Returned list is an
 ArrayList

 @return List<JobStats>]]>
      </doc>
    </method>
    <method name="iterator" return="java.util.Iterator"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isConnected" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="from" type="org.apache.pig.newplan.Operator"/>
      <param name="to" type="org.apache.pig.newplan.Operator"/>
    </method>
    <method name="getSuccessfulJobs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFailedJobs" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[JobGraph is an {@link OperatorPlan} whose members are {@link JobStats}]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.PigStats.JobGraph -->
  <!-- start class org.apache.pig.tools.pigstats.PigStats.JobGraphPrinter -->
  <class name="PigStats.JobGraphPrinter" extends="org.apache.pig.newplan.PlanVisitor"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigStats.JobGraphPrinter" type="org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="visit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="op" type="org.apache.pig.tools.pigstats.JobStats"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[This class prints a JobGraph]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.PigStats.JobGraphPrinter -->
  <!-- start class org.apache.pig.tools.pigstats.PigStatsUtil -->
  <class name="PigStatsUtil" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="PigStatsUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getEmptyPigStats" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Returns an empty PigStats object Use of this method is not advised as it
 will return the MR execution engine version of PigStats by default, and
 is not necessarily empty depending on the timing.

 @return an empty PigStats object]]>
      </doc>
    </method>
    <method name="getPigStats" return="org.apache.pig.tools.pigstats.PigStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="code" type="int"/>
      <doc>
      <![CDATA[Returns the PigStats with the given return code

 @param code the return code
 @return the PigStats with the given return code]]>
      </doc>
    </method>
    <method name="setErrorMessage"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="msg" type="java.lang.String"/>
    </method>
    <method name="setErrorCode"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="code" type="int"/>
    </method>
    <method name="setErrorThrowable"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.Throwable"/>
    </method>
    <method name="isTempFile" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
    </method>
    <method name="setStatsMap"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="statsMap" type="java.util.Map"/>
    </method>
    <method name="getMultiInputsCounterName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fname" type="java.lang.String"/>
      <param name="index" type="int"/>
      <doc>
      <![CDATA[Returns the counter name for the given input file name

 @param fname the input file name
 @return the counter name]]>
      </doc>
    </method>
    <method name="getMultiStoreCounterName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="store" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore"/>
      <doc>
      <![CDATA[Returns the counter name for the given {@link POStore}

 @param store the POStore
 @return the counter name]]>
      </doc>
    </method>
    <field name="MAP_INPUT_RECORDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_OUTPUT_RECORDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_INPUT_RECORDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_OUTPUT_RECORDS" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="HDFS_BYTES_WRITTEN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="HDFS_BYTES_READ" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILE_BYTES_WRITTEN" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILE_BYTES_READ" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_INPUTS_RECORD_COUNTER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_INPUTS_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_STORE_RECORD_COUNTER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_STORE_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil#TASK_COUNTER_GROUP} instead.">
      <doc>
      <![CDATA[@deprecated use {@link org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil#TASK_COUNTER_GROUP} instead.]]>
      </doc>
    </field>
    <field name="FS_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="use {@link org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil#FS_COUNTER_GROUP} instead.">
      <doc>
      <![CDATA[@deprecated use {@link org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil#FS_COUNTER_GROUP} instead.]]>
      </doc>
    </field>
    <doc>
    <![CDATA[A utility class for Pig Statistics]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.PigStatsUtil -->
  <!-- start class org.apache.pig.tools.pigstats.PigStatusReporter -->
  <class name="PigStatusReporter" extends="org.apache.hadoop.mapreduce.StatusReporter"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.util.Progressable"/>
    <method name="staticDataCleanup"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getInstance" return="org.apache.pig.tools.pigstats.PigStatusReporter"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get singleton instance of the context]]>
      </doc>
    </method>
    <method name="setContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="context" type="org.apache.pig.backend.hadoop.executionengine.TaskContext"/>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="use {@link org.apache.pig.tools.pigstats.PigStatusReporter#incrCounter} instead.
 This method returns MR counter which is not compatible with Tez mode. Use
 incrCounter() that is compatible with both MR and Tez mode.">
      <param name="name" type="java.lang.Enum"/>
      <doc>
      <![CDATA[@deprecated use {@link org.apache.pig.tools.pigstats.PigStatusReporter#incrCounter} instead.
 This method returns MR counter which is not compatible with Tez mode. Use
 incrCounter() that is compatible with both MR and Tez mode.]]>
      </doc>
    </method>
    <method name="getCounter" return="org.apache.hadoop.mapreduce.Counter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="use {@link org.apache.pig.tools.pigstats.PigStatusReporter#incrCounter} instead.
 This method returns MR counter which is not compatible with Tez mode. Use
 incrCounter() that is compatible with both MR and Tez mode.">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[@deprecated use {@link org.apache.pig.tools.pigstats.PigStatusReporter#incrCounter} instead.
 This method returns MR counter which is not compatible with Tez mode. Use
 incrCounter() that is compatible with both MR and Tez mode.]]>
      </doc>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.Enum"/>
      <param name="incr" type="long"/>
    </method>
    <method name="incrCounter" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="group" type="java.lang.String"/>
      <param name="name" type="java.lang.String"/>
      <param name="incr" type="long"/>
    </method>
    <method name="progress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setStatus"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="status" type="java.lang.String"/>
    </method>
    <method name="getProgress" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.PigStatusReporter -->
  <!-- start class org.apache.pig.tools.pigstats.ScriptState -->
  <class name="ScriptState" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ScriptState" type="java.lang.String"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="start" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="state" type="org.apache.pig.tools.pigstats.ScriptState"/>
    </method>
    <method name="start" return="org.apache.pig.tools.pigstats.ScriptState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="use {@link org.apache.pig.tools.pigstats.ScriptState#start(ScriptState)} instead.">
      <param name="commandLine" type="java.lang.String"/>
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
      <doc>
      <![CDATA[@deprecated use {@link org.apache.pig.tools.pigstats.ScriptState#start(ScriptState)} instead.]]>
      </doc>
    </method>
    <method name="registerListener"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="listener" type="org.apache.pig.tools.pigstats.PigProgressNotificationListener"/>
    </method>
    <method name="getAllListeners" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="emitInitialPlanNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.impl.plan.OperatorPlan"/>
    </method>
    <method name="emitLaunchStartedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numJobsToLaunch" type="int"/>
    </method>
    <method name="emitJobsSubmittedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numJobsSubmitted" type="int"/>
    </method>
    <method name="emitJobStartedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="assignedJobId" type="java.lang.String"/>
    </method>
    <method name="emitjobFinishedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobStats" type="org.apache.pig.tools.pigstats.JobStats"/>
    </method>
    <method name="emitJobFailedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobStats" type="org.apache.pig.tools.pigstats.JobStats"/>
    </method>
    <method name="emitOutputCompletedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="outputStats" type="org.apache.pig.tools.pigstats.OutputStats"/>
    </method>
    <method name="emitProgressUpdatedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="progress" type="int"/>
    </method>
    <method name="emitLaunchCompletedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="numJobsSucceeded" type="int"/>
    </method>
    <method name="setScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="file" type="java.io.File"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="script" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="setScriptFeatures"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="plan" type="org.apache.pig.newplan.logical.relational.LogicalPlan"/>
    </method>
    <method name="getHadoopVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigVersion" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFileName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setFileName"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fileName" type="java.lang.String"/>
    </method>
    <method name="getId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setCommandLine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="commandLine" type="java.lang.String"/>
    </method>
    <method name="getCommandLine" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSerializedScript" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScript" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setScript"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="reader" type="java.io.BufferedReader"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="bitSetToLong" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="bs" type="java.util.BitSet"/>
    </method>
    <method name="featureLongToString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="l" type="long"/>
    </method>
    <method name="setPigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pigContext" type="org.apache.pig.impl.PigContext"/>
    </method>
    <method name="getPigContext" return="org.apache.pig.impl.PigContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getScriptFeatures" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="id" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="serializedScript" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="truncatedScript" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="commandLine" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="fileName" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigVersion" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="hadoopVersion" type="java.lang.String"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="scriptFeatures" type="long"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="pigContext" type="org.apache.pig.impl.PigContext"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="listeners" type="java.util.List"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[ScriptStates encapsulates settings for a Pig script that runs on a hadoop
 cluster. These settings are added to all MR jobs spawned by the script and in
 turn are persisted in the hadoop job xml. With the properties already in the
 job xml, users who want to know the relations between the script and MR jobs
 can derive them from the job xmls.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.ScriptState -->
  <!-- start class org.apache.pig.tools.pigstats.ScriptState.AliasVisitor -->
  <class name="ScriptState.AliasVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="ScriptState.AliasVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.util.List, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitLoad"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="load" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLoad"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mergeCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitFilter"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="fl" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFilter"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLocalRearrange"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lr" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPOForEach"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nfe" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitUnion"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="un" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POUnion"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSort"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sort" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitLimit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="lim" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSkewedJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="sk" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSkewedJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.ScriptState.AliasVisitor -->
  <!-- start class org.apache.pig.tools.pigstats.ScriptState.FeatureVisitor -->
  <class name="ScriptState.FeatureVisitor" extends="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="ScriptState.FeatureVisitor" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan, java.util.BitSet"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="visitFRJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POFRJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeJoin"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="join" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeJoin"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitMergeCoGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mergeCoGrp" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POMergeCogroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitCollectedGroup"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POCollectedGroup"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDistinct"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="distinct" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODistinct"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="stream" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStream"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitSplit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="split" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSplit"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitDemux"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="demux" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.PODemux"/>
      <exception name="VisitorException" type="org.apache.pig.impl.plan.VisitorException"/>
    </method>
    <method name="visitPartialAgg"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="partAgg" type="org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPartialAgg"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.ScriptState.FeatureVisitor -->
  <!-- start class org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE -->
  <class name="ScriptState.PIG_FEATURE" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="UNKNOWN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGE_JOIN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGE_SPARSE_JOIN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REPLICATED_JOIN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SKEWED_JOIN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="HASH_JOIN" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COLLECTED_GROUP" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MERGE_COGROUP" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COGROUP" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="GROUP_BY" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ORDER_BY" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RANK" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DISTINCT" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="STREAMING" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SAMPLER" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INDEXER" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MULTI_QUERY" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FILTER" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_ONLY" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CROSS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LIMIT" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="UNION" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COMBINER" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NATIVE" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_PARTIALAGG" type="org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Features used in a Pig script]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.ScriptState.PIG_FEATURE -->
  <!-- start class org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY -->
  <class name="ScriptState.PIG_PROPERTY" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="protected"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="SCRIPT_ID" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCRIPT" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COMMAND_LINE" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="HADOOP_VERSION" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="VERSION" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="INPUT_DIRS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAP_OUTPUT_DIRS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REDUCE_OUTPUT_DIRS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_PARENTS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_FEATURE" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SCRIPT_FEATURES" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_ALIAS" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="JOB_ALIAS_LOCATION" type="org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Keys of Pig settings added to Jobs]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.ScriptState.PIG_PROPERTY -->
</package>
<package name="org.apache.pig.tools.pigstats.mapreduce">
  <!-- start class org.apache.pig.tools.pigstats.mapreduce.MRJobStats -->
  <class name="MRJobStats" extends="org.apache.pig.tools.pigstats.JobStats"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="getJobId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberMaps" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberReduces" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgREduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecs" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHadoopCounters" return="org.apache.hadoop.mapred.Counters"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiStoreCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiInputCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAliasLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFeature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="SUCCESS_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FAILURE_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[This class encapsulates the runtime statistics of a MapReduce job.
 Job statistics is collected when job is completed.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.mapreduce.MRJobStats -->
  <!-- start class org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil -->
  <class name="MRPigStatsUtil" extends="org.apache.pig.tools.pigstats.PigStatsUtil"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRPigStatsUtil"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getMultiStoreCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapred.jobcontrol.Job"/>
      <param name="jobClient" type="org.apache.hadoop.mapred.JobClient"/>
      <param name="counterName" type="java.lang.String"/>
      <doc>
      <![CDATA[Returns the count for the given counter name in the counter group
 'MultiStoreCounters'

 @param job the MR job
 @param jobClient the Hadoop job client
 @param counterName the counter name
 @return the count of the given counter name]]>
      </doc>
    </method>
    <method name="startCollection"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pc" type="org.apache.pig.impl.PigContext"/>
      <param name="client" type="org.apache.hadoop.mapred.JobClient"/>
      <param name="jcc" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler"/>
      <param name="plan" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"/>
      <doc>
      <![CDATA[Starts collecting statistics for the given MR plan

 @param pc the Pig context
 @param client the Hadoop job client
 @param jcc the job compiler
 @param plan the MR plan]]>
      </doc>
    </method>
    <method name="stopCollection"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="display" type="boolean"/>
      <doc>
      <![CDATA[Stops collecting statistics for a MR plan

 @param display if true, log collected statistics in the Pig log
      file at INFO level]]>
      </doc>
    </method>
    <method name="addJobStats" return="org.apache.pig.tools.pigstats.JobStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapred.jobcontrol.Job"/>
      <doc>
      <![CDATA[Add stats for a new Job, which doesn't yet need to be completed.

 @param job the job being run
 @return JobStats for the job]]>
      </doc>
    </method>
    <method name="displayStatistics"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Logs the statistics in the Pig log file at INFO level]]>
      </doc>
    </method>
    <method name="updateJobMroMap"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jobMroMap" type="java.util.Map"/>
      <doc>
      <![CDATA[Updates the {@link JobGraph} of the {@link PigStats}. The initial
 {@link JobGraph} is created without job ids using {@link MROperPlan},
 before any job is submitted for execution. The {@link JobGraph} then
 is updated with job ids after jobs are executed.

 @param jobMroMap the map that maps {@link Job}s to {@link MapReduceOper}s]]>
      </doc>
    </method>
    <method name="accumulateStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="jc" type="org.apache.hadoop.mapred.jobcontrol.JobControl"/>
      <doc>
      <![CDATA[Updates the statistics after a patch of jobs is done

 @param jc the job control]]>
      </doc>
    </method>
    <method name="setBackendException"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="job" type="org.apache.hadoop.mapred.jobcontrol.Job"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <method name="addNativeJobStats" return="org.apache.pig.tools.pigstats.mapreduce.MRJobStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="org.apache.pig.tools.pigstats.PigStats"/>
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.NativeMapReduceOper"/>
      <param name="success" type="boolean"/>
    </method>
    <method name="addNativeJobStats" return="org.apache.pig.tools.pigstats.mapreduce.MRJobStats"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ps" type="org.apache.pig.tools.pigstats.PigStats"/>
      <param name="mr" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.NativeMapReduceOper"/>
      <param name="success" type="boolean"/>
      <param name="e" type="java.lang.Exception"/>
    </method>
    <field name="TASK_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FS_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A utility class for Pig Statistics]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil -->
  <!-- start class org.apache.pig.tools.pigstats.mapreduce.MRScriptState -->
  <class name="MRScriptState" extends="org.apache.pig.tools.pigstats.ScriptState"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="MRScriptState" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.pig.tools.pigstats.mapreduce.MRScriptState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addSettingsToConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="addWorkflowAdjacenciesToConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mrop" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.plans.MROperPlan"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <method name="getAliasLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <method name="getPigFeature" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="mro" type="org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceOper"/>
    </method>
    <doc>
    <![CDATA[ScriptStates encapsulates settings for a Pig script that runs on a hadoop
 cluster. These settings are added to all MR jobs spawned by the script and
 in turn are persisted in the hadoop job xml. With the properties already in
 the job xml, users who want to know the relations between the script and MR
 jobs can derive them from the job xmls.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.mapreduce.MRScriptState -->
  <!-- start class org.apache.pig.tools.pigstats.mapreduce.SimplePigStats -->
  <class name="SimplePigStats" extends="org.apache.pig.tools.pigstats.PigStats"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="SimplePigStats"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getAllErrorMessages" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllStats" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEmbedded" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJobClient" return="org.apache.hadoop.mapred.JobClient"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[SimplePigStats encapsulates the statistics collected from a running script.
 It includes status of the execution, the DAG of its MR jobs, as well as
 information about outputs and inputs of the script.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.mapreduce.SimplePigStats -->
</package>
<package name="org.apache.pig.tools.pigstats.tez">
  <!-- start class org.apache.pig.tools.pigstats.tez.PigTezProgressNotificationListener -->
  <class name="PigTezProgressNotificationListener" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.tools.pigstats.PigProgressNotificationListener"/>
    <constructor name="PigTezProgressNotificationListener"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="dagLaunchNotification"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="dagId" type="java.lang.String"/>
      <param name="dagPlan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <param name="numVerticesToLaunch" type="int"/>
      <doc>
      <![CDATA[Invoked just before launching a Tez DAG spawned by the script.

 @param scriptId the unique id of the script
 @param dagId the unique name of the Tez DAG
 @param dagPlan the OperatorPlan that is to be executed
 @param numVerticesToLaunch the total number of vertices spawned by the Tez DAG]]>
      </doc>
    </method>
    <method name="dagStartedNotification"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="dagId" type="java.lang.String"/>
      <param name="assignedApplicationId" type="java.lang.String"/>
      <doc>
      <![CDATA[Invoked after a Tez DAG is started.

 @param scriptId the unique id of the script
 @param dagId the unique name of the Tez DAG
 @param assignedApplicationId
            the YARN application id for the Tez DAG. More than one Tez DAG
            can share same application ID if session reuse is turned on.
            Session reuse is turned on by default]]>
      </doc>
    </method>
    <method name="dagProgressNotification"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="dagId" type="java.lang.String"/>
      <param name="numVerticesCompleted" type="int"/>
      <param name="progress" type="int"/>
      <doc>
      <![CDATA[Invoked to update the execution progress.

 @param scriptId the unique id of the script
 @param dagId the unique name of the Tez DAG
 @param numVerticesCompleted the number of vertices completed so far
 @param progress the percentage of the execution progress based on total number of tasks of all vertices]]>
      </doc>
    </method>
    <method name="dagCompletedNotification"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="scriptId" type="java.lang.String"/>
      <param name="dagId" type="java.lang.String"/>
      <param name="success" type="boolean"/>
      <param name="tezDAGStats" type="org.apache.pig.tools.pigstats.tez.TezDAGStats"/>
      <doc>
      <![CDATA[Invoked just after the Tez DAGs is completed (successful or failed).
 @param scriptId the unique id of the script
 @param dagId the unique name of the Tez DAG
 @param success true if the Tez DAG was successful, false otherwise
 @param tezDAGStats the stats information for the DAG]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Should be implemented by an object that wants to receive notifications
 from {@link PigRunner}.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.PigTezProgressNotificationListener -->
  <!-- start class org.apache.pig.tools.pigstats.tez.TezDAGStats -->
  <class name="TezDAGStats" extends="org.apache.pig.tools.pigstats.JobStats"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezDAGStats" type="java.lang.String, org.apache.pig.tools.pigstats.PigStats.JobGraph, java.util.Map, java.lang.StringBuilder"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="getVertexStats" return="org.apache.pig.tools.pigstats.tez.TezVertexStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="vertexName" type="java.lang.String"/>
    </method>
    <method name="accumulateStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezJob" type="org.apache.pig.backend.hadoop.executionengine.tez.TezJob"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Updates the statistics after a DAG is finished.]]>
      </doc>
    </method>
    <method name="getJobId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setJobId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="appId" type="java.lang.String"/>
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberMaps" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberReduces" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgREduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecs" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHadoopCounters" return="org.apache.hadoop.mapred.Counters"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiStoreCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiInputCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="DAG_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FS_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="TASK_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PIG_COUNTER_GROUP" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SUCCESS_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FAILURE_HEADER" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.TezDAGStats -->
  <!-- start class org.apache.pig.tools.pigstats.tez.TezPigScriptStats -->
  <class name="TezPigScriptStats" extends="org.apache.pig.tools.pigstats.PigStats"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezPigScriptStats" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="initialize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanContainer" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainer"/>
    </method>
    <method name="finish"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accumulateStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezJob" type="org.apache.pig.backend.hadoop.executionengine.tez.TezJob"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Updates the statistics after a DAG is finished.]]>
      </doc>
    </method>
    <method name="addTezJobStatsForNative" return="org.apache.pig.tools.pigstats.tez.TezDAGStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="tezOper" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.NativeTezOper"/>
      <param name="success" type="boolean"/>
    </method>
    <method name="getVertexStats" return="org.apache.pig.tools.pigstats.tez.TezVertexStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="vertexName" type="java.lang.String"/>
    </method>
    <method name="isEmbedded" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getJobClient" return="org.apache.hadoop.mapred.JobClient"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllStats" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAllErrorMessages" return="java.util.List"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.TezPigScriptStats -->
  <!-- start class org.apache.pig.tools.pigstats.tez.TezScriptState -->
  <class name="TezScriptState" extends="org.apache.pig.tools.pigstats.ScriptState"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezScriptState" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="get" return="org.apache.pig.tools.pigstats.tez.TezScriptState"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="registerListener"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="listener" type="org.apache.pig.tools.pigstats.PigProgressNotificationListener"/>
    </method>
    <method name="dagLaunchNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="dagPlan" type="org.apache.pig.impl.plan.OperatorPlan"/>
      <param name="numVerticesToLaunch" type="int"/>
    </method>
    <method name="dagStartedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="assignedApplicationId" type="java.lang.String"/>
    </method>
    <method name="dagProgressNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="numVerticesCompleted" type="int"/>
      <param name="progress" type="int"/>
    </method>
    <method name="dagCompletedNotification"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="tezDAGStats" type="org.apache.pig.tools.pigstats.tez.TezDAGStats"/>
    </method>
    <method name="addDAGSettingsToConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="addVertexSettingsToConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="addWorkflowAdjacenciesToConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlan" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="setDAGScriptInfo" return="org.apache.pig.tools.pigstats.tez.TezScriptState.TezDAGScriptInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezPlanNode" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezPlanContainerNode"/>
    </method>
    <method name="getDAGScriptInfo" return="org.apache.pig.tools.pigstats.tez.TezScriptState.TezDAGScriptInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="dagName" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[ScriptStates encapsulates settings for a Pig script that runs on a hadoop
 cluster. These settings are added to all Tez jobs spawned by the script and
 in turn are persisted in the hadoop job xml. With the properties already in
 the job xml, users who want to know the relations between the script and Tez
 jobs can derive them from the job xmls.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.TezScriptState -->
  <!-- start class org.apache.pig.tools.pigstats.tez.TezScriptState.TezDAGScriptInfo -->
  <class name="TezScriptState.TezDAGScriptInfo" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezScriptState.TezDAGScriptInfo" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAliasLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPigFeatures" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAlias" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="getAliasLocation" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
    <method name="getPigFeatures" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="tezOp" type="org.apache.pig.backend.hadoop.executionengine.tez.plan.TezOperator"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.TezScriptState.TezDAGScriptInfo -->
  <!-- start class org.apache.pig.tools.pigstats.tez.TezVertexStats -->
  <class name="TezVertexStats" extends="org.apache.pig.tools.pigstats.JobStats"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TezVertexStats" type="java.lang.String, org.apache.pig.tools.pigstats.PigStats.JobGraph, boolean"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getJobId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accept"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="v" type="org.apache.pig.newplan.PlanVisitor"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <method name="getDisplayString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="hasLoadOrStore" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="accumulateStats"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="status" type="org.apache.tez.dag.api.client.VertexStatus"/>
      <param name="parallelism" type="int"/>
    </method>
    <method name="getCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getParallelism" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addInputStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addOutputStatistics"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberMaps" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumberReduces" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgMapTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMaxReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMinReduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getAvgREduceTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMapOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceInputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getReduceOutputRecords" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getSMMSpillCount" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountObjects" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProactiveSpillCountRecs" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getHadoopCounters" return="org.apache.hadoop.mapred.Counters"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiStoreCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMultiInputCounters" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.tools.pigstats.tez.TezVertexStats -->
</package>
<package name="org.apache.pig.tools.streams">
  <!-- start class org.apache.pig.tools.streams.StreamGenerator -->
  <class name="StreamGenerator" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.awt.event.ActionListener"/>
    <constructor name="StreamGenerator"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="actionPerformed"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="event" type="java.awt.event.ActionEvent"/>
    </method>
    <method name="main"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="args" type="java.lang.String[]"/>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.streams.StreamGenerator -->
</package>
<package name="org.apache.pig.tools.timer">
  <!-- start class org.apache.pig.tools.timer.PerformanceTimer -->
  <class name="PerformanceTimer" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="start"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Start the timer.]]>
      </doc>
    </method>
    <method name="stop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Stop the timer.]]>
      </doc>
    </method>
    <method name="print"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.PrintStream"/>
      <doc>
      <![CDATA[Dump the total time, total number of starts and stops, and average run time of the
 timer to an output stream.
 @param out output stream to write info to.]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.pig.tools.timer.PerformanceTimer -->
  <!-- start class org.apache.pig.tools.timer.PerformanceTimerFactory -->
  <class name="PerformanceTimerFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getPerfTimerFactory" return="org.apache.pig.tools.timer.PerformanceTimerFactory"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the timer factory.
 @return timer factory.]]>
      </doc>
    </method>
    <method name="getTimer" return="org.apache.pig.tools.timer.PerformanceTimer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Get a performance timer.  If the indicated timer does not exist, it will be
 created.  If a timer of that name already exists, it will be returned.
 @param name Name of the timer to return.
 @return the timer.]]>
      </doc>
    </method>
    <method name="dumpTimers"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.PrintStream"/>
      <doc>
      <![CDATA[Call print on all of the known performance timers.
 @param out output stream to dump to]]>
      </doc>
    </method>
    <method name="dumpTimers"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.pig.tools.timer.PerformanceTimerFactory -->
</package>
<package name="org.apache.pig.validator">
  <!-- start class org.apache.pig.validator.BlackAndWhitelistFilter -->
  <class name="BlackAndWhitelistFilter" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.validator.PigCommandFilter"/>
    <constructor name="BlackAndWhitelistFilter" type="org.apache.pig.PigServer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="BlackAndWhitelistFilter" type="org.apache.pig.impl.PigContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="command" type="org.apache.pig.validator.PigCommandFilter.Command"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[This Filter handles black and whitelisting of Pig commands.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.validator.BlackAndWhitelistFilter -->
  <!-- start class org.apache.pig.validator.BlackAndWhitelistValidator -->
  <class name="BlackAndWhitelistValidator" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.pig.newplan.logical.rules.LogicalRelationalNodeValidator"/>
    <constructor name="BlackAndWhitelistValidator" type="org.apache.pig.impl.PigContext, org.apache.pig.newplan.OperatorPlan"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
    </method>
    <doc>
    <![CDATA[This validator walks through the list of operators defined in {@link PigConfiguration#PIG_BLACKLIST} and
 {@link PigConfiguration#PIG_WHITELIST} and checks whether the operation is permitted. In case these
 properties are not defined (default), we let everything pass as usual.]]>
    </doc>
  </class>
  <!-- end class org.apache.pig.validator.BlackAndWhitelistValidator -->
  <!-- start interface org.apache.pig.validator.PigCommandFilter -->
  <interface name="PigCommandFilter"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="validate"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="command" type="org.apache.pig.validator.PigCommandFilter.Command"/>
      <exception name="FrontendException" type="org.apache.pig.impl.logicalLayer.FrontendException"/>
      <doc>
      <![CDATA[Validates a Pig command as defined by {@link Command}.
 
 @param command
 @throws IOException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Interface defining Pig commands and a
 {@link PigCommandFilter#validate(Command)} method to operate on it]]>
    </doc>
  </interface>
  <!-- end interface org.apache.pig.validator.PigCommandFilter -->
  <!-- start class org.apache.pig.validator.PigCommandFilter.Command -->
  <class name="PigCommandFilter.Command" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.pig.validator.PigCommandFilter.Command[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.pig.validator.PigCommandFilter.Command"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
    <field name="DEFINE" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DECLARE" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="EXPLAIN" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="EXEC" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="FS" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="IMPORT" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="LS" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SH" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MAPREDUCE" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="REGISTER" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="SET" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CAT" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CD" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DUMP" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="KILL" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="PWD" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MV" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="CP" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COPYTOLOCAL" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="COPYFROMLOCAL" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="MKDIR" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RM" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RMF" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="RUN" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ILLUSTRATE" type="org.apache.pig.validator.PigCommandFilter.Command"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.pig.validator.PigCommandFilter.Command -->
</package>

</api>
