Spec-Zone.ru › OpenJDK 27

Класс DragSource

java.lang.Object
java.awt.dnd.DragSource
Все реализуемые интерфейсы:
Serializable
public class DragSource extends Object implements Serializable
DragSource — это сущность, отвечающая за инициирование операции перетаскивания, и она может использоваться в ряде сценариев:
  • Один экземпляр по умолчанию на JVM на протяжении всего времени существования этой JVM.
  • Один экземпляр для каждого класса объектов, потенциально инициирующих перетаскивание (например, TextField). [зависит от реализации]
  • Один экземпляр для каждого экземпляра конкретного Component или специфичного для приложения объекта, связанного с экземпляром Component в графическом интерфейсе. [зависит от реализации]
  • Некоторая другая произвольная связь. [зависит от реализации]
После получения DragSource следует также получить DragGestureRecognizer, чтобы связать DragSource с конкретным Component.

Первоначальная интерпретация жеста пользователя и последующий запуск операции перетаскивания относятся к ответственности реализующего Component, которое обычно реализуется посредством DragGestureRecognizer.

При возникновении жеста перетаскивания должен быть вызван метод startDrag() объекта DragSource, чтобы обеспечить обработку навигационных жестов пользователя и передачу уведомлений протокола перетаскивания. DragSource должен разрешать выполнение только одной операции перетаскивания одновременно и отклонять любые последующие запросы startDrag(), выбрасывая IllegalDnDOperationException, пока текущая операция не будет завершена.

Метод startDrag() вызывает метод createDragSourceContext() для создания соответствующего DragSourceContext и связывания с ним DragSourceContextPeer.

Если система перетаскивания по какой-либо причине не может инициировать операцию перетаскивания, метод startDrag() выбрасывает java.awt.dnd.InvalidDnDOperationException, сигнализируя об этом. Обычно это исключение выбрасывается, когда базовая системная платформа не готова инициировать перетаскивание или указаны недопустимые параметры.

Обратите внимание, что во время перетаскивания набор операций, предоставляемых источником в начале операции перетаскивания, не может изменяться до завершения операции. Операция или операции остаются неизменными на протяжении всей операции с точки зрения DragSource.

С версии:
1.2
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final Cursor DefaultCopyDrop
Объект Cursor по умолчанию для операции копирования, указывающий, что в данный момент сброс разрешён.
static final Cursor DefaultCopyNoDrop
Объект Cursor по умолчанию для операции копирования, указывающий, что в данный момент сброс не разрешён.
static final Cursor DefaultLinkDrop
Объект Cursor по умолчанию для операции связывания, указывающий, что в данный момент сброс разрешён.
static final Cursor DefaultLinkNoDrop
Объект Cursor по умолчанию для операции связывания, указывающий, что в данный момент сброс не разрешён.
static final Cursor DefaultMoveDrop
Объект Cursor по умолчанию для операции перемещения, указывающий, что в данный момент сброс разрешён.
static final Cursor DefaultMoveNoDrop
Объект Cursor по умолчанию для операции перемещения, указывающий, что в данный момент сброс не разрешён.

Краткое описание конструкторов

Конструктор Описание
DragSource()
Создаёт новый DragSource.

Краткое описание методов

