# Package com.google.web.bindery.requestfactory.shared

Shared classes used on both the client and the server side for transmitting data between the server and the client in JSON format.

Since:
  GWT 2.1

- Interface Summary
  Interface | Description
  --- | ---
  BaseProxy | The root type from which all client-side proxy objects are derived.
  EntityProxy | A proxy for a server-side domain object.
  EntityProxyChange.Handler<P extends EntityProxy> | Implemented by methods that handle EntityProxyChange events.
  EntityProxyId<P extends EntityProxy> | A stable, opaque id of an `EntityProxy` that remains stable across updates, creates, deletes on the client.
  InstanceRequest<P extends BaseProxy,​T> | Used to call instance methods.
  LoggingRequest | "API Generated" request selector interface implemented by objects that give client access to the methods of `Logging`.
  ProxySerializer | Serializes graphs of EntityProxy objects.
  ProxyStore | A ProxyStore provides a `ProxySerializer` with access to a low-level persistence mechanism.
  Request<T> | A Request represents a single method invocation on the server.
  RequestContext | The base interface for RequestFactory service endpoints.
  RequestFactory | Marker interface for the RequestFactory code generator.
  RequestTransport | Abstracts the mechanism by which a RequestFactory instance transmits its payload to the backend.
  RequestTransport.TransportReceiver | A callback interface.
  ServiceLocator | A ServiceLocator provides instances of a type specified by a `Service` when `Request` methods declared in a `RequestContext`are mapped onto instance (non-static) methods.
  ValueProxy | An analog to EntityProxy for domain types that do not have an identity concept.
  Violation | Deprecated. users should upgrade to the full `ConstraintViolation` type by switching their `Receiver` implementations to use `Receiver.onConstraintViolation(java.util.Set)` instead of `Receiver.onViolation(java.util.Set)`.

- Class Summary
  Class | Description
  --- | ---
  DefaultProxyStore | An in-memory ProxyStore store that can encode its state as a JSON object literal.
  EntityProxyChange<P extends EntityProxy> | Event posted by a `RequestFactory` when changes to an entity are detected.
  FanoutReceiver<T> | A FanoutReceiver will forward its callbacks to zero or more other Receivers.
  Locator<T,​I> | A Locator allows entity types that do not conform to the RequestFactory entity protocol to be used.
  Receiver<V> | Callback object for `Request.fire(Receiver)` and `RequestContext.fire(Receiver)`.
  ServerFailure | Describes a request failure on the server.
  ValueLocator<T> | A `Locator` for use with value types (as opposed to entities), which are not persisted.

- Enum Summary
  Enum | Description
  --- | ---
  WriteOperation | The values returned by `EntityProxyChange.getWriteOperation()` to describe the type of change being announced.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  ExtraTypes | This annotation can be applied to `EntityProxy`, `ValueProxy`, `RequestContext`, and `RequestFactory` type declarations to include additional polymorphic proxy types that are not explicitly referenced.
  JsonRpcContent | Experimental API, subject to change. Applied to a Request method declaration to indicate that a particular parameter is used as the `request` portion of the JSON-RPC request.
  JsonRpcProxy | Experimental API, subject to change Used instead of the `ProxyFor` annotation.
  JsonRpcService | Experimental API, subject to change Indicates that a RequestContext should be encoded as a JSON-RPC request.
  JsonRpcWireName | Experimental API, subject to change Provides the method name for a JSON-RPC invocation.
  ProxyFor | Annotation on EntityProxy and ValueProxy classes specifying the domain (server-side) object type.
  ProxyForName | Annotation on EntityProxy classes specifying the domain (server-side) object type.
  Service | Annotation on Request classes specifying the server-side implementations that back them.
  ServiceName | Annotation on Request classes specifying the server-side implementations that back them.This annotation can be used in place of `Service` if the service type is not available to the GWT compiler or DevMode runtime.
  SkipInterfaceValidation | Annotation on methods of `RequestContext`, `EntityProxy`, or `ValueProxy` interfaces so that the `RequestFactoryInterfaceValidator` doesn't enforce the presence of a corresponding method on the domain type.