<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register_view(self, view, timestamp):
 """registers the view's measure name to View Datas given a view"""

        if len(self.exporters) > 0:
            try:
                for e in self.exporters:
                    e.on_register_view(view)
            except AttributeError:
                pass

        self._exported_views = None
        existing_view = self._registered_views.get(view.name)
        if existing_view is not None:
            if existing_view == view:
                # ignore the views that are already registered
                return
            else:
                logging.warning(
                    "A different view with the same name is already registered"
                )  # pragma: NO COVER
        measure = view.measure
        registered_measure = self._registered_measures.get(measure.name)
        if registered_measure is not None and registered_measure != measure:
            logging.warning(
                "A different measure with the same name is already registered")
        self._registered_views[view.name] = view
        if registered_measure is None:
            self._registered_measures[measure.name] = measure
        self._measure_to_view_data_list_map[view.measure.name].append(
            view_data_module.ViewData(view=view, start_time=timestamp,
                                      end_time=timestamp))