GroovySyntaxTag (Grails 3.2.6)
Date: 2017-02-09

Package: org.grails.gsp.compiler.tags

## [Java] Class GroovySyntaxTag

- org.grails.gsp.compiler.tags.GroovySyntaxTag

- All Implemented Interfaces and Traits:
    GrailsTag

      public abstract class GroovySyntaxTag
      extends java.lang.Object

  A tag type that gets translated directly into Groovy syntax by the GSP parser.

  This is used for Java-implemented internal tags that the Parse class uses to directly inject code into the generated GSP source. These tags can do more than custom taglibs as the operate at the code level, rather than at the runtime view rendering level

  Authors:
    Graeme Rocher

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected static java.lang.String` | `ATTRIBUTES_STATUS` |
    `protected static java.lang.String` | `ATTRIBUTE_IN` |
    `protected static java.lang.String` | `ATTRIBUTE_VAR` |
    `protected java.util.Map<java.lang.String, java.lang.String>` | `attributes` |
    `protected java.lang.String` | `foreachRenamedIt` |
    `protected java.io.PrintWriter` | `out` |
    `protected GroovyPageParser` | `parser` |
    `protected java.util.Map` | `tagContext` |

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `protected java.lang.String` | `calculateExpression(java.lang.String expr)`
    `protected void` | `doEachMethod(java.lang.String in)` @param in
    `protected void` | `endEachMethod()`
    `java.lang.String` | `getForeachRenamedIt()`
    `void` | `init(java.util.Map context)`
    `boolean` | `isAllowPrecedingContent()`
    `boolean` | `isKeepPrecedingWhiteSpace()`
    `void` | `setAttribute(java.lang.String name, java.lang.Object value)`
    `void` | `setAttributes(java.util.Map attributes)`
    `void` | `setWriter(java.io.Writer w)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### protected static final java.lang.String ATTRIBUTES_STATUS

    - #### protected static final java.lang.String ATTRIBUTE_IN

    - #### protected static final java.lang.String ATTRIBUTE_VAR

    - #### protected java.util.Map<java.lang.String, java.lang.String> attributes

    - #### protected java.lang.String foreachRenamedIt

    - #### protected java.io.PrintWriter out

    - #### protected GroovyPageParser parser

    - #### @java.lang.SuppressWarnings("rawtypes") protected java.util.Map tagContext

  - ### Method Detail

    - #### protected java.lang.String calculateExpression(java.lang.String expr)

    - #### protected void doEachMethod(java.lang.String in)

      Parameters:
        in

    - #### protected void endEachMethod()

    - #### public java.lang.String getForeachRenamedIt()

    - #### @java.lang.SuppressWarnings("rawtypes") public void init(java.util.Map context)

    - #### public boolean isAllowPrecedingContent()

      Tags must return the correct value to indicate whether or not non-whitespace content is permitted before this tag.

      This is for tags that must follow other tags, such as g:else or g:elseif that do not allow content between them and the previous tag. It is simply used as a safety mechanism to trap incorrect usage of tags.

      TODO rework this and combine with isKeepPrecedingWhiteSpace as really they are used in the same situations
      Returns:
        true if any content is allowed immediately before the tag - false if it is an error to have such content before it

    - #### public boolean isKeepPrecedingWhiteSpace()

      Tags must return the correct value to indicate whether or not whitespace before this tag should be kept in the output.

      This is for tags that must follow other tags, such as g:else or g:elseif that do not allow content between them and the previous tag, and need to swallow the whitespace between them.

      Returns:
        true if any whitespace immediately before the tag should be kept in the output - false if it is to be discarded

    - #### public void setAttribute(java.lang.String name, java.lang.Object value)

    - #### @java.lang.SuppressWarnings("rawtypes") public void setAttributes(java.util.Map attributes)

    - #### public void setWriter(java.io.Writer w)