|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.vaadin.data.util.sqlcontainer.SQLContainer
public class SQLContainer
Nested Class Summary | |
---|---|
static class |
SQLContainer.ItemSetChangeEvent
Simple ItemSetChangeEvent implementation. |
Nested classes/interfaces inherited from interface com.vaadin.data.Container.Indexed |
---|
Container.Indexed.ItemAddEvent, Container.Indexed.ItemRemoveEvent |
Nested classes/interfaces inherited from interface com.vaadin.data.Container |
---|
Container.Editor, Container.Filter, Container.Filterable, Container.Hierarchical, Container.Indexed, Container.ItemSetChangeListener, Container.ItemSetChangeNotifier, Container.Ordered, Container.PropertySetChangeEvent, Container.PropertySetChangeListener, Container.PropertySetChangeNotifier, Container.SimpleFilterable, Container.Sortable, Container.Viewer |
Field Summary | |
---|---|
static int |
CACHE_RATIO
Number of items to cache = CACHE_RATIO x pageLength |
static int |
DEFAULT_PAGE_LENGTH
|
Constructor Summary | |
---|---|
SQLContainer(QueryDelegate delegate)
Creates and initializes SQLContainer using the given QueryDelegate |
Method Summary | |
---|---|
void |
addContainerFilter(Container.Filter filter)
Adds a filter for the container. |
void |
addContainerFilter(java.lang.Object propertyId,
java.lang.String filterString,
boolean ignoreCase,
boolean onlyMatchPrefix)
|
boolean |
addContainerProperty(java.lang.Object propertyId,
java.lang.Class<?> type,
java.lang.Object defaultValue)
Adds a new Property to all Items in the Container. |
java.lang.Object |
addItem()
Note! If auto commit mode is enabled, this method will still return the temporary row ID assigned for the item. |
Item |
addItem(java.lang.Object itemId)
Creates a new Item with the given ID in the Container. |
java.lang.Object |
addItemAfter(java.lang.Object previousItemId)
Adds a new item after the given item. |
Item |
addItemAfter(java.lang.Object previousItemId,
java.lang.Object newItemId)
Adds a new item after the given item. |
java.lang.Object |
addItemAt(int index)
Adds a new item at given index (in the filtered view). |
Item |
addItemAt(int index,
java.lang.Object newItemId)
Adds a new item at given index (in the filtered view). |
void |
addItemSetChangeListener(Container.ItemSetChangeListener listener)
Adds an Item set change listener for the object. |
void |
addListener(Container.ItemSetChangeListener listener)
Deprecated. As of 7.0, replaced by addItemSetChangeListener(com.vaadin.data.Container.ItemSetChangeListener) |
void |
addListener(QueryDelegate.RowIdChangeListener listener)
Deprecated. As of 7.0, replaced by #addRowIdChangeListener(RowIdChangeListener) |
void |
addOrderBy(OrderBy orderBy)
Adds the given OrderBy to this container and refreshes the container contents with the new sorting rules. |
void |
addReference(SQLContainer refdCont,
java.lang.String refingCol,
java.lang.String refdCol)
Adds a new reference to the given SQLContainer. |
void |
addRowIdChangeListener(QueryDelegate.RowIdChangeListener listener)
Adds a RowIdChangeListener to the QueryDelegate |
void |
commit()
Commits all the changes, additions and removals made to the items of this container. |
boolean |
containsId(java.lang.Object itemId)
Tests if the Container contains the specified Item. |
void |
enableCacheFlushNotifications()
Calling this will enable this SQLContainer to send and receive cache flush notifications for its lifetime. |
protected void |
fireContentsChange()
|
java.lang.Object |
firstItemId()
Gets the ID of the first Item in the Container. |
java.util.Collection<Container.Filter> |
getContainerFilters()
Returns the filters which have been applied to the container |
Property |
getContainerProperty(java.lang.Object itemId,
java.lang.Object propertyId)
Gets the Property identified by the given itemId and propertyId from the Container. |
java.util.Collection<?> |
getContainerPropertyIds()
Gets the ID's of all Properties stored in the Container. |
java.lang.Object |
getIdByIndex(int index)
Get the item id for the item at the position given by index . |
Item |
getItem(java.lang.Object itemId)
Gets the Item with the given Item ID from the Container. |
java.util.Collection<?> |
getItemIds()
NOTE! Do not use this method if in any way avoidable. |
java.util.List<java.lang.Object> |
getItemIds(int startIndex,
int numberOfIds)
Get numberOfItems consecutive item ids from the
container, starting with the item id at startIndex . |
Item |
getItemUnfiltered(java.lang.Object itemId)
Bypasses in-memory filtering to return items that are cached in memory. |
int |
getPageLength()
Returns the currently set page length. |
protected QueryDelegate |
getQueryDelegate()
Returns the QueryDelegate set for this SQLContainer. |
Item |
getReferencedItem(java.lang.Object itemId,
SQLContainer refdCont)
Fetches the referenced item from the target SQLContainer. |
java.lang.Object |
getReferencedItemId(java.lang.Object itemId,
SQLContainer refdCont)
Fetches the Item Id of the referenced item from the target SQLContainer. |
java.util.Collection<?> |
getSortableContainerPropertyIds()
Gets the container property IDs which can be used to sort the items. |
java.lang.Class<?> |
getType(java.lang.Object propertyId)
Gets the data type of all Properties identified by the given Property ID. |
boolean |
hasContainerFilters()
Returns true if any filters have been applied to the container. |
int |
indexOfId(java.lang.Object itemId)
Gets the index of the Item corresponding to the itemId. |
boolean |
isAutoCommit()
Returns status of the auto commit mode. |
boolean |
isFirstId(java.lang.Object itemId)
Tests if the Item corresponding to the given Item ID is the first Item in the Container. |
boolean |
isLastId(java.lang.Object itemId)
Tests if the Item corresponding to the given Item ID is the last Item in the Container. |
boolean |
isModified()
Returns modify state of the container. |
java.lang.Object |
lastItemId()
Gets the ID of the last Item in the Container.. |
java.lang.Object |
nextItemId(java.lang.Object itemId)
Gets the ID of the Item following the Item that corresponds to itemId . |
java.lang.Object |
prevItemId(java.lang.Object itemId)
Gets the ID of the Item preceding the Item that corresponds to itemId . |
void |
refresh()
Refreshes the container - clears all caches and resets size and offset. |
void |
removeAllContainerFilters()
Remove all active filters from the container. |
boolean |
removeAllItems()
Removes all Items from the Container. |
void |
removeContainerFilter(Container.Filter filter)
Removes a filter from the container. |
void |
removeContainerFilters(java.lang.Object propertyId)
|
boolean |
removeContainerProperty(java.lang.Object propertyId)
Removes a Property specified by the given Property ID from the Container. |
boolean |
removeItem(java.lang.Object itemId)
Removes the Item identified by ItemId from the Container. |
void |
removeItemSetChangeListener(Container.ItemSetChangeListener listener)
Removes the Item set change listener from the object. |
void |
removeListener(Container.ItemSetChangeListener listener)
Deprecated. As of 7.0, replaced by removeItemSetChangeListener(com.vaadin.data.Container.ItemSetChangeListener) |
void |
removeListener(QueryDelegate.RowIdChangeListener listener)
Deprecated. As of 7.0, replaced by #removeRowIdChangeListener(RowIdChangeListener) |
boolean |
removeReference(SQLContainer refdCont)
Removes the reference pointing to the given SQLContainer. |
void |
removeRowIdChangeListener(QueryDelegate.RowIdChangeListener listener)
Removes a RowIdChangeListener from the QueryDelegate |
void |
rollback()
Rolls back all the changes, additions and removals made to the items of this container. |
void |
setAutoCommit(boolean autoCommitEnabled)
Set auto commit mode enabled or disabled. |
void |
setPageLength(int pageLength)
Sets the page length used in lazy fetching of items from the data source. |
boolean |
setReferencedItem(java.lang.Object itemId,
java.lang.Object refdItemId,
SQLContainer refdCont)
Sets the referenced item. |
int |
size()
Gets the number of visible Items in the Container. |
void |
sort(java.lang.Object[] propertyId,
boolean[] ascending)
Sorts the container items. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DEFAULT_PAGE_LENGTH
public static final int CACHE_RATIO
Constructor Detail |
---|
public SQLContainer(QueryDelegate delegate) throws java.sql.SQLException
delegate
- QueryDelegate implementation
java.sql.SQLException
Method Detail |
---|
public java.lang.Object addItem() throws java.lang.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.
addItem
in interface Container
null
in case of a
failure
java.lang.UnsupportedOperationException
- if adding an item without an explicit item ID is not
supported by the containerpublic boolean containsId(java.lang.Object itemId)
Container
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.
containsId
in interface Container
itemId
- ID the of Item to be tested
public Property getContainerProperty(java.lang.Object itemId, java.lang.Object propertyId)
Container
null
is
returned.
getContainerProperty
in interface Container
itemId
- ID of the visible Item which contains the PropertypropertyId
- ID of the Property to retrieve
null
public java.util.Collection<?> getContainerPropertyIds()
Container
getContainerPropertyIds
in interface Container
public Item getItem(java.lang.Object itemId)
Container
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.
getItem
in interface Container
itemId
- ID of the Item
to retrieve
Item
with the given ID or null
if the
Item is not found in the Containerpublic Item getItemUnfiltered(java.lang.Object itemId)
itemId
- the id of the item to retrieve.
public java.util.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.
getItemIds
in interface Container
public java.lang.Class<?> getType(java.lang.Object propertyId)
Container
getType
in interface Container
propertyId
- ID identifying the Properties
public int size()
Container
Filtering can hide items so that they will not be visible through the container API.
size
in interface Container
public boolean removeItem(java.lang.Object itemId) throws java.lang.UnsupportedOperationException
Container
ItemId
from the Container.
Containers that support filtering should also allow removing an item that is currently filtered out.
This functionality is optional.
removeItem
in interface Container
itemId
- ID of the Item to remove
true
if the operation succeeded, false
if not
java.lang.UnsupportedOperationException
- if the container does not support removing individual itemspublic boolean removeAllItems() throws java.lang.UnsupportedOperationException
Container
Note that Property ID and type information is preserved. This functionality is optional.
removeAllItems
in interface Container
true
if the operation succeeded, false
if not
java.lang.UnsupportedOperationException
- if the container does not support removing all itemspublic void addContainerFilter(Container.Filter filter) throws UnsupportedFilterException
If a container has multiple filters, only items accepted by all filters are visible.
addContainerFilter
in interface Container.Filterable
UnsupportedFilterException
- if the filter is not supported by the containerpublic void removeContainerFilter(Container.Filter filter)
This requires that the equals() method considers the filters as equivalent (same instance or properly implemented equals() method).
removeContainerFilter
in interface Container.Filterable
public void addContainerFilter(java.lang.Object propertyId, java.lang.String filterString, boolean ignoreCase, boolean onlyMatchPrefix)
public void removeContainerFilters(java.lang.Object propertyId)
public void removeAllContainerFilters()
removeAllContainerFilters
in interface Container.Filterable
public boolean hasContainerFilters()
public java.util.Collection<Container.Filter> getContainerFilters()
Container.Filterable
getContainerFilters
in interface Container.Filterable
public int indexOfId(java.lang.Object itemId)
Container.Indexed
true
for the returned index: 0 <= index < size(), or
index = -1 if there is no visible item with that id in the container.
indexOfId
in interface Container.Indexed
itemId
- ID of an Item in the Container
public java.lang.Object getIdByIndex(int index)
Container.Indexed
index
.
getIdByIndex
in interface Container.Indexed
index
- the index of the requested item id
public java.util.List<java.lang.Object> getItemIds(int startIndex, int numberOfIds)
Container.Indexed
numberOfItems
consecutive item ids from the
container, starting with the item id at startIndex
.
Implementations should return at most numberOfItems
item
ids, but can contain less if the container has less items than
required to fulfill the request. The returned list must hence contain
all of the item ids from the range:
startIndex
to
max(startIndex + (numberOfItems-1), container.size()-1)
.
For quick migration to new API see:
ContainerHelpers#getItemIdsUsingGetIdByIndex(int, int, Indexed)
getItemIds
in interface Container.Indexed
startIndex
- the index for the first item which id to includenumberOfIds
- the number of consecutive item ids to get from the given
start index, must be >= 0
numberOfItems
== 0; not nullpublic java.lang.Object nextItemId(java.lang.Object itemId)
Container.Ordered
itemId
. If the given Item is the last or not found in
the Container, null
is returned.
nextItemId
in interface Container.Ordered
itemId
- ID of a visible Item in the Container
null
public java.lang.Object prevItemId(java.lang.Object itemId)
Container.Ordered
itemId
. If the given Item is the first or not found in
the Container, null
is returned.
prevItemId
in interface Container.Ordered
itemId
- ID of a visible Item in the Container
null
public java.lang.Object firstItemId()
Container.Ordered
firstItemId
in interface Container.Ordered
public java.lang.Object lastItemId()
Container.Ordered
lastItemId
in interface Container.Ordered
public boolean isFirstId(java.lang.Object itemId)
Container.Ordered
isFirstId
in interface Container.Ordered
itemId
- ID of an Item in the Container
true
if the Item is first visible item in the
Container, false
if notpublic boolean isLastId(java.lang.Object itemId)
Container.Ordered
isLastId
in interface Container.Ordered
true
if the Item is last visible item in the
Container, false
if notpublic void sort(java.lang.Object[] propertyId, boolean[] ascending)
Container.Sortable
Sorting a container can irreversibly change the order of its items or only change the order temporarily, depending on the container.
sort
in interface Container.Sortable
propertyId
- Array of container property IDs, whose values are used to
sort the items in container as primary, secondary, ...
sorting criterion. All of the item IDs must be in the
collection returned by
Container.Sortable.getSortableContainerPropertyIds()
ascending
- Array of sorting order flags corresponding to each
property ID used in sorting. If this array is shorter than
propertyId array, ascending order is assumed for items
where the order is not specified. Use true
to
sort in ascending order, false
to use
descending order.public java.util.Collection<?> getSortableContainerPropertyIds()
Container.Sortable
getSortableContainerPropertyIds
in interface Container.Sortable
public void refresh()
public boolean isModified()
public void setAutoCommit(boolean autoCommitEnabled)
autoCommitEnabled
- true to enable auto commit modepublic boolean isAutoCommit()
public int getPageLength()
public void setPageLength(int pageLength)
pageLength
- new page lengthpublic void addOrderBy(OrderBy orderBy)
orderBy
- OrderBy to be added to the container sorting rulespublic void commit() throws java.lang.UnsupportedOperationException, java.sql.SQLException
java.lang.UnsupportedOperationException
java.sql.SQLException
public void rollback() throws java.lang.UnsupportedOperationException, java.sql.SQLException
java.lang.UnsupportedOperationException
java.sql.SQLException
protected QueryDelegate getQueryDelegate()
public boolean addContainerProperty(java.lang.Object propertyId, java.lang.Class<?> type, java.lang.Object defaultValue) throws java.lang.UnsupportedOperationException
Container
This functionality is optional.
addContainerProperty
in interface Container
propertyId
- ID of the Propertytype
- Data type of the new PropertydefaultValue
- The value all created Properties are initialized to
true
if the operation succeeded, false
if not
java.lang.UnsupportedOperationException
- if the container does not support explicitly adding container
propertiespublic boolean removeContainerProperty(java.lang.Object propertyId) throws java.lang.UnsupportedOperationException
Container
This functionality is optional.
removeContainerProperty
in interface Container
propertyId
- ID of the Property to remove
true
if the operation succeeded, false
if not
java.lang.UnsupportedOperationException
- if the container does not support removing container
propertiespublic Item addItem(java.lang.Object itemId) throws java.lang.UnsupportedOperationException
Container
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.
addItem
in interface Container
itemId
- ID of the Item to be created
null
in case of a failure
java.lang.UnsupportedOperationException
- if adding an item with an explicit item ID is not supported
by the containerpublic Item addItemAfter(java.lang.Object previousItemId, java.lang.Object newItemId) throws java.lang.UnsupportedOperationException
Container.Ordered
Adding an item after null item adds the item as first item of the ordered container.
addItemAfter
in interface Container.Ordered
previousItemId
- Id of the visible item in ordered container after which to
insert the new item.newItemId
- Id of the new item to be added.
java.lang.UnsupportedOperationException
- if the operation is not supported by the containerOrdered: adding items in filtered or sorted containers
public Item addItemAt(int index, java.lang.Object newItemId) throws java.lang.UnsupportedOperationException
Container.Indexed
The indexes of the item currently in the given position and all the following items are incremented.
This method should apply filters to the added item after inserting
it, possibly hiding it immediately. If the container is being sorted,
the item may be added at the correct sorted position instead of the
given position. See Container.Indexed
, Container.SimpleFilterable
and
Container.Sortable
for more information.
addItemAt
in interface Container.Indexed
index
- Index (in the filtered and sorted view) at which to add
the new item.newItemId
- Id of the new item to be added.
Item
or null if the operation fails.
java.lang.UnsupportedOperationException
- if the operation is not supported by the containerpublic java.lang.Object addItemAt(int index) throws java.lang.UnsupportedOperationException
Container.Indexed
The indices of the item currently in the given position and all the following items are incremented.
This method should apply filters to the added item after inserting
it, possibly hiding it immediately. If the container is being sorted,
the item may be added at the correct sorted position instead of the
given position. See Container.Indexed
, Container.Ordered
,
Container.SimpleFilterable
and Container.Sortable
for more information.
addItemAt
in interface Container.Indexed
index
- Index (in the filtered and sorted view) to add the new
item.
java.lang.UnsupportedOperationException
- if the operation is not supported by the containerpublic java.lang.Object addItemAfter(java.lang.Object previousItemId) throws java.lang.UnsupportedOperationException
Container.Ordered
Adding an item after null item adds the item as first item of the ordered container.
addItemAfter
in interface Container.Ordered
previousItemId
- Id of the visible item in ordered container after which to
insert the new item.
java.lang.UnsupportedOperationException
- if the operation is not supported by the containerOrdered: adding items in filtered or sorted containers
public void addItemSetChangeListener(Container.ItemSetChangeListener listener)
Container.ItemSetChangeNotifier
addItemSetChangeListener
in interface Container.ItemSetChangeNotifier
listener
- listener to be added@Deprecated public void addListener(Container.ItemSetChangeListener listener)
addItemSetChangeListener(com.vaadin.data.Container.ItemSetChangeListener)
addListener
in interface Container.ItemSetChangeNotifier
public void removeItemSetChangeListener(Container.ItemSetChangeListener listener)
Container.ItemSetChangeNotifier
removeItemSetChangeListener
in interface Container.ItemSetChangeNotifier
listener
- listener to be removed@Deprecated public void removeListener(Container.ItemSetChangeListener listener)
removeItemSetChangeListener(com.vaadin.data.Container.ItemSetChangeListener)
removeListener
in interface Container.ItemSetChangeNotifier
protected void fireContentsChange()
public void addRowIdChangeListener(QueryDelegate.RowIdChangeListener listener)
listener
- @Deprecated public void addListener(QueryDelegate.RowIdChangeListener listener)
#addRowIdChangeListener(RowIdChangeListener)
public void removeRowIdChangeListener(QueryDelegate.RowIdChangeListener listener)
listener
- @Deprecated public void removeListener(QueryDelegate.RowIdChangeListener listener)
#removeRowIdChangeListener(RowIdChangeListener)
public void enableCacheFlushNotifications()
public void addReference(SQLContainer refdCont, java.lang.String refingCol, java.lang.String refdCol)
refdCont
- Target SQLContainer of the new referencerefingCol
- Column (property) name in this container storing the (foreign
key) referencerefdCol
- Column (property) name in the referenced container storing the
referenced keypublic boolean removeReference(SQLContainer refdCont)
refdCont
- Target SQLContainer of the reference
public boolean setReferencedItem(java.lang.Object itemId, java.lang.Object refdItemId, SQLContainer refdCont)
itemId
- Item Id of the reference source (from this container)refdItemId
- Item Id of the reference target (from referenced container)refdCont
- Target SQLContainer of the reference
public java.lang.Object getReferencedItemId(java.lang.Object itemId, SQLContainer refdCont)
itemId
- Item Id of the reference source (from this container)refdCont
- Target SQLContainer of the reference
public Item getReferencedItem(java.lang.Object itemId, SQLContainer refdCont)
itemId
- Item Id of the reference source (from this container)refdCont
- Target SQLContainer of the reference
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |