Класс Context
- java.lang.Object
-
- org.omg.CORBA.Context
public abstract class Context extends Object
Объект, используемый в операциях Request для указания объекта контекста, в котором строки контекста должны быть разрешены перед отправкой вместе с вызовом запроса. Объект Context содержит список свойств в виде объектов NamedValue. Эти свойства представляют информацию о клиенте, среде или обстоятельствах запроса и, как правило, являются свойствами, передача которых в качестве параметров может быть неудобной.
Объект Context создается сначала вызовом метода ORB get_default_context , а затем вызовом метода create_child по умолчанию.
Каждое свойство в объекте Context представлено объектом NamedValue. Имя свойства содержится в поле NamedValue объекта name, а значение, связанное с именем, содержится в объекте Any, который был назначен полю NamedValue объекта value.
Свойства Context могут представлять часть среды клиента или приложения, которая должна быть распространена на (и неявным образом стать частью) среды сервера. (Примеры могут включать идентификатор окна или информацию о пользовательских предпочтениях). После вызова сервера (то есть после распространения свойств) сервер может запросить эти свойства у своего объекта Context с помощью метода get_values.
Когда в объявлении операции используется контекстная строка, в вызовах и скелетах будет добавлен дополнительный аргумент для контекста. При вызове операции ORB предоставляет свойства, указанные в определении операции в IDL и присутствующие в объекте контекста клиента Context, в параметре объекта Context вызываемого метода.
Имена свойств Context (которые являются строками) обычно имеют вид идентификатора OMG IDL или последовательности идентификаторов OMG IDL, разделенных точками. Шаблон имени контекстного свойства — это либо имя свойства, либо имя свойства, за которым следует одиночный символ «*». Имя свойства без заключительного «*» соответствует только самому себе. Шаблон имени свойства вида «<name>*» соответствует любому имени свойства, начинающемуся с <name> и продолжающемуся нулем или более дополнительными символами.
Шаблоны имён свойств используются в контекстной части определения операции и в качестве параметра для метода Context.get_values.
Объекты Context могут быть «цепными» для достижения определённого поведения по умолчанию. Объект Context, созданный методом create_child , будет присоединён к своему родителю (объекту Context , который его создал), а это означает, что родитель будет проверяться после дочернего объекта при поиске имён свойств.
Свойства, определённые в конкретном объекте Context , фактически переопределяют эти свойства на уровне выше. Область поиска свойств может быть ограничена указанием начальной области и использованием флага CTX_RESTRICT_SCOPE при вызове метода get_values.
Объект Context может быть назван для указания начальной области поиска.
- Since:
- JDK1.2
Краткое описание конструкторов
| Конструктор и описание |
|---|
Context() |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
abstract String |
context_name() Возвращает имя этого объекта |
abstract Context |
create_child(String child_ctx_name) Создаёт объект |
abstract void |
delete_values(String propname) Удаляет из этого объекта |
abstract NVList |
get_values(String start_scope,
int op_flags,
String pattern) Возвращает объекты |
abstract Context |
parent() Возвращает родителя этого объекта |
abstract void |
set_one_value(String propname,
Any propvalue) Создает объект |
abstract void |
set_values(NVList values) Устанавливает одно или несколько значений свойств в этом объекте |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
Context
public Context()
Методы
context_name
public abstract String context_name()
Возвращает имя этого Context объекта.
- Возвращает:
- имя этого
Contextобъекта
parent
public abstract Context parent()
Возвращает родительский объект этого Context объекта.
- Возвращает:
- объект
Context, являющийся родителем этогоContextобъекта
create_child
public abstract Context create_child(String child_ctx_name)
Создаёт объект Context с заданным именем и с этим Context объектом в качестве родителя.
Новый Context объект добавляется в цепочку своего родительского Context объекта. Это означает, что при поиске совпадений по имени свойства, если совпадение не найдено в текущем контексте, поиск будет продолжен в родительском объекте. Если и там не найдено, поиск продолжится в прародительском объекте и так далее.
- Параметры:
-
child_ctx_name- объектString, который будет установлен в качестве имени новогоContextобъекта - Возвращает:
- новый созданный дочерний
Contextобъект, инициализированный указанным именем
set_one_value
public abstract void set_one_value(String propname,
Any propvalue)
Создаёт объект NamedValue и добавляет его в этот Context объект. Поле name нового NamedValue объекта устанавливается в заданную строку, поле value - в заданный объект Any, а поле flags - в ноль.
- Параметры:
-
propname- имя свойства, которое нужно установить -
propvalue- объектAny, в котором значение свойства будет установлено. ПолеAnyобъектаvalueсодержит значение, которое будет ассоциировано с заданным именем свойства; полеkindдолжно быть установлено вTCKind.tk_string.
set_values
public abstract void set_values(NVList values)
Устанавливает одно или несколько значений свойств в этом Context объекте. Список NVList, переданный в этот метод, содержит один или несколько объектов NamedValue. В каждом объекте NamedValue, поле name содержит имя свойства, а поле flags должно быть установлено в ноль. Поле NamedValue объекта value содержит объект Any, который, в свою очередь, содержит значение свойства. Поскольку значение всегда является строкой, поле Any объекта kind должно быть установлено в TypeCode в значение TCKind.tk_string.
- Параметры:
-
values- список NVList, содержащий имена свойств и ассоциированные значения, которые нужно установить - См. также:
-
get_values(java.lang.String, int, java.lang.String),NamedValue,Any
delete_values
public abstract void delete_values(String propname)
Удаляет из этого Context объекта объект(ы) NamedValue, чьё поле name соответствует заданному имени свойства. Если объект String, переданный для propname, имеет символ подстановки ("*") в конце, тогда все объекты NamedValue, чьи поля name соответствуют, будут удалены. Область поиска всегда ограничена этим Context объектом.
Если соответствующее свойство не найдено, возвращается исключение.
- Параметры:
-
propname- имя свойства, которое нужно удалить
get_values
public abstract NVList get_values(String start_scope,
int op_flags,
String pattern)
Возвращает объекты NamedValue, чьё поле name соответствует заданному имени или шаблону имени. Этот метод позволяет выполнять поиск с подстановкой, что означает, что может быть несколько совпадений, и, следовательно, возвращено несколько значений. Если свойство не найдено на указанном уровне, поиск продолжается вверх по дереву объекта контекста, пока не будет найдено совпадение или все объекты Context в цепочке не будут исчерпаны.
Если совпадение не найдено, возвращается ошибка, и список свойств не возвращается.
- Параметры:
-
start_scope- объектString, указывающий уровень объекта контекста, на котором нужно начать поиск указанных свойств (например, "_USER", "_GROUP", "_SYSTEM"). Допустимые имена областей поиска зависят от реализации. Если имя области поиска опущено, поиск начинается с указанного объекта контекста. Если указанное имя области поиска не найдено, возвращается исключение. -
op_flags- флаг операции. Единственный допустимый флаг -CTX_RESTRICT_SCOPE. Если этот флаг задан, поиск ограничен указаннойstart_scopeили этимContextобъектом. -
pattern- имя свойства, значения которого нужно получить.patternможет быть именем или именем с символом подстановки ("*") в конце. - Возвращает:
- список
NVList, содержащий все значения свойств (в виде объектовNamedValue), чьё имя соответствующего свойства совпадает с заданным именем или шаблоном имени - См. также:
-
set_values(org.omg.CORBA.NVList),NamedValue
© 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.