Interface ServiceInfo

All Superinterfaces:
Prototype.Api, ServiceInfoBasics
All Known Implementing Classes:
ServiceInfo.BuilderBase.ServiceInfoImpl

public interface ServiceInfo extends Prototype.Api, ServiceInfoBasics
Describes a managed service or injection point.
See Also:
  • Field Details

    • DEFAULT_INJECT_WEIGHT

      static final double DEFAULT_INJECT_WEIGHT
      Default weight for any internal Injection service component. It is defined to be Weighted.DEFAULT_WEIGHT - 1 in order to allow any other service implementation to naturally have a higher weight (since it will use the DEFAULT_WEIGHT unless explicitly overridden.
      See Also:
  • Method Details

    • builder

      static ServiceInfo.Builder builder()
      Create a new fluent API builder to customize configuration.
      Returns:
      a new builder
    • builder

      static ServiceInfo.Builder builder(ServiceInfo instance)
      Create a new fluent API builder from an existing instance.
      Parameters:
      instance - an existing instance used as a base for the builder
      Returns:
      a builder based on an instance
    • create

      static ServiceInfo create()
      Create a new instance with default values.
      Returns:
      a new instance
    • builder

      static ServiceInfo.Builder builder(ServiceInfoBasics prototype)
      Create a builder of service info from its basics counterpart.
      Parameters:
      prototype - instance to copy
      Returns:
      a new builder with data from prototype
    • externalContractsImplemented

      Set<TypeName> externalContractsImplemented()
      The managed services external contracts / interfaces. These should also be contained within contractsImplemented(). External contracts are from other modules other than the module containing the implementation typically.
      Returns:
      the service external contracts implemented
      See Also:
    • activatorTypeName

      Optional<TypeName> activatorTypeName()
      The management agent (i.e., the activator) that is responsible for creating and activating - typically build-time created.
      Returns:
      the activator type name
    • moduleName

      Optional<String> moduleName()
      The name of the ascribed module, if known.
      Returns:
      the module name
    • matches

      default boolean matches(ServiceInfoCriteria criteria)
      Determines whether this service info matches the criteria for injection. Matches is a looser form of equality check than equals(). If a service matches criteria it is generally assumed to be viable for assignability.
      Parameters:
      criteria - the criteria to compare against
      Returns:
      true if the criteria provided matches this instance
    • serviceTypeName

      TypeName serviceTypeName()
      The managed service implementation Class.
      Returns:
      the service type name
    • scopeTypeNames

      Set<TypeName> scopeTypeNames()
      The managed service assigned Scope's.
      Returns:
      the service scope type name
    • qualifiers

      Set<Qualifier> qualifiers()
      The managed service assigned Qualifier's.
      Returns:
      the service qualifiers
    • contractsImplemented

      Set<TypeName> contractsImplemented()
      The managed services advertised types (i.e., typically its interfaces).
      Returns:
      the service contracts implemented
      See Also:
    • declaredRunLevel

      Optional<Integer> declaredRunLevel()
      The optional RunLevel ascribed to the service.
      Returns:
      the service's run level
      See Also:
    • realizedRunLevel

      default int realizedRunLevel()
      The realized run level will use the default run level if no run level was specified directly.
      Returns:
      the realized run level
      See Also:
    • declaredWeight

      Optional<Double> declaredWeight()
      Weight that was declared on the type itself.
      Returns:
      the declared weight
      See Also:
    • realizedWeight

      default double realizedWeight()
      The realized weight will use Weighted.DEFAULT_WEIGHT if no weight was specified directly.
      Returns:
      the realized weight
      See Also: