Hi Dan, When creating fields to input data or view data of domain objects we need to know the exact data type of the properties of the domain object (Srting, Date, Bolb). So I went through the application and finally ended up with the attributes like "canonicalName: "org.joda.time.LocalDate",". or "java.lang.String" like that. But I don't know how to figure out the data type from this. One thing I can do is one to one mapping all the data types to the data types in android manually. Then I need to know the all the possible data types provided by the server so that I can create a pre-defined entry to map those datatypes to android data types. Or is there any convenient way to fix this?
On Thu, Apr 18, 2013 at 5:10 AM, DImuthu Upeksha <dimuthu.upeks...@gmail.com> wrote: > Hi all > I'm also interested in Deepak's project's scope so I would like to > contribute with him. At the same time I have done some developments in > generic viewer ISIS 371 [1] so hope to continue with it for my GSoC > project. I'll add the requirements mentioned by Dan (images, read me > and other detailed documents) by tomorrow. For now (say versoin 1) I > hope to develop application without considering much decoupling > domains and views but hope to integrate those in next stage because > time frame for a GSoC project is about 3 months. > > [1] https://github.com/DImuthuUpe/IsisAndroid.git > > Thank you > Upeksha > > On Thu, Apr 18, 2013 at 4:53 AM, Dan Haywood > <d...@haywood-associates.co.uk> wrote: >> Very good. >> >> Just so you both know, I currently have a background piece of work which is >> updating Isis' RO viewer to RO spec 1.0.0. This is being done in the >> dan/ISIS-233-ro branch. You can carry on working on the master branch, just >> be aware that some changes will come in over the next couple of months. >> (Hope to be done by end June timeframe). >> >> Cheers >> Dan >> >> >> >> On 18 April 2013 12:43, Deepak Gopalakrishnan <dgk...@gmail.com> wrote: >>> >>> Hello All, >>> >>> Finally, I have made my design decisions. >>> >>> What is being created? >>> An android library project which can be used to interact with apache RO >>> api's. I'm not intending to create a generic viewer. I would like to >>> decouple the viewer from the domains. This is primarily because mobile >>> application developers usually will have custom UI requirements to cater to. >>> >>> What is the design? >>> I'm planning to re-use most of the components of the RO applib that Dan >>> has created. So that is pretty much the design. As suggested by Dan, this >>> will help people to develop a generic viewer for RO as well. >>> >>> I'll keep you guys informed of the progress made. Thanks all for >>> listening. >>> >>> -- >>> Regards, >>> Deepak Gopalakrishnan >>> Mobile:+918891509774 >>> Skype : deepakgk87 >>> http://myexps.blogspot.com >>> >>> >>> >>> On Mon, Apr 15, 2013 at 1:04 PM, DImuthu Upeksha >>> <dimuthu.upeks...@gmail.com> wrote: >>>> >>>> Hi Deppak, >>>> Yeah I got it. Providing one to one mapping is not practical because we >>>> are forcing users to add un necessary fields to it's models. >>>> I'm also much interested about your first approach. Waiting for your >>>> updates. >>>> >>>> >>>> >>>> On Mon, Apr 15, 2013 at 3:09 AM, Deepak Gopalakrishnan <dgk...@gmail.com> >>>> wrote: >>>>> >>>>> Hello Dlmuthu, >>>>> >>>>> >>>>> We are talking about my second solution here which is to allow users to >>>>> create model/entity classes and we provide a method to map the parsed web >>>>> responses into data members within the model. >>>>> I did not want to force a one to one correspondence between what is on >>>>> the server and what is on the android client. This is because, the server >>>>> side applications usually might be a super set of what we need on the >>>>> client >>>>> side. So by forcing a one to one correspondance we maybe adding >>>>> unnecessary >>>>> fields in the models on Android ( or any other client side ). As far as >>>>> android is concerned, most mobile development projects begin with a ER >>>>> diagramming ( or more informal equivalents of the same ). The developer >>>>> will >>>>> most definitely have clear understanding of what the entities/models are >>>>> and >>>>> what are its associated data members. So, I don't think it will be a >>>>> difficult task in hand for most mobile developers. >>>>> >>>>> I'm still thinking about my first approach , which is to generate the >>>>> client side sdk library on the server side via dependency injections. Give >>>>> me few days to think about this. I will get back with an appropriate >>>>> solution. >>>>> >>>>> Thanks, >>>>> Deepak >>>>> >>>>> >>>>> >>>>> On Mon, Apr 15, 2013 at 12:22 PM, DImuthu Upeksha >>>>> <dimuthu.upeks...@gmail.com> wrote: >>>>>> >>>>>> Hi Deepak >>>>>> Regarding your second approach I would like to add new idea. You may >>>>>> have been familiar with java frameworks like persistence or hibernate to >>>>>> access database. Why can't we apply that concept to your approach. We >>>>>> have >>>>>> set of entity classes in our android application (we say it model layer) >>>>>> same as the Models used in web service (If there is a model called >>>>>> Student >>>>>> in web service we also create a entity called Student). Then the problem >>>>>> is >>>>>> how can we exactly know the attributes of that entities . As a solution >>>>>> for >>>>>> that we can write some test cases to check whether our model classes are >>>>>> exactly compatible with models in the server. If a test fails then we >>>>>> know >>>>>> some entity is not compatible with the server model. We can simply access >>>>>> our entity classes to access domain classes in web service. >>>>>> >>>>>> NOTE- This is exactly similar to your approach only difference is we >>>>>> can use test cases to test compatibility instead doing it manually >>>>>> >>>>>> Advantages. >>>>>> 1 It can be defined as a standard representation so users can easily >>>>>> get used to it. >>>>>> 2 Because test cases are responsible for checking compatibility between >>>>>> server and client models we don't need to go and check server models' >>>>>> attributes manually. (Because I'm lazy to do such things :-) ) >>>>>> >>>>>> Disadvantages >>>>>> 1 As you mentioned, there could be some dependencies with web service. >>>>>> >>>>>> >>>>>> On Sun, Apr 14, 2013 at 10:06 PM, Deepak Gopalakrishnan >>>>>> <dgk...@gmail.com> wrote: >>>>>>> >>>>>>> Hello Dimuthu, >>>>>>> >>>>>>> Iven't finalized my solution yet. >>>>>>> >>>>>>> The first method requires the user to generate the library from the >>>>>>> server side instance. I will elaborate the advantages of this method >>>>>>> later >>>>>>> in this thread. The major disadvantage is that the library has to be >>>>>>> generated each time the web services change. >>>>>>> >>>>>>> For the second method, I think the best approach would be to return >>>>>>> an instance of a BaseResponse class ( that extends HashMap ). This >>>>>>> class can >>>>>>> have a method that will clone the hashmap elements into a model class ( >>>>>>> defined by the user ) according to the names of the data members. >>>>>>> >>>>>>> Example : >>>>>>> >>>>>>> After the method returns the HashMap ( which is the BaseWebResponse >>>>>>> class ) will contain ("firstName"-> "Deepak", "lastName"-> "K", >>>>>>> 'age'->25) >>>>>>> >>>>>>> Suppose the user has defined a new model class called User { private >>>>>>> String firstName, lastName; private int age; //and the accessor methods >>>>>>> included } >>>>>>> >>>>>>> So the keys of the hashmap can directly correspond to the datamembers. >>>>>>> We can have a Object baseWebResponse.toClassOfType(Class classType) >>>>>>> method >>>>>>> within the BaseWebResponse class which will do the conversion. >>>>>>> >>>>>>> Thanks, >>>>>>> Deepak >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Apr 15, 2013 at 10:10 AM, DImuthu Upeksha >>>>>>> <dimuthu.upeks...@gmail.com> wrote: >>>>>>>> >>>>>>>> Hi Deepak, >>>>>>>> I was thinking about your two approaches regarding DAO for android >>>>>>>> client. Using dependency injection to create those domain classes makes >>>>>>>> sense and I need to do more reading about dependency injection >>>>>>>> Regarding your second approach, having a generic DAO class and using >>>>>>>> methods like >>>>>>>> GenericDao.getEntity("Student").getData("getPassedStudents") >>>>>>>> leads to a problem I think. Basically what is the return type of this >>>>>>>> method? It should be a set of Student entities. But we don't have a >>>>>>>> Student >>>>>>>> class in our application. As a solution we can use a Hashmap like >>>>>>>> thing to >>>>>>>> return attribute name and value pairs. But I'm not sure about the >>>>>>>> applicability of it because attributes of Student class may have >>>>>>>> complex >>>>>>>> objects. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Regards >>>>>>>> >>>>>>>> W.Dimuthu Upeksha >>>>>>>> Undergraduate >>>>>>>> >>>>>>>> Department of Computer Science And Engineering >>>>>>>> >>>>>>>> University of Moratuwa, Sri Lanka >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Regards, >>>>>>> Deepak Gopalakrishnan >>>>>>> Mobile:+918891509774 >>>>>>> Skype : deepakgk87 >>>>>>> http://myexps.blogspot.com >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Regards >>>>>> >>>>>> W.Dimuthu Upeksha >>>>>> Undergraduate >>>>>> >>>>>> Department of Computer Science And Engineering >>>>>> >>>>>> University of Moratuwa, Sri Lanka >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> Deepak Gopalakrishnan >>>>> Mobile:+918891509774 >>>>> Skype : deepakgk87 >>>>> http://myexps.blogspot.com >>>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> >>>> W.Dimuthu Upeksha >>>> Undergraduate >>>> >>>> Department of Computer Science And Engineering >>>> >>>> University of Moratuwa, Sri Lanka >>> >>> >>> >>> >>> -- >>> Regards, >>> Deepak Gopalakrishnan >>> Mobile:+918891509774 >>> Skype : deepakgk87 >>> http://myexps.blogspot.com >>> >> > > > > -- > Regards > > W.Dimuthu Upeksha > Undergraduate > > Department of Computer Science And Engineering > > University of Moratuwa, Sri Lanka -- Regards W.Dimuthu Upeksha Undergraduate Department of Computer Science And Engineering University of Moratuwa, Sri Lanka