class A {

    static final LOCAL_BUFFER = null

    static {
    LOCAL_BUFFER = "bugoga"
}

}
-----
Groovy script
  Class definition
    Modifiers
      <empty list>
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('A')
    Extends clause
      <empty list>
    Implements clause
      <empty list>
    PsiWhiteSpace(' ')
    Type definition body
      PsiElement({)('{')
      PsiWhiteSpace('\n\n    ')
      Variable definitions
        Modifiers
          PsiElement(static)('static')
          PsiWhiteSpace(' ')
          PsiElement(final)('final')
        PsiWhiteSpace(' ')
        Field
          PsiElement(identifier)('LOCAL_BUFFER')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          Literal
            PsiElement(null)('null')
      PsiElement(new line)('\n\n    ')
      Class initializer
        Modifiers
          PsiElement(static)('static')
        PsiWhiteSpace(' ')
        Open block
          PsiElement({)('{')
          PsiWhiteSpace('\n    ')
          Assignment expression
            Reference expression
              PsiElement(identifier)('LOCAL_BUFFER')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            Literal
              PsiElement(Gstring)('"bugoga"')
          PsiElement(new line)('\n')
          PsiElement(})('}')
      PsiElement(new line)('\n\n')
      PsiElement(})('}')