Hi Dan,
1 depends what you mean by "created on the client"; A table simply represents a subscription; is the duty of the data adapter to receive the subscriptions and to send the updates to the server kernel (that in turn will send the updates to the clients)
2 short-answer: yes, it scale.
The mono-item table approach only adds some small overhead on the client for the computational cost of handling more objects.
That approach also adds some overhead to the data sent to the server to perform the subscriptions. This is only done upon subscription. Moreover it is possible to batch subscriptions together to diminish even more the small effect ( see
http://www.lightstreamer.com/docs/client_javase_javadoc/com/lightstreamer/ls_client/LSClient.html#batchRequests(int) )
From any other perspective to have 10 mono-item tables or to have one table with 10 items is exactly the same.
2
on the current Java SE client the TableInfo objects are very simple descriptor objects; there is no problem if you share the same schema String with more than one TableInfo. (did you mean something else?)
3
we usually try to make the examples as readable as possible, no need to initialize objects that way.
4
sorry I didn't point to it previously, but is probably better to look to an example to understand COMMAND mode.
If you open
http://www.lightstreamer.com/demo/PortfolioDemo_Basic/ you'll see a table. That table is generated by one single item.
This item has two special fields, key and command; using the appropriate values of key and command it is possible to add/remove/update all the rows in that COMMAND table.
Now if you open
http://www.lightstreamer.com/demo/PortfolioDemo/ you'll see again a COMMAND table driven by one single item, but there is a difference this time. Each time an ADD command is received by the said item a new MERGE subscription is made using the key field as item name and a configured subschema as schema. In this case each time an add is received a subscription to the items of the StockListDemo is made.
(Note: some clients handle this 2-level push automatically, while others, like the JAVA SE one, do not so that the second-level-subscription logic has to be implemented in the client code).
Let me know if something is unclear