Модификатор и тип Метод Описание
void addDragSourceListener(DragSourceListener dsl)
Добавляет указанный DragSourceListener в этот DragSource для получения событий источника перетаскивания во время операций перетаскивания, инициированных этим DragSource.
void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанный DragSourceMotionListener в этот DragSource для получения событий перемещения при перетаскивании во время операций перетаскивания, инициированных этим DragSource.
DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
Создаёт новый DragGestureRecognizer, реализующий абстрактный подкласс DragGestureRecognizer по умолчанию для этого DragSource, и устанавливает указанные Component и DragGestureListener для созданного объекта.
<T extends DragGestureRecognizer>
T
createDragGestureRecognizer(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
Создаёт новый DragGestureRecognizer, реализующий указанный абстрактный подкласс DragGestureRecognizer, и устанавливает указанные Component и DragGestureListener для созданного объекта.
protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
Создаёт DragSourceContext для обработки текущей операции перетаскивания.
static DragSource getDefaultDragSource()
Возвращает объект DragSource, связанный с базовой платформой.
DragSourceListener[] getDragSourceListeners()
Возвращает все DragSourceListener, зарегистрированные в этом DragSource.
DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает все DragSourceMotionListener, зарегистрированные в этом DragSource.
static int getDragThreshold()
Возвращает порог перемещения жеста перетаскивания.
FlavorMap getFlavorMap()
Этот метод возвращает FlavorMap для данного DragSource.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает все объекты, зарегистрированные в данный момент как FooListener в этом DragSource.
static boolean isDragImageSupported()
Сообщает, доступна ли на базовой платформе поддержка Image перетаскивания.
void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанный DragSourceListener из этого DragSource.
void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанный DragSourceMotionListener из этого DragSource.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl)
Начинает перетаскивание с учётом DragGestureEvent, инициировавшего перетаскивание, исходного Cursor, используемого для перетаскивания, данных объекта перетаскивания Transferable и DragSourceListener.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Начинает перетаскивание с учётом DragGestureEvent, инициировавшего перетаскивание, исходного Cursor, используемого для перетаскивания, данных объекта перетаскивания Transferable, DragSourceListener и FlavorMap.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)
Начинает перетаскивание с учётом DragGestureEvent, инициировавшего перетаскивание, исходного Cursor, используемого для перетаскивания, Image для перетаскивания, смещения начала координат Image относительно активной точки Cursor в момент запуска, данных объекта перетаскивания и DragSourceListener.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Начинает перетаскивание с учётом DragGestureEvent, инициировавшего перетаскивание, исходного Cursor, используемого для перетаскивания, Image для перетаскивания, смещения начала координат Image относительно активной точки Cursor в момент запуска, данных объекта перетаскивания Transferable, DragSourceListener и FlavorMap.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект некоторому другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API будет удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

DefaultCopyDrop

public static final Cursor DefaultCopyDrop
Значение Cursor по умолчанию, используемое при операции копирования и указывающее, что в данный момент разрешено перетаскивание. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultMoveDrop

public static final Cursor DefaultMoveDrop
Значение Cursor по умолчанию, используемое при операции перемещения и указывающее, что в данный момент разрешено перетаскивание. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultLinkDrop

public static final Cursor DefaultLinkDrop
Значение Cursor по умолчанию, используемое при операции создания ссылки и указывающее, что в данный момент разрешено перетаскивание. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultCopyNoDrop

public static final Cursor DefaultCopyNoDrop
Значение Cursor по умолчанию, используемое при операции копирования и указывающее, что в данный момент перетаскивание не разрешено. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultMoveNoDrop

public static final Cursor DefaultMoveNoDrop
Значение Cursor по умолчанию, используемое при операции перемещения и указывающее, что в данный момент перетаскивание не разрешено. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultLinkNoDrop

public static final Cursor DefaultLinkNoDrop
Значение Cursor по умолчанию, используемое при операции создания ссылки и указывающее, что в данный момент перетаскивание не разрешено. null, если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

Подробное описание конструкторов

DragSource

public DragSource() throws HeadlessException
Создает новый объект DragSource.
Вызывает исключение:
HeadlessException — если GraphicsEnvironment.isHeadless() возвращает true
См. также:
  • GraphicsEnvironment.isHeadless()

Подробное описание методов

getDefaultDragSource

public static DragSource getDefaultDragSource()
Возвращает объект DragSource, связанный с базовой платформой.
Возвращает:
DragSource платформы
Вызывает исключение:
HeadlessException — если GraphicsEnvironment.isHeadless() возвращает true
См. также:
  • GraphicsEnvironment.isHeadless()

isDragImageSupported

