code: public ServiceName getCapabilityServiceName(PathAddress address, Class<?> serviceValueType) {
          return fromBaseCapability(address).getCapabilityServiceName(serviceValueType);
      }
docs: Gets the name of service provided by this capability.
  
  @param address the path from which dynamic portion of the capability name is calculated from. Cannot be {@code null}
  @param serviceValueType the expected type of the service's value. Only used to provide validate that
  the service value type provided by the capability matches the caller's
  expectation. May be {@code null} in which case no validation is performed
  
  @return the name of the service. Will not be {@code null}
  
  @throws IllegalArgumentException if the capability does not provide a service or if its value type
  is not assignable to {@code serviceValueType}
  @throws IllegalStateException if {@link #isDynamicallyNamed()} does not return {@code true}