Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ImmutableDescriptor extends Object implements Descriptor
Модификатор и Тип | Поле и Описание |
---|---|
static ImmutableDescriptor |
EMPTY_DESCRIPTOR
Пустой дескриптор.
|
Конструктор и Описание |
---|
ImmutableDescriptor(Map<String,?> fields)
Создайте дескриптор, где имена и значения полей являются ключами и значениями данной Карты.
|
ImmutableDescriptor(String... fields)
Создайте дескриптор, содержащий данные поля.
|
ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
Создайте дескриптор, содержащий данные поля и значения.
|
Модификатор и Тип | Метод и Описание |
---|---|
Дескриптор |
clone()
Возвращает дескриптор, который равен этому дескриптору.
|
boolean |
equals(Object o)
Сравнивает этот дескриптор с данным объектом.
|
Строка[] |
getFieldNames()
Возвраты все имена полей в дескрипторе.
|
Строка[] |
getFields()
Возвраты все поля, содержавшиеся в этом дескрипторе как строковый массив.
|
Объект |
getFieldValue(String fieldName)
Возвращает значение для определенного имени поля, или нуль, если никакое значение не присутствует для того имени.
|
Объект[] |
getFieldValues(String... fieldNames)
Возвраты все значения полей в дескрипторе как массив Объектов.
|
int |
hashCode()
Возвращает значение хэш-кода для этого дескриптора.
|
boolean |
isValid()
Возвращает true, если у всех полей есть юридические значения, данные их имена.
|
void |
removeField(String fieldName)
Удаляет поле из дескриптора.
|
void |
setField(String fieldName, Object fieldValue)
Эта работа неподдерживается, так как этот класс неизменный.
|
void |
setFields(String[] fieldNames, Object[] fieldValues)
Эта работа неподдерживается, так как этот класс неизменный.
|
Строка |
toString()
Возвращает строковое представление объекта.
|
static ImmutableDescriptor |
union(Descriptor... descriptors)
Возвратитесь
ImmutableDescriptor чье содержание является объединением данных дескрипторов. |
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
IllegalArgumentException
- если или массив является нулем, или если у массивов есть различные размеры, или если имя поля является нулем или пустой, или если то же самое имя поля появляется не раз.public ImmutableDescriptor(String... fields)
fieldName=fieldValue
. Имя поля заканчивается в первом =
символ; например, если Строка a=b=c
тогда имя поля a
и его значение b=c
.IllegalArgumentException
- если параметр является нулем, или если имя поля пусто, или если то же самое имя поля появляется не раз, или если одна из строк не содержит =
символ.public ImmutableDescriptor(Map<String,?> fields)
Создайте дескриптор, где имена и значения полей являются ключами и значениями данной Карты.
IllegalArgumentException
- если параметр является нулем, или если имя поля является нулем или пустой, или если то же самое имя поля появляется не раз (который может произойти, потому что имена полей не являются чувствительными к регистру).public static ImmutableDescriptor union(Descriptor... descriptors)
Возвратитесь ImmutableDescriptor
чье содержание является объединением данных дескрипторов. Каждое имя поля, которое появляется в любом из дескрипторов, появится в результате со значением, которое это имеет, когда метод вызывают. Последующие изменения к любому из дескрипторов не влияют на ImmutableDescriptor, возвращенный здесь.
В самом простом случае есть только один дескриптор и возвращенный ImmutableDescriptor
копия его полей в то время, когда этот метод вызывают:
Descriptor d = something(); ImmutableDescriptor copy = ImmutableDescriptor.union(d);
descriptors
- дескрипторы, которые будут объединены. Любой из дескрипторов может быть нулем, когда он пропускается.ImmutableDescriptor
это - объединение данных дескрипторов. Возвращенный объект может быть идентичным одному из входных дескрипторов, если это - ImmutableDescriptor, который содержит все обязательные поля.IllegalArgumentException
- если два Дескриптора содержат то же самое имя поля с различными присваиваемыми значениями. Примитивные значения массива считают тем же самым, если они имеют тот же самый тип с теми же самыми элементами. Объектные значения массива считают тем же самым если Arrays.deepEquals(Object[],Object[])
возвращает true.public final Object getFieldValue(String fieldName)
Descriptor
getFieldValue
в интерфейсе Descriptor
fieldName
- имя поля.public final String[] getFields()
Descriptor
getFields
в интерфейсе Descriptor
Descriptor.setFields(java.lang.String[], java.lang.Object[])
public final Object[] getFieldValues(String... fieldNames)
Descriptor
fieldNames
Строковый параметр массива.getFieldValues
в интерфейсе Descriptor
fieldNames
- Строковый массив имен полей, для которых должны быть возвращены значения. Если массив будет пуст тогда будет возвращен, то пустой массив. Если массив будет нулем тогда, то все значения будут возвращены, как будто параметр был массивом, возвращенным Descriptor.getFieldNames()
. Если имя поля в массиве не существует, включая случай, где это - нуль или пустая строка, то нуль возвращается для соответствующего возвращаемого элемента массива.fieldNames
пусто, Вы получите пустой массив.public final String[] getFieldNames()
Descriptor
getFieldNames
в интерфейсе Descriptor
public boolean equals(Object o)
Arrays.deepEquals(Object[],Object[])
должен возвратить true.Object.equals(Object)
должен возвратить true.equals
в интерфейсе Descriptor
equals
в классе Object
o
- объект сравниться с.true
если объекты являются тем же самым; false
иначе.Object.hashCode()
, HashMap
public int hashCode()
Возвращает значение хэш-кода для этого дескриптора. Хэш-код вычисляется как сумма хэш-кодов для каждого поля в дескрипторе. Хэш-код поля с именем n
и значение v
n.toLowerCase().hashCode() ^ h
. Здесь h
хэш-код v
, вычисленный следующим образом:
v
нуль тогда h
0.v
примитивный массив тогда h
вычисляется, используя соответствующую перегрузку java.util.Arrays.hashCode
.v
объектный массив тогда h
вычисляется, используя Arrays.deepHashCode(Object[])
.h
v.hashCode()
.hashCode
в интерфейсе Descriptor
hashCode
в классе Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
Object
toString
метод возвращает строку, которая "дословно представляет" этот объект. Результатом должно быть краткое, но информативное представление, которое легко для человека читать. Рекомендуется, чтобы все подклассы переопределили этот метод. toString
метод для класса Object
возвращает строку, состоящую из имени класса, которого объект является экземпляром, символ знака at-sign`@
', и шестнадцатеричное представление без знака хэш-кода объекта. Другими словами этот метод возвращает строку, равную значению:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public boolean isValid()
isValid
в интерфейсе Descriptor
RuntimeOperationsException
- если проверка законности перестала работать. Метод возвращает false, если дескриптор не допустим, но выдает это исключение, если попытка определить законность перестала работать.public Descriptor clone()
Возвращает дескриптор, который равен этому дескриптору. Изменения к возвращенному дескриптору не будут иметь никакого эффекта на этот дескриптор, и наоборот.
Этот метод возвращает объект, на котором его вызывают. Подкласс может переопределить это, чтобы возвратить другой объект, если контракт уважают.
clone
в интерфейсе Descriptor
clone
в классе Object
RuntimeOperationsException
- для недопустимого значения для имен полей или значений полей. Если сбои конструкции дескриптора по какой-либо причине, это исключение будет выдано.Cloneable
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
RuntimeOperationsException
обертывание UnsupportedOperationException
бросается. Иначе, поведение является тем же самым, как это было бы для изменчивого дескриптора: или исключение выдается из-за недопустимых параметров, или нет никакого эффекта.setFields
в интерфейсе Descriptor
fieldNames
- Строковый массив имен полей. Элементы массива и массива не могут быть нулем.fieldValues
- Объектный массив соответствующих значений полей. Массив не может быть нулем. Элементы массива могут быть нулем.RuntimeOperationsException
- если изменение перестало работать по какой-либо причине. Обернутое исключение IllegalArgumentException
если fieldNames
или fieldValues
нуль, или если массивы имеют различные длины, или если есть недопустимое значение в одном из них. Обернутое исключение UnsupportedOperationException
если бы дескриптор является неизменным, и вызов изменил бы свое содержание.Descriptor.getFields()
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
RuntimeOperationsException
обертывание UnsupportedOperationException
бросается. Иначе, поведение является тем же самым, как это было бы для изменчивого дескриптора: или исключение выдается из-за недопустимых параметров, или нет никакого эффекта.setField
в интерфейсе Descriptor
fieldName
- Имя поля, которое будет установлено. Не может быть нуль или пустой.fieldValue
- Значение поля, которое будет установлено для имени поля. Может быть нуль, если это - допустимое значение для поля.RuntimeOperationsException
- если имя поля или значение поля недопустимы (обернутое исключение IllegalArgumentException
); или если дескриптор является неизменным (обернутое исключение UnsupportedOperationException
).public final void removeField(String fieldName)
removeField
в интерфейсе Descriptor
fieldName
- Имя строки поля, которое будет удалено. Если имя поля недопустимо, или поле не находится, никакое исключение не выдается.RuntimeOperationsException
- если поле имени существует, и дескриптор является неизменным. Обернутое исключение будет UnsupportedOperationException
.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.