You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by bi...@apache.org on 2013/04/02 18:00:57 UTC

svn commit: r1463607 [2/2] - in /pig/trunk: build.xml lib/jdiff/pig_0.11.0.xml lib/jdiff/pig_0.11.1.xml

Added: pig/trunk/lib/jdiff/pig_0.11.1.xml
URL: http://svn.apache.org/viewvc/pig/trunk/lib/jdiff/pig_0.11.1.xml?rev=1463607&view=auto
==============================================================================
--- pig/trunk/lib/jdiff/pig_0.11.1.xml (added)
+++ pig/trunk/lib/jdiff/pig_0.11.1.xml Tue Apr  2 16:00:56 2013
@@ -0,0 +1,66796 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<!-- on Fri Mar 22 02:19:11 EDT 2013 -->
+
+<api
+  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+  xsi:noNamespaceSchemaLocation='api.xsd'
+  name="pig 0.11.1"
+  jdversion="1.0.9">
+
+<!--  Command line arguments =  -doclet jdiff.JDiff -docletpath /root/pig-0.11.1-release/build/ivy/lib/Pig/jdiff-1.0.9.jar -classpath /root/.ivy2/cache/com.sun.jersey/jersey-core/bundles/jersey-core-1.8.jar:/root/.ivy2/cache/org.apache.hadoop/hadoop-core/jars/hadoop-core-1.0.0.jar:/root/.ivy2/cache/commons-cli/commons-cli/jars/commons-cli-1.2.jar:/root/.ivy2/cache/xmlenc/xmlenc/jars/xmlenc-0.52.jar:/root/.ivy2/cache/commons-httpclient/commons-httpclient/jars/commons-httpclient-3.0.1.jar:/root/.ivy2/cache/junit/junit/jars/junit-4.11.jar:/root/.ivy2/cache/org.hamcrest/hamcrest-core/jars/hamcrest-core-1.3.jar:/root/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar:/root/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.4.jar:/root/.ivy2/cache/org.apache.commons/commons-math/jars/commons-math-2.1.jar:/root/.ivy2/cache/commons-configuration/commons-configuration/jars/commons-configuration-1.6.jar:/root/.ivy2/cache/commons-collections/commons-co
 llections/jars/commons-collections-3.2.1.jar:/root/.ivy2/cache/commons-lang/commons-lang/jars/commons-lang-2.4.jar:/root/.ivy2/cache/commons-digester/commons-digester/jars/commons-digester-1.8.jar:/root/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.7.0.jar:/root/.ivy2/cache/commons-beanutils/commons-beanutils-core/jars/commons-beanutils-core-1.8.0.jar:/root/.ivy2/cache/commons-net/commons-net/jars/commons-net-1.4.1.jar:/root/.ivy2/cache/oro/oro/jars/oro-2.0.8.jar:/root/.ivy2/cache/org.mortbay.jetty/jetty/jars/jetty-6.1.26.jar:/root/.ivy2/cache/org.mortbay.jetty/jetty-util/jars/jetty-util-6.1.26.jar:/root/.ivy2/cache/org.mortbay.jetty/servlet-api/jars/servlet-api-2.5-20081211.jar:/root/.ivy2/cache/tomcat/jasper-runtime/jars/jasper-runtime-5.5.12.jar:/root/.ivy2/cache/tomcat/jasper-compiler/jars/jasper-compiler-5.5.12.jar:/root/.ivy2/cache/org.mortbay.jetty/jsp-api-2.1/jars/jsp-api-2.1-6.1.14.jar:/root/.ivy2/cache/org.mortbay.jetty/servlet-api-2.5/ja
 rs/servlet-api-2.5-6.1.14.jar:/root/.ivy2/cache/org.mortbay.jetty/jsp-2.1/jars/jsp-2.1-6.1.14.jar:/root/.ivy2/cache/org.eclipse.jdt/core/jars/core-3.1.1.jar:/root/.ivy2/cache/ant/ant/jars/ant-1.6.5.jar:/root/.ivy2/cache/commons-el/commons-el/jars/commons-el-1.0.jar:/root/.ivy2/cache/net.java.dev.jets3t/jets3t/jars/jets3t-0.7.1.jar:/root/.ivy2/cache/net.sf.kosmosfs/kfs/jars/kfs-0.3.jar:/root/.ivy2/cache/hsqldb/hsqldb/jars/hsqldb-1.8.0.10.jar:/root/.ivy2/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.8.8.jar:/root/.ivy2/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.8.8.jar:/root/.ivy2/cache/org.apache.hadoop/hadoop-test/jars/hadoop-test-1.0.0.jar:/root/.ivy2/cache/org.apache.ftpserver/ftplet-api/bundles/ftplet-api-1.0.0.jar:/root/.ivy2/cache/org.apache.mina/mina-core/bundles/mina-core-2.0.0-M5.jar:/root/.ivy2/cache/org.apache.ftpserver/ftpserver-core/bundles/ftpserver-core-1.0.0.jar:/root/.ivy2/cache/org.apache.ftpserver/ftpserver
 -deprecated/jars/ftpserver-deprecated-1.0.0-M2.jar:/root/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.3.jar:/root/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.1.jar:/root/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.1.jar:/root/.ivy2/cache/log4j/log4j/bundles/log4j-1.2.16.jar:/root/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:/root/.ivy2/cache/org.apache.avro/avro/jars/avro-1.5.3.jar:/root/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.3.jar:/root/.ivy2/cache/org.xerial.snappy/snappy-java/bundles/snappy-java-1.0.3.2.jar:/root/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.1.jar:/root/.ivy2/cache/com.googlecode.json-simple/json-simple/jars/json-simple-1.1.jar:/root/.ivy2/cache/com.jcraft/jsch/jars/jsch-0.1.38.jar:/root/.ivy2/cache/jline/jline/jars/jline-0.9.94.jar:/root/.ivy2/cache/net.java.dev.javacc/javacc/jars/javacc-4.2.jar:/root/.ivy2/cache/org.codehaus.groovy/groovy-all/jars/groovy
 -all-1.8.6.jar:/root/.ivy2/cache/org.fusesource.jansi/jansi/jars/jansi-1.9.jar:/root/.ivy2/cache/joda-time/joda-time/jars/joda-time-1.6.jar:/root/.ivy2/cache/com.google.guava/guava/jars/guava-11.0.jar:/root/.ivy2/cache/org.python/jython-standalone/jars/jython-standalone-2.5.3.jar:/root/.ivy2/cache/rhino/js/jars/js-1.7R2.jar:/root/.ivy2/cache/org.antlr/antlr/jars/antlr-3.4.jar:/root/.ivy2/cache/org.antlr/antlr-runtime/jars/antlr-runtime-3.4.jar:/root/.ivy2/cache/org.antlr/stringtemplate/jars/stringtemplate-3.2.1.jar:/root/.ivy2/cache/antlr/antlr/jars/antlr-2.7.7.jar:/root/.ivy2/cache/org.antlr/ST4/jars/ST4-4.0.4.jar:/root/.ivy2/cache/org.apache.zookeeper/zookeeper/jars/zookeeper-3.3.3.jar:/root/.ivy2/cache/dk.brics.automaton/automaton/jars/automaton-1.11-8.jar:/root/.ivy2/cache/org.jruby/jruby-complete/jars/jruby-complete-1.6.7.jar:/root/.ivy2/cache/org.apache.hbase/hbase/test-jars/hbase-0.90.0-tests.jar:/root/.ivy2/cache/org.apache.hbase/hbase/jars/hbase-0.90.0.jar:/root/.iv
 y2/cache/org.vafer/jdeb/maven-plugins/jdeb-0.8.jar:/root/.ivy2/cache/org.mockito/mockito-all/jars/mockito-all-1.8.4.jar:/root/.ivy2/cache/xalan/xalan/jars/xalan-2.7.1.jar:/root/.ivy2/cache/xalan/serializer/jars/serializer-2.7.1.jar:/root/.ivy2/cache/xerces/xercesImpl/jars/xercesImpl-2.10.0.jar:/root/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.4.01.jar:/root/.ivy2/cache/org.jboss.netty/netty/bundles/netty-3.2.2.Final.jar:/root/.ivy2/cache/org.apache.hive/hive-exec/jars/hive-exec-0.8.0.jar:/root/pig-0.11.1-release/build/pig-0.11.1-withdependencies.jar -sourcepath /root/pig-0.11.1-release/src -apidir /root/pig-0.11.1-release/lib/jdiff -apiname pig 0.11.1 -->
