On Mon, Aug 13, 2012 at 3:00 PM, Justin Deoliveira <[email protected]>wrote:

>
>
> On Mon, Aug 13, 2012 at 6:21 AM, Andrea Aime <[email protected]
> > wrote:
>
>> Hi,
>> I was looking into ways to get the default values for process parameters
>> in the annotations
>> and found out that it's not possible, because an annotation parameter can
>> only
>> be a Class, primitive, String or an array of those...
>> Bummer!
>>
>> Maybe a way to get default values anyways could be to annotate static
>> constant?
>>
>> @DefaultValue(name="paramName")
>> public static final XYZ_DEFAULT= theValue;
>>
>> or as an alternative, have @DescribeParameter(...
>> default="theStaticFieldName").
>> Neither of these would be refactoring safe.
>>
>
> I could go for either of these... the first is nice because its direct but
> the second is nice because it keeps the default with all the rest of the
> metadata.
>
>>
>> As a final alternative, go with a naming convention, if the parameter is
>> name XYWZ look for
>> a constant named XYWZ_DEFAULT in the process class
>>
>> Definitely not as nice as it would have been with a direct attribute in
>> the @DescribeParameter,
>> and none of them is refactoring safe, but the latter has at least the
>> advantage of brevity.
>>
>> What do you think, worth doing?
>>
>
> I think it would be worth doing as it helps further to reduce the boiler
> plate. Even though its not refactor safe what about having the annotation
> based factory do a validation check on the parameters. It still wouldn't be
> refactor safe but as long as you ran a test case that causes the annotation
> based process factory to load you should get an error.
>

We could do this for the first two, but not for the third one.. or else,
wait, we could mix first and third to avoid
too much repetition:

@DefaultValue
public static final Object XYWZ_DEFAULT = theDefaultValue

The annotation factory would recognize it's a default value, strip _DEFAULT
and look at
the params, if there is one named XYWZ then associate the default value,
otherwise
boom, exception.

Cheers
Andrea


-- 
==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:   +39 0584 962313
mob:   +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
GeoTools-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to