Interface IValueDescriptor<Value,Builder extends IValueBuilder<Value>>
-
- Type Parameters:
Value
- Type of the Java object representing the data.Builder
- Type of the builder for creating a new instance of the data type described by this descriptor.
- All Superinterfaces:
Serializable
- All Known Subinterfaces:
IAnyValueDescriptor
,IBooleanValueDescriptor
,IConstValueDescriptor<V>
,IFloatValueDescriptor
,IIntegerValueDescriptor
,ILargeStringValueDescriptor
,IListValueDescriptor<V>
,IMapValueDescriptor<V>
,INullValueDescriptor
,IRecordValueDescriptor
,IStringValueDescriptor
,ITupleValueDescriptor
,IUnionValueDescriptor<D>
,IVoidValueDescriptor
- All Known Implementing Classes:
AttachmentDescriptor
,FileItemDescriptor
,FormRecordChatDescriptor
,FormRecordMessageDescriptor
,FormRecordMessageUploadRequestDescriptor
,MimeTypeDescriptor
,RecordValueDescriptorWrapper
,UserDataDescriptor
,UserProfileDescriptor
public interface IValueDescriptor<Value,Builder extends IValueBuilder<Value>> extends Serializable
Base class for all value descriptors that describe the shape of (mostly JSON-like) data. A value descriptor indicates the type a value must have and may impose additional restrictions on the allowed values.IValueBuilderFactory f = ValueBuilderFactory.getInstance(); IListValueDescriptor descriptor = f.listBuilder(f.string()).description("i18n.key").build(); // Obtain a list of available properties, to create an overview table etc. List<IProperty> properties = descriptor.getKnownProperties("Root"); // Property[path=Root, type=List, description="i18n.key"] System.out.println(properties.get(0)); // Property[path=Root[i], type=String, description="Root[i]"] System.out.println(properties.get(1)); List<String> list = descriptor.builder().set(0, "foo").set(1, "bar").build(); // ["foo", "bar"] System.out.println(list);
- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
acceptsValue(Object value)
IAnyValueDescriptor
asAny()
Casts this descriptor to an any value descriptor type.IBooleanValueDescriptor
asBoolean()
Casts this descriptor to a boolean value descriptor type.<T> IConstValueDescriptor<T>
asConst()
Casts this descriptor to a constant value descriptor type.IFloatValueDescriptor
asFloat()
Casts this descriptor to a float value descriptor type.IIntegerValueDescriptor
asInteger()
Casts this descriptor to an integer value descriptor type.ILargeStringValueDescriptor
asLargeString()
Casts this descriptor to a large string value descriptor type.IListValueDescriptor<?>
asList()
Casts this descriptor to a list value descriptor type.<S> IListValueDescriptor<S>
asList(Class<S> elementType)
Casts this descriptor to a list value descriptor type.IMapValueDescriptor<?>
asMap()
Casts this descriptor to a map value descriptor type.<S> IMapValueDescriptor<S>
asMap(Class<S> valueType)
Casts this descriptor to a map value descriptor type.INullValueDescriptor
asNull()
Casts this descriptor to a null value descriptor type.IRecordValueDescriptor
asRecord()
Casts this descriptor to a record value descriptor type.IStringValueDescriptor
asString()
Casts this descriptor to a string value descriptor type.ITupleValueDescriptor
asTuple()
Casts this descriptor to a tuple value descriptor type.IUnionValueDescriptor<?>
asUnion()
Casts this descriptor to a union value descriptor type.<E> IUnionValueDescriptor<E>
asUnion(Class<E> type)
Casts this descriptor to a union value descriptor type with a discriminator of the given type.default IVoidValueDescriptor
asVoid()
Casts this descriptor to a void value descriptor type.Builder
builder()
Creates a new value builder for creating a value that conforms to the restrictions imposed by this value descriptor.IValueDescriptorBuilder<Value,Builder,?>
configure()
Creates a new builder pre-configured with the settings of this descriptor.EValueType
getBaseType()
Value
getDefaultValue()
String
getDescription()
String
getFullType()
Class<?>
getJavaClass()
List<IProperty>
getKnownProperties(String basePath)
List<IProperty>
getKnownProperties(String jsonPath, String basePath, int nestingLevel)
IValueDescriptor<?,?>
intersect(IValueDescriptor<?,?> other)
Intersects this value descriptor with the given type.boolean
is(Class<? extends IValueDescriptor> clazz)
<TItem,TDesc extends IValueDescriptor<TItem,? extends IValueBuilder<TItem>>>
TDescunwrap(Class<? extends TDesc> clazz)
Casts this descriptor to the given type.IValueDescriptor<Value,Builder>
withDefaultValue(Object defaultValue)
IValueDescriptor<Value,Builder>
withDescription(String description)
-
-
-
Method Detail
-
acceptsValue
boolean acceptsValue(Object value)
- Parameters:
value
- A value to check.- Returns:
true
when the given value conforms to the restrictions imposed by this value descriptor,false
otherwise.
-
asAny
IAnyValueDescriptor asAny()
Casts this descriptor to an any value descriptor type.- Returns:
- This value descriptor cast to an any value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asBoolean
IBooleanValueDescriptor asBoolean()
Casts this descriptor to a boolean value descriptor type.- Returns:
- This value descriptor cast to a boolean value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asConst
<T> IConstValueDescriptor<T> asConst()
Casts this descriptor to a constant value descriptor type.- Type Parameters:
T
- Type of the constant.- Returns:
- This value descriptor cast to a constant value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asFloat
IFloatValueDescriptor asFloat()
Casts this descriptor to a float value descriptor type.- Returns:
- This value descriptor cast to a float value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asInteger
IIntegerValueDescriptor asInteger()
Casts this descriptor to an integer value descriptor type.- Returns:
- This value descriptor cast to an integer value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asLargeString
ILargeStringValueDescriptor asLargeString()
Casts this descriptor to a large string value descriptor type.- Returns:
- This value descriptor cast to a large string value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asList
IListValueDescriptor<?> asList()
Casts this descriptor to a list value descriptor type.- Returns:
- This value descriptor cast to a list value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asList
<S> IListValueDescriptor<S> asList(Class<S> elementType)
Casts this descriptor to a list value descriptor type.- Type Parameters:
S
- Type of the elements contained in the list.- Parameters:
elementType
- Type of the elements contained in the list.- Returns:
- This value descriptor cast to a list value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asMap
IMapValueDescriptor<?> asMap()
Casts this descriptor to a map value descriptor type.- Returns:
- This value descriptor cast to a map value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asMap
<S> IMapValueDescriptor<S> asMap(Class<S> valueType)
Casts this descriptor to a map value descriptor type.- Type Parameters:
S
- Type of the values contained in the map.- Parameters:
valueType
- Type of the values contained in the map.- Returns:
- This value descriptor cast to a map value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asNull
INullValueDescriptor asNull()
Casts this descriptor to a null value descriptor type.- Returns:
- This value descriptor cast to a null value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asRecord
IRecordValueDescriptor asRecord()
Casts this descriptor to a record value descriptor type.- Returns:
- This value descriptor cast to a record value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asString
IStringValueDescriptor asString()
Casts this descriptor to a string value descriptor type.- Returns:
- This value descriptor cast to a string value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asTuple
ITupleValueDescriptor asTuple()
Casts this descriptor to a tuple value descriptor type.- Returns:
- This value descriptor cast to a tuple value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asUnion
IUnionValueDescriptor<?> asUnion()
Casts this descriptor to a union value descriptor type.- Returns:
- This value descriptor cast to a union value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asUnion
<E> IUnionValueDescriptor<E> asUnion(Class<E> type)
Casts this descriptor to a union value descriptor type with a discriminator of the given type.- Type Parameters:
E
- Type of the union discriminator.- Parameters:
type
- Type of the union discriminator.- Returns:
- This value descriptor cast to a union value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
asVoid
default IVoidValueDescriptor asVoid()
Casts this descriptor to a void value descriptor type.- Returns:
- This value descriptor cast to a void value descriptor.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the desired type.
-
builder
Builder builder()
Creates a new value builder for creating a value that conforms to the restrictions imposed by this value descriptor.- Returns:
- A new value builder for values as indicated by this value descriptor.
-
configure
IValueDescriptorBuilder<Value,Builder,?> configure()
Creates a new builder pre-configured with the settings of this descriptor. Lets you e.g. add additional properties.- Returns:
- A new builder pre-configured with the settings of this descriptor.
-
getBaseType
EValueType getBaseType()
- Returns:
- The basic type of value described by this value descriptor.
-
getDefaultValue
Value getDefaultValue()
- Returns:
- The default value used if no explicit is provided when a value for this descriptor is created.
-
getDescription
String getDescription()
- Returns:
- Description for this value. This is passed through as set when the descriptor was created. Can be either a localized message or an I18N key.
-
getFullType
String getFullType()
- Returns:
- The full value type of this value descriptors, including the type of list elements or map values.
-
getJavaClass
Class<?> getJavaClass()
- Returns:
- The Java class of the values described by this descriptor.
-
getKnownProperties
List<IProperty> getKnownProperties(String basePath)
- Parameters:
basePath
- Prefix added to the property paths.- Returns:
- A list of all properties known to exist when a value of this type is created. For example, if a record has required properties, these properties are included in the returned list.
-
getKnownProperties
List<IProperty> getKnownProperties(String jsonPath, String basePath, int nestingLevel)
-
intersect
IValueDescriptor<?,?> intersect(IValueDescriptor<?,?> other)
Intersects this value descriptor with the given type. This is a shortcut for using the default factory, seeIValueDescriptorFactory#intersect
for details.- Parameters:
other
- Another value descriptor.- Returns:
- The intersection of this and the given value descriptor.
- Since:
- 8.1.0
-
is
boolean is(Class<? extends IValueDescriptor> clazz)
- Parameters:
clazz
- Class to check.- Returns:
- Whether this descriptor can be cast to the given class.
- See Also:
unwrap(Class)
-
unwrap
<TItem,TDesc extends IValueDescriptor<TItem,? extends IValueBuilder<TItem>>> TDesc unwrap(Class<? extends TDesc> clazz)
Casts this descriptor to the given type. Make sure you are certain it is of the given type.- Type Parameters:
TItem
- Type of the values described by the descriptor.TDesc
- Type of the descriptor.- Parameters:
clazz
- Class to which to cast this descriptor.- Returns:
- This value descriptor cast to the given type.
- Throws:
ClassCastException
- When this descriptor cannot be cast to the given type.- See Also:
is(Class)
-
withDefaultValue
IValueDescriptor<Value,Builder> withDefaultValue(Object defaultValue)
- Parameters:
defaultValue
- The new default value. May be changed when it does not conform to the restrictions imposed by this descriptor.- Returns:
- A new descriptor with the default value.
- Since:
- 8.1.0
-
withDescription
IValueDescriptor<Value,Builder> withDescription(String description)
- Parameters:
description
- The new description.- Returns:
- A new descriptor with the given description.
- Since:
- 8.1.0
-
-