Class LongLiteralExpr

All Implemented Interfaces:
NodeWithRange<Node>, NodeWithTokenRange<Node>, Observable, Visitable, HasParentNode<Node>, Cloneable

public class LongLiteralExpr extends LiteralStringValueExpr
All ways to specify a long literal.
  • 8934l
  • 0x01L
  • 022l
  • 0B10101010L
  • 99999999L
Author:
Julio Vilmar Gesser
  • Field Details

    • MAX_63_BIT_UNSIGNED_VALUE_AS_STRING

      public static final String MAX_63_BIT_UNSIGNED_VALUE_AS_STRING
      See Also:
      Constant Field Values
    • MAX_63_BIT_UNSIGNED_VALUE_AS_BIG_INTEGER

      public static final BigInteger MAX_63_BIT_UNSIGNED_VALUE_AS_BIG_INTEGER
  • Constructor Details

    • LongLiteralExpr

      public LongLiteralExpr()
    • LongLiteralExpr

      public LongLiteralExpr(String value)
    • LongLiteralExpr

      public LongLiteralExpr(TokenRange tokenRange, String value)
      This constructor is used by the parser and is considered private.
    • LongLiteralExpr

      @Deprecated public LongLiteralExpr(long value)
      Deprecated.
      This function is deprecated in favor of LongLiteralExpr(String). Please refer to the asNumber() function for valid formats and how to construct literals holding negative values.
  • Method Details

    • accept

      public <R,​ A> R accept(GenericVisitor<R,​A> v, A arg)
      Description copied from interface: Visitable
      Accept method for visitor support.
      Type Parameters:
      R - the type of the return value of the visitor
      A - the type the user argument passed to the visitor
      Parameters:
      v - the visitor implementation
      arg - the argument passed to the visitor (of type A)
      Returns:
      the result of the visit (of type R)
    • accept

      public <A> void accept(VoidVisitor<A> v, A arg)
      Description copied from interface: Visitable
      Accept method for visitor support.
      Type Parameters:
      A - the type the argument passed for the visitor
      Parameters:
      v - the visitor implementation
      arg - any value relevant for the visitor (of type A)
    • asLong

      @Deprecated public long asLong()
      Deprecated.
      This function has issues with corner cases, such as 9223372036854775808L, so please use asNumber(). It will be made private or merged with asNumber() in future releases
      Returns:
      the literal value as an long while respecting different number representations
    • asNumber

      public Number asNumber()
      This function returns a representation of the literal value as a number. This will return a long, except for the case when the literal has the value 9223372036854775808L. This special literal is only allowed in the expression -9223372036854775808L which represents Long.MIN_VALUE). However 9223372036854775808 (2^63) is out of range of long, which is -(2^63) to (2^63)-1 and thus a BigInteger must be returned.

      Note, that this function will NOT return a negative number if the literal was specified in decimal, since according to the language specification (chapter 3.10.1) an expression such as -1L is represented by a unary * expression with a minus operator and the literal 1L. It is however possible to represent negative * numbers in a literal directly, i.e. by using the binary or hexadecimal representation. For example 0xffff_ffff_ffff_ffffL represents the value -1L.

      Returns:
      the literal value as a number while respecting different number representations
    • setLong

      @Deprecated public LongLiteralExpr setLong(long value)
      Deprecated.
      This function is deprecated in favor of LiteralStringValueExpr.setValue(String). Please refer to the asNumber() function for valid formats and how to construct literals holding negative values.
    • clone

      public LongLiteralExpr clone()
      Overrides:
      clone in class LiteralStringValueExpr
    • getMetaModel

      public LongLiteralExprMetaModel getMetaModel()
      Overrides:
      getMetaModel in class LiteralStringValueExpr
      Returns:
      get JavaParser specific node introspection information.
    • isLongLiteralExpr

      public boolean isLongLiteralExpr()
      Overrides:
      isLongLiteralExpr in class Expression
    • asLongLiteralExpr

      public LongLiteralExpr asLongLiteralExpr()
      Overrides:
      asLongLiteralExpr in class Expression
    • ifLongLiteralExpr

      public void ifLongLiteralExpr(Consumer<LongLiteralExpr> action)
      Overrides:
      ifLongLiteralExpr in class Expression
    • toLongLiteralExpr

      public Optional<LongLiteralExpr> toLongLiteralExpr()
      Overrides:
      toLongLiteralExpr in class Expression