package scenelib.annotations.field;

/**
 * A {@link ClassTokenAFT} is the type of an annotation field that holds a
 * class token (something like <code>{@link String}.class</code>).
 * Even if the field type was originally some parameterization
 * <code>{@link Class}&lt;...&gt;</code>, the annotation scene library
 * represents it as a plain {@link ClassTokenAFT}.  Use the singleton
 * {@link #ctaft}.
 */
public final class ClassTokenAFT extends ScalarAFT {

    // On 2006.07.07 we decided against parameterizations because
    // class files that use annotations don't contain them.

    // The type arguments, if any, of the field type
    // Could be "" or "<HashMap>" (stupid) or "<? extends PrettyPrinter>", etc.,
    // but not null.
    /* public final String parameterization; */

    private ClassTokenAFT() {}

    /**
     * The singleton {@link ClassTokenAFT}.
     */
    public static final ClassTokenAFT ctaft = new ClassTokenAFT();

    // public ClassTokenAFT(/* String parameterization */) {
    //    /* this.parameterization = parameterization; */
    // }

    @Override
    public boolean isValidValue(Object o) {
        return o instanceof java.lang.Class;
    }

    @Override
    public String toString() {
        return "Class"/* + parameterization */;
    }

    @Override
    public String format(Object o) {
        return ((java.lang.Class<?>)o).getName() + ".class";
    }


    @Override
    public <R, T> R accept(AFTVisitor<R, T> v, T arg) {
        return v.visitClassTokenAFT(this, arg);
    }
}

@@ -176,16 +176,59 @@
 code%3E).%0A
+ *%0A * Use the singleton %7B@link #ctaft%7D.%0A *%0A
  * Even 
@@ -407,46 +407,8 @@
 FT%7D.
-  Use the singleton%0A * %7B@link #ctaft%7D.
 %0A */
@@ -466,339 +466,8 @@
  %7B%0A%0A
-    // On 2006.07.07 we decided against parameterizations because%0A    // class files that use annotations don't contain them.%0A%0A    // The type arguments, if any, of the field type%0A    // Could be %22%22 or %22%3CHashMap%3E%22 (stupid) or %22%3C? extends PrettyPrinter%3E%22, etc.,%0A    // but not null.%0A    /* public final String parameterization; */%0A%0A
     
@@ -626,137 +626,8 @@
 );%0A%0A
-    // public ClassTokenAFT(/* String parameterization */) %7B%0A    //    /* this.parameterization = parameterization; */%0A    // %7D%0A%0A
     
@@ -803,32 +803,8 @@
 ass%22
-/* + parameterization */
 ;%0A  

Remove commented-out code