Как ROME узнает, используется ли в ленте пользовательский модуль?

В настоящее время я использую ROME для обработки RSS-каналов подкастов. На данный момент эти каналы могут быть составлены по-разному. (Одним из исключений является схема канала Itunes).

Как настраиваемое чтение каналов работает с Rome и пакетом Modules? Будет ли ROME автоматически преобразовать объект канала/записи в совместимый объект данных ITunes? Есть ли где-нибудь пример этого?


person monksy    schedule 29.08.2015    source источник


Ответы (1)


Да, Rome автоматически предоставит вам модули метаданных, если у вас есть rome-modules в ваш путь к классам:

SyndFeed feed = ..
for(SyndEntry entry : feed.getEntries()) {
    for (Module module : entry.getModules()) {
        System.out.println(module.getClass());

        if (module instanceof EntryInformation) {
            EntryInformation itunesEntry = (EntryInformation)module;
            ..
        }
    }
}

для определенного канала подкастов это распечатает

class com.rometools.rome.feed.module.DCModuleImpl
class com.rometools.modules.content.ContentModuleImpl
class com.rometools.modules.slash.SlashImpl
class com.rometools.modules.itunes.EntryInformationImpl
person janih    schedule 25.04.2016