I think I will wait until next year, before thinking about it ;-)

Happy New Year Everyone!!!

Niclas

On 12/31/09, Rickard Öberg <[email protected]> wrote:
> On 2009-12-30 03.52, Niclas Hedhman wrote:
>> On Wed, Dec 30, 2009 at 5:31 AM, Rickard Öberg<[email protected]>
>> wrote:
>>
>>> Would that work for you? Is there any reason you don't want to use any of
>>> the above?
>>
>> I just make an observation, where I end up with a lot of
>>
>> if( abc == null )
>> {
>>     abc = .... ;
>> }
>
> But that is actually not what you had in your initial example. There's a
> difference between getting a value and supplying defaults (which is a
> valid concern), and getting a value, seeing that it is null, and
> updating it (and hence persisting the new value).
>
> For the second case I would prefer to use default values, either through
> properties files (for service configs) or assemblers. Then the value
> gets set immediately when you create the entity, instead of having to
> check it on usage.
>
> For the "provide defaults on optional property usage", where the default
> value is not used to update the property, it might make more sense to do
> something like this:
>
> @Optional
> Property<String> configValue();
>
> and then:
> String value = Optionals.get(config.configValue(), "defaultValue");
>
> which is implemented as:
> public static <T> T get(Property<T> property, T defaultValue)
> {
>    T value = property.get();
>    if (value == null)
>    {
>      value = defaultValue;
>    }
>    return value;
> }
> ---
> This is similar to how System.getProperty(<name>,<default>) works for
> system properties.
>
> If you really want to update it if you find a null, then we could do this:
> String value = Optionals.getAndSet(config.configValue(), "defaultValue");
>
> which just does:
> public static <T> T getAndSet(Property<T> property, T defaultValue)
> {
>    T value = property.get();
>    if (value == null)
>    {
>      property.set(defaultValue);
>      value = defaultValue;
>    }
>    return value;
> }
> ---
> with the obvious problem being that the config will actually not be
> updated unless the UnitOfWork is completed or applied. It also feels a
> bit funny that usage of a config value might update it.
>
> WDYT?
>
> /Rickard
>


-- 
Niclas Hedhman, Software Developer
http://www.qi4j.org - New Energy for Java

I  live here; http://tinyurl.com/2qq9er
I  work here; http://tinyurl.com/2ymelc
I relax here; http://tinyurl.com/2cgsug

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to