Extending properties in ical4j-vcard

  • Pascal Robert
    Pascal Robert


    What is the trick to add extended properties in ical4j-vcard? I need to get some X- attributes coming out from CardDAV stores, and it look need I will need to change the code of ical4j-connector to pass along a custom factory. But the other problem is that all standard properties for vCard are in Property.Id, which is a enum, and I can't extend this enum to add non-standard properties.

  • Ben Fortuna
    Ben Fortuna

    Hi Pascal,

    You don't need to create a new enum for the extended property, as there is a special enum value EXTENDED applied for non-standard properties.

    From memory you should create an implementation of PropertyFactory (http://build.mnode.org/projects/ical4j-vcard/apidocs/net/fortuna/ical4j/vcard/PropertyFactory.html) and register it with an instance of PropertyFactoryRegistry. eg:

    PropertyFactoryRegistry propRegistry = new PropertyFactoryRegistry();
    propRegistry.register("MYPROP", new MyPropPropertyFactory());
    VCardBuilder builder = new VCardBuilder(in, new GroupRegistry(), propRegistry, new ParameterFactoryRegistry());

    It's a little bit clunky actually, but I think that is the general idea..


  • Pascal Robert
    Pascal Robert

    Ok, I will try that. But I can't even test it, I just saw that my Kerio Connect "friend" is not even including the extended properties in CardDAV responses… So I have another problem :-)