cond-expand feature testing for presence of a Java class
Jamison Hope
jrh@theptrgroup.com
Mon Apr 4 00:31:00 GMT 2011
On Apr 3, 2011, at 8:23 PM, Per Bothner wrote:
> On 04/03/2011 04:56 PM, Jamison Hope wrote:
>> I recently found myself wanting to conditionalize some code on the
>> presence of a Java class. At first, I tried to see if I could have a
>> module call (provide 'some-feature) only when this class was found,
>> but then I realized it would be much simpler to modify the feature
>> testing in IfFeature.java to recognize class names as a last resort.
>> This has proven quite handy for me, letting me do something like:
>>
>> (cond-expand
>> (com.example.AClass ;; AClass is found in classpath, safe to use
>> (define-simple-class MySubclass (com.example.AClass) ...))
>> (else (error "AClass not found.")))
>>
>> It seems unlikely for some unrelated feature's name to exactly
>> match a
>> fully-qualified class name, so I think this patch is pretty safe.
>
> Seems reasonable - but idea occurs to me: Perhaps we should
> use the class: namespace prefix, as in:
>
> http://www.gnu.org/software/kawa/Field-operations.html
>
> Your example would be:
>
> (cond-expand
> (class:com.example.AClass ;; AClass is found in classpath, safe to
> use
> (define-simple-class MySubclass (com.example.AClass) ...))
> (else (error "AClass not found.")))
>
> What do you think?
That's fine with me.
--
Jamison Hope
The PTR Group
www.theptrgroup.com
More information about the Kawa
mailing list