public interface Container extends Serializable
A specialized set of identified Items. Basically the Container is a set of
Item
s, but it imposes certain constraints on its contents. These
constraints state the following:
Item.getItemPropertyIds()
).
The Container can be visualized as a representation of a relational database
table. Each Item in the Container represents a row in the table, and all
cells in a column (identified by a Property ID) have the same data type. Note
that as with the cells in a database table, no Property in a Container may be
empty, though they may contain null
values.
Note that though uniquely identified, the Items in a Container are not
necessarily ordered
or indexed
.
Containers can derive Item ID's from the item properties or use other, container specific or user specified identifiers.
If a container is filtered
or sorted
,
most of the the methods of the container interface and its subinterfaces
(container size, containsId(Object)
, iteration and indices etc.)
relate to the filtered and sorted view, not to the full container contents.
See individual method javadoc for exceptions to this (adding and removing
items).
The Container interface is split to several subinterfaces so that a class can implement only the ones it needs.
Modifier and Type | Interface and Description |
---|---|
static interface |
Container.Editor
Interface implemented by the editor classes supporting editing the
Container.
|
static interface |
Container.Filter
Filter interface for container filtering.
|
static interface |
Container.Filterable
Interface that is implemented by containers which allow reducing their
visible contents based on a set of filters.
|
static interface |
Container.Hierarchical
Interface for
Container classes whose Items can be arranged
hierarchically. |
static interface |
Container.Indexed
Interface for Container classes whose
Item s can be accessed by
their position in the container. |
static interface |
Container.ItemSetChangeEvent
An
Event object specifying the Container whose Item set has
changed (items added, removed or reordered). |
static interface |
Container.ItemSetChangeListener
Container Item set change listener interface.
|
static interface |
Container.ItemSetChangeNotifier
The interface for adding and removing
ItemSetChangeEvent
listeners. |
static interface |
Container.Ordered
Interface for Container classes whose
Item s can be traversed in
order. |
static interface |
Container.PropertySetChangeEvent
An
Event object specifying the Container whose Property set
has changed. |
static interface |
Container.PropertySetChangeListener
The listener interface for receiving
PropertySetChangeEvent
objects. |
static interface |
Container.PropertySetChangeNotifier
The interface for adding and removing
PropertySetChangeEvent
listeners. |
static interface |
Container.SimpleFilterable
Interface that is implemented by containers which allow reducing their
visible contents based on a set of filters.
|
static interface |
Container.Sortable
Interface for Container classes whose
Item s can be sorted. |
static interface |
Container.Viewer
Interface implemented by viewer classes capable of using a Container as a
data source.
|
Modifier and Type | Method and Description |
---|---|
boolean |
addContainerProperty(Object propertyId,
Class<?> type,
Object defaultValue)
Adds a new Property to all Items in the Container.
|
Object |
addItem()
Creates a new Item into the Container, and assign it an automatic ID.
|
Item |
addItem(Object itemId)
Creates a new Item with the given ID in the Container.
|
boolean |
containsId(Object itemId)
Tests if the Container contains the specified Item.
|
Property |
getContainerProperty(Object itemId,
Object propertyId)
Gets the Property identified by the given itemId and propertyId from the
Container.
|
Collection<?> |
getContainerPropertyIds()
Gets the ID's of all Properties stored in the Container.
|
Item |
getItem(Object itemId)
Gets the
Item with the given Item ID from the Container. |
Collection<?> |
getItemIds()
Gets the ID's of all visible (after filtering and sorting) Items stored
in the Container.
|
Class<?> |
getType(Object propertyId)
Gets the data type of all Properties identified by the given Property ID.
|
boolean |
removeAllItems()
Removes all Items from the Container.
|
boolean |
removeContainerProperty(Object propertyId)
Removes a Property specified by the given Property ID from the Container.
|
boolean |
removeItem(Object itemId)
Removes the Item identified by
ItemId from the Container. |
int |
size()
Gets the number of visible Items in the Container.
|
Item getItem(Object itemId)
Item
with the given Item ID from the Container. If the
Container does not contain the requested Item, null
is
returned.
Containers should not return Items that are filtered out.
Collection<?> getContainerPropertyIds()
Collection<?> getItemIds()
If the container is Container.Ordered
, the collection returned by this
method should follow that order. If the container is Container.Sortable
,
the items should be in the sorted order.
Calling this method for large lazy containers can be an expensive operation and should be avoided when practical.
Property getContainerProperty(Object itemId, Object propertyId)
null
is
returned.itemId
- ID of the visible Item which contains the PropertypropertyId
- ID of the Property to retrievenull
Class<?> getType(Object propertyId)
propertyId
- ID identifying the Propertiesint size()
Filtering can hide items so that they will not be visible through the container API.
boolean containsId(Object itemId)
Filtering can hide items so that they will not be visible through the container API, and this method should respect visibility of items (i.e. only indicate visible items as being in the container) if feasible for the container.
itemId
- ID the of Item to be testedItem addItem(Object itemId) throws UnsupportedOperationException
The new Item is returned, and it is ready to have its Properties
modified. Returns null
if the operation fails or the
Container already contains a Item with the given ID.
This functionality is optional.
itemId
- ID of the Item to be creatednull
in case of a failureUnsupportedOperationException
- if adding an item with an explicit item ID is not supported
by the containerObject addItem() throws UnsupportedOperationException
The new ID is returned, or null
if the operation fails.
After a successful call you can use the
method to fetch the Item.
getItem
This functionality is optional.
null
in case of a
failureUnsupportedOperationException
- if adding an item without an explicit item ID is not
supported by the containerboolean removeItem(Object itemId) throws UnsupportedOperationException
ItemId
from the Container.
Containers that support filtering should also allow removing an item that is currently filtered out.
This functionality is optional.
itemId
- ID of the Item to removetrue
if the operation succeeded, false
if notUnsupportedOperationException
- if the container does not support removing individual itemsboolean addContainerProperty(Object propertyId, Class<?> type, Object defaultValue) throws UnsupportedOperationException
This functionality is optional.
propertyId
- ID of the Propertytype
- Data type of the new PropertydefaultValue
- The value all created Properties are initialized totrue
if the operation succeeded, false
if notUnsupportedOperationException
- if the container does not support explicitly adding container
propertiesboolean removeContainerProperty(Object propertyId) throws UnsupportedOperationException
This functionality is optional.
propertyId
- ID of the Property to removetrue
if the operation succeeded, false
if notUnsupportedOperationException
- if the container does not support removing container
propertiesboolean removeAllItems() throws UnsupportedOperationException
Note that Property ID and type information is preserved. This functionality is optional.
true
if the operation succeeded, false
if notUnsupportedOperationException
- if the container does not support removing all itemsCopyright © 2019 Vaadin Ltd. All rights reserved.