Interface IValueDescriptorFactory
- All Known Implementing Classes:
ValueDescriptorFactory
public interface IValueDescriptorFactory
Factory for creating
IValueDescriptor
s. This includes methods that create IValueDescriptorBuilder
s
that let you configure the descriptor, as well as some convenience methods that return preconfigured descriptors. A
value descriptor indicates the type a value must have and may impose additional restrictions on the allowed values.
You may create descriptors once during startup and store them statically. Also, please note that these builder methods perform checks and will throw an error if an invalid configuration is detected.
- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
-
Method Summary
Modifier and TypeMethodDescriptionList<?>
accessAtPath
(Object base, String path) Access a nested property in an object at a given JSON path.default IAnyValueDescriptor
default IBooleanValueDescriptor
bool()
default IBooleanValueDescriptor
bool
(boolean defaultValue) default IBooleanValueDescriptor
default IConstValueDescriptor<Boolean>
constant
(boolean value) default IConstValueDescriptor<Double>
constant
(double value) default IConstValueDescriptor<Long>
constant
(long value) default IConstValueDescriptor<String>
constantBuilder
(boolean value) constantBuilder
(double value) constantBuilder
(long value) constantBuilder
(String value) default IFloatValueDescriptor
floating()
default IFloatValueDescriptor
floating
(double defaultValue) default IFloatValueDescriptor
default IIntegerValueDescriptor
integer()
default IIntegerValueDescriptor
integer
(long defaultValue) default IIntegerValueDescriptor
default ILargeStringValueDescriptor
default ILargeStringValueDescriptor
largeString
(LargeString defaultValue) default ILargeStringValueDescriptor
largeString
(LargeString defaultValue, String descriptionI18n) default <V> IListValueDescriptor<V>
list
(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) default <V> IListValueDescriptor<V>
list
(IValueDescriptorCreator<V> elementType) <V> IListValueDescriptorBuilder<V>
listBuilder
(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) <V> IListValueDescriptorBuilder<V>
listBuilder
(IValueDescriptorCreator<V> elementType) default IListValueDescriptor<LargeString>
default <V> IListValueDescriptor<LargeString>
listOfLargeStrings
(String descriptionI18n) default IListValueDescriptor<String>
default <V> IListValueDescriptor<String>
listOfStrings
(String descriptionI18n) default <V> IMapValueDescriptor<V>
map
(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) default <V> IMapValueDescriptor<V>
map
(IValueDescriptorCreator<V> elementType) <V> IMapValueDescriptorBuilder<V>
mapBuilder
(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) <V> IMapValueDescriptorBuilder<V>
mapBuilder
(IValueDescriptorCreator<V> elementType) default <V> IMapValueDescriptor<LargeString>
default <V> IMapValueDescriptor<LargeString>
mapToLargeStrings
(String descriptionI18n) default <V> IMapValueDescriptor<String>
default <V> IMapValueDescriptor<String>
mapToStrings
(String descriptionI18n) default INullValueDescriptor
nullish()
default INullValueDescriptor
default IStringValueDescriptor
string()
default IStringValueDescriptor
default IStringValueDescriptor
default <V> ITupleValueDescriptor
tuple
(IValueDescriptor<V, ? extends IValueBuilder<V>>... types) default ITupleValueDescriptor
tuple
(IValueDescriptorCreator<?>... types) default <V> ITupleValueDescriptor
tupleOfSame
(int count, IValueDescriptor<V, ? extends IValueBuilder<V>> type) default ITupleValueDescriptor
tupleOfSame
(int count, IValueDescriptorCreator<?> creator) <D> IUnionValueDescriptorBuilder<D>
unionBuilder
(Class<D> discriminatorClass) default <D> IUnionValueDescriptor<D>
default <E extends Enum<E>>
IUnionValueDescriptorBuilder<E>unionEnumBuilder
(Class<E> discriminatorClass) default <E extends Enum<E>>
IUnionValueDescriptor<E>unionOfEnumConst
(Class<E> enumClass) default <E extends Enum<E>>
IUnionValueDescriptor<E>unionOfEnumConst
(Class<E> enumClass, E defaultValue) default <E extends Enum<E>>
IUnionValueDescriptorBuilder<E>unionOfEnumConstBuilder
(Class<E> enumClass) default <E extends Enum<E>>
IUnionValueDescriptorBuilder<E>unionOfEnumConstBuilder
(Class<E> enumClass, E defaultValue) default <E extends Enum<E>>
IUnionValueDescriptor<String>unionOfStringConst
(Class<E> enumClass) default <E extends Enum<E>>
IUnionValueDescriptor<String>unionOfStringConst
(Class<E> enumClass, E defaultValue) default IUnionValueDescriptor<String>
unionOfStringConst
(String first, String... moreStrings) default <E extends Enum<E>>
IUnionValueDescriptorBuilder<String>unionOfStringConstBuilder
(Class<E> enumClass) default <E extends Enum<E>>
IUnionValueDescriptorBuilder<String>unionOfStringConstBuilder
(Class<E> enumClass, E defaultValue) default IUnionValueDescriptorBuilder<String>
unionOfStringConstBuilder
(String first, String... moreStrings) default IUnionValueDescriptorBuilder<String>
voidish()
-
Method Details
-
accessAtPath
Access a nested property in an object at a given JSON path.- Parameters:
base
- Base object with data to access.path
- JSON path to the data to access.- Returns:
- The data at the given path in the base object.
-
any
- Parameters:
defaultValue
- The default value for the any property, used when no other value is supplied.- Returns:
- A descriptor for an any value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
anyBuilder
IAnyValueDescriptorBuilder anyBuilder()- Returns:
- A descriptor builder for an any value.
-
bool
- Returns:
- A descriptor for a boolean value that defaults to
false
. The description uses the default i18n key determined from the root class and the path to this property.
-
bool
- Parameters:
defaultValue
- The default value for the boolean property, used when no other value is supplied.- Returns:
- A descriptor for a boolean value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
bool
- Parameters:
defaultValue
- The default value for the boolean property, used when no other value is supplied.descriptionI18n
- The i18n key to use for the description of the boolean property.- Returns:
- A descriptor for a boolean value that defaults to the given value and uses the given description.
-
boolBuilder
IBooleanValueDescriptorBuilder boolBuilder()- Returns:
- A descriptor builder for a boolean value.
-
constant
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor for a value that only admits the given constant boolean value.
-
constant
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor for a value that only admits the given constant floating point value.
-
constant
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor for a value that only admits the given constant integer value.
-
constant
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor for a value that only admits the given constant string value.
-
constantBuilder
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor builder for a boolean value that only admits a constant instance.
-
constantBuilder
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor builder for a floating point value that only admits a constant instance.
-
constantBuilder
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor builder for an integer value that only admits a constant instance.
-
constantBuilder
- Parameters:
value
- The constant value that the descriptor should allow.- Returns:
- A descriptor builder for a string value that only admits a constant instance.
-
floating
- Returns:
- A descriptor for a floating point value that defaults to
0
. The description uses the default i18n key determined from the root class and the path to this property.
-
floating
- Parameters:
defaultValue
- The default value for the floating point property, used when no other value is supplied.- Returns:
- A descriptor for a floating point value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
floating
- Parameters:
defaultValue
- The default value for the floating point property, used when no other value is supplied.descriptionI18n
- The i18n key to use for the description of the floating point property.- Returns:
- A descriptor for a floating point value that defaults to the given value and uses the given description.
-
floatingBuilder
IFloatValueDescriptorBuilder floatingBuilder()- Returns:
- A descriptor builder for a floating point value.
-
integer
- Returns:
- A descriptor for an integer value that defaults to
0
. The description uses the default i18n key determined from the root class and the path to this property.
-
integer
- Parameters:
defaultValue
- The default value for the integer property, used when no other value is supplied.- Returns:
- A descriptor for an integer value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
integer
- Parameters:
defaultValue
- The default value for the integer property, used when no other value is supplied.descriptionI18n
- The i18n key to use for the description of the integer property.- Returns:
- A descriptor for an integer value that defaults to the given value and uses the given description.
-
integerBuilder
IIntegerValueDescriptorBuilder integerBuilder()- Returns:
- A descriptor builder for an integer value.
-
largeString
- Returns:
- A descriptor for a large string value that defaults to the empty string. The description uses the default i18n key determined from the root class and the path to this property.
-
largeString
- Parameters:
defaultValue
- The default value for the string property, used when no other value is supplied.- Returns:
- A descriptor for a large string value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
largeString
- Parameters:
defaultValue
- The default value for the string property, used when no other value is supplied.descriptionI18n
- The i18n key to use for the description of the string property.- Returns:
- A descriptor for a large string value that defaults to the given value and uses the given description.
-
largeStringBuilder
ILargeStringValueDescriptorBuilder largeStringBuilder()- Returns:
- A descriptor builder for a large string value.
-
list
- Type Parameters:
V
- Type of the elements contained in the list.- Parameters:
descriptor
- Descriptor for the elements contained in the list.- Returns:
- A descriptor for a list value (
List<V>
) that defaults to an empty list and may contain any number of elements.
-
list
- Type Parameters:
V
- Type of the elements contained in the list.- Parameters:
elementType
- Creates the descriptor for the type of the list elements.- Returns:
- A descriptor for a list value (
List<V>
) that defaults to an empty list and may contain any number of elements.
-
listBuilder
<V> IListValueDescriptorBuilder<V> listBuilder(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) - Type Parameters:
V
- Type of the elements contained in the list.- Parameters:
descriptor
- Descriptor for the elements contained in the list.- Returns:
- A descriptor builder for a list value (
List<V>
).
-
listBuilder
- Type Parameters:
V
- Type of the elements contained in the list.- Parameters:
elementType
- Creates the descriptor for the type of the list elements.- Returns:
- A descriptor builder for a list value (
List<V>
).
-
listOfLargeStrings
- Returns:
- A descriptor builder for a value of type
List<LargeString>
. The description uses the default i18n key determined from the root class and the path to this property.
-
listOfLargeStrings
- Parameters:
descriptionI18n
- The i18n key to use for the description of the list-valued property.- Returns:
- A descriptor builder for a value of type
List<LargeString>
.
-
listOfStrings
- Returns:
- A descriptor builder for a value of type
List<String>
. The description uses the default i18n key determined from the root class and the path to this property.
-
listOfStrings
- Parameters:
descriptionI18n
- The i18n key to use for the description of the list-valued property.- Returns:
- A descriptor builder for a value of type
List<String>
.
-
map
- Type Parameters:
V
- Type of the mapped values.- Parameters:
descriptor
- Descriptor for the type of the mapped values.- Returns:
- A descriptor for a map value (
Map<String, V>
) that defaults to an empty map.
-
map
- Type Parameters:
V
- Type of the mapped values.- Parameters:
elementType
- Creates the descriptor for the type of the mapped values.- Returns:
- A descriptor for a map value (
Map<String, V>
) that defaults to an empty map.
-
mapBuilder
<V> IMapValueDescriptorBuilder<V> mapBuilder(IValueDescriptor<V, ? extends IValueBuilder<V>> descriptor) - Type Parameters:
V
- Type of the mapped values.- Parameters:
descriptor
- Descriptor for the type of the mapped values.- Returns:
- A descriptor builder for a map value (
Map<String, V>
).
-
mapBuilder
- Type Parameters:
V
- Type of the mapped values.- Parameters:
elementType
- Creates the descriptor for the type of the mapped values.- Returns:
- A descriptor builder for a map value (
Map<String, V>
).
-
mapToLargeStrings
- Returns:
- A descriptor builder for a value of type
Map<String, LargeString>
. The description uses the default i18n key determined from the root class and the path to this property.
-
mapToLargeStrings
- Parameters:
descriptionI18n
- The i18n key to use for the description of the map-valued property.- Returns:
- A descriptor builder for a value of type
Map<String, LargeString>
.
-
mapToStrings
- Returns:
- A descriptor builder for a value of type
Map<String, String>
. The description uses the default i18n key determined from the root class and the path to this property.
-
mapToStrings
- Parameters:
descriptionI18n
- The i18n key to use for the description of the map-valued property.- Returns:
- A descriptor builder for a value of type
Map<String, String>
.
-
nullish
- Returns:
- A descriptor for a value that can only be
null
.
-
nullish
- Parameters:
descriptionI18n
- The i18n key to use for the description of the map-valued property.- Returns:
- A descriptor for a value that can only be
null
.
-
nullishBuilder
INullValueDescriptorBuilder nullishBuilder()- Returns:
- A descriptor builder for a value that can only be
null
.
-
recordBuilder
IRecordValueDescriptorBuilder recordBuilder()- Returns:
- A descriptor builder for a record value.
-
string
- Returns:
- A descriptor for a string value that defaults to the empty string. The description uses the default i18n key determined from the root class and the path to this property.
-
string
- Parameters:
defaultValue
- The default value for the string property, used when no other value is supplied.- Returns:
- A descriptor for a string value that defaults to the given value. The description uses the default i18n key determined from the root class and the path to this property.
-
string
- Parameters:
defaultValue
- The default value for the string property, used when no other value is supplied.descriptionI18n
- The i18n key to use for the description of the string property.- Returns:
- A descriptor for a string value that defaults to the given value and uses the given description.
-
stringBuilder
IStringValueDescriptorBuilder stringBuilder()- Returns:
- A descriptor builder for a string value.
-
tuple
- Type Parameters:
V
- Common type of the tuple elements.- Parameters:
types
- Descriptor for each element in the tuple.- Returns:
- A descriptor for a tuple value that has a fixed length and where each element may have a different type. Each tuple element defaults to the default value of the given descriptor.
-
tuple
- Parameters:
types
- Creates the descriptor for each element in the tuple.- Returns:
- A descriptor for a tuple value that has a fixed length and where each element may have a different type. Each tuple element defaults to the default value of the given descriptor.
-
tupleBuilder
ITupleValueDescriptorBuilder tupleBuilder()- Returns:
- A descriptor builder for a tuple value with a fixed length and where each element has the same type. Each tuple element defaults to the default value of the given descriptor.
-
tupleOfSame
default <V> ITupleValueDescriptor tupleOfSame(int count, IValueDescriptor<V, ? extends IValueBuilder<V>> type) - Type Parameters:
V
- Common type of the tuple elements.- Parameters:
count
- Number of elements in the tuple.type
- Descriptor for each element in the tuple.- Returns:
- A descriptor for a tuple value of the given length and where each element has the same type. Each tuple element defaults to the default value of the given descriptor.
-
tupleOfSame
- Parameters:
count
- Number of elements in the tuple.creator
- Creates the descriptor for each element in the tuple.- Returns:
- A descriptor for a tuple value of the given length and where each element has the same type. Each tuple element defaults to the default value of the given descriptor.
-
unionBuilder
- Type Parameters:
D
- Type of the objects used to discriminate between the union members.- Parameters:
discriminatorClass
- Class of the objects used to discriminate between the union members.- Returns:
- A descriptor builder for a union value that uses instances of the given type as discriminators.
-
unionEmpty
- Returns:
- An empty union type, the same as
nullish()
.
-
unionEnumBuilder
default <E extends Enum<E>> IUnionValueDescriptorBuilder<E> unionEnumBuilder(Class<E> discriminatorClass) - Type Parameters:
E
- Type of the enum constant used to discriminate between the union members.- Parameters:
discriminatorClass
- Class of the enum constant used to discriminate between the union members.- Returns:
- A descriptor builder for a union value that uses enum constants of the given type as discriminators.
-
unionOfEnumConst
- Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.- Returns:
- A descriptor for a union value that consists of all enum constants. Uses the enum constants as the discriminator.
-
unionOfEnumConst
default <E extends Enum<E>> IUnionValueDescriptor<E> unionOfEnumConst(Class<E> enumClass, E defaultValue) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.defaultValue
- Default value of the union.- Returns:
- A descriptor for a union value that consists of all enum constants. Uses the enum constants as the discriminator.
-
unionOfEnumConstBuilder
default <E extends Enum<E>> IUnionValueDescriptorBuilder<E> unionOfEnumConstBuilder(Class<E> enumClass) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.- Returns:
- A descriptor builder for a union value that consists of all enum constants. Uses the enum constants as the discriminator.
-
unionOfEnumConstBuilder
default <E extends Enum<E>> IUnionValueDescriptorBuilder<E> unionOfEnumConstBuilder(Class<E> enumClass, E defaultValue) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.defaultValue
- Default value of the union.- Returns:
- A descriptor builder for a union value that consists of all enum constants. Uses the enum constants as the discriminator.
-
unionOfStringConst
- Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.- Returns:
- A descriptor for a union value that consists of all enum constants names. Uses the enum constants names as the discriminator.
-
unionOfStringConst
default <E extends Enum<E>> IUnionValueDescriptor<String> unionOfStringConst(Class<E> enumClass, E defaultValue) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.defaultValue
- Default value of the union.- Returns:
- A descriptor for a union value that consists of all enum constants names. Uses the enum constants names as the discriminator.
-
unionOfStringConst
- Parameters:
first
- First string in the union. This is also the default value.moreStrings
- More strings in the union.- Returns:
- A value descriptor that represents the algebraic sum type
"string1" | "string2" | "string3" | ...
.
-
unionOfStringConstBuilder
default <E extends Enum<E>> IUnionValueDescriptorBuilder<String> unionOfStringConstBuilder(Class<E> enumClass) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.- Returns:
- A descriptor builder for a union value that consists of all enum constants names. Uses the enum constants names as the discriminator.
-
unionOfStringConstBuilder
default <E extends Enum<E>> IUnionValueDescriptorBuilder<String> unionOfStringConstBuilder(Class<E> enumClass, E defaultValue) - Type Parameters:
E
- Type of the enum constants that are put in a union.- Parameters:
enumClass
- Class of the enum constants that are put in a union.defaultValue
- Default value of the union.- Returns:
- A descriptor builder for a union value that consists of all enum constants names. Uses the enum constants names as the discriminator.
-
unionOfStringConstBuilder
default IUnionValueDescriptorBuilder<String> unionOfStringConstBuilder(String first, String... moreStrings) - Parameters:
first
- First string in the union. This is also the default value.moreStrings
- More strings in the union.- Returns:
- A value descriptor builder that represents the algebraic sum type
"string1" | "string2" | "string3" | ...
.
-
unionStringBuilder
- Returns:
- A descriptor builder for a union value that uses string constants as discriminators.
-
voidish
IVoidValueDescriptor voidish()- Returns:
- A value descriptor for a void result. This is valid only as a root value for the return value of a method.
-