| Interface | Description | 
|---|---|
| CustomDatatype<T> | 
 Represents a custom datatype, which an administrator may use for global properties, attribute types, etc. 
 | 
| CustomDatatypeHandler<DT extends CustomDatatype<T>,T> | 
 Subclasses of this interface represent different ways of building UI widgets to handle  
CustomDatatypes. | 
| Customizable<A extends Attribute> | 
 Marker interface for classes that may be customized by the user by adding custom attributes, e.g. 
 | 
| CustomValueDescriptor | 
 A metadata item describing how a type of custom value is stored. 
 | 
| DownloadableDatatypeHandler<T> | 
 Indicates that a CustomDatatypeHandler allows underlying custom values to be downloaded or streamed in some
 meaningful way. 
 | 
| RepeatingCustomValueDescriptor | 
 Metadata describing how a custom value may repeat within an owning type, as well as how it is stored. 
 | 
| SingleCustomValue<D extends CustomValueDescriptor> | 
 Either a one-off custom value (e.g. 
 | 
| Class | Description | 
|---|---|
| CustomDatatype.Summary | 
 A short reprepresentation of a custom value, along with an indication of whether this is the complete value,
 or just a summary. 
 | 
| CustomDatatypeUtil | 
 Helper methods for dealing with custom datatypes and their handlers 
 | 
| SerializingCustomDatatype<T> | 
| Exception | Description | 
|---|---|
| CustomDatatypeException | 
 Exception related to  
CustomDatatype or CustomDatatypeHandler | 
| InvalidCustomValueException | 
 Exception thrown when trying to convert between a serialized attribute value and its typed value, if the
 serialized String is not a legal value for the given handler. 
 | 
| NotYetPersistedException | 
 Indicates that you tried to access the valueReference of a  
SingleCustomValue that has not yet been persisted | 
Copyright © 2018 OpenMRS Inc.. All Rights Reserved.