Class NameLogic


  • public class NameLogic
    extends Object
    NameLogic contains a set of static methods to implement the abstraction of a "Name" as defined in Chapter 6 of the JLS. This code could be moved to an interface or base class in a successive version of JavaParser.
    • Constructor Detail

      • NameLogic

        public NameLogic()
    • Method Detail

      • isSimpleName

        public static boolean isSimpleName​(Node node)
        Is the given node a non-qualified name?
        Throws:
        IllegalArgumentException - if the node is not a name
      • isQualifiedName

        public static boolean isQualifiedName​(Node node)
        Is the given node a qualified name?
        Throws:
        IllegalArgumentException - if the node is not a name
      • isAName

        public static boolean isAName​(Node node)
        Does the Node represent a Name?

        Note that while most specific AST classes either always represent names or never represent names there are exceptions as the FieldAccessExpr

      • classifyRole

        public static NameRole classifyRole​(Node name)
        What is the Role of the given name? Does it represent a Declaration or a Reference?

        This classification is purely syntactical, i.e., it does not require symbol resolution. For this reason in the future this could be moved to the core module of JavaParser.

      • syntacticClassificationAccordingToContext

        public static NameCategory syntacticClassificationAccordingToContext​(Node name)
        See JLS 6.5.1 Syntactic Classification of a Name According to Context.

        Most users do not want to call directly this method but call classifyReference instead.

      • nameAsString

        public static String nameAsString​(Node name)
        Return the string representation of the name