## Uses of Class
org.apache.tapestry5.ioc.annotations.UseWith

- Packages that use UseWith
  Package | Description
  --- | ---
  org.apache.tapestry5.annotations | Contains annotations, primarily those used inside component classes as well as a few specific to the tapestry-core services layer.
  org.apache.tapestry5.beaneditor |
  org.apache.tapestry5.clojure | Allows Clojure functions to be injected into Tapestry services and components
  org.apache.tapestry5.hibernate.annotations | Annotations for using Hibernate within Tapestry components or services
  org.apache.tapestry5.http.annotations |
  org.apache.tapestry5.ioc.annotations | Annotations for Tapestry IOC services
  org.apache.tapestry5.jpa.annotations | JPA annotations
  org.apache.tapestry5.kaptcha.annotations | Kaptcha annotations
  org.apache.tapestry5.services | Core services

- - ### Uses of UseWith in org.apache.tapestry5.annotations

    Classes in org.apache.tapestry5.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `ActivationContextParameter` | Annotation that may be placed on parameters of event handler methods to define their names in OpenAPI description.
    `interface` | `ActivationRequestParameter` | Marks a field of a page (not a component) as persistent within the URL, as with a page activation context.
    `interface` | `AfterRender` | Marker annotation for methods associated with the AfterRender phase.
    `interface` | `AfterRenderBody` | Corresponds to `BeforeRenderBody`, allowing additional markup after rendering the body of a component, but before rendering the rest of the component's template.
    `interface` | `AfterRenderTemplate` | Corresponds to `BeforeRenderTemplate`, allowing additional markup after rendering the component's template.
    `interface` | `BeforeRenderBody` | Marks methods to be invoked when the component rendering state machine hits the point in the component's template where the body element occurs.
    `interface` | `BeforeRenderTemplate` | Associated with components that have a template, this phase is invoked to allow the component to decorate its template with additional markup.
    `interface` | `BeginRender` | Marker annotation for methods that should be executed at the start of rendering the component.
    `interface` | `BindParameter` | Designates a field in a mixin which is bound to the parameter of the containing component corresponding to the value of the annotation.
    `interface` | `Cached` | Indicates that a method should only be evaluated once per request and the result cached.
    `interface` | `CleanupRender` | Marker annotation for component methods associated with the terminal phase for the component rendering state machine.
    `interface` | `Component` | Used to define an embedded component within another component.
    `interface` | `ContentType` | An annotation on a page component used to identify the content type the page returns.
    `interface` | `DiscardAfter` | Marks a method of a page or a component to discard all persistent field changes.
    `interface` | `Environmental` | Defines a field of a component class that is replaced at runtime with a read-only value obtained from the `Environment` service.
    `interface` | `Events` | Annotation applied to components to document what events a component may trigger.
    `interface` | `HeartbeatDeferred` | Marks a component method as deferred until the end of the `Heartbeat`.
    `interface` | `Id` | Optional annotation, used with `Inject`, which exists to provide the id of an object when it can not be determined by other means (such as from the field name).
    `interface` | `Import` | Annotations to control the importing of JavaScript stacks and libraries as well as stylesheets.
    `interface` | `InjectComponent` | Allows components defined in the template to be injected as read-only properties.
    `interface` | `InjectContainer` | Used to inject the component which contains this component.
    `interface` | `InjectPage` | Allows a a page (really, the root component of the page) to be injected into another component as a read-only field.
    `interface` | `Log` | Marker annotation for component methods to enable debug-level logging.
    `interface` | `Meta` | Allows for the specification of per-component meta-data.
    `interface` | `Mixin` | Defines an implementation mixin for a component.
    `interface` | `MixinAfter` | A marker annotation applied to a mixin to indicate that the mixin's render state behavior is deferred until after the the behavior of the component to which the mixin is attached.
    `interface` | `MixinClasses` | Used to attach one or more instance mixins to an embedded component.
    `interface` | `Mixins` | Used to attach one ore more instance mixin to an embedded component.
    `interface` | `OnEvent` | Marks a method as a handler for a client side event.
    `interface` | `PageActivationContext` | Annotation for a field for which the page activation context handlers (onActivate and onPassivate) should be created.
    `interface` | `PageAttached` | Method annotation used for methods that should be invoked when the page is first attached to a request.
    `interface` | `PageDetached` | Method annotation used for methods that should be invoked when the page is detached at the end of a request, before it is returned to the page pool for later reuse.
    `interface` | `PageLoaded` | Method annotation used for methods that should be invoked once the page is fully loaded.
    `interface` | `PageReset` | Marker annotation for a method that should be invoked when a page is reset.
    `interface` | `Parameter` | Annotation placed on a field to indicate that it is, in fact, a component parameter.
    `interface` | `Path` | Used in conjunction with the `Inject` annotation to inject an `Asset` based on a path.
    `interface` | `Persist` | Identifies a field as persistent, meaning its value persists from one request to the next.
    `interface` | `Property` | Annotation for fields for which accessor methods (getters and setters) should be created.
    `interface` | `PublishEvent` | Marks an event handler method to be published as an event to be called in JavaScript through the `t5/core/ajax` function when the `options` parameter has an `element` attribute.
    `interface` | `RequestBody` | Annotation that may be placed on parameters of event handler methods, usually in page classes.
    `interface` | `RequestParameter` | Annotation that may be placed on parameters of event handler methods.
    `interface` | `RestInfo` | Annotation that provides some information about REST event handler methods for OpenAPI description generation.
    `interface` | `Retain` | Deprecated. This rarely used annotation is likely to cause threading issues starting in Tapestry 5.2 (which no longer pools pages but uses shared instances with externalized mutable state)
    `interface` | `Secure` | A marker annotation that indicates that the page in question may only be accessed via HTTPS.
    `interface` | `Service` | Used in conjunction with the `Inject` annotation to identify a service by name and not by type.
    `interface` | `SessionAttribute` | Used to map a property of a page or component to value stored in session.
    `interface` | `SessionState` | Marker annotation for a property that is a session state object (SSO) as controlled by the `ApplicationStateManager`.
    `interface` | `SetupRender` | Marker annotation for methods that should be executed during the SetupRender phase.
    `interface` | `StaticActivationContextValue` | Annotation that may be placed on parameters of event handler methods to define them as having a static value.
    `interface` | `SupportsInformalParameters` | Used to identify a component that can support informal parameters.
    `interface` | `UnknownActivationContextCheck` | A marker annotation that indicates that the page in question may only be accessed with a exact activation context.
    `interface` | `WhitelistAccessOnly` | Identifies a page that should only be accessed from clients on the whitelist.

  - ### Uses of UseWith in org.apache.tapestry5.beaneditor

    Classes in org.apache.tapestry5.beaneditor with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `DataType` | Used to explicitly set the data type used to select an editor (or display) block.
    `interface` | `NonVisual` | Marker annotation for properties which are non-visual, and so should not appear (by default) inside a BeanModel.
    `interface` | `ReorderProperties` | An annotation that may be placed on a JavaBean to re-order the properties.
    `interface` | `Sortable` | Used to explicitly define whether a property should be considerable sortable or not.
    `interface` | `Translate` | Used to attach the name of a Translator used to convert the associated property between server-side and client-side representations.
    `interface` | `Validate` | Used to attach validation constraints directly to a property (either the getter or the setter method).
    `interface` | `Width` | Defines the desired width of the field used to edit the property.

  - ### Uses of UseWith in org.apache.tapestry5.clojure

    Classes in org.apache.tapestry5.clojure with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `FunctionName` | Overrides the default mapping from method name to Clojure function name.
    `interface` | `Namespace` | Maps a service interface to a Clojure namespace.

  - ### Uses of UseWith in org.apache.tapestry5.hibernate.annotations

    Classes in org.apache.tapestry5.hibernate.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `CommitAfter` | Marks a method of a service (or a component method) as transactional: the active transaction should commit after invoking the method.

  - ### Uses of UseWith in org.apache.tapestry5.http.annotations

    Classes in org.apache.tapestry5.http.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `ImmutableSessionPersistedObject` | Marker annotation that can be placed on a session-persisted object to indicate that the object is immutable, and therefore does not require end-of-request restoring into the session.

  - ### Uses of UseWith in org.apache.tapestry5.ioc.annotations

    Classes in org.apache.tapestry5.ioc.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `Autobuild` | Directs that the value to be built should be an autobuild instance of the type with injections performed, via ObjectLocator.html#autobuild(Class).
    `interface` | `Description` | Annotation used by Tapestry to describe the annotated class or package in runtime, specially in the T5Dashboard page.
    `interface` | `EagerLoad` | Marker annotation placed on a service builder method to indicate that the service should be eagerly loaded: realized as if a service method had been invoked.
    `interface` | `ImportModule` | Attached to a module class, this annotation identifies other module classes that should also be added to the Registry.
    `interface` | `Inject` | This annotation serves is something of the Swiss Army knife for operations related to injection of dependencies into an arbitrary method of Java Bean.
    `interface` | `InjectResource` | Deprecated. Deprecated in Tapestry 5.3, to be removed in a later release.
    `interface` | `InjectService` | Annotation used with parameters of service builder methods to identify the service to be injected into the service builder method via the parameter.
    `interface` | `IntermediateType` | Used to guide Tapestry when coercing from a raw type to a field or parameter type, by forcing Tapestry to coerce to the intermediate type.
    `interface` | `Local` | A special marker annotation which limits the search for possible services to just the same module containing the service being injected.
    `interface` | `Marker` | Used to define one or more ServiceDef#getMarkers() marker annotations for a service implementation.
    `interface` | `Match` | Optional, but typically used, annotation for service decorator methods, used to define which services the decorator applies to.
    `interface` | `NotLazy` | Marks a method as specifically not-lazy, even if other methods in the same interface are being advised as lazy.
    `interface` | `Operation` | Describes a method as one that should be operation tracked.
    `interface` | `Optional` | Marks a service contribution method within a module as being optional: it is not an error if the contribution does not match against an actual service.
    `interface` | `Order` | Used with a service decorator method to control the order in which decorations occur.
    `interface` | `PostInjection` | Annotation for methods that should be invoked after injection.
    `interface` | `PreventServiceDecoration` | Marks a service as not eligible for decoration.
    `interface` | `Primary` | Marker annotation used to denote a service that is the primary instance of some common interface.
    `interface` | `Scope` | An optional annotation that may be placed on a service building method of a module, or on the implementation class (when using service binding).
    `interface` | `ServiceId` | An optional annotation that may be placed on a service building method of a module, or on the implementation class (when using service binding via the `ServiceBinder`).
    `interface` | `SubModule` | Deprecated. Deprecated in 5.4, use `ImportModule` instead.
    `interface` | `Symbol` | Used to inject a symbol value, via a symbol name.
    `interface` | `UsesConfiguration` | A documentation-only interface placed on service interfaces for services which have an unordered configuration, to identify the type of contribution.
    `interface` | `UsesMappedConfiguration` | A documentation-only interface placed on service interfaces for services which have a mapped configuration, to identify the type of key (often, a String), and type of contribution.
    `interface` | `UsesOrderedConfiguration` | A documentation-only interface placed on service interfaces for services which have an ordered configuration, to identify the type of contribution.
    `interface` | `Value` | Used in conjunction with `Inject` to inject a literal value, rather than a service.

  - ### Uses of UseWith in org.apache.tapestry5.jpa.annotations

    Classes in org.apache.tapestry5.jpa.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `CommitAfter` |

  - ### Uses of UseWith in org.apache.tapestry5.kaptcha.annotations

    Classes in org.apache.tapestry5.kaptcha.annotations with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `Kaptcha` | Used to explicitly select the kaptcha editor block for a property.

  - ### Uses of UseWith in org.apache.tapestry5.services

    Classes in org.apache.tapestry5.services with annotations of type UseWith
    Modifier and Type | Class | Description
    --- | --- | ---
    `interface` | `AssetRequestDispatcher` | Marker annotation used to specifically identify the `Dispatcher` used to dispatch asset requests (so that `AssetRequestHandler`s can be contributed).