public static boolean isDragImageSupported()
Сообщает, доступна ли на базовой платформе поддержка Image перетаскивания.
Возвращает:
true, если на этой платформе доступна поддержка изображений перетаскивания; в противном случае — false

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Начинает перетаскивание, используя DragGestureEvent, инициировавшее перетаскивание, начальный Cursor, который следует использовать, Image для перетаскивания, смещение начала координат Image относительно точки захвата Cursor в момент срабатывания, Transferable — данные перетаскиваемого объекта, DragSourceListener и FlavorMap.
Параметры:
trigger — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания см. в DragSourceContext
dragImage — изображение для перетаскивания или null
imageOffset — смещение начала координат Image относительно точки захвата Cursor в момент срабатывания
transferable — данные перетаскиваемого объекта
dsl — DragSourceListener
flavorMap — используемая FlavorMap или null
Вызывает исключение:
InvalidDnDOperationException — если система перетаскивания не может инициировать операцию перетаскивания или если пользователь пытается начать перетаскивание, пока выполняется другая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Начинает перетаскивание, используя DragGestureEvent, инициировавшее перетаскивание, начальный Cursor, который следует использовать, Transferable — данные перетаскиваемого объекта, DragSourceListener и FlavorMap.
Параметры:
trigger — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания см. в DragSourceContext
transferable — данные перетаскиваемого объекта
dsl — DragSourceListener
flavorMap — используемая FlavorMap или null
Вызывает исключение:
InvalidDnDOperationException — если система перетаскивания не может инициировать операцию перетаскивания или если пользователь пытается начать перетаскивание, пока выполняется другая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Начинает перетаскивание, используя DragGestureEvent, инициировавшее перетаскивание, начальный Cursor, который следует использовать, Image для перетаскивания, смещение начала координат Image относительно точки захвата Cursor в момент срабатывания, данные перетаскиваемого объекта и DragSourceListener.
Параметры:
trigger — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания см. в DragSourceContext
dragImage — Image для перетаскивания или null
dragOffset — смещение начала координат Image относительно точки захвата Cursor в момент срабатывания
transferable — данные перетаскиваемого объекта
dsl — DragSourceListener
Вызывает исключение:
InvalidDnDOperationException — если система перетаскивания не может инициировать операцию перетаскивания или если пользователь пытается начать перетаскивание, пока выполняется другая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Начинает перетаскивание, используя DragGestureEvent, инициировавшее перетаскивание, начальный Cursor, который следует использовать, Transferable — данные перетаскиваемого объекта и DragSourceListener.
Параметры:
trigger — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания см. в классе DragSourceContext
transferable — данные перетаскиваемого объекта
dsl — DragSourceListener
Вызывает исключение:
InvalidDnDOperationException — если система перетаскивания не может инициировать операцию перетаскивания или если пользователь пытается начать перетаскивание, пока выполняется другая операция перетаскивания

createDragSourceContext

protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
Создает DragSourceContext для обработки текущей операции перетаскивания.

Чтобы использовать новый подкласс DragSourceContext, создайте подкласс DragSource и переопределите этот метод.

Если dragImage равен null, изображение для отображения обратной связи при перетаскивании в этой операции не используется, но NullPointerException не выбрасывается.

Если dsl равен null, к созданному объекту DragSourceContext не добавляется прослушиватель источника перетаскивания, но NullPointerException не выбрасывается.

Параметры:
dgl — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания см. в классе DragSourceContext
dragImage — Image для перетаскивания или null
imageOffset — смещение начала координат Image относительно точки захвата курсора в момент срабатывания
t — данные перетаскиваемого объекта
dsl — DragSourceListener
Возвращает:
DragSourceContext
Вызывает исключение:
NullPointerException — если dscp равен null
NullPointerException — если dgl равен null
NullPointerException — если dragImage не равен null, а imageOffset равен null
NullPointerException — если t равен null
IllegalArgumentException — если Component, связанный с событием-триггером, равен null.
IllegalArgumentException — если DragSource для события-триггера равен null.
IllegalArgumentException — если действие перетаскивания для события-триггера равно DnDConstants.ACTION_NONE.
IllegalArgumentException — если действия источника для DragGestureRecognizer, связанного с событием-триггером, равны DnDConstants.ACTION_NONE.

getFlavorMap

public FlavorMap getFlavorMap()
Этот метод возвращает FlavorMap для данного объекта DragSource.
Возвращает:
FlavorMap для данного объекта DragSource

createDragGestureRecognizer

