package org.jboss.windup.rules.apps.java.scan.ast;

/**
 * Designates a location where a given {@link JavaTypeReferenceModel} was found in a Java source file.
 * 
 * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
 */
public enum TypeReferenceLocation
{
    IMPORT("Import of"),
    TYPE("Declares type"),
    METHOD("Declares method"),
    INHERITANCE("Inherits type"),
    CONSTRUCTOR_CALL("Constructing type"),
    METHOD_CALL("Calls method"),
    METHOD_PARAMETER("Method parameter"),
    ANNOTATION("References annotation"),
    RETURN_TYPE("Returns type"),
    INSTANCE_OF("Instance of type"),
    THROWS_METHOD_DECLARATION("Throws"),
    THROW_STATEMENT("Throw"),
    CATCH_EXCEPTION_STATEMENT("Catches exception"),
    FIELD_DECLARATION("Declares field"),
    VARIABLE_DECLARATION("Declares variable"),
    IMPLEMENTS_TYPE("Implements type");

    private String readablePrefix;

    private TypeReferenceLocation(String readablePrefix)
    {
        this.readablePrefix = readablePrefix;
    }

    /**
     * Returns the enumeration as a human readable value.
     */
    public String toReadablePrefix()
    {
        return this.readablePrefix;
    }
}

@@ -280,560 +280,1659 @@
     
-IMPORT(%22Import of%22),%0A    TYPE(%22Declares type%22),%0A    METHOD(%22Declares method%22),%0A    INHERITANCE(%22Inherits type%22),%0A    CONSTRUCTOR_CALL(%22Constructing type%22),%0A    METHOD_CALL(%22Calls method%22),%0A    METHOD_PARAMETER(%22Method parameter%22),%0A    ANNOTATION(%22References annotation%22),%0A    RETURN_TYPE(%22Returns type%22),%0A    INSTANCE_OF(%22Instance of type%22),%0A    THROWS_METHOD_DECLARATION(%22Throws%22),%0A    THROW_STATEMENT(%22Throw%22),%0A    CATCH_EXCEPTION_STATEMENT(%22Catches exception%22),%0A    FIELD_DECLARATION(%22Declares field%22),%0A    VARIABLE_DECLARATION(%22Declares variable%22),
+/**%0A     *  A Java class imports the type.%0A     */%0A    IMPORT(%22Import of%22),%0A    /**%0A     * A Java class declares the type.%0A     */%0A    TYPE(%22Declares type%22),%0A    /**%0A     * A Java class declares the referenced method.%0A     */%0A    METHOD(%22Declares method%22),%0A    /**%0A     * A Java class inherits the type reference.%0A     */%0A    INHERITANCE(%22Inherits type%22),%0A    /**%0A     * A Java class constructs the type reference.%0A     */%0A    CONSTRUCTOR_CALL(%22Constructing type%22),%0A    /**%0A     * A Java class calls the referenced method.%0A     */%0A    METHOD_CALL(%22Calls method%22),%0A    /**%0A     * A Java class declares the referenced method parameter.%0A     */%0A    METHOD_PARAMETER(%22Method parameter%22),%0A    /**%0A     * A Java class references the annotation.%0A     */%0A    ANNOTATION(%22References annotation%22),%0A    /**%0A     * A Java class returns the type reference.%0A     */%0A    RETURN_TYPE(%22Returns type%22),%0A    /**%0A     * A Java class is an instance of the type reference.%0A     */%0A    INSTANCE_OF(%22Instance of type%22),%0A    /**%0A     * A Java class declares it throws the type reference.%0A     */%0A    THROWS_METHOD_DECLARATION(%22Throws%22),%0A    /**%0A     * A method in the Java class throws the type reference.%0A     */%0A    THROW_STATEMENT(%22Throw%22),%0A    /**%0A     * A Java class method catches the type reference.%0A     */%0A    CATCH_EXCEPTION_STATEMENT(%22Catches exception%22),%0A    /**%0A     * A Java class declares a field of the type reference.%0A     */%0A    FIELD_DECLARATION(%22Declares field%22),%0A    /**%0A     * A Java class declares a variable of the type reference.%0A     */%0A    VARIABLE_DECLARATION(%22Declares variable%22),%0A    /**%0A     * A Java class implements the type reference.%0A     */
 %0A   

Add JavaDoc for TypeReferenceLocation enum values