1. The POJO smartmarker syntax looks fine to me.
2. The AsposeDataTable interface looks very similar to the ResultSet interface (I guess I did not think about it much when I suggested the interface). I have the following questions related to the Interface:
Lets look at what all data can the concrete class that implements AsposeDataTable interface contain:
Scenario a) It can contain a "Collection" or any custom data structure of Strings or Double or Integers.
Scenario b) It can contain a "Collection" or any custom data structure of POJOs.
Lets analyze the AsposeDataTable interface to take care of both Scenario a) and Scenario b).
i) getColumns method would return a set of column names as per your description. What should I return in case of Scenario a) and what should I return in case of Scenario b). For Scenario b), I may return the bean property names in a particular sequence. Again because of requirement of iv) below, I need to maintain the order of the columns.
ii) getSize -looks good.
iii) beforeFirst() - In case I am wrapping a list in my custom object by implementing the AsposeDataTable interface, will it be ok if I internally reset the marker to the first element in the list or coordinate with the next() to ensure that a call to the next() method after beforeFirst always returns the first element. I guess you want it similar to the ResultSet interface.
iv) public Object get(int columnIndex); - For a set of POJOs, I need to internally maintain the order of the columns which I returned during i). What should I do for Scenario a). Should I return a dummy column name in i) and this will be a part of smartmarker syntax? I guess this would be the preferred way as I will have more power on what I want to name a particular variable.
v) public boolean next(); looks fine to me.
The smartmarker syntax inside the Excel sheet is pending (similar to what you have provided for a POJO).