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 booleanacceptsValue(Object value)IAnyValueDescriptorasAny()Casts this descriptor to an any value descriptor type.IBooleanValueDescriptorasBoolean()Casts this descriptor to a boolean value descriptor type.<T> IConstValueDescriptor<T>asConst()Casts this descriptor to a constant value descriptor type.IFloatValueDescriptorasFloat()Casts this descriptor to a float value descriptor type.IIntegerValueDescriptorasInteger()Casts this descriptor to an integer value descriptor type.ILargeStringValueDescriptorasLargeString()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.INullValueDescriptorasNull()Casts this descriptor to a null value descriptor type.IRecordValueDescriptorasRecord()Casts this descriptor to a record value descriptor type.IStringValueDescriptorasString()Casts this descriptor to a string value descriptor type.ITupleValueDescriptorasTuple()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 IVoidValueDescriptorasVoid()Casts this descriptor to a void value descriptor type.Builderbuilder()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.EValueTypegetBaseType()ValuegetDefaultValue()StringgetDescription()StringgetFullType()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.booleanis(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:
 truewhen the given value conforms to the restrictions imposed by this value descriptor,falseotherwise.
 
- 
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#intersectfor 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
 
 
 - 
 
 -