All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.redhat.ceylon.compiler.java.codegen.AnnotationTerm Maven / Gradle / Ivy

There is a newer version: 1.3.3
Show newest version
package com.redhat.ceylon.compiler.java.codegen;

import com.redhat.ceylon.langtools.tools.javac.tree.JCTree.JCAnnotation;
import com.redhat.ceylon.langtools.tools.javac.tree.JCTree.JCExpression;
import com.redhat.ceylon.langtools.tools.javac.util.ListBuffer;

/**
 * Represents an argument in the invocation of an annotation class or
 * annotation constructor
 */
public abstract class AnnotationTerm {
    
    /**
     * On the JVM the number of method parameters is limited to 255
     * So 0-255 are for unmodified parameter expressions being used as arguments
     * 256-511 are for spread parameter expressions being used as arguments
     */
    public abstract int encode(AbstractTransformer gen, ListBuffer instantiations);
    
    public abstract JCExpression makeAnnotationArgumentValue(
            ExpressionTransformer exprGen, AnnotationInvocation ai,
            com.redhat.ceylon.langtools.tools.javac.util.List fieldPath);
    
    public abstract com.redhat.ceylon.langtools.tools.javac.util.List makeDpmAnnotations(ExpressionTransformer exprGen);
    
    public abstract com.redhat.ceylon.langtools.tools.javac.util.List makeExprs(ExpressionTransformer exprGen, com.redhat.ceylon.langtools.tools.javac.util.List value);

    public abstract com.redhat.ceylon.langtools.tools.javac.util.List makeExprAnnotations(
            ExpressionTransformer exprGen, AnnotationInvocation toplevel,
            com.redhat.ceylon.langtools.tools.javac.util.List fieldPath);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy