ProviderExportContext
==========================

.. currentmodule:: axioma.core.dp

.. class:: ProviderExportContext

	Контекст с свойствами, необходимыми для проведения экспорта.

		.. py:method:: ProviderExportContext()

			Конструктор

		.. py:method:: ProviderExportContext(schema)

			Конструктор

			:param schema: Схема данных, которая будет использована при экспорте как результирующая.
			:type schema: :class:`~axioma.core.dp.ModifiedTableSchema`
 
		.. py:method:: targetSchema()

			Заданная схема данных, которая будет использована при экспорте

			:rtype: :class:`~axioma.core.dp.ModifiedTableSchema`

		.. py:method:: setTargetSchema(schema)

			Установка нового значения схемы. Она может быть получена на базе схемы исходной таблицы

			:param schema: Схема
			:type schema: :class:`~axioma.core.dp.ModifiedTableSchema`

		.. py:method:: dataCatalog()

			Ссылка на установленный каталог или None. Используется при экспорте в СУБД для проверки существования открытой на данный момент сессии

			:rtype: :class:`~axioma.core.dp.DataCatalogInterface`

		.. py:method:: setDataCatalog(dataCatalog)

			Задание пользовательского каталога

			:param dataCatalog: Значение
			:type dataCatalog: :class:`~axioma.core.dp.DataCatalogInterface`

ProviderExportSupport
===========================

.. currentmodule:: axioma.core.dp

.. class:: ProviderExportSupport

	Базовый интерфейс экспорта. Для поддержки провайдером импорт данных, необходимо чтобы данный данный интерфейс был реализован в конкретном провайдере.

	От него наследуются: :class:`~axioma.core.dp.DatabaseProviderExportSupport`

		.. py:method:: canHaveGeometry()

			Поддерживаются ли геометрическое объекты на запись

			:rtype: :class:`bool`

		.. py:method:: canAcceptDestination(jd)

			Возможно ли произвести экспорт данных. Переопределяется в дочерних классах

			:param jd: Дополнительные параметры проверки
			:type jd: :class:`~axioma.core.dp.JsonDefinition`
			:rtype: :class:`~axioma.core.dp.OpeningStatus`

		.. py:method:: exportFeatures(cursor, ctx, jd)

			Непосредственно производится экспорт данных

			:param cursor: Курсор с исходными данными
			:type cursor: :class:`~axioma.core.dp.Cursor`
			:param ctx: Контекст выполнения
			:type ctx: :class:`~axioma.core.dp.ProviderExportContext`
			:param ctx: Параметры экспорта
			:type ctx: :class:`~axioma.core.dp.JsonDefinition`
			:return: Статус выполнения
			:rtype: :class:`~axioma.core.dp.OpeningStatus`
 
	.. note:: Пример использования см. :class:`~axioma.core.dp.DatabaseProvider`
