Interface IValueDescriptorFactory
-
- All Known Implementing Classes:
ValueDescriptorFactory
public interface IValueDescriptorFactory
Factory for creatingIValueDescriptor
s. This includes methods that createIValueDescriptorBuilder
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
-
-
-
Method Detail
-
accessAtPath
List<?> accessAtPath(Object base, String path)
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
default IAnyValueDescriptor any(Object defaultValue)
- 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
default IBooleanValueDescriptor 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
default IBooleanValueDescriptor bool(boolean defaultValue)
- 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
default IBooleanValueDescriptor bool(boolean defaultValue, String descriptionI18n)
- 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
default IConstValueDescriptor<Boolean> constant(boolean value)
- 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
default IConstValueDescriptor<Double> constant(double value)
- 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
default IConstValueDescriptor<Long> constant(long value)
- 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
default IConstValueDescriptor<String> constant(String value)
- 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
IConstValueDescriptorBuilder<Boolean> constantBuilder(boolean value)
- 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
IConstValueDescriptorBuilder<Double> constantBuilder(double value)
- 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
IConstValueDescriptorBuilder<Long> constantBuilder(long value)
- 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
IConstValueDescriptorBuilder<String> constantBuilder(String value)
- 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
default IFloatValueDescriptor 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
default IFloatValueDescriptor floating(double defaultValue)
- 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
default IFloatValueDescriptor floating(double defaultValue, String descriptionI18n)
- 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
default IIntegerValueDescriptor 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
default IIntegerValueDescriptor integer(long defaultValue)
- 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
default IIntegerValueDescriptor integer(long defaultValue, String descriptionI18n)
- 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.
-
list
default <V> IListValueDescriptor<V> list(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 for a list value (
List<V>
) that defaults to an empty list and may contain any number of elements.
-
list
default <V> IListValueDescriptor<V> list(IValueDescriptorCreator<V> elementType)
- 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
<V> IListValueDescriptorBuilder<V> listBuilder(IValueDescriptorCreator<V> elementType)
- 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>
).
-
listOfStrings
default IListValueDescriptor<String> 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
default <V> IListValueDescriptor<String> listOfStrings(String descriptionI18n)
- 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
default <V> IMapValueDescriptor<V> map(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 for a map value (
Map<String, V>
) that defaults to an empty map.
-
map
default <V> IMapValueDescriptor<V> map(IValueDescriptorCreator<V> elementType)
- 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
<V> IMapValueDescriptorBuilder<V> mapBuilder(IValueDescriptorCreator<V> elementType)
- 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>
).
-
mapToStrings
default <V> IMapValueDescriptor<String> 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
default <V> IMapValueDescriptor<String> mapToStrings(String descriptionI18n)
- 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
default INullValueDescriptor nullish()
- Returns:
- A descriptor for a value that can only be
null
.
-
nullish
default INullValueDescriptor nullish(String descriptionI18n)
- 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
default IStringValueDescriptor 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
default IStringValueDescriptor string(String defaultValue)
- 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
default IStringValueDescriptor string(String defaultValue, String descriptionI18n)
- 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
default <V> ITupleValueDescriptor tuple(IValueDescriptor<V,? extends IValueBuilder<V>>... types)
- 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
default ITupleValueDescriptor tuple(IValueDescriptorCreator<?>... types)
- 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
default ITupleValueDescriptor tupleOfSame(int count, IValueDescriptorCreator<?> creator)
- 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
<D> IUnionValueDescriptorBuilder<D> unionBuilder(Class<D> discriminatorClass)
- 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
default <D> IUnionValueDescriptor<D> 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
default <E extends Enum<E>> IUnionValueDescriptor<E> unionOfEnumConst(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 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
default <E extends Enum<E>> IUnionValueDescriptor<String> unionOfStringConst(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 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
default IUnionValueDescriptor<String> unionOfStringConst(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 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
default IUnionValueDescriptorBuilder<String> 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.
-
-