<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def do_load_aldb(self, args):
 """Load the All-Link database for a device. Usage: load_aldb address|all [clear_prior] Arguments: address: NSTEON address of the device all: Load the All-Link database for all devices clear_prior: y|n y - Clear the prior data and start fresh. n - Keep the prior data and only apply changes Default is y This does NOT write to the database so no changes are made to the device with this command. """

        params = args.split()
        addr = None
        clear = True

        try:
            addr = params[0]
        except IndexError:
            _LOGGING.error('Device address required.')
            self.do_help('load_aldb')

        try:
            clear_prior = params[1]
            _LOGGING.info('param clear_prior %s', clear_prior)
            if clear_prior.lower() == 'y':
                clear = True
            elif clear_prior.lower() == 'n':
                clear = False
            else:
                _LOGGING.error('Invalid value for parameter `clear_prior`')
                _LOGGING.error('Valid values are `y` or `n`')
        except IndexError:
            pass

        if addr:
            if addr.lower() == 'all':
                await self.tools.load_all_aldb(clear)
            else:
                await self.tools.load_device_aldb(addr, clear)
        else:
            self.do_help('load_aldb')