Interface IValueDescriptorFactory

  • All Known Implementing Classes:
    ValueDescriptorFactory

    public interface IValueDescriptorFactory
    Factory for creating IValueDescriptors. This includes methods that create IValueDescriptorBuilders 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 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.