Contains interfaces for the data layer, mainly for binding typed data and data collections to components, and for validating data.

## Data binding

The package contains a three-tiered structure for typed data objects and collections of them:

- A {@link com.vaadin.data.Property Property} represents a single, typed data value.
- An {@link com.vaadin.data.Item Item} embodies a set of Properties. A locally unique (inside the {@link com.vaadin.data.Item Item}) Property identifier corresponds to each Property inside the Item.
- A {@link com.vaadin.data.Container Container} contains a set of Items, each corresponding to a locally unique Item identifier. Note that Container imposes a few restrictions on the data stored in it, see {@link com.vaadin.data.Container Container} for further information.

For more information on the data model, see the Data model chapter in Book of Vaadin.

## Buffering

A {@link com.vaadin.data.Buffered Buffered} implementor is able to track and buffer changes and commit or discard them later.

## Validation

{@link com.vaadin.data.Validator Validator} implementations are used to validate data, typically the value of a {@link com.vaadin.ui.Field Field}. One or more {@link com.vaadin.data.Validator Validators} can be added to a {@link com.vaadin.data.Validatable Validatable} implementor and then used to validate the value of the Validatable.