From a1b265c318dbda4a213cec930785b81e4c0f7d2b Mon Sep 17 00:00:00 2001
From: elmot <elmot@vaadin.com>
Date: Fri, 25 Sep 2015 16:40:44 +0300
Subject: Framework documentation IN

Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
---
 .../sqlcontainer-nonimplemented.asciidoc           | 66 ++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 documentation/sqlcontainer/sqlcontainer-nonimplemented.asciidoc

(limited to 'documentation/sqlcontainer/sqlcontainer-nonimplemented.asciidoc')

diff --git a/documentation/sqlcontainer/sqlcontainer-nonimplemented.asciidoc b/documentation/sqlcontainer/sqlcontainer-nonimplemented.asciidoc
new file mode 100644
index 0000000000..595085822f
--- /dev/null
+++ b/documentation/sqlcontainer/sqlcontainer-nonimplemented.asciidoc
@@ -0,0 +1,66 @@
+---
+title: Non-Implemented Methods
+order: 8
+layout: page
+---
+
+[[sqlcontainer.nonimplemented]]
+= Non-Implemented Methods
+
+Due to the database connection inherent to the SQLContainer, some of the methods
+from the container interfaces of Vaadin can not (or would not make sense to) be
+implemented. These methods are listed below, and they will throw an
+[classname]#UnsupportedOperationException# on invocation.
+
+
+----
+public boolean addContainerProperty(Object propertyId,
+                                    Class<?> type,
+                                    Object defaultValue)
+public boolean removeContainerProperty(Object propertyId)
+public Item addItem(Object itemId)
+public Object addItemAt(int index)
+public Item addItemAt(int index, Object newItemId)
+public Object addItemAfter(Object previousItemId)
+public Item addItemAfter(Object previousItemId, Object newItemId)
+----
+
+Additionally, the following methods of the [classname]#Item# interface are not
+supported in the [classname]#RowItem# class:
+
+
+----
+public boolean addItemProperty(Object id, Property property)
+public boolean removeItemProperty(Object id)
+----
+
+[[sqlcontainer.nonimplemented.getitemids]]
+== About the getItemIds() method
+
+To properly implement the Vaadin [classname]#Container# interface, a
+[methodname]#getItemIds()# method has been implented in the
+[classname]#SQLContainer#. By definition, this method returns a collection of
+all the item IDs present in the container. What this means in the
+[classname]#SQLContainer# case is that the container has to query the database
+for the primary key columns of all the rows present in the connected database
+table.
+
+It is obvious that this could potentially lead to fetching tens or even hundreds
+of thousands of rows in an effort to satisfy the method caller. This will
+effectively kill the lazy loading properties of [classname]#SQLContainer# and
+therefore the following warning is expressed here:
+
+
+[WARNING]
+====
+It is highly recommended not to call the [methodname]#getitemIds()# method,
+unless it is known that in the use case in question the item ID set will always
+be of reasonable size.
+
+====
+
+
+
+
+
+
-- 
cgit v1.2.3

