Class ExpressionTemplate

java.lang.Object
com.google.errorprone.refaster.Template<com.google.errorprone.refaster.ExpressionTemplateMatch>
com.google.errorprone.refaster.ExpressionTemplate
All Implemented Interfaces:
Unifiable<com.sun.tools.javac.tree.JCTree.JCExpression>, Serializable

public abstract class ExpressionTemplate extends Template<com.google.errorprone.refaster.ExpressionTemplateMatch> implements Unifiable<com.sun.tools.javac.tree.JCTree.JCExpression>
Implementation of a template to match and replace an expression anywhere in an AST.
Author:
lowasser@google.com (Louis Wasserman)
See Also:
  • Constructor Details

    • ExpressionTemplate

      public ExpressionTemplate()
  • Method Details

    • create

      public static ExpressionTemplate create(UExpression expression, UType returnType)
    • create

      public static ExpressionTemplate create(Map<String,? extends UType> expressionArgumentTypes, UExpression expression, UType returnType)
    • create

      public static ExpressionTemplate create(com.google.common.collect.ImmutableClassToInstanceMap<Annotation> annotations, Iterable<UTypeVar> typeVariables, Map<String,? extends UType> expressionArgumentTypes, UExpression expression, UType returnType)
    • generateNegation

      public boolean generateNegation()
    • negation

      public ExpressionTemplate negation()
    • match

      public Iterable<com.google.errorprone.refaster.ExpressionTemplateMatch> match(com.sun.tools.javac.tree.JCTree target, com.sun.tools.javac.util.Context context)
      Returns the matches of this template against the specified target AST.
      Specified by:
      match in class Template<com.google.errorprone.refaster.ExpressionTemplateMatch>
    • unify

      public Choice<Unifier> unify(com.sun.tools.javac.tree.JCTree.JCExpression target, Unifier unifier)
      Description copied from interface: Unifiable
      Returns all valid unification paths (if any) from this Unifier that unify this with target.
      Specified by:
      unify in interface Unifiable<com.sun.tools.javac.tree.JCTree.JCExpression>
    • replace

      public Fix replace(com.google.errorprone.refaster.ExpressionTemplateMatch match)
      Generates a SuggestedFix replacing the specified match (usually of another template) with this template.
      Specified by:
      replace in class Template<com.google.errorprone.refaster.ExpressionTemplateMatch>