Thank you. :-)
Interesting concept...
Unfortunately still have the question:
Why is it recommended not to extract a given model (1), if it is just
needed to create another empty model (2) via a servicecall in a
constructor (I do not hold a reference to model (1) as member in the
page or component)?
And why should I explicitly not do an extract in a constructor?
I'm asking because our discussion always ends into "we have to extract
it anyway, just somewhere else."
regards
Patrick
Am 10.04.2013 17:04, schrieb Sven Meier:
> public abstract class CreateAndSetIfNull<T> extends
> AbstractReadOnlyModel<T> {
>
> private T model;
>
> public CreateAndSetIfNull(IModel<T> model) {
> this.model = model;
> }
>
> public T getObject() {
> T t = model.getObject();
> if (t == null) {
> t = onCreate();
> model.setObject(t);
> }
> return t;
> }
>
> public void detach() {
> model.detach();
> }
>
> protected abstract T onCreate();
> }
>
>
> On 04/10/2013 04:47 PM, Patrick Davids wrote:
>> Hi Sven,
>> and who calls onCreate() and when is it called?
>>
>> regards
>> Patrick
>>
>> Am 10.04.2013 16:20, schrieb Sven Meier:
>>>> extracting model [objects] in constructors of components.
>>>> Best practices says: DONT
>>> How about creating the address lazily?
>>>
>>> IModel<Address> address = new CreateAndSetIfNull(new
>>> PropertyModel<Address>(person, "address")) {
>>> protected Address onCreate() {
>>> return addressService.newAddress();
>>> }
>>> };
>>>
>>> Regards
>>> Sven
>>>
>>>
>>>
>>> On 04/10/2013 03:56 PM, Patrick Davids wrote:
>>>> Hi together,
>>>>
>>>> I'm in a discussion with my collegues about extracting models in
>>>> constructors of components.
>>>>
>>>> Best practices says: DONT, because of accidently holding references of
>>>> extrated objects / out of mems / etc.
>>>>
>>>> But, if we want to have a component containing a form is responsable to
>>>> create its own emtpy model, if not created yet.
>>>>
>>>> Is it ok, to extract a model "temporary"?
>>>>
>>>> here an axample:
>>>>
>>>> A person has an address.
>>>> An extra component panel with form fields for creating/editing
>>>> addresses
>>>> exists (nested forms pattern).
>>>> The AdressComponent gets a model of person.
>>>>
>>>> In case of: person does not have an address, yet.
>>>>
>>>> Is it allowed to extract the person model, to make a service call
>>>> somewhere to let create an empty address object for this particular
>>>> person and then setting the model object on my own?
>>>>
>>>> We would like to have the knowledge about creation and saving addresses
>>>> put toghether in the AddressComponent instead of having the knowledge
>>>> about saving inside (onSubmit() of form), and the knowledge about
>>>> creation outside the AddressComponent.
>>>>
>>>> kind regards
>>>> Patrick
>>>> ---------------------------------------------------------------------
>>>> 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]
>>>
>
--
Mit freundlichen Grüßen,
Patrick Davids
NuboIT GmbH & Co. KG
Kieler Str. 103-107 • 25474 Bönningstedt
Email: [email protected]
Handelsregister: HRA6819 Pi | Amtsgericht Pinneberg
Geschäftsführung der Verwaltungsgesellschaft
Daniel Fraga Zander
HRB10145Pi | Amtsgericht Pinneberg
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]