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

