Hi David,

Thank you, that has given me a push in the right direction. I see how I can create a bit of custom code to manipulate the fields easily - it works really well.

I could just create a custom class that manages this approach. I wonder if there is any value in creating an extension to package any elements in one place. I suspect the answer is yes, but I don't have a list of reasons why. I wonder if it is mostly useful if we wanted to share an extension outside of the current project. I am happy to hear any pros/cons about creating an extension.

I have had a look at the examples and I see two approaches to an extension - they may be more. In the GeoRSS extension, it looks like there is a helper class (GeoHelper) that provides static methods to be used to process any extra elements. In the MediaRSS example, there is a factory class and associated classes. The factory is then referenced in the org.apache.abdera.factory.ExtensionFactory file that is bundled into the META-INF. Are there any recommendations about using one approach over the other?

Regards,

Neil


David Calavera wrote:
Hi Neil,

there is a page into the wiki where we list all our extensions, but it
doesn't include a section of how to create an extension:

http://cwiki.apache.org/confluence/display/ABDERA/Extensions

Actually, it's quite simple,

if you want to add a simple element to an entry with a value:

   Entry e = abdera.getFactory().newEntry();
   e.addSimpleExtension(QNAME, value);

if you want to add nested elements to an entry:

    ExtensibleElement extension = e.addExtension(QNAME);
    extension = extension.addExtension(QNAME);
    extension.addSimpleExtension(QNAME, value);

and if you want to add an atom element into other element, for instance, a
nested collection into an entry:

   Entry entry = abdera.getFactory().newEntry();
   Collection c = abdera.getFactory().newCollection(entry);

I hope it will be useful, by the way take a look at the source of one of the
prebuilt extensions, I think the geo extension is one of the most cleaner
that we have.

Regards.

Reply via email to