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
`(package private) static class` `State.ForTesting` Slightly tweaked implementation used when running tests.

### Field Summary

Fields
`(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 and Description
`State(javax.annotation.processing.ProcessingEnvironment processingEnv)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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.