<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Process(self, parser_mediator, cache=None, database=None, **kwargs):
 """Determines if this is the appropriate plugin for the database. Args: parser_mediator (ParserMediator):
 mediates interactions between parsers and other components, such as storage and dfvfs. cache (Optional[ESEDBCache]):
 cache. database (Optional[pyesedb.file]):
 ESE database. Raises: ValueError: If the database attribute is not valid. """

    if database is None:
      raise ValueError('Invalid database.')

    # This will raise if unhandled keyword arguments are passed.
    super(ESEDBPlugin, self).Process(parser_mediator)

    self.GetEntries(
        parser_mediator, cache=cache, database=database, **kwargs)