public <T extends DragGestureRecognizer> T createDragGestureRecognizer(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
Создает новый объект DragGestureRecognizer, реализующий указанный абстрактный подкласс DragGestureRecognizer, и задает для созданного объекта указанные Component и DragGestureListener.
Параметры типа:
T — тип создаваемого объекта DragGestureRecognizer
Параметры:
recognizerAbstractClass — требуемый абстрактный тип
c — целевой объект Component
actions — разрешенные действия перетаскивания источника
dgl — DragGestureListener, которому следует отправить уведомление
Возвращает:
новый объект DragGestureRecognizer или null, если метод Toolkit.createDragGestureRecognizer не имеет реализации для требуемого подкласса DragGestureRecognizer и возвращает null

createDefaultDragGestureRecognizer

public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
Создает новый объект DragGestureRecognizer, реализующий стандартный абстрактный подкласс DragGestureRecognizer для данного объекта DragSource, и задает для созданного объекта указанные Component и DragGestureListener. Для данного объекта DragSource значением по умолчанию является MouseDragGestureRecognizer.
Параметры:
c — целевой объект Component для распознавателя
actions — разрешенные действия источника
dgl — DragGestureListener, которому следует отправить уведомление
Возвращает:
новый объект DragGestureRecognizer или null, если метод Toolkit.createDragGestureRecognizer не имеет реализации для требуемого подкласса DragGestureRecognizer и возвращает null

addDragSourceListener

public void addDragSourceListener(DragSourceListener dsl)
Добавляет указанный объект DragSourceListener к данному объекту DragSource, чтобы получать события источника перетаскивания во время операций, инициированных этим объектом DragSource. Если указан прослушиватель null, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsl — добавляемый объект DragSourceListener
Начиная с:
1.4
См. также:
  • removeDragSourceListener(DragSourceListener)
  • getDragSourceListeners()

removeDragSourceListener

public void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанный объект DragSourceListener из данного объекта DragSource. Если указан прослушиватель null, никаких действий не выполняется и исключение не выбрасывается. Если прослушиватель, указанный аргументом, ранее не добавлялся к данному объекту DragSource, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsl — удаляемый объект DragSourceListener
Начиная с:
1.4
См. также:
  • addDragSourceListener(DragSourceListener)
  • getDragSourceListeners()

getDragSourceListeners

public DragSourceListener[] getDragSourceListeners()
Возвращает все объекты типа DragSourceListener, зарегистрированные для данного объекта DragSource.
Возвращает:
все объекты типа DragSourceListener данного объекта DragSource или пустой массив, если такие прослушиватели не зарегистрированы
Начиная с:
1.4
См. также:
  • addDragSourceListener(DragSourceListener)
  • removeDragSourceListener(DragSourceListener)

addDragSourceMotionListener

public void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанный объект DragSourceMotionListener к данному объекту DragSource, чтобы получать события перемещения при перетаскивании во время операций, инициированных этим объектом DragSource. Если указан прослушиватель null, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsml — добавляемый объект DragSourceMotionListener
Начиная с:
1.4
См. также:
  • removeDragSourceMotionListener(DragSourceMotionListener)
  • getDragSourceMotionListeners()

removeDragSourceMotionListener

public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанный объект DragSourceMotionListener из данного объекта DragSource. Если указан прослушиватель null, никаких действий не выполняется и исключение не выбрасывается. Если прослушиватель, указанный аргументом, ранее не добавлялся к данному объекту DragSource, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsml — удаляемый объект DragSourceMotionListener
Начиная с:
1.4
См. также:
  • addDragSourceMotionListener(DragSourceMotionListener)
  • getDragSourceMotionListeners()

getDragSourceMotionListeners

public DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает все объекты типа DragSourceMotionListener, зарегистрированные для данного объекта DragSource.
Возвращает:
все объекты типа DragSourceMotionListener данного объекта DragSource или пустой массив, если такие прослушиватели не зарегистрированы
Начиная с:
1.4
См. также:
  • addDragSourceMotionListener(DragSourceMotionListener)
  • removeDragSourceMotionListener(DragSourceMotionListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Возвращает все объекты, зарегистрированные для данного объекта DragSource в качестве прослушивателей FooListener. Регистрация прослушивателей FooListener выполняется с помощью метода addFooListener.
Параметры типа:
T — тип объектов-прослушивателей
Параметры:
listenerType — требуемый тип прослушивателей; этот параметр должен задавать интерфейс, являющийся потомком java.util.EventListener
Возвращает:
массив всех объектов, зарегистрированных в качестве прослушивателей FooListener для данного объекта DragSource, или пустой массив, если такие прослушиватели не добавлены
Вызывает исключение:
ClassCastException — если listenerType не задает класс или интерфейс, реализующий java.util.EventListener
Начиная с:
1.4
См. также:
  • getDragSourceListeners()
  • getDragSourceMotionListeners()

getDragThreshold

public static int getDragThreshold()
Возвращает порог перемещения жеста перетаскивания. Порог перемещения жеста перетаскивания определяет рекомендуемое поведение для объектов MouseDragGestureRecognizer.

Если системное свойство awt.dnd.drag.threshold установлено в положительное целое число, этот метод возвращает значение системного свойства; в противном случае, если соответствующее свойство рабочего стола доступно и поддерживается реализацией платформы Java, метод возвращает значение этого свойства; иначе метод возвращает значение по умолчанию. Соответствующее свойство рабочего стола можно запросить с помощью java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold").

Возвращает:
порог перемещения жеста перетаскивания
Начиная с:
1.5
См. также:
  • MouseDragGestureRecognizer

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API