Package com.google.web.bindery.requestfactory.apt

## Class State

- java.lang.Object
- - com.google.web.bindery.requestfactory.apt.State

- Direct Known Subclasses:
    `State.ForTesting`

      class State
      extends java.lang.Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `(package private) static class` | `State.ForTesting` | Slightly tweaked implementation used when running tests.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `(package private) javax.lang.model.type.TypeMirror` | `baseProxyType` |
    `(package private) javax.lang.model.util.Elements` | `elements` |
    `(package private) javax.lang.model.type.DeclaredType` | `entityProxyIdType` |
    `(package private) javax.lang.model.type.DeclaredType` | `entityProxyType` |
    `(package private) javax.lang.model.type.DeclaredType` | `extraTypesAnnotation` |
    `(package private) javax.annotation.processing.Filer` | `filer` |
    `(package private) javax.lang.model.type.DeclaredType` | `instanceRequestType` |
    `(package private) javax.lang.model.type.DeclaredType` | `locatorType` |
    `(package private) javax.lang.model.type.DeclaredType` | `objectType` |
    `(package private) javax.lang.model.type.DeclaredType` | `requestContextType` |
    `(package private) javax.lang.model.type.DeclaredType` | `requestFactoryType` |
    `(package private) javax.lang.model.type.DeclaredType` | `requestType` |
    `(package private) java.util.Set<javax.lang.model.element.TypeElement>` | `seen` |
    `(package private) javax.lang.model.type.DeclaredType` | `serviceLocatorType` |
    `(package private) javax.lang.model.util.Types` | `types` |
    `(package private) javax.lang.model.type.DeclaredType` | `valueProxyType` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `State​(javax.annotation.processing.ProcessingEnvironment processingEnv)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addMapping​(javax.lang.model.element.ExecutableElement clientMethod, javax.lang.model.element.ExecutableElement domainMethod)` | Add a mapping from a client method to a domain method.
    `void` | `addMapping​(javax.lang.model.element.TypeElement clientType, javax.lang.model.element.TypeElement domainType)` | Add a mapping from a client type to a domain type.
    `void` | `checkExtraTypes​(javax.lang.model.element.Element x)` | Check an element for an `ExtraTypes` annotation.
    `void` | `debug​(javax.lang.model.element.Element elt, java.lang.String message, java.lang.Object... args)` | Print a warning message if verbose mode is enabled.
    `void` | `executeJobs()` |
    `javax.lang.model.type.DeclaredType` | `findType​(java.lang.Class<?> clazz)` | Utility method to look up raw types from class literals.
    `java.util.Map<javax.lang.model.element.Element,​javax.lang.model.element.Element>` | `getClientToDomainMap()` | Returns a map of client elements to their domain counterparts.
    `boolean` | `isClientOnly()` |
    `boolean` | `isMappingRequired​(javax.lang.model.element.TypeElement element)` |
    `boolean` | `isPoisoned()` |
    `boolean` | `isTransportableType​(javax.lang.model.type.TypeMirror asType)` | Verifies that the given type may be used with RequestFactory.
    `void` | `maybeScanContext​(javax.lang.model.element.TypeElement requestContext)` |
    `void` | `maybeScanFactory​(javax.lang.model.element.TypeElement factoryType)` |
    `void` | `maybeScanProxy​(javax.lang.model.element.TypeElement proxyType)` |
    `boolean` | `mustResolveAllAnnotations()` |
    `void` | `poison​(javax.lang.model.element.Element elt, java.lang.String message)` | Emits a fatal error message attached to an element.
    `void` | `requireMapping​(javax.lang.model.element.TypeElement interfaceElement)` |
    `(package private) boolean` | `respectAnnotations()` | This switch allows the RfValidatorTest code to be worked on in the IDE without causing compilation failures.
    `void` | `setClientOnly​(boolean clientOnly)` | Set to `true` to indicate that only JVM-client support code needs to be generated.
    `void` | `setMustResolveAllMappings​(boolean requireAllMappings)` | Set to `true` if it is an error for unresolved ProxyForName and ServiceName annotations to be left over.
    `(package private) static javax.lang.model.type.TypeMirror` | `viewAs​(javax.lang.model.type.DeclaredType desiredType, javax.lang.model.type.TypeMirror searchFrom, State state)` | Used to take a `FooRequest extends Request<Foo>` and find the `Request<Foo>` type.
    `void` | `warn​(javax.lang.model.element.Element elt, java.lang.String message)` | Emits a warning message, unless the element or an enclosing element are annotated with a `@SuppressWarnings("requestfactory")`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### baseProxyType

          final javax.lang.model.type.TypeMirror baseProxyType

    - #### elements

          final javax.lang.model.util.Elements elements

    - #### entityProxyIdType

          final javax.lang.model.type.DeclaredType entityProxyIdType

    - #### entityProxyType

          final javax.lang.model.type.DeclaredType entityProxyType

    - #### extraTypesAnnotation

          final javax.lang.model.type.DeclaredType extraTypesAnnotation

    - #### filer

          final javax.annotation.processing.Filer filer

    - #### instanceRequestType

          final javax.lang.model.type.DeclaredType instanceRequestType

    - #### locatorType

          final javax.lang.model.type.DeclaredType locatorType

    - #### objectType

          final javax.lang.model.type.DeclaredType objectType

    - #### requestContextType

          final javax.lang.model.type.DeclaredType requestContextType

    - #### requestFactoryType

          final javax.lang.model.type.DeclaredType requestFactoryType

    - #### requestType

          final javax.lang.model.type.DeclaredType requestType

    - #### serviceLocatorType

          final javax.lang.model.type.DeclaredType serviceLocatorType

    - #### seen

          final java.util.Set<javax.lang.model.element.TypeElement> seen

    - #### types

          final javax.lang.model.util.Types types

    - #### valueProxyType

          final javax.lang.model.type.DeclaredType valueProxyType

  - ### Constructor Detail

    - #### State

          public State​(javax.annotation.processing.ProcessingEnvironment processingEnv)

  - ### Method Detail

    - #### viewAs

          static javax.lang.model.type.TypeMirror viewAs​(javax.lang.model.type.DeclaredType desiredType,
                                                         javax.lang.model.type.TypeMirror searchFrom,
                                                         State state)

      Used to take a `FooRequest extends Request<Foo>` and find the `Request<Foo>` type.

    - #### addMapping

          public void addMapping​(javax.lang.model.element.ExecutableElement clientMethod,
                                 javax.lang.model.element.ExecutableElement domainMethod)

      Add a mapping from a client method to a domain method.

    - #### addMapping

          public void addMapping​(javax.lang.model.element.TypeElement clientType,
                                 javax.lang.model.element.TypeElement domainType)

      Add a mapping from a client type to a domain type.

    - #### checkExtraTypes

          public void checkExtraTypes​(javax.lang.model.element.Element x)

      Check an element for an `ExtraTypes` annotation. Handles both methods and types.

    - #### debug

          public void debug​(javax.lang.model.element.Element elt,
                            java.lang.String message,
                            java.lang.Object... args)

      Print a warning message if verbose mode is enabled. A warning is used to ensure that the message shows up in Eclipse's editor (a note only makes it into the error console).

    - #### executeJobs

          public void executeJobs()

    - #### findType

          public javax.lang.model.type.DeclaredType findType​(java.lang.Class<?> clazz)

      Utility method to look up raw types from class literals.

    - #### getClientToDomainMap

          public java.util.Map<javax.lang.model.element.Element,​javax.lang.model.element.Element> getClientToDomainMap()

      Returns a map of client elements to their domain counterparts. The keys may be RequestContext or Proxy types or methods within those types.

    - #### isClientOnly

          public boolean isClientOnly()

    - #### isMappingRequired

          public boolean isMappingRequired​(javax.lang.model.element.TypeElement element)

    - #### isPoisoned

          public boolean isPoisoned()

    - #### isTransportableType

          public boolean isTransportableType​(javax.lang.model.type.TypeMirror asType)

      Verifies that the given type may be used with RequestFactory.
      See Also:
        `TransportableTypeVisitor`

    - #### maybeScanContext

          public void maybeScanContext​(javax.lang.model.element.TypeElement requestContext)

    - #### maybeScanFactory

          public void maybeScanFactory​(javax.lang.model.element.TypeElement factoryType)

    - #### maybeScanProxy

          public void maybeScanProxy​(javax.lang.model.element.TypeElement proxyType)

    - #### mustResolveAllAnnotations

          public boolean mustResolveAllAnnotations()

    - #### poison

          public void poison​(javax.lang.model.element.Element elt,
                             java.lang.String message)

      Emits a fatal error message attached to an element. If the element or an eclosing type is annotated with `SkipInterfaceValidation` the message will be dropped.

    - #### requireMapping

          public void requireMapping​(javax.lang.model.element.TypeElement interfaceElement)

    - #### setClientOnly

          public void setClientOnly​(boolean clientOnly)

      Set to `true` to indicate that only JVM-client support code needs to be generated.

    - #### setMustResolveAllMappings

          public void setMustResolveAllMappings​(boolean requireAllMappings)

      Set to `true` if it is an error for unresolved ProxyForName and ServiceName annotations to be left over.

    - #### warn

          public void warn​(javax.lang.model.element.Element elt,
                           java.lang.String message)

      Emits a warning message, unless the element or an enclosing element are annotated with a `@SuppressWarnings("requestfactory")`.

    - #### respectAnnotations

          boolean respectAnnotations()

      This switch allows the RfValidatorTest code to be worked on in the IDE without causing compilation failures.