DataCatalogInterface - Хранилище источников и объектов данных
==================================================================

.. currentmodule:: axioma.core.dp

.. class:: DataCatalogInterface

	Абстрактный класс. Хранилище источников данных и объектов данных. Наследуется от :class:`~PyQt5.QtCore.QObject`

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

		.. method:: DataCatalogInterface(parent=None)

			Конструктор класса

			:param parent: родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject`

		.. method:: hasDataObject(data_object)

			Определяет, содержит ли каталог заданный объект данных

			:param data_object: проверяемый объект данных
			:type data_object: :class:`~axioma.core.dp.DataObject`
			:return: True если содержит, иначе - False
			:rtype: :class:`bool`

		.. py:method:: findDataObjectByName(name)

			Производит поиск объекта данных по его имени

			:param name: Наименование объекта или таблицы
			:type name: :class:`str`
			:rtype: :class:`~axioma.core.dp.DataObject`

		.. method:: isOccupiedName(name)

			Является ли имя объекта данных занятым в данном каталоге

			:param name: проверяемое имя данных
			:type name: :class:`str`
			:return: True если имя занято, иначе - False
			:rtype: :class:`bool`

		.. method:: findDataSource(data_src_def)

			Поиск объекта данных по описанию источника данных

			:param data_src_def: описание источника данных
			:type data_src_def: :class:`~axioma.core.dp.DataSourceDefinition`
			:return: найденный объект данных или :any:`None`
			:rtype: :class:`~axioma.core.dp.DataSource`

		.. method:: findDataObject(data_src_def, data_obj_def)

			Поиск объекта данных по описанию источника данных и объекта данных

			:param dadta_src_def: описание источника данных
			:type dadta_src_def: :class:`~axioma.core.dp.DataSourceDefinition`
			:param dadta_obj_def: описание объекта данных
			:type dadta_obj_def: :class:`~axioma.core.dp.DataObjectDefinition`
			:return: найденный объект данных или :any:`None`
			:rtype: :class:`~axioma.core.dp.DataObject`

		.. method:: allDataSources()

			Список всех источников данных

			:rtype: :class:`list` [:class:`~axioma.core.dp.DataSource`]

		.. method:: allDataObjects()

			Список всех объектов данных, за исключением текущей выборки :class:`~axioma.core.dp.Selection`

			:rtype: :class:`list` [:class:`~axioma.core.dp.DataObject`]

		.. method:: numDataSources()

			Количество источников данных

			:rtype: :class:`int`

		.. method:: numDataObjects()

			Количество объектов данных

			:rtype: :class:`int`

		.. method:: addDataObject(data_object)

			Добавить объект данных

			:param data_object: объект данных
			:type data_object: :class:`~axioma.core.dp.DataObject`
			:return: статус успеха выполненной операции
			:rtype: :class:`bool`

		.. method:: updated()

			[signal] Сигнал испускается при изменении наполнения каталога

		.. method:: dataSourceAdded(data_source)

			[signal] Сигнал испускается при добавлении нового источника данных в каталог

			:param data_source: источник данных
			:type data_source: :class:`~axioma.core.dp.DataSource`

		.. method:: dataObjectAdded(data_object)

			[signal] Сигнал испускается при добавлении нового объекта данных в каталог

			:param data_object: объект данных
			:type data_object: :class:`~axioma.core.dp.DataObject`
