code: public ServiceName getCapabilityServiceName(Class<?> serviceValueType) {
          if (this.serviceValueType == null ||
                  (serviceValueType != null && !serviceValueType.isAssignableFrom(this.serviceValueType))) {
              throw ControllerLogger.MGMT_OP_LOGGER.invalidCapabilityServiceType(getName(), serviceValueType);
          }
          return getServiceName();
      }
docs: Gets the name of service provided by this capability.
  
  @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}