Класс NamedOperation

Все реализуемые интерфейсы:
Operation
public final class NamedOperation
extends Object
implements Operation

Операция, которая связывает имя с другой операцией. Обычно используется с операциями, которые обычно принимают имя или индекс, чтобы привязать их к фиксированному имени. Например,

new NamedOperation(
         new NamespaceOperation(
             StandardOperation.GET,
             StandardNamespace.PROPERTY),
         "color")
будет именованной операцией для получения свойства с именем "цвет" у объекта, к которому она применяется, а
new NamedOperation(
         new NamespaceOperation(
             StandardOperation.GET,
             StandardNamespace.ELEMENT),
         3)
будет именованной операцией для получения элемента с индексом 3 из коллекции, к которой она применяется ("имя" в этом контексте подобно "адресу" и включает в себя как текстовые имена, числовые индексы, так и любые другие виды адресации, которые могут понимать линковщики). В этих случаях ожидаемая сигнатура места вызова операции изменится, чтобы больше не включать параметр имени. В частности, документация для всех StandardOperation членов описывает, как они изменяются при включении в именованную операцию.

Хотя NamedOperation можно создать напрямую, часто удобно использовать фабричный метод Operation.named(Object) вместо этого, например:

StandardOperation.GET
        .withNamespace(StandardNamespace.ELEMENT),
        .named(3)
     )

Несмотря на то, что NamedOperation чаще всего используется с NamespaceOperation в качестве своей базовой операции, она также может иметь другие операции в качестве своей базы (кроме другой именованной операции). В частности, StandardOperation.CALL, а также StandardOperation.NEW могут быть использованы напрямую с NamedOperation. Контракт этих операций таков, что при использовании в качестве именованных операций их имя используется только для диагностических сообщений, обычно содержащих текстовое представление исходного выражения, которое получило вызываемый объект, например StandardOperation.CALL.named("window.open").

Конструкторы

КонструкторОписание
NamedOperation​(Operation baseOperation, Object name)

Создает новую именованную операцию.

Методы

Модификатор и типМетодОписание
NamedOperationchangeName​(String newName)

Находит или создает именованную операцию, которая отличается от этой только именем.

booleanequals​(Object obj)

Сравнивает эту именованную операцию с другим объектом.

OperationgetBaseOperation()

Возвращает базу операций этой именованной операции.

static OperationgetBaseOperation​(Operation op)

Если переданная операция является именованной операцией, возвращает ее getBaseOperation(), в противном случае возвращает операцию как есть.

ObjectgetName()

Возвращает имя этой именованной операции.

static ObjectgetName​(Operation op)

Если переданная операция является именованной операцией, возвращает ее getName(), в противном случае возвращает null.

inthashCode()

Возвращает хэш-код этой именованной операции.

StringtoString()

Возвращает строковое представление этой именованной операции.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе jdk.dynalink.Operation

named, withNamespace, withNamespaces

Конструкторы

NamedOperation

public NamedOperation(Operation baseOperation,
                      Object name)

Создает новую именованную операцию.

Параметры:
baseOperation - базовая операция, которая связана с именем.
name - имя, связанное с базовой операцией. Обратите внимание, что имя не обязательно является строкой, а может быть произвольным объектом. Поскольку имя используется для адресации, оно может быть Integer, когда оно должно использоваться в качестве индекса в массиве или списке и т. д.
Исключения:
NullPointerException - если либо baseOperation или name равны null.
IllegalArgumentException - если baseOperation сама является NamedOperation.

Методы

getBaseOperation

public Operation getBaseOperation()

Возвращает базовую операцию этой именованной операции.

Возвращает:
базовую операцию этой именованной операции.

getName

public Object getName()

Возвращает имя этой именованной операции.

Возвращает:
имя этой именованной операции.

changeName

public final NamedOperation changeName(String newName)

Находит или создает именованную операцию, которая отличается от этой только именем.

Параметры:
newName - новое имя, которым нужно заменить старое.
Возвращает:
именованную операцию с измененным именем.
Исключения:
NullPointerException - если имя равно null.

equals

public boolean equals(Object obj)

Сравнивает эту именованную операцию с другим объектом. Возвращает true, если другой объект также является именованной операцией, и обе их базовые операции и имена равны.

Переопределяет:
equals в классе Object
Параметры:
obj - объект-ссылка для сравнения.
Возвращает:
true если этот объект такой же, как аргумент obj; false в противном случае.
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает хэш-код этой именованной операции. Он определен как равный baseOperation.hashCode() + 31 * name.hashCode().

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Возвращает строковое представление этой именованной операции. Оно определено как равное baseOperation.toString() + ":" + name.toString().

Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

getBaseOperation

public static Operation getBaseOperation(Operation op)

Если переданная операция является именованной операцией, возвращает ее getBaseOperation(), в противном случае возвращает операцию как есть.

Параметры:
op - операция
Возвращает:
базовая операция переданной операции.

getName

public static Object getName(Operation op)

Если переданная операция является именованной операцией, возвращает ее getName(), в противном случае возвращает null. Обратите внимание, что объект именованной операции никогда не может иметь имя null, поэтому возврат null указывает на то, что переданная операция не является именованной операцией.

Параметры:
op - операция
Возвращает:
имя в переданной операции или null, если это не именованная операция.

© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.dynalink/jdk/dynalink/NamedOperation.html

Spec-Zone .ru
спецификации, руководства, описания, API