Technically it's fine, but conceptually I'm not sure about passing a command object to a pager. What does it mean to page a command?
Another option would be to get rid of the Pager altogether. The only state held in the Pager if you get rid of the Command is the page size and current index. We could easily stash those on the root DataObject (even in the static case we will have a containing DataObject created by the DAS.) Then you could move nextPage(), previousPage(), and getPage() to Command. Brent On 11/8/06, Kevin Williams <[EMAIL PROTECTED]> wrote:
The RDB DAS currently has a simple paging capability that is implemented by wrapping a Command. Here is a simple example: // Build command to read all customers Command readCustomers = das.createCommand("select * from CUSTOMER order by ID"); // Create a pager with page size 15 Pager pager = new PagerImpl(custCommand, 15); // Get and work with first page DataObject root = pager.next(); // Get and work with the second page root = pager.next(); // First page again root = pager.previous(); This works well if the client of the page data is on the server but not so well if the client is not. The reason is that the pager wraps a command instance which, in turn, references a connection. For a pager to work in a "disconnected" mode it should probably be serializable and very lightweight (it might be stored in session for instance) and it cannot count on the original connection to be available. I think this could easily be achieved by removing the instance variable from the pager that references it's command. Instead, the command can be passed as an argument to the paging methods like this: DataObject root = pager.next(someReadCommand); Does this sound reasonable? -- Kevin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]