/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.functor;

/**
 * Functor marker interface.  All provided functor interfaces extend this interface.
 * <p>
 * Implementors are encouraged but not required to make their functors
 * {@link java.io.Serializable Serializable}.
 * </p>
 *
 * @since 1.0
 * @version $Revision$ $Date$
 */
public interface Functor {

    /**
     * Returns a human readable description of this functor.
     * Implementators are strongly encouraged but not
     * strictly required to override the default {@link Object}
     * implementation of this method.
     *
     * @return a human readable description of this functor
     */
    String toString();

    /**
     * Returns a hash code for this functor adhering to the
     * general {@link Object#hashCode Object.hashCode} contract.
     * Implementators are strongly encouraged but not
     * strictly required to override the default {@link Object}
     * implementation of this method.
     *
     * @see #equals
     * @return a hash code for this functor
     */
    int hashCode();

    /**
     * Indicates whether some other object is &quot;equal to&quot;
     * this functor.  This method must adhere to
     * general {@link Object#equals Object.equals} contract.
     * Additionally, this method can return
     * <tt>true</tt> <i>only</i> if the specified Object implements
     * the same functor interface and is known to produce the same
     * results and/or side-effects for the same arguments (if any).
     * <p>
     * While implementators are strongly encouraged to override
     * the default Object implementation of this method,
     * note that the default Object implementation
     * does in fact adhere to the functor <code>equals</code> contract.
     * </p>
     * @param that the object to compare this functor to
     * @see #hashCode
     * @return <code>true</code> iff the given object implements
     *         this functor interface, and is known to produce the same
     *         results and/or side-effects for the same arguments
     *         (if any).
     */
    boolean equals(Object that);
}

@@ -936,1613 +936,370 @@
 %0A * 
-Implementors are encouraged but not required to make their functors%0A * %7B@link java.io.Serializable Serializable%7D.%0A * %3C/p%3E%0A *%0A * @since 1.0%0A * @version $Revision$ $Date$%0A */%0Apublic interface Functor %7B%0A%0A    /**%0A     * Returns a human readable description of this functor.%0A     * Implementators are strongly encouraged but not%0A     * strictly required to override the default %7B@link Object%7D%0A     * implementation of this method.%0A     *%0A     * @return a human readable description of this functor%0A     */%0A    String toString();%0A%0A    /**%0A     * Returns a hash code for this functor adhering to the%0A     * general %7B@link Object#hashCode Object.hashCode%7D contract.%0A     * Implementators are strongly encouraged but not%0A     * strictly required to override the default %7B@link Object%7D%0A     * implementation of this method.%0A     *%0A     * @see #equals%0A     * @return a hash code for this functor%0A     */%0A    int hashCode();%0A%0A    /**
+While not strictly required,%0A * it is %3Cem%3Eencouraged%3C/em%3E that functor implementations:%0A * %3Cul%3E%0A *   %3Cli%3EImplement %7B@link java.io.Serializable Serializable%7D%3C/li%3E%0A *   %3Cli%3EOverride %7B@link java.lang.Object#equals(java.lang.Object)%7D%3C/li%3E%0A *   %3Cli%3EOverride %7B@link java.lang.Object#hashCode()%7D%3C/li%3E
 %0A 
+*
    
- * Indicates whether some other object is &quot;equal to&quot;%0A     * this functor.  This method must adhere to%0A     * general %7B@link Object#equals Object.equals%7D contract.%0A     * Additionally, this method can return%0A     * %3Ctt%3Etrue%3C/tt%3E %3Ci%3Eonly%3C/i%3E if the specified Object implements%0A     * the same functor interface and is known to produce the same%0A     * results and/or side-effects for the same arguments (if any).%0A     * %3Cp%3E%0A     * While implementators are strongly encouraged to override%0A     * the default Object implementation of this method,%0A     * note that the default Object implementation%0A     * does in fact adhere to the functor %3Ccode%3Eequals%3C/code%3E contract.%0A    
+%3Cli%3EOverride %7B@link java.lang.Object#toString()%7D%3C/li%3E%0A * %3C/ul%3E%0A
  * %3C
@@ -1307,353 +1307,83 @@
 p%3E%0A 
-   
+*%0A
  * @
-param that the object to compare this functor to%0A     * @see #hashCode%0A     * @return %3Ccode%3Etrue%3C/code%3E iff the given object implements%0A     *         this functor interface, and is known to produce the same%0A     *         results and/or side-effects for the same arguments%0A     *         (if any).%0A     */%0A    boolean equals(Object that);
+since 1.0%0A * @version $Revision$ $Date$%0A */%0Apublic interface Functor %7B
 %0A%7D%0A

Remove method definitions from oacf.Functor interface