[Building Sakai] EntityBroker problem: updateEntity won't work

Dunstall, Christopher cdunstall at csu.edu.au
Thu Apr 22 17:19:49 PDT 2010


Hi Aaron,

Thanks for the reply!

"You can get to all the incoming data and handle it yourself if you
have a more advanced use case and you can even handle the encoding for
certain instances and then allow the EB automatic stuff to run for the
others if you like. Take a look at the capabilities related to
encoding and let me know if you have further questions."

This sounds like it could do the trick.  I'm trawling through confluence, but I can't seem to find anything on how to access the incoming data myself. Could you please point me in the right direction?

Thanks,

Chris Dunstall | Service Support - Applications
Technology Integration/OLE Virtual Team
Division of Information Technology | Charles Sturt University | Bathurst, NSW

Ph: 02 63384818 | Fax: 02 63384181


-----Original Message-----
From: azeckoski at gmail.com [mailto:azeckoski at gmail.com] On Behalf Of Aaron Zeckoski
Sent: Thursday, 22 April 2010 6:22 PM
To: Dunstall, Christopher
Cc: sakai-dev
Subject: Re: [Building Sakai] EntityBroker problem: updateEntity won't work

Basically the system calls your getEntity method to obtain the current
version of the object. It then goes through a series of decoding steps
where it checks to see if you have any methods to handle the decoding
yourself and checks the formats of the input data. If it does not find
anything it will use the export format as the base and then decode the
data according to that (i.e. whatever was sent out for your entity
when you sent out JSON data). This initially causes the data to be
decoded into a series of fields with names like "someField",
"someThing.nestedField", etc. Then it uses reflection to place this
data into the object that was provided by your getEntity method.

This is the automatic method which will not work for every object type
and specifically has trouble with collections as it generally cannot
determine the type of a collection and certainly cannot determine the
types of objects within it.

You can get to all the incoming data and handle it yourself if you
have a more advanced use case and you can even handle the encoding for
certain instances and then allow the EB automatic stuff to run for the
others if you like. Take a look at the capabilities related to
encoding and let me know if you have further questions.

Hope that helps!
-AZ


On Thu, Apr 22, 2010 at 6:27 AM, Dunstall, Christopher
<cdunstall at csu.edu.au> wrote:
> Hi all,
>
>
>
> I’m hoping an EntityBroker guru can help me out.
>
>
>
> I’m attempting to save, via a POST an object through EntityBroker that has
> nested objects inside it.
>
> For instance, consider the following json:
>
>
>
> {
>
>                 "autotextId": 0,
>
>                 "canBeNull": "N",
>
>                 "children": [
>
>                 {
>
>                                 "autotextId": 0,
>
>                                 "canBeNull": "N",
>
>                                 "children": [],
>
>                                 "displayHeader": "N",
>
>                                 "editable": "Y",
>
>                                 "formatType": "Rich Text",
>
>                                 "helpText": "Blah",
>
>                                 "outlineSpecific": "N",
>
>                                 "parentId": 274,
>
>                                 "parentSectionId": 274,
>
>                                 "requiresQa": "Y",
>
>                                 "sectionId": 275,
>
>                                 "sectionSectionId": 281,
>
>                                 "sectionSeqNumber": 1,
>
>                                 "sectionSourceUrl": null,
>
>                                 "templateId": 101
>
>                 }
>
>                 ],
>
>                 "displayHeader": "Y",
>
>                 "editable": "N",
>
>                 "formatType": "Text",
>
>                 "helpText": null,
>
>                 "outlineSpecific": "N",
>
>                 "parentId": 200,
>
>                 "parentSectionId": 200,
>
>                 "requiresQa": "N",
>
>                 "sectionId": 274,
>
>                 "sectionSectionId": 280,
>
>                 "sectionSeqNumber": 8,
>
>                 "sectionSourceUrl": "Header",
>
>                 "templateId": 101
>
> }
>
>
>
> This is a ‘template’ object, but it also has child ‘template’ objects.
>
>
>
> My updateEntity method is called but when I debug the entity that is passed
> to the method, it’s got the data from the database (obtained from calling
> getEntity) and not the data I submitted in the post.
>
>
>
> I have double checked my java object and the entity broker entity class and
> all members are read/write. I’m confused as to how the update method works.
>
>
>
> Can someone explain to me how the submitted object from the post makes it to
> my entitybroker class and cast some light on why it’s not doing so?
>
>
>
> Thanks,
>
>
>
> Chris Dunstall | Service Support - Applications
>
> Technology Integration/OLE Virtual Team
>
> Division of Information Technology | Charles Sturt University | Bathurst,
> NSW
>
>
>
> Ph: 02 63384818 | Fax: 02 63384181
>
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org
> with a subject of "unsubscribe"
>



-- 
Aaron Zeckoski - Software Engineer - http://tinyurl.com/azprofile


More information about the sakai-dev mailing list