code: def __validation_callback(self, event):
          # type: (str) -> Any
          
          comp_callback = self.context.get_callback(event)
          if not comp_callback:
              # No registered callback
              return True
  
          # Get the list of arguments
          try:
              args = getattr(comp_callback, constants.IPOPO_VALIDATE_ARGS)
          except AttributeError:
              raise TypeError(
                  "@ValidateComponent callback is missing internal description"
              )
  
          # Associate values to arguments
          mapping = {
              constants.ARG_BUNDLE_CONTEXT: self.bundle_context,
              constants.ARG_COMPONENT_CONTEXT: self.context,
              constants.ARG_PROPERTIES: self.context.properties.copy(),
          }
          mapped_args = [mapping[arg] for arg in args]
  
          # Call it
          result = comp_callback(self.instance, *mapped_args)
          if result is None:
              # Special case, if the call back returns nothing
              return True
  
          return result
docs: Specific handling for the ``@ValidateComponent`` and
          ``@InvalidateComponent`` callback, as it requires checking arguments
          count and order
  
          :param event: The kind of life-cycle callback (in/validation)
          :return: The callback result, or None
          :raise Exception: Something went wrong