# 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.

See: Description

Interface Summary
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
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
WriteOperation: The values returned by `EntityProxyChange.getWriteOperation()` to describe the type of change being announced.

Annotation Types Summary
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.

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

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