<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_component(self, component, temporary=False):
 """Register a component with ComponentRegistry. Component must be a buildable object with a module_settings.json file that describes its name and the domain that it is part of. By default, this component is saved in the permanent registry associated with this environment and will remain registered for future CoreTools invocations. If you only want this component to be temporarily registered during this program's session, you can pass temporary=True and the component will be stored in RAM only, not persisted to the underlying key-value store. Args: component (str):
 The path to a component that should be registered. temporary (bool):
 Optional flag to only temporarily register the component for the duration of this program invocation. """


        tile = IOTile(component)
        value = os.path.normpath(os.path.abspath(component))

        if temporary is True:
            self._component_overlays[tile.name] = value
        else:
            self.kvstore.set(tile.name, value)