+<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.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 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="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>
+    <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 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 class org.apache.pig.ExecType -->
+  <class name="ExecType" extends="java.lang.Enum"
+    abstract="false"
+    static="false" final="true" visibility="public"
+    deprecated="not deprecated">
+    <implements name="java.io.Serializable"/>
+    <method name="values" return="org.apache.pig.ExecType[]"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+    </method>
+    <method name="valueOf" return="org.apache.pig.ExecType"
+      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="fromString" return="org.apache.pig.ExecType"
+      abstract="false" native="false" synchronized="false"
+      static="true" final="false" visibility="public"
+      deprecated="not deprecated">
+      <param name="execString" type="java.lang.String"/>
+      <exception name="PigException" type="org.apache.pig.PigException"/>
+      <doc>
+      <![CDATA[Given a string, determine the exec type.
+ @param execString accepted values are 'local', 'mapreduce', and 'mapred'
+ @return exectype as ExecType]]>
+      </doc>
+    </method>
+    <field name="LOCAL" type="org.apache.pig.ExecType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Run everything on the local machine]]>
+      </doc>
+    </field>
+    <field name="MAPREDUCE" type="org.apache.pig.ExecType"
+      transient="false" volatile="false"
+      static="true" final="true" visibility="public"
+      deprecated="not deprecated">
+      <doc>
+      <![CDATA[Use the Hadoop Map/Reduce framework]]>
+      </doc>
+    </field>
+    <doc>
+    <![CDATA[The type of query execution]]>
+    </doc>
+  </class>
+  <!-- end class org.apache.pig.ExecType -->
+  <!-- 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.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.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_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.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 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[]"/>
+      <exception name="IOException" type="java.io.IOException"/>
+      <doc>
+      <![CDATA[Cast data from bytearray to map value.  
+ @param b bytearray to be cast.
+ @return Map 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>
+    <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>
+    <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 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.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"/>

[... 64959 lines stripped ...]