Package org.apache.tapestry5.ioc

# Interface AdvisorDef

All Known Subinterfaces:
  `AdvisorDef2`

All Known Implementing Classes:
  `AdvisorDefImpl`

public interface AdvisorDef
Definition of a service advisor, which (by default) is derived from a service advisor method. Service advisor methods are static or instance methods on module classes prefixed with "advise". When a service is realized, a list of matching AdvisorDefs is generated, then ordered, and from each a `ServiceAdvisor` is obtained and invoked. Note: service decorators (via `DecoratorDef` are applied around the interceptor generated via service advisors, (for compatibility with Tapestry 5.0). In general, you should use service decoration or service advice, not both.

Since:
  5.1.0.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ServiceAdvisor`
  `createAdvisor(ModuleBuilderSource moduleSource, ServiceResources resources)`
  Creates an object that can provide the service advice (in the default case, by invoking the advise method on the module class or instance).
  `String`
  `getAdvisorId()`
  Returns the id of the advisor, which is derived from the advisor method name.
  `String[]`
  `getConstraints()`
  Returns ordering constraints for this advisor, to order it relative to other advisors.
  `boolean`
  `matches(ServiceDef serviceDef)`
  Used to determine which services may be advised.

- ## Method Details

  - ### getAdvisorId

    String getAdvisorId()
    Returns the id of the advisor, which is derived from the advisor method name.

  - ### getConstraints

    String[] getConstraints()
    Returns ordering constraints for this advisor, to order it relative to other advisors.
    Returns:
      zero or more constraint strings

  - ### createAdvisor

    ServiceAdvisor createAdvisor(ModuleBuilderSource moduleSource, ServiceResources resources)
    Creates an object that can provide the service advice (in the default case, by invoking the advise method on the module class or instance).
    Parameters:
      `moduleSource` - used to obtain the module instance
      `resources` - used to provide injections into the advise method
    Returns:
      advisor

  - ### matches

    boolean matches(ServiceDef serviceDef)
    Used to determine which services may be advised. When advising a service, first the advisors that target the service are identified, then ordering occurs, then the `ServiceAdvisor`s are obtained and invoked.
    Parameters:
      `serviceDef` - identifies a service that may be advised
    Returns:
      true if this advisor applies to the service