| 1 |
0 |
package yarfraw.utils.extension; |
| 2 |
|
|
| 3 |
|
import static yarfraw.io.parser.ExtensionElementQname.*; |
| 4 |
|
import static yarfraw.utils.XMLUtils.same; |
| 5 |
|
|
| 6 |
|
import java.math.BigDecimal; |
| 7 |
|
import java.math.BigInteger; |
| 8 |
|
import java.util.ArrayList; |
| 9 |
|
import java.util.Iterator; |
| 10 |
|
import java.util.List; |
| 11 |
|
|
| 12 |
|
import javax.xml.bind.JAXBContext; |
| 13 |
|
import javax.xml.bind.JAXBElement; |
| 14 |
|
import javax.xml.bind.JAXBException; |
| 15 |
|
import javax.xml.bind.Marshaller; |
| 16 |
|
import javax.xml.bind.Unmarshaller; |
| 17 |
|
import javax.xml.datatype.XMLGregorianCalendar; |
| 18 |
|
import javax.xml.namespace.QName; |
| 19 |
|
import javax.xml.parsers.DocumentBuilderFactory; |
| 20 |
|
import javax.xml.parsers.ParserConfigurationException; |
| 21 |
|
|
| 22 |
|
import org.apache.commons.logging.Log; |
| 23 |
|
import org.apache.commons.logging.LogFactory; |
| 24 |
|
import org.georss.georss._10.GeoRssExtension; |
| 25 |
|
import org.georss.georss._10.SimplePositionType; |
| 26 |
|
import org.georss.georss._10.Where; |
| 27 |
|
import org.w3c.dom.Document; |
| 28 |
|
import org.w3c.dom.Element; |
| 29 |
|
import org.w3c.dom.Node; |
| 30 |
|
import org.w3c.dom.NodeList; |
| 31 |
|
|
| 32 |
|
import yarfraw.core.datamodel.FeedFormat; |
| 33 |
|
import yarfraw.core.datamodel.YarfrawException; |
| 34 |
|
import yarfraw.generated.admin.elements.AdminExtension; |
| 35 |
|
import yarfraw.generated.admin.elements.AdminType; |
| 36 |
|
import yarfraw.generated.atom03.ext.elements.Atom03Extension; |
| 37 |
|
import yarfraw.generated.atom03.ext.elements.ContentType; |
| 38 |
|
import yarfraw.generated.blogger.elements.BloggerExtension; |
| 39 |
|
import yarfraw.generated.feedburner.elements.FeedburnerExtension; |
| 40 |
|
import yarfraw.generated.googlebase.elements.CurrencyCodeEnumeration; |
| 41 |
|
import yarfraw.generated.googlebase.elements.DateTimeRangeType; |
| 42 |
|
import yarfraw.generated.googlebase.elements.GenderEnumeration; |
| 43 |
|
import yarfraw.generated.googlebase.elements.GoogleBaseExtension; |
| 44 |
|
import yarfraw.generated.googlebase.elements.ObjectFactory; |
| 45 |
|
import yarfraw.generated.googlebase.elements.PaymentMethodEnumeration; |
| 46 |
|
import yarfraw.generated.googlebase.elements.PriceTypeEnumeration; |
| 47 |
|
import yarfraw.generated.googlebase.elements.ShippingType; |
| 48 |
|
import yarfraw.generated.itunes.elements.ItunesCategoryType; |
| 49 |
|
import yarfraw.generated.itunes.elements.ItunesExtension; |
| 50 |
|
import yarfraw.generated.itunes.elements.ItunesImageType; |
| 51 |
|
import yarfraw.generated.itunes.elements.ItunesOwnerType; |
| 52 |
|
import yarfraw.generated.mrss.elements.MrssCategoryType; |
| 53 |
|
import yarfraw.generated.mrss.elements.MrssContentType; |
| 54 |
|
import yarfraw.generated.mrss.elements.MrssCopyrightType; |
| 55 |
|
import yarfraw.generated.mrss.elements.MrssCreditType; |
| 56 |
|
import yarfraw.generated.mrss.elements.MrssDescriptionType; |
| 57 |
|
import yarfraw.generated.mrss.elements.MrssExtension; |
| 58 |
|
import yarfraw.generated.mrss.elements.MrssGroupType; |
| 59 |
|
import yarfraw.generated.mrss.elements.MrssHashType; |
| 60 |
|
import yarfraw.generated.mrss.elements.MrssPlayerType; |
| 61 |
|
import yarfraw.generated.mrss.elements.MrssRatingType; |
| 62 |
|
import yarfraw.generated.mrss.elements.MrssRestrictionType; |
| 63 |
|
import yarfraw.generated.mrss.elements.MrssTextType; |
| 64 |
|
import yarfraw.generated.mrss.elements.MrssThumbnailType; |
| 65 |
|
import yarfraw.generated.mrss.elements.MrssTitleType; |
| 66 |
|
import yarfraw.generated.rss10.elements.DcType; |
| 67 |
|
import yarfraw.generated.rss10.elements.DublinCoreExtension; |
| 68 |
|
import yarfraw.generated.rss10.elements.SyndicationExtension; |
| 69 |
|
import yarfraw.generated.rss10.elements.UpdatePeriodEnum; |
| 70 |
|
import yarfraw.generated.slash.elements.SlashExtension; |
| 71 |
|
import yarfraw.generated.wfw.elements.WellFormedWebExtension; |
| 72 |
|
import yarfraw.utils.JAXBUtils; |
| 73 |
|
|
| 74 |
39 |
public class ExtensionUtils{ |
| 75 |
|
private static final String HTTP_BASE_GOOGLE_COM_CNS_1_0 = "http://base.google.com/ns/1.0"; |
| 76 |
|
private static final String ITUNES_JAXB_CONTEXT = "yarfraw.generated.itunes.elements"; |
| 77 |
|
private static final String MRSS_JAXB_CONTEXT = "yarfraw.generated.mrss.elements"; |
| 78 |
|
private static final String GOOGLEBASE_JAXB_CONTEXT = "yarfraw.generated.googlebase.elements"; |
| 79 |
|
private static final String DUBLINCORE_JAXB_CONTEXT = "yarfraw.generated.rss10.elements"; |
| 80 |
|
private static final String GEORSS_JAXB_CONTEXT = "org.georss.georss._10"; |
| 81 |
|
private static final String WFW_JAXB_CONTEXT = "yarfraw.generated.wfw.elements"; |
| 82 |
|
private static final String SY_JAXB_CONTEXT = "yarfraw.generated.rss10.elements"; |
| 83 |
|
private static final String BLOGGER_JAXB_CONTEXT = "yarfraw.generated.blogger.elements"; |
| 84 |
|
private static final String ADMIN_JAXB_CONTEXT = "yarfraw.generated.admin.elements"; |
| 85 |
|
private static final String FEEDBURNER_JAXB_CONTEXT = "yarfraw.generated.feedburner.elements"; |
| 86 |
|
private static final String SLASH_JAXB_CONTEXT = "yarfraw.generated.slash.elements"; |
| 87 |
|
private static final String ATOM03_JAXB_CONTEXT = "yarfraw.generated.atom03.ext.elements"; |
| 88 |
|
|
| 89 |
|
|
| 90 |
|
|
| 91 |
468 |
private static enum ContextEnum{ |
| 92 |
36 |
DC, SY, ITUNES, GOOGLEBASE, WFW, MRSS, GEORSS, BLOGGER, ADMIN, FEEDBURNER, SLASH, ATOM03 |
| 93 |
|
} |
| 94 |
|
|
| 95 |
39 |
private static final ObjectFactory GOOGLEBASE_FACTORY = new ObjectFactory(); |
| 96 |
|
|
| 97 |
39 |
private static final Log LOG = LogFactory.getLog(ExtensionUtils.class); |
| 98 |
0 |
private ExtensionUtils(){} |
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 102 |
|
|
| 103 |
|
|
| 104 |
|
|
| 105 |
|
|
| 106 |
|
|
| 107 |
|
|
| 108 |
|
|
| 109 |
|
|
| 110 |
|
|
| 111 |
|
|
| 112 |
|
|
| 113 |
|
@SuppressWarnings("unchecked") |
| 114 |
|
public static Atom03Extension extractAtom03Extension(List<Element> otherElements) throws YarfrawException { |
| 115 |
3 |
Atom03Extension ret = new Atom03Extension(); |
| 116 |
|
try{ |
| 117 |
3 |
if(otherElements != null){ |
| 118 |
3 |
Unmarshaller u = getContext(ContextEnum.ATOM03).createUnmarshaller(); |
| 119 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 120 |
18 |
while(it.hasNext()){ |
| 121 |
12 |
Element e = it.next(); |
| 122 |
12 |
if(e == null){ |
| 123 |
0 |
continue; |
| 124 |
|
} |
| 125 |
12 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 126 |
12 |
if(same(name, ATOM03_CONTENT_QNAME)){ |
| 127 |
3 |
ContentType c = ((JAXBElement<ContentType>)u.unmarshal(e)).getValue(); |
| 128 |
3 |
ret.getContent().add(c); |
| 129 |
3 |
it.remove(); |
| 130 |
9 |
}else if(same(name, ATOM03_INFO_QNAME)){ |
| 131 |
0 |
ContentType c = ((JAXBElement<ContentType>)u.unmarshal(e)).getValue(); |
| 132 |
0 |
ret.setInfo(c); |
| 133 |
0 |
it.remove(); |
| 134 |
9 |
}else if(same(name, ATOM03_ISSUED_QNAME)){ |
| 135 |
3 |
ret.setIssued(e.getTextContent()); |
| 136 |
3 |
it.remove(); |
| 137 |
6 |
}else if(same(name, ATOM03_SUMMARY_QNAME)){ |
| 138 |
3 |
ContentType c = ((JAXBElement<ContentType>)u.unmarshal(e)).getValue(); |
| 139 |
3 |
ret.setSummary(c); |
| 140 |
3 |
it.remove(); |
| 141 |
3 |
}else if(same(name, ATOM03_TITLE_QNAME)){ |
| 142 |
3 |
ContentType c = ((JAXBElement<ContentType>)u.unmarshal(e)).getValue(); |
| 143 |
3 |
ret.setTitle(c); |
| 144 |
3 |
it.remove(); |
| 145 |
0 |
}else if(same(name, ATOM03_TAGLINE_QNAME)){ |
| 146 |
0 |
ContentType c = ((JAXBElement<ContentType>)u.unmarshal(e)).getValue(); |
| 147 |
0 |
ret.setTagline(c); |
| 148 |
0 |
it.remove(); |
| 149 |
|
} |
| 150 |
|
} |
| 151 |
|
} |
| 152 |
0 |
}catch (JAXBException e) { |
| 153 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 154 |
|
} |
| 155 |
3 |
return ret; |
| 156 |
|
} |
| 157 |
|
|
| 158 |
|
|
| 159 |
|
|
| 160 |
|
|
| 161 |
|
|
| 162 |
|
|
| 163 |
|
|
| 164 |
|
|
| 165 |
|
|
| 166 |
|
|
| 167 |
|
|
| 168 |
|
|
| 169 |
|
@SuppressWarnings("unchecked") |
| 170 |
|
public static ItunesExtension extractItunesExtension(List<Element> otherElements) throws YarfrawException { |
| 171 |
3 |
ItunesExtension ret = new ItunesExtension(); |
| 172 |
|
try{ |
| 173 |
3 |
if(otherElements != null){ |
| 174 |
3 |
Unmarshaller u = getContext(ContextEnum.ITUNES).createUnmarshaller(); |
| 175 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 176 |
39 |
while(it.hasNext()){ |
| 177 |
33 |
Element e = it.next(); |
| 178 |
33 |
if(e == null){ |
| 179 |
0 |
continue; |
| 180 |
|
} |
| 181 |
33 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 182 |
33 |
if(same(name, ITUNES_AUTHOR_QNAME)){ |
| 183 |
3 |
ret.setAuthor(e.getTextContent()); |
| 184 |
3 |
it.remove(); |
| 185 |
30 |
}else if(same(name, ITUNES_BLOCK_QNAME)){ |
| 186 |
3 |
ret.setBlock(e.getTextContent()); |
| 187 |
3 |
it.remove(); |
| 188 |
27 |
}else if(same(name, ITUNES_CATEGORY_QNAME)){ |
| 189 |
6 |
ItunesCategoryType cat = ((JAXBElement<ItunesCategoryType>)u.unmarshal(e)).getValue(); |
| 190 |
6 |
ret.getCategory().add(cat); |
| 191 |
6 |
it.remove(); |
| 192 |
21 |
}else if(same(name, ITUNES_DURATION_QNAME)){ |
| 193 |
3 |
ret.setDuration(e.getTextContent()); |
| 194 |
3 |
it.remove(); |
| 195 |
18 |
}else if(same(name, ITUNES_EXPLICIT_QNAME)){ |
| 196 |
3 |
ret.setExplicit(e.getTextContent()); |
| 197 |
3 |
it.remove(); |
| 198 |
15 |
}else if(same(name, ITUNES_IMAGE_QNAME)){ |
| 199 |
3 |
ItunesImageType img = ((JAXBElement<ItunesImageType>)u.unmarshal(e)).getValue(); |
| 200 |
3 |
ret.setImage(img); |
| 201 |
3 |
it.remove(); |
| 202 |
12 |
}else if(same(name, ITUNES_KEYWORDS_QNAME)){ |
| 203 |
3 |
ret.setKeywords(e.getTextContent()); |
| 204 |
3 |
it.remove(); |
| 205 |
9 |
}else if(same(name, ITUNES_OWNER_QNAME)){ |
| 206 |
3 |
ItunesOwnerType owner = ((JAXBElement<ItunesOwnerType>)u.unmarshal(e)).getValue(); |
| 207 |
3 |
ret.setOwner(owner); |
| 208 |
3 |
it.remove(); |
| 209 |
6 |
}else if(same(name, ITUNES_SUBTITLE_QNAME)){ |
| 210 |
3 |
ret.setSubtitle(e.getTextContent()); |
| 211 |
3 |
it.remove(); |
| 212 |
3 |
}else if(same(name, ITUNES_SUMMARY_QNAME)){ |
| 213 |
3 |
ret.setSummary(e.getTextContent()); |
| 214 |
3 |
it.remove(); |
| 215 |
0 |
}else if(same(name, ITUNES_NewFeedUrl_QNAME)){ |
| 216 |
0 |
ret.setNewFeedUrl(e.getTextContent()); |
| 217 |
0 |
it.remove(); |
| 218 |
|
} |
| 219 |
|
} |
| 220 |
|
} |
| 221 |
0 |
}catch (JAXBException e) { |
| 222 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 223 |
|
} |
| 224 |
3 |
return ret; |
| 225 |
|
} |
| 226 |
|
|
| 227 |
|
|
| 228 |
|
|
| 229 |
|
|
| 230 |
|
|
| 231 |
|
|
| 232 |
|
|
| 233 |
|
|
| 234 |
|
|
| 235 |
|
|
| 236 |
|
|
| 237 |
|
|
| 238 |
|
@SuppressWarnings("unchecked") |
| 239 |
|
public static DublinCoreExtension extractDublinCoreExtension(List<Element> otherElements) throws YarfrawException { |
| 240 |
3 |
DublinCoreExtension ret = new DublinCoreExtension(); |
| 241 |
|
try { |
| 242 |
3 |
if(otherElements != null){ |
| 243 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 244 |
3 |
Unmarshaller u = getContext(ContextEnum.SY).createUnmarshaller(); |
| 245 |
45 |
while(it.hasNext()){ |
| 246 |
39 |
Element e = it.next(); |
| 247 |
39 |
if(e == null){ |
| 248 |
0 |
continue; |
| 249 |
|
} |
| 250 |
39 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 251 |
39 |
if(same(name, DC_Contributor_QNAME)){ |
| 252 |
0 |
ret.getContributor().add(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 253 |
0 |
it.remove(); |
| 254 |
39 |
}else if(same(name, DC_Coverage_QNAME)){ |
| 255 |
3 |
ret.setCoverage(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 256 |
3 |
it.remove(); |
| 257 |
36 |
}else if(same(name, DC_Creator_QNAME)){ |
| 258 |
3 |
ret.setCreator(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 259 |
3 |
it.remove(); |
| 260 |
33 |
}else if(same(name, DC_Date_QNAME)){ |
| 261 |
3 |
ret.setDate(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 262 |
3 |
it.remove(); |
| 263 |
30 |
}else if(same(name, DC_Description_QNAME)){ |
| 264 |
3 |
ret.setDescription(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 265 |
3 |
it.remove(); |
| 266 |
27 |
}else if(same(name, DC_Format_QNAME)){ |
| 267 |
3 |
ret.setFormat(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 268 |
3 |
it.remove(); |
| 269 |
24 |
}else if(same(name, DC_Identifier_QNAME)){ |
| 270 |
3 |
ret.setIdentifier(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 271 |
3 |
it.remove(); |
| 272 |
21 |
}else if(same(name, DC_Language_QNAME)){ |
| 273 |
3 |
ret.setLanguage(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 274 |
3 |
it.remove(); |
| 275 |
18 |
}else if(same(name, DC_Publisher_QNAME)){ |
| 276 |
3 |
ret.setPublisher(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 277 |
3 |
it.remove(); |
| 278 |
15 |
}else if(same(name, DC_Relation_QNAME)){ |
| 279 |
3 |
ret.setRelation(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 280 |
3 |
it.remove(); |
| 281 |
12 |
}else if(same(name, DC_Rights_QNAME)){ |
| 282 |
3 |
ret.setRights(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 283 |
3 |
it.remove(); |
| 284 |
9 |
}else if(same(name, DC_Source_QNAME)){ |
| 285 |
3 |
ret.setSource(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 286 |
3 |
it.remove(); |
| 287 |
6 |
}else if(same(name, DC_Subject_QNAME)){ |
| 288 |
0 |
ret.getSubject().add(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 289 |
0 |
it.remove(); |
| 290 |
6 |
}else if(same(name, DC_Title_QNAME)){ |
| 291 |
3 |
ret.setTitle(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 292 |
3 |
it.remove(); |
| 293 |
3 |
}else if(same(name, DC_Type_QNAME)){ |
| 294 |
3 |
ret.setType(((JAXBElement<DcType>)u.unmarshal(e)).getValue()); |
| 295 |
3 |
it.remove(); |
| 296 |
|
} |
| 297 |
|
} |
| 298 |
|
} |
| 299 |
0 |
}catch (JAXBException e) { |
| 300 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 301 |
|
} |
| 302 |
3 |
return ret; |
| 303 |
|
} |
| 304 |
|
|
| 305 |
|
|
| 306 |
|
|
| 307 |
|
|
| 308 |
|
|
| 309 |
|
|
| 310 |
|
|
| 311 |
|
|
| 312 |
|
|
| 313 |
|
|
| 314 |
|
|
| 315 |
|
|
| 316 |
|
public static WellFormedWebExtension extractWellFormedWebExtension(List<Element> otherElements) throws YarfrawException { |
| 317 |
3 |
WellFormedWebExtension ret = new WellFormedWebExtension(); |
| 318 |
3 |
if(otherElements != null){ |
| 319 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 320 |
12 |
while(it.hasNext()){ |
| 321 |
6 |
Element e = it.next(); |
| 322 |
6 |
if(e == null){ |
| 323 |
0 |
continue; |
| 324 |
|
} |
| 325 |
6 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 326 |
6 |
if(same(name, WFW_Comment_QNAME)){ |
| 327 |
3 |
ret.setComment(e.getTextContent()); |
| 328 |
3 |
it.remove(); |
| 329 |
3 |
}else if(same(name, WFW_CommentRss_QNAME)){ |
| 330 |
3 |
ret.setCommentRss(e.getTextContent()); |
| 331 |
3 |
it.remove(); |
| 332 |
|
} |
| 333 |
|
} |
| 334 |
|
} |
| 335 |
3 |
return ret; |
| 336 |
|
} |
| 337 |
|
|
| 338 |
|
|
| 339 |
|
|
| 340 |
|
|
| 341 |
|
|
| 342 |
|
|
| 343 |
|
|
| 344 |
|
|
| 345 |
|
|
| 346 |
|
|
| 347 |
|
|
| 348 |
|
|
| 349 |
|
@SuppressWarnings("unchecked") |
| 350 |
|
public static AdminExtension extractAdminExtension(List<Element> otherElements) throws YarfrawException { |
| 351 |
3 |
AdminExtension ret = new AdminExtension(); |
| 352 |
|
try { |
| 353 |
3 |
if(otherElements != null){ |
| 354 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 355 |
3 |
Unmarshaller u = getContext(ContextEnum.ADMIN).createUnmarshaller(); |
| 356 |
12 |
while(it.hasNext()){ |
| 357 |
6 |
Element e = it.next(); |
| 358 |
6 |
if(e == null){ |
| 359 |
0 |
continue; |
| 360 |
|
} |
| 361 |
6 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 362 |
6 |
if(same(name, ADMIN_ErrorReportsTo_QNAME)){ |
| 363 |
3 |
if(e.getTextContent() != null){ |
| 364 |
3 |
ret.setErrorReportsTo(((JAXBElement<AdminType>)u.unmarshal(e)).getValue()); |
| 365 |
|
} |
| 366 |
3 |
}else if(same(name, ADMIN_GeneratorAgent_QNAME)){ |
| 367 |
3 |
if(e.getTextContent() != null){ |
| 368 |
3 |
ret.setGeneratorAgent(((JAXBElement<AdminType>)u.unmarshal(e)).getValue()); |
| 369 |
|
} |
| 370 |
|
} |
| 371 |
|
} |
| 372 |
|
} |
| 373 |
|
} |
| 374 |
0 |
catch (JAXBException e) { |
| 375 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 376 |
|
} |
| 377 |
|
|
| 378 |
3 |
return ret; |
| 379 |
|
} |
| 380 |
|
|
| 381 |
|
|
| 382 |
|
|
| 383 |
|
|
| 384 |
|
|
| 385 |
|
|
| 386 |
|
|
| 387 |
|
|
| 388 |
|
|
| 389 |
|
|
| 390 |
|
|
| 391 |
|
|
| 392 |
|
@SuppressWarnings("unchecked") |
| 393 |
|
public static FeedburnerExtension extractFeedburnerExtension(List<Element> otherElements) throws YarfrawException { |
| 394 |
3 |
FeedburnerExtension ret = new FeedburnerExtension(); |
| 395 |
3 |
if(otherElements != null){ |
| 396 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 397 |
12 |
while(it.hasNext()){ |
| 398 |
6 |
Element e = it.next(); |
| 399 |
6 |
if(e == null){ |
| 400 |
0 |
continue; |
| 401 |
|
} |
| 402 |
6 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 403 |
6 |
if(same(name, FEEDBURNER_BrowserFriendly_QNAME)){ |
| 404 |
3 |
ret.setBrowserFriendly(e.getTextContent()); |
| 405 |
3 |
}else if(same(name, FEEDBURNER_OrigLink_QNAME)){ |
| 406 |
3 |
ret.setOrigLink(e.getTextContent()); |
| 407 |
|
} |
| 408 |
|
} |
| 409 |
|
} |
| 410 |
3 |
return ret; |
| 411 |
|
} |
| 412 |
|
|
| 413 |
|
|
| 414 |
|
|
| 415 |
|
|
| 416 |
|
|
| 417 |
|
|
| 418 |
|
|
| 419 |
|
|
| 420 |
|
|
| 421 |
|
|
| 422 |
|
|
| 423 |
|
|
| 424 |
|
@SuppressWarnings("unchecked") |
| 425 |
|
public static SlashExtension extractSlashExtension(List<Element> otherElements) throws YarfrawException { |
| 426 |
3 |
SlashExtension ret = new SlashExtension(); |
| 427 |
|
try { |
| 428 |
3 |
if(otherElements != null){ |
| 429 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 430 |
3 |
Unmarshaller u = getContext(ContextEnum.SLASH).createUnmarshaller(); |
| 431 |
18 |
while(it.hasNext()){ |
| 432 |
12 |
Element e = it.next(); |
| 433 |
12 |
if(e == null){ |
| 434 |
0 |
continue; |
| 435 |
|
} |
| 436 |
12 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 437 |
12 |
if(same(name, SLASH_Comments_QNAME)){ |
| 438 |
3 |
ret.setComments(((JAXBElement<BigInteger>)u.unmarshal(e)).getValue()); |
| 439 |
9 |
}else if(same(name, SLASH_Department_QNAME)){ |
| 440 |
3 |
ret.setDepartment(e.getTextContent()); |
| 441 |
6 |
}else if(same(name, SLASH_HitParade_QNAME)){ |
| 442 |
3 |
ret.setHitParade(e.getTextContent()); |
| 443 |
3 |
}else if(same(name, SLASH_Section_QNAME)){ |
| 444 |
3 |
ret.setSection(e.getTextContent()); |
| 445 |
|
} |
| 446 |
|
} |
| 447 |
|
} |
| 448 |
|
} |
| 449 |
0 |
catch (JAXBException e) { |
| 450 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 451 |
|
} |
| 452 |
|
|
| 453 |
3 |
return ret; |
| 454 |
|
} |
| 455 |
|
|
| 456 |
|
|
| 457 |
|
|
| 458 |
|
|
| 459 |
|
|
| 460 |
|
|
| 461 |
|
|
| 462 |
|
|
| 463 |
|
|
| 464 |
|
|
| 465 |
|
|
| 466 |
|
|
| 467 |
|
public static BloggerExtension extractBloggerExtension(List<Element> otherElements) throws YarfrawException { |
| 468 |
3 |
BloggerExtension ret = new BloggerExtension(); |
| 469 |
3 |
if(otherElements != null){ |
| 470 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 471 |
12 |
while(it.hasNext()){ |
| 472 |
6 |
Element e = it.next(); |
| 473 |
6 |
if(e == null){ |
| 474 |
0 |
continue; |
| 475 |
|
} |
| 476 |
6 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 477 |
6 |
if(same(name, BLOGGER_ConvertLineBreaks_QNAME)){ |
| 478 |
3 |
if(e.getTextContent() != null){ |
| 479 |
3 |
ret.setConvertLineBreaks(Boolean.valueOf(e.getTextContent())); |
| 480 |
|
} |
| 481 |
3 |
}else if(same(name, BLOGGER_Draft_QNAME)){ |
| 482 |
3 |
if(e.getTextContent() != null){ |
| 483 |
3 |
ret.setDraft(Boolean.valueOf(e.getTextContent())); |
| 484 |
|
} |
| 485 |
|
} |
| 486 |
|
} |
| 487 |
|
} |
| 488 |
3 |
return ret; |
| 489 |
|
} |
| 490 |
|
|
| 491 |
|
|
| 492 |
|
|
| 493 |
|
|
| 494 |
|
|
| 495 |
|
|
| 496 |
|
|
| 497 |
|
|
| 498 |
|
|
| 499 |
|
|
| 500 |
|
|
| 501 |
|
|
| 502 |
|
@SuppressWarnings("unchecked") |
| 503 |
|
public static SyndicationExtension extractSyndicationExtension(List<Element> otherElements) throws YarfrawException { |
| 504 |
3 |
SyndicationExtension ret = new SyndicationExtension(); |
| 505 |
|
try { |
| 506 |
3 |
if(otherElements != null){ |
| 507 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 508 |
3 |
Unmarshaller u = getContext(ContextEnum.SY).createUnmarshaller(); |
| 509 |
15 |
while(it.hasNext()){ |
| 510 |
9 |
Element e = it.next(); |
| 511 |
9 |
if(e == null){ |
| 512 |
0 |
continue; |
| 513 |
|
} |
| 514 |
9 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 515 |
9 |
if(same(name, SY_UpdateBase_QNAME)){ |
| 516 |
3 |
ret.setUpdateBase(e.getTextContent()); |
| 517 |
3 |
it.remove(); |
| 518 |
6 |
}else if(same(name, SY_UpdateFrequency_QNAME)){ |
| 519 |
3 |
ret.setUpdateFrequency(((JAXBElement<BigInteger>)u.unmarshal(e)).getValue()); |
| 520 |
3 |
it.remove(); |
| 521 |
3 |
}else if(same(name, SY_UpdatePeriod_QNAME)){ |
| 522 |
3 |
ret.setUpdatePeriod(((JAXBElement<UpdatePeriodEnum>)u.unmarshal(e)).getValue()); |
| 523 |
3 |
it.remove(); |
| 524 |
|
} |
| 525 |
|
} |
| 526 |
|
} |
| 527 |
0 |
}catch (Exception e) { |
| 528 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 529 |
|
} |
| 530 |
3 |
return ret; |
| 531 |
|
} |
| 532 |
|
|
| 533 |
|
|
| 534 |
|
|
| 535 |
|
|
| 536 |
|
|
| 537 |
|
|
| 538 |
|
|
| 539 |
|
|
| 540 |
|
|
| 541 |
|
|
| 542 |
|
|
| 543 |
|
@SuppressWarnings("unchecked") |
| 544 |
|
public static GoogleBaseExtension extractGoogleBaseExtension(List<Element> otherElements) throws YarfrawException { |
| 545 |
42 |
GoogleBaseExtension ret = new GoogleBaseExtension(); |
| 546 |
|
try{ |
| 547 |
42 |
if(otherElements != null){ |
| 548 |
42 |
Unmarshaller u = JAXBContext.newInstance(GOOGLEBASE_JAXB_CONTEXT).createUnmarshaller(); |
| 549 |
42 |
Iterator<Element> it = otherElements.iterator(); |
| 550 |
621 |
while(it.hasNext()){ |
| 551 |
537 |
Element e = it.next(); |
| 552 |
537 |
if(e == null){ |
| 553 |
0 |
continue; |
| 554 |
|
} |
| 555 |
537 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 556 |
537 |
if(same(name, GOOGLEBASE_Actor_QNAME)){ |
| 557 |
0 |
ret.getActor().add(e.getTextContent()); |
| 558 |
0 |
it.remove(); |
| 559 |
537 |
}else if(same(name, GOOGLEBASE_Agent_QNAME)){ |
| 560 |
9 |
ret.getAgent().add(e.getTextContent()); |
| 561 |
9 |
it.remove(); |
| 562 |
528 |
}else if(same(name, GOOGLEBASE_Age_QNAME)){ |
| 563 |
9 |
ret.setAge(e.getTextContent() == null ? null : Short.valueOf(e.getTextContent())); |
| 564 |
9 |
it.remove(); |
| 565 |
519 |
}else if(same(name, GOOGLEBASE_ApparelType_QNAME)){ |
| 566 |
0 |
ret.setApparelType(e.getTextContent()); |
| 567 |
0 |
it.remove(); |
| 568 |
519 |
}else if(same(name, GOOGLEBASE_Area_QNAME)){ |
| 569 |
9 |
ret.setArea(e.getTextContent()); |
| 570 |
9 |
it.remove(); |
| 571 |
510 |
}else if(same(name, GOOGLEBASE_Artist_QNAME)){ |
| 572 |
0 |
ret.getArtist().add(e.getTextContent()); |
| 573 |
0 |
it.remove(); |
| 574 |
510 |
}else if(same(name, GOOGLEBASE_Author_QNAME)){ |
| 575 |
0 |
ret.getAuthor().add(e.getTextContent()); |
| 576 |
0 |
it.remove(); |
| 577 |
510 |
}else if(same(name, GOOGLEBASE_Bathrooms_QNAME)){ |
| 578 |
9 |
ret.setBathrooms(e.getTextContent() == null ? null : new BigDecimal(e.getTextContent())); |
| 579 |
9 |
it.remove(); |
| 580 |
501 |
}else if(same(name, GOOGLEBASE_Bedrooms_QNAME)){ |
| 581 |
9 |
ret.setBedrooms(e.getTextContent() == null ? null : Short.valueOf(e.getTextContent())); |
| 582 |
9 |
it.remove(); |
| 583 |
492 |
}else if(same(name, GOOGLEBASE_Brand_QNAME)){ |
| 584 |
0 |
ret.setBrand(e.getTextContent()); |
| 585 |
0 |
it.remove(); |
| 586 |
492 |
}else if(same(name, GOOGLEBASE_Color_QNAME)){ |
| 587 |
0 |
ret.getColor().add(e.getTextContent()); |
| 588 |
0 |
it.remove(); |
| 589 |
492 |
}else if(same(name, GOOGLEBASE_Condition_QNAME)){ |
| 590 |
0 |
ret.setCondition(e.getTextContent()); |
| 591 |
0 |
it.remove(); |
| 592 |
492 |
}else if(same(name, GOOGLEBASE_CourseDateRange_QNAME)){ |
| 593 |
0 |
DateTimeRangeType d = ((JAXBElement<DateTimeRangeType>)u.unmarshal(e)).getValue(); |
| 594 |
0 |
ret.setCourseDateRange(d); |
| 595 |
0 |
it.remove(); |
| 596 |
492 |
}else if(same(name, GOOGLEBASE_CourseNumber_QNAME)){ |
| 597 |
0 |
ret.setCourseNumber(e.getTextContent()); |
| 598 |
0 |
it.remove(); |
| 599 |
492 |
}else if(same(name, GOOGLEBASE_CourseTimes_QNAME)){ |
| 600 |
0 |
ret.setCourseTimes(e.getTextContent()); |
| 601 |
0 |
it.remove(); |
| 602 |
492 |
}else if(same(name, GOOGLEBASE_Currency_QNAME)){ |
| 603 |
0 |
ret.setCurrency(((JAXBElement<CurrencyCodeEnumeration>)u.unmarshal(e)).getValue()); |
| 604 |
0 |
it.remove(); |
| 605 |
492 |
}else if(same(name, GOOGLEBASE_DeliveryNotes_QNAME)){ |
| 606 |
0 |
ret.setDeliveryNotes(e.getTextContent()); |
| 607 |
0 |
it.remove(); |
| 608 |
492 |
}else if(same(name, GOOGLEBASE_DeliveryRadius_QNAME)){ |
| 609 |
0 |
ret.setDeliveryRadius(e.getTextContent()); |
| 610 |
0 |
it.remove(); |
| 611 |
492 |
}else if(same(name, GOOGLEBASE_DevelopmentStatus_QNAME)){ |
| 612 |
0 |
ret.setDevelopmentStatus(e.getTextContent()); |
| 613 |
0 |
it.remove(); |
| 614 |
492 |
}else if(same(name, GOOGLEBASE_Education_QNAME)){ |
| 615 |
18 |
ret.getEducation().add(e.getTextContent()); |
| 616 |
18 |
it.remove(); |
| 617 |
474 |
}else if(same(name, GOOGLEBASE_Employer_QNAME)){ |
| 618 |
18 |
ret.getEmployer().add(e.getTextContent()); |
| 619 |
18 |
it.remove(); |
| 620 |
456 |
}else if(same(name, GOOGLEBASE_Ethnicity_QNAME)){ |
| 621 |
9 |
ret.getEthnicity().add(e.getTextContent()); |
| 622 |
9 |
it.remove(); |
| 623 |
447 |
}else if(same(name, GOOGLEBASE_EventDateRange_QNAME)){ |
| 624 |
9 |
DateTimeRangeType d = ((JAXBElement<DateTimeRangeType>)u.unmarshal(e)).getValue(); |
| 625 |
9 |
ret.setEventDateRange(d); |
| 626 |
9 |
it.remove(); |
| 627 |
438 |
}else if(same(name, GOOGLEBASE_ExpirationDate_QNAME)){ |
| 628 |
42 |
XMLGregorianCalendar d = ((JAXBElement<XMLGregorianCalendar>)u.unmarshal(e)).getValue(); |
| 629 |
42 |
ret.setExpirationDate(d); |
| 630 |
42 |
it.remove(); |
| 631 |
396 |
}else if(same(name, GOOGLEBASE_ExpirationDateTime_QNAME)){ |
| 632 |
0 |
XMLGregorianCalendar d = ((JAXBElement<XMLGregorianCalendar>)u.unmarshal(e)).getValue(); |
| 633 |
0 |
ret.setExpirationDateTime(d); |
| 634 |
0 |
it.remove(); |
| 635 |
396 |
}else if(same(name, GOOGLEBASE_Format_QNAME)){ |
| 636 |
0 |
ret.getFormat().add(e.getTextContent()); |
| 637 |
0 |
it.remove(); |
| 638 |
396 |
}else if(same(name, GOOGLEBASE_ForSale_QNAME)){ |
| 639 |
0 |
ret.setForSale(((JAXBElement<Boolean>)u.unmarshal(e)).getValue()); |
| 640 |
0 |
it.remove(); |
| 641 |
396 |
}else if(same(name, GOOGLEBASE_FromLocation_QNAME)){ |
| 642 |
6 |
ret.setFromLocation(e.getTextContent()); |
| 643 |
6 |
it.remove(); |
| 644 |
390 |
}else if(same(name, GOOGLEBASE_Gender_QNAME)){ |
| 645 |
9 |
ret.setGender(((JAXBElement<GenderEnumeration>)u.unmarshal(e)).getValue()); |
| 646 |
9 |
it.remove(); |
| 647 |
381 |
}else if(same(name, GOOGLEBASE_HoaDues_QNAME)){ |
| 648 |
3 |
ret.setHoaDues(((JAXBElement<BigDecimal>)u.unmarshal(e)).getValue()); |
| 649 |
3 |
it.remove(); |
| 650 |
378 |
}else if(same(name, GOOGLEBASE_Id_QNAME)){ |
| 651 |
0 |
ret.setId(e.getTextContent()); |
| 652 |
0 |
it.remove(); |
| 653 |
378 |
}else if(same(name, GOOGLEBASE_ImageLink_QNAME)){ |
| 654 |
42 |
ret.getImageLink().add(e.getTextContent()); |
| 655 |
42 |
it.remove(); |
| 656 |
336 |
}else if(same(name, GOOGLEBASE_ImmigrationStatus_QNAME)){ |
| 657 |
9 |
ret.setImmigrationStatus(e.getTextContent()); |
| 658 |
9 |
it.remove(); |
| 659 |
327 |
}else if(same(name, GOOGLEBASE_InterestedIn_QNAME)){ |
| 660 |
9 |
ret.setInterestedIn(e.getTextContent()); |
| 661 |
9 |
it.remove(); |
| 662 |
318 |
}else if(same(name, GOOGLEBASE_Isbn_QNAME)){ |
| 663 |
0 |
ret.setIsbn(e.getTextContent()); |
| 664 |
0 |
it.remove(); |
| 665 |
318 |
}else if(same(name, GOOGLEBASE_JobFunction_QNAME)){ |
| 666 |
9 |
ret.getJobFunction().add(e.getTextContent()); |
| 667 |
9 |
it.remove(); |
| 668 |
309 |
}else if(same(name, GOOGLEBASE_JobIndustry_QNAME)){ |
| 669 |
9 |
ret.getJobIndustry().add(e.getTextContent()); |
| 670 |
9 |
it.remove(); |
| 671 |
300 |
}else if(same(name, GOOGLEBASE_JobType_QNAME)){ |
| 672 |
9 |
ret.getJobType().add(e.getTextContent()); |
| 673 |
9 |
it.remove(); |
| 674 |
291 |
}else if(same(name, GOOGLEBASE_Label_QNAME)){ |
| 675 |
0 |
ret.getLabel().add(e.getTextContent()); |
| 676 |
0 |
it.remove(); |
| 677 |
291 |
}else if(same(name, GOOGLEBASE_License_QNAME)){ |
| 678 |
0 |
ret.getLicense().add(e.getTextContent()); |
| 679 |
0 |
it.remove(); |
| 680 |
291 |
}else if(same(name, GOOGLEBASE_ListingType_QNAME)){ |
| 681 |
9 |
ret.getListingType().add(e.getTextContent()); |
| 682 |
9 |
it.remove(); |
| 683 |
282 |
}else if(same(name, GOOGLEBASE_Location_QNAME)){ |
| 684 |
33 |
ret.setLocation(e.getTextContent()); |
| 685 |
33 |
it.remove(); |
| 686 |
249 |
}else if(same(name, GOOGLEBASE_Make_QNAME)){ |
| 687 |
0 |
ret.setMake(e.getTextContent()); |
| 688 |
0 |
it.remove(); |
| 689 |
249 |
}else if(same(name, GOOGLEBASE_Manufacturer_QNAME)){ |
| 690 |
0 |
ret.setManufacturer(e.getTextContent()); |
| 691 |
0 |
it.remove(); |
| 692 |
249 |
}else if(same(name, GOOGLEBASE_ManufacturerId_QNAME)){ |
| 693 |
0 |
ret.setManufacturerId(e.getTextContent()); |
| 694 |
0 |
it.remove(); |
| 695 |
249 |
}else if(same(name, GOOGLEBASE_MaritalStatus_QNAME)){ |
| 696 |
9 |
ret.setMaritalStatus(e.getTextContent()); |
| 697 |
9 |
it.remove(); |
| 698 |
240 |
}else if(same(name, GOOGLEBASE_Megapixels_QNAME)){ |
| 699 |
0 |
ret.setMegapixels(e.getTextContent()); |
| 700 |
0 |
it.remove(); |
| 701 |
240 |
}else if(same(name, GOOGLEBASE_Memory_QNAME)){ |
| 702 |
0 |
ret.setMemory(e.getTextContent()); |
| 703 |
0 |
it.remove(); |
| 704 |
240 |
}else if(same(name, GOOGLEBASE_Mileage_QNAME)){ |
| 705 |
0 |
ret.setMileage(e.getTextContent()); |
| 706 |
0 |
it.remove(); |
| 707 |
240 |
}else if(same(name, GOOGLEBASE_Model_QNAME)){ |
| 708 |
0 |
ret.setModel(e.getTextContent()); |
| 709 |
0 |
it.remove(); |
| 710 |
240 |
}else if(same(name, GOOGLEBASE_ModelNumber_QNAME)){ |
| 711 |
0 |
ret.setModelNumber(e.getTextContent()); |
| 712 |
0 |
it.remove(); |
| 713 |
240 |
}else if(same(name, GOOGLEBASE_NameOfItemReviewed_QNAME)){ |
| 714 |
0 |
ret.setNameOfItemReviewed(e.getTextContent()); |
| 715 |
0 |
it.remove(); |
| 716 |
240 |
}else if(same(name, GOOGLEBASE_NewsSource_QNAME)){ |
| 717 |
0 |
ret.setNewsSource(e.getTextContent()); |
| 718 |
0 |
it.remove(); |
| 719 |
240 |
}else if(same(name, GOOGLEBASE_Occupation_QNAME)){ |
| 720 |
9 |
ret.setOccupation(e.getTextContent()); |
| 721 |
9 |
it.remove(); |
| 722 |
231 |
}else if(same(name, GOOGLEBASE_OperatingSystems_QNAME)){ |
| 723 |
0 |
ret.setOperatingSystems(e.getTextContent()); |
| 724 |
0 |
it.remove(); |
| 725 |
231 |
}else if(same(name, GOOGLEBASE_Pages_QNAME)){ |
| 726 |
0 |
ret.setPages(((JAXBElement<BigInteger>)u.unmarshal(e)).getValue()); |
| 727 |
0 |
it.remove(); |
| 728 |
231 |
}else if(same(name, GOOGLEBASE_PaymentAccepted_QNAME)){ |
| 729 |
0 |
ret.getPaymentAccepted().add(((JAXBElement<PaymentMethodEnumeration>)u.unmarshal(e)).getValue()); |
| 730 |
0 |
it.remove(); |
| 731 |
231 |
}else if(same(name, GOOGLEBASE_PaymentNotes_QNAME)){ |
| 732 |
0 |
ret.setPaymentNotes(e.getTextContent()); |
| 733 |
0 |
it.remove(); |
| 734 |
231 |
}else if(same(name, GOOGLEBASE_Pickup_QNAME)){ |
| 735 |
0 |
ret.setPickup(((JAXBElement<Boolean>)u.unmarshal(e)).getValue()); |
| 736 |
0 |
it.remove(); |
| 737 |
231 |
}else if(same(name, GOOGLEBASE_Price_QNAME)){ |
| 738 |
24 |
ret.setPrice(e.getTextContent()); |
| 739 |
24 |
it.remove(); |
| 740 |
207 |
}else if(same(name, GOOGLEBASE_PriceType_QNAME)){ |
| 741 |
24 |
ret.setPriceType(((JAXBElement<PriceTypeEnumeration>)u.unmarshal(e)).getValue()); |
| 742 |
24 |
it.remove(); |
| 743 |
183 |
}else if(same(name, GOOGLEBASE_ProcessorSpeed_QNAME)){ |
| 744 |
0 |
ret.setProcessorSpeed(e.getTextContent()); |
| 745 |
0 |
it.remove(); |
| 746 |
183 |
}else if(same(name, GOOGLEBASE_ProductType_QNAME)){ |
| 747 |
0 |
ret.getProductType().add(e.getTextContent()); |
| 748 |
0 |
it.remove(); |
| 749 |
183 |
}else if(same(name, GOOGLEBASE_ProgrammingLanguage_QNAME)){ |
| 750 |
0 |
ret.getProgrammingLanguage().add(e.getTextContent()); |
| 751 |
0 |
it.remove(); |
| 752 |
183 |
}else if(same(name, GOOGLEBASE_PropertyType_QNAME)){ |
| 753 |
9 |
ret.getPropertyType().add(e.getTextContent()); |
| 754 |
9 |
it.remove(); |
| 755 |
174 |
}else if(same(name, GOOGLEBASE_PublicationName_QNAME)){ |
| 756 |
0 |
ret.setPublicationName(e.getTextContent()); |
| 757 |
0 |
it.remove(); |
| 758 |
174 |
}else if(same(name, GOOGLEBASE_PublicationVolume_QNAME)){ |
| 759 |
0 |
ret.setPublicationVolume(e.getTextContent()); |
| 760 |
0 |
it.remove(); |
| 761 |
174 |
}else if(same(name, GOOGLEBASE_PublishDate_QNAME)){ |
| 762 |
18 |
ret.setPublishDate(((JAXBElement<XMLGregorianCalendar>)u.unmarshal(e)).getValue()); |
| 763 |
18 |
it.remove(); |
| 764 |
156 |
}else if(same(name, GOOGLEBASE_Quantity_QNAME)){ |
| 765 |
15 |
ret.setQuantity(((JAXBElement<BigInteger>)u.unmarshal(e)).getValue()); |
| 766 |
15 |
it.remove(); |
| 767 |
141 |
}else if(same(name, GOOGLEBASE_Rating_QNAME)){ |
| 768 |
0 |
ret.setRating(e.getTextContent()); |
| 769 |
0 |
it.remove(); |
| 770 |
141 |
}else if(same(name, GOOGLEBASE_RatingType_QNAME)){ |
| 771 |
0 |
ret.setRatingType(e.getTextContent()); |
| 772 |
0 |
it.remove(); |
| 773 |
141 |
}else if(same(name, GOOGLEBASE_RelatedLink_QNAME)){ |
| 774 |
0 |
ret.getRelatedLink().add(e.getTextContent()); |
| 775 |
0 |
it.remove(); |
| 776 |
141 |
}else if(same(name, GOOGLEBASE_ReviewerType_QNAME)){ |
| 777 |
0 |
ret.setReviewerType(e.getTextContent()); |
| 778 |
0 |
it.remove(); |
| 779 |
141 |
}else if(same(name, GOOGLEBASE_ReviewType_QNAME)){ |
| 780 |
0 |
ret.setReviewType(e.getTextContent()); |
| 781 |
0 |
it.remove(); |
| 782 |
141 |
}else if(same(name, GOOGLEBASE_Salary_QNAME)){ |
| 783 |
9 |
ret.setSalary(((JAXBElement<BigDecimal>)u.unmarshal(e)).getValue()); |
| 784 |
9 |
it.remove(); |
| 785 |
132 |
}else if(same(name, GOOGLEBASE_SalaryType_QNAME)){ |
| 786 |
9 |
ret.setSalaryType(((JAXBElement<PriceTypeEnumeration>)u.unmarshal(e)).getValue()); |
| 787 |
9 |
it.remove(); |
| 788 |
123 |
}else if(same(name, GOOGLEBASE_SchoolDistrict_QNAME)){ |
| 789 |
9 |
ret.setSchoolDistrict(e.getTextContent()); |
| 790 |
9 |
it.remove(); |
| 791 |
114 |
}else if(same(name, GOOGLEBASE_ServiceType_QNAME)){ |
| 792 |
0 |
ret.setServiceType(e.getTextContent()); |
| 793 |
0 |
it.remove(); |
| 794 |
114 |
}else if(same(name, GOOGLEBASE_SexualOrientation_QNAME)){ |
| 795 |
9 |
ret.setSexualOrientation(e.getTextContent()); |
| 796 |
9 |
it.remove(); |
| 797 |
105 |
}else if(same(name, GOOGLEBASE_Shipping_QNAME)){ |
| 798 |
0 |
ret.getShipping().add(((JAXBElement<ShippingType>)u.unmarshal(e)).getValue()); |
| 799 |
0 |
it.remove(); |
| 800 |
105 |
}else if(same(name, GOOGLEBASE_Size_QNAME)){ |
| 801 |
0 |
ret.getSize().add(e.getTextContent()); |
| 802 |
0 |
it.remove(); |
| 803 |
105 |
}else if(same(name, GOOGLEBASE_SquareFootage_QNAME)){ |
| 804 |
0 |
ret.getSquareFootage().add(e.getTextContent()); |
| 805 |
0 |
it.remove(); |
| 806 |
105 |
}else if(same(name, GOOGLEBASE_Subject_QNAME)){ |
| 807 |
0 |
ret.getSubject().add(e.getTextContent()); |
| 808 |
0 |
it.remove(); |
| 809 |
105 |
}else if(same(name, GOOGLEBASE_SubjectArea_QNAME)){ |
| 810 |
0 |
ret.getSubjectArea().add(e.getTextContent()); |
| 811 |
0 |
it.remove(); |
| 812 |
105 |
}else if(same(name, GOOGLEBASE_TaxPercent_QNAME)){ |
| 813 |
0 |
ret.setTaxPercent(((JAXBElement<BigDecimal>)u.unmarshal(e)).getValue()); |
| 814 |
0 |
it.remove(); |
| 815 |
105 |
}else if(same(name, GOOGLEBASE_TaxRegion_QNAME)){ |
| 816 |
0 |
ret.setTaxRegion(e.getTextContent()); |
| 817 |
0 |
it.remove(); |
| 818 |
105 |
}else if(same(name, GOOGLEBASE_ToLocation_QNAME)){ |
| 819 |
6 |
ret.setToLocation(e.getTextContent()); |
| 820 |
6 |
it.remove(); |
| 821 |
99 |
}else if(same(name, GOOGLEBASE_TravelDateRange_QNAME)){ |
| 822 |
6 |
DateTimeRangeType d = ((JAXBElement<DateTimeRangeType>)u.unmarshal(e)).getValue(); |
| 823 |
6 |
ret.setTravelDateRange(d); |
| 824 |
6 |
it.remove(); |
| 825 |
93 |
}else if(same(name, GOOGLEBASE_University_QNAME)){ |
| 826 |
0 |
ret.setUniversity(e.getTextContent()); |
| 827 |
0 |
it.remove(); |
| 828 |
93 |
}else if(same(name, GOOGLEBASE_Upc_QNAME)){ |
| 829 |
0 |
ret.setUpc(e.getTextContent()); |
| 830 |
0 |
it.remove(); |
| 831 |
93 |
}else if(same(name, GOOGLEBASE_UrlOfItemReviewed_QNAME)){ |
| 832 |
0 |
ret.setUrlOfItemReviewed(e.getTextContent()); |
| 833 |
0 |
it.remove(); |
| 834 |
93 |
}else if(same(name, GOOGLEBASE_VehicleType_QNAME)){ |
| 835 |
0 |
ret.getVehicleType().add(e.getTextContent()); |
| 836 |
0 |
it.remove(); |
| 837 |
93 |
}else if(same(name, GOOGLEBASE_Vin_QNAME)){ |
| 838 |
0 |
ret.setVin(e.getTextContent()); |
| 839 |
0 |
it.remove(); |
| 840 |
93 |
}else if(same(name, GOOGLEBASE_Weight_QNAME)){ |
| 841 |
0 |
ret.setWeight(e.getTextContent()); |
| 842 |
0 |
it.remove(); |
| 843 |
93 |
}else if(same(name, GOOGLEBASE_Year_QNAME)){ |
| 844 |
9 |
ret.setYear(((JAXBElement<XMLGregorianCalendar>)u.unmarshal(e)).getValue()); |
| 845 |
9 |
it.remove(); |
| 846 |
84 |
}else if(HTTP_BASE_GOOGLE_COM_CNS_1_0.equals(e.getNamespaceURI())){ |
| 847 |
84 |
ret.getAny().add(e); |
| 848 |
84 |
it.remove(); |
| 849 |
|
} |
| 850 |
|
} |
| 851 |
|
} |
| 852 |
0 |
}catch (JAXBException e) { |
| 853 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 854 |
|
} |
| 855 |
42 |
return ret; |
| 856 |
|
} |
| 857 |
|
|
| 858 |
|
|
| 859 |
|
|
| 860 |
|
|
| 861 |
|
|
| 862 |
|
|
| 863 |
|
|
| 864 |
|
|
| 865 |
|
|
| 866 |
|
|
| 867 |
|
|
| 868 |
|
|
| 869 |
|
|
| 870 |
|
@SuppressWarnings("unchecked") |
| 871 |
|
public static GeoRssExtension extractGeoRssExtension(List<Element> otherElements) throws YarfrawException { |
| 872 |
3 |
GeoRssExtension ret = new GeoRssExtension(); |
| 873 |
|
try{ |
| 874 |
3 |
if(otherElements != null){ |
| 875 |
3 |
Unmarshaller u = JAXBContext.newInstance(GEORSS_JAXB_CONTEXT).createUnmarshaller(); |
| 876 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 877 |
15 |
while(it.hasNext()){ |
| 878 |
9 |
Element e = it.next(); |
| 879 |
9 |
if(e == null){ |
| 880 |
0 |
continue; |
| 881 |
|
} |
| 882 |
9 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 883 |
9 |
if(same(name, GEORSS_WHERE_QNAME)){ |
| 884 |
3 |
Where copy = ((JAXBElement<Where>)u.unmarshal(e)).getValue(); |
| 885 |
3 |
ret.setWhere(copy); |
| 886 |
3 |
it.remove(); |
| 887 |
6 |
}else if(same(name, GEORSS_BOX_QNAME)){ |
| 888 |
3 |
SimplePositionType pos = ((JAXBElement<SimplePositionType>)u.unmarshal(e)).getValue(); |
| 889 |
3 |
ret.setBox(pos); |
| 890 |
3 |
it.remove(); |
| 891 |
3 |
}else if(same(name, GEORSS_LINE_QNAME)){ |
| 892 |
0 |
SimplePositionType pos = ((JAXBElement<SimplePositionType>)u.unmarshal(e)).getValue(); |
| 893 |
0 |
ret.setLine(pos); |
| 894 |
0 |
it.remove(); |
| 895 |
3 |
}else if(same(name, GEORSS_POINT_QNAME)){ |
| 896 |
0 |
SimplePositionType pos = ((JAXBElement<SimplePositionType>)u.unmarshal(e)).getValue(); |
| 897 |
0 |
ret.setPoint(pos); |
| 898 |
0 |
it.remove(); |
| 899 |
3 |
}else if(same(name, GEORSS_POLYGON_QNAME)){ |
| 900 |
3 |
SimplePositionType pos = ((JAXBElement<SimplePositionType>)u.unmarshal(e)).getValue(); |
| 901 |
3 |
ret.setPolygon(pos); |
| 902 |
3 |
it.remove(); |
| 903 |
|
} |
| 904 |
|
} |
| 905 |
|
} |
| 906 |
0 |
}catch (JAXBException e) { |
| 907 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 908 |
|
} |
| 909 |
3 |
return ret; |
| 910 |
|
} |
| 911 |
|
|
| 912 |
|
|
| 913 |
|
|
| 914 |
|
|
| 915 |
|
|
| 916 |
|
|
| 917 |
|
|
| 918 |
|
|
| 919 |
|
|
| 920 |
|
|
| 921 |
|
|
| 922 |
|
|
| 923 |
|
|
| 924 |
|
@SuppressWarnings("unchecked") |
| 925 |
|
public static MrssExtension extractMrssExtension(List<Element> otherElements) throws YarfrawException { |
| 926 |
3 |
MrssExtension ret = new MrssExtension(); |
| 927 |
|
try{ |
| 928 |
3 |
if(otherElements != null){ |
| 929 |
3 |
Unmarshaller u = JAXBContext.newInstance(MRSS_JAXB_CONTEXT).createUnmarshaller(); |
| 930 |
3 |
Iterator<Element> it = otherElements.iterator(); |
| 931 |
39 |
while(it.hasNext()){ |
| 932 |
33 |
Element e = it.next(); |
| 933 |
33 |
if(e == null){ |
| 934 |
0 |
continue; |
| 935 |
|
} |
| 936 |
33 |
QName name = new QName(e.getNamespaceURI(), e.getLocalName()); |
| 937 |
33 |
if(same(name, MRSS_CATEGORY_QNAME)){ |
| 938 |
0 |
MrssCategoryType cat = ((JAXBElement<MrssCategoryType>)u.unmarshal(e)).getValue(); |
| 939 |
0 |
ret.getCategory().add(cat); |
| 940 |
0 |
it.remove(); |
| 941 |
33 |
}else if(same(name, MRSS_CONTENT_QNAME)){ |
| 942 |
0 |
MrssContentType content = ((JAXBElement<MrssContentType>)u.unmarshal(e)).getValue(); |
| 943 |
0 |
ret.getContent().add(content); |
| 944 |
0 |
it.remove(); |
| 945 |
33 |
}else if(same(name, MRSS_COPYRIGHT_QNAME)){ |
| 946 |
3 |
MrssCopyrightType copy = ((JAXBElement<MrssCopyrightType>)u.unmarshal(e)).getValue(); |
| 947 |
3 |
ret.setCopyright(copy); |
| 948 |
3 |
it.remove(); |
| 949 |
30 |
}else if(same(name, MRSS_CREDIT_QNAME)){ |
| 950 |
0 |
MrssCreditType copy = ((JAXBElement<MrssCreditType>)u.unmarshal(e)).getValue(); |
| 951 |
0 |
ret.getCredit().add(copy); |
| 952 |
0 |
it.remove(); |
| 953 |
30 |
}else if(same(name, MRSS_DESCRIPTION_QNAME)){ |
| 954 |
3 |
MrssDescriptionType copy = ((JAXBElement<MrssDescriptionType>)u.unmarshal(e)).getValue(); |
| 955 |
3 |
ret.setDescription(copy); |
| 956 |
3 |
it.remove(); |
| 957 |
27 |
}else if(same(name, MRSS_GROUP_QNAME)){ |
| 958 |
3 |
MrssGroupType copy = ((JAXBElement<MrssGroupType>)u.unmarshal(e)).getValue(); |
| 959 |
3 |
ret.getGroup().add(copy); |
| 960 |
3 |
it.remove(); |
| 961 |
24 |
}else if(same(name, MRSS_HASH_QNAME)){ |
| 962 |
3 |
MrssHashType copy = ((JAXBElement<MrssHashType>)u.unmarshal(e)).getValue(); |
| 963 |
3 |
ret.setHash(copy); |
| 964 |
3 |
it.remove(); |
| 965 |
21 |
}else if(same(name, MRSS_KEYWORDS_QNAME)){ |
| 966 |
3 |
ret.setKeywords(e.getTextContent()); |
| 967 |
3 |
it.remove(); |
| 968 |
18 |
}else if(same(name, MRSS_PLAYER_QNAME)){ |
| 969 |
3 |
MrssPlayerType copy = ((JAXBElement<MrssPlayerType>)u.unmarshal(e)).getValue(); |
| 970 |
3 |
ret.setPlayer(copy); |
| 971 |
3 |
it.remove(); |
| 972 |
15 |
}else if(same(name, MRSS_RATING_QNAME)){ |
| 973 |
3 |
MrssRatingType copy = ((JAXBElement<MrssRatingType>)u.unmarshal(e)).getValue(); |
| 974 |
3 |
ret.setRating(copy); |
| 975 |
3 |
it.remove(); |
| 976 |
12 |
}else if(same(name, MRSS_RESTRICTION_QNAME)){ |
| 977 |
3 |
MrssRestrictionType copy = ((JAXBElement<MrssRestrictionType>)u.unmarshal(e)).getValue(); |
| 978 |
3 |
ret.setRestriction(copy); |
| 979 |
3 |
it.remove(); |
| 980 |
9 |
}else if(same(name, MRSS_TEXT_QNAME)){ |
| 981 |
3 |
MrssTextType copy = ((JAXBElement<MrssTextType>)u.unmarshal(e)).getValue(); |
| 982 |
3 |
ret.setText(copy); |
| 983 |
3 |
it.remove(); |
| 984 |
6 |
}else if(same(name, MRSS_THUMBNAIL_QNAME)){ |
| 985 |
3 |
MrssThumbnailType copy = ((JAXBElement<MrssThumbnailType>)u.unmarshal(e)).getValue(); |
| 986 |
3 |
ret.setThumbnail(copy); |
| 987 |
3 |
it.remove(); |
| 988 |
3 |
}else if(same(name, MRSS_TITLE_QNAME)){ |
| 989 |
3 |
MrssTitleType copy = ((JAXBElement<MrssTitleType>)u.unmarshal(e)).getValue(); |
| 990 |
3 |
ret.setTitle(copy); |
| 991 |
3 |
it.remove(); |
| 992 |
|
} |
| 993 |
|
} |
| 994 |
|
} |
| 995 |
0 |
}catch (JAXBException e) { |
| 996 |
0 |
throw new YarfrawException("unable to unmarshal element", e); |
| 997 |
|
} |
| 998 |
3 |
return ret; |
| 999 |
|
} |
| 1000 |
|
|
| 1001 |
|
|
| 1002 |
|
|
| 1003 |
|
|
| 1004 |
|
|
| 1005 |
|
|
| 1006 |
|
|
| 1007 |
|
|
| 1008 |
|
|
| 1009 |
|
|
| 1010 |
|
public static List<Element> toItunesElements(ItunesExtension extensionObject) |
| 1011 |
|
throws YarfrawException{ |
| 1012 |
6 |
return toElements(extensionObject, ContextEnum.ITUNES); |
| 1013 |
|
} |
| 1014 |
|
|
| 1015 |
|
|
| 1016 |
|
|
| 1017 |
|
|
| 1018 |
|
|
| 1019 |
|
|
| 1020 |
|
|
| 1021 |
|
|
| 1022 |
|
|
| 1023 |
|
|
| 1024 |
|
|
| 1025 |
|
public static List<Element> toGeoRssElements(GeoRssExtension extensionObject) |
| 1026 |
|
throws YarfrawException{ |
| 1027 |
6 |
return toElements(extensionObject, ContextEnum.GEORSS); |
| 1028 |
|
} |
| 1029 |
|
|
| 1030 |
|
|
| 1031 |
|
|
| 1032 |
|
|
| 1033 |
|
|
| 1034 |
|
|
| 1035 |
|
|
| 1036 |
|
|
| 1037 |
|
|
| 1038 |
|
|
| 1039 |
|
|
| 1040 |
|
|
| 1041 |
|
public static List<Element> toGoogleBaseElements(GoogleBaseExtension extensionObject) |
| 1042 |
|
throws YarfrawException{ |
| 1043 |
|
|
| 1044 |
3 |
JAXBElement<GoogleBaseExtension> jaxb = GOOGLEBASE_FACTORY.createGoogleBaseExtension(extensionObject); |
| 1045 |
3 |
return toElements(jaxb, ContextEnum.GOOGLEBASE); |
| 1046 |
|
} |
| 1047 |
|
|
| 1048 |
|
|
| 1049 |
|
|
| 1050 |
|
|
| 1051 |
|
|
| 1052 |
|
|
| 1053 |
|
|
| 1054 |
|
|
| 1055 |
|
|
| 1056 |
|
|
| 1057 |
|
|
| 1058 |
|
public static List<Element> toMrssElements(MrssExtension extensionObject) |
| 1059 |
|
throws YarfrawException{ |
| 1060 |
6 |
return toElements(extensionObject, ContextEnum.MRSS); |
| 1061 |
|
} |
| 1062 |
|
|
| 1063 |
|
|
| 1064 |
|
|
| 1065 |
|
|
| 1066 |
|
|
| 1067 |
|
|
| 1068 |
|
|
| 1069 |
|
|
| 1070 |
|
|
| 1071 |
|
|
| 1072 |
|
|
| 1073 |
|
public static List<Element> toWellFormedWebElements(WellFormedWebExtension extensionObject) |
| 1074 |
|
throws YarfrawException{ |
| 1075 |
6 |
return toElements(extensionObject, ContextEnum.WFW); |
| 1076 |
|
} |
| 1077 |
|
|
| 1078 |
|
|
| 1079 |
|
|
| 1080 |
|
|
| 1081 |
|
|
| 1082 |
|
|
| 1083 |
|
|
| 1084 |
|
|
| 1085 |
|
|
| 1086 |
|
|
| 1087 |
|
|
| 1088 |
|
public static List<Element> toDublinCoreElements(DublinCoreExtension extensionObject) |
| 1089 |
|
throws YarfrawException{ |
| 1090 |
6 |
return toElements(extensionObject, ContextEnum.DC); |
| 1091 |
|
} |
| 1092 |
|
|
| 1093 |
|
|
| 1094 |
|
|
| 1095 |
|
|
| 1096 |
|
|
| 1097 |
|
|
| 1098 |
|
|
| 1099 |
|
|
| 1100 |
|
|
| 1101 |
|
|
| 1102 |
|
|
| 1103 |
|
public static List<Element> toSyndicationElements(SyndicationExtension extensionObject) |
| 1104 |
|
throws YarfrawException{ |
| 1105 |
6 |
return toElements(extensionObject, ContextEnum.SY); |
| 1106 |
|
} |
| 1107 |
|
|
| 1108 |
|
|
| 1109 |
|
|
| 1110 |
|
|
| 1111 |
|
|
| 1112 |
|
|
| 1113 |
|
|
| 1114 |
|
|
| 1115 |
|
|
| 1116 |
|
|
| 1117 |
|
|
| 1118 |
|
public static List<Element> toBloggerAtomElements(BloggerExtension extensionObject) |
| 1119 |
|
throws YarfrawException{ |
| 1120 |
6 |
return toElements(extensionObject, ContextEnum.BLOGGER); |
| 1121 |
|
} |
| 1122 |
|
|
| 1123 |
|
|
| 1124 |
|
|
| 1125 |
|
|
| 1126 |
|
|
| 1127 |
|
|
| 1128 |
|
|
| 1129 |
|
|
| 1130 |
|
|
| 1131 |
|
|
| 1132 |
|
|
| 1133 |
|
public static List<Element> toAdminAtomElements(AdminExtension extensionObject) |
| 1134 |
|
throws YarfrawException{ |
| 1135 |
6 |
return toElements(extensionObject, ContextEnum.ADMIN); |
| 1136 |
|
} |
| 1137 |
|
|
| 1138 |
|
|
| 1139 |
|
|
| 1140 |
|
|
| 1141 |
|
|
| 1142 |
|
|
| 1143 |
|
|
| 1144 |
|
|
| 1145 |
|
|
| 1146 |
|
|
| 1147 |
|
|
| 1148 |
|
public static List<Element> toFeedburnerElements(FeedburnerExtension extensionObject) |
| 1149 |
|
throws YarfrawException{ |
| 1150 |
6 |
return toElements(extensionObject, ContextEnum.FEEDBURNER); |
| 1151 |
|
} |
| 1152 |
|
|
| 1153 |
|
|
| 1154 |
|
|
| 1155 |
|
|
| 1156 |
|
|
| 1157 |
|
|
| 1158 |
|
|
| 1159 |
|
|
| 1160 |
|
|
| 1161 |
|
|
| 1162 |
|
|
| 1163 |
|
public static List<Element> toSlahsElements(SlashExtension extensionObject) |
| 1164 |
|
throws YarfrawException{ |
| 1165 |
6 |
return toElements(extensionObject, ContextEnum.SLASH); |
| 1166 |
|
} |
| 1167 |
|
|
| 1168 |
39 |
private static JAXBContext DC_CTX = null; |
| 1169 |
39 |
private static JAXBContext GEORSS_CTX = null; |
| 1170 |
39 |
private static JAXBContext GOOGLEBASE_CTX = null; |
| 1171 |
39 |
private static JAXBContext ITUNES_CTX = null; |
| 1172 |
39 |
private static JAXBContext MRSS_CTX = null; |
| 1173 |
39 |
private static JAXBContext SY_CTX = null; |
| 1174 |
39 |
private static JAXBContext WFW_CTX = null; |
| 1175 |
39 |
private static JAXBContext BLOGGER_CTX = null; |
| 1176 |
39 |
private static JAXBContext ADMIN_CTX = null; |
| 1177 |
39 |
private static JAXBContext FEEDBURNER_CTX = null; |
| 1178 |
39 |
private static JAXBContext SLASH_CTX = null; |
| 1179 |
39 |
private static JAXBContext ATOM03_CTX = null; |
| 1180 |
|
|
| 1181 |
|
private static synchronized JAXBContext getContext(ContextEnum ctxEnum) throws JAXBException{ |
| 1182 |
81 |
if(ctxEnum == ContextEnum.DC){ |
| 1183 |
6 |
if(DC_CTX == null){ |
| 1184 |
3 |
DC_CTX = JAXBContext.newInstance(DUBLINCORE_JAXB_CONTEXT); |
| 1185 |
|
} |
| 1186 |
6 |
return DC_CTX; |
| 1187 |
75 |
}else if(ctxEnum == ContextEnum.ATOM03){ |
| 1188 |
3 |
if(ATOM03_CTX == null){ |
| 1189 |
3 |
ATOM03_CTX = JAXBContext.newInstance(ATOM03_JAXB_CONTEXT); |
| 1190 |
|
} |
| 1191 |
3 |
return ATOM03_CTX; |
| 1192 |
72 |
}else if(ctxEnum == ContextEnum.ADMIN){ |
| 1193 |
9 |
if(ADMIN_CTX == null){ |
| 1194 |
3 |
ADMIN_CTX = JAXBContext.newInstance(ADMIN_JAXB_CONTEXT); |
| 1195 |
|
} |
| 1196 |
9 |
return ADMIN_CTX; |
| 1197 |
63 |
}else if(ctxEnum == ContextEnum.BLOGGER){ |
| 1198 |
6 |
if(BLOGGER_CTX == null){ |
| 1199 |
3 |
BLOGGER_CTX = JAXBContext.newInstance(BLOGGER_JAXB_CONTEXT); |
| 1200 |
|
} |
| 1201 |
6 |
return BLOGGER_CTX; |
| 1202 |
57 |
}else if(ctxEnum == ContextEnum.FEEDBURNER){ |
| 1203 |
6 |
if(FEEDBURNER_CTX == null){ |
| 1204 |
3 |
FEEDBURNER_CTX = JAXBContext.newInstance(FEEDBURNER_JAXB_CONTEXT); |
| 1205 |
|
} |
| 1206 |
6 |
return FEEDBURNER_CTX; |
| 1207 |
51 |
}else if(ctxEnum == ContextEnum.SLASH){ |
| 1208 |
9 |
if(SLASH_CTX == null){ |
| 1209 |
3 |
SLASH_CTX = JAXBContext.newInstance(SLASH_JAXB_CONTEXT); |
| 1210 |
|
} |
| 1211 |
9 |
return SLASH_CTX; |
| 1212 |
42 |
}else if(ctxEnum == ContextEnum.GEORSS){ |
| 1213 |
6 |
if(GEORSS_CTX == null){ |
| 1214 |
3 |
GEORSS_CTX = JAXBContext.newInstance(GEORSS_JAXB_CONTEXT); |
| 1215 |
|
} |
| 1216 |
6 |
return GEORSS_CTX; |
| 1217 |
36 |
}else if(ctxEnum == ContextEnum.GOOGLEBASE){ |
| 1218 |
3 |
if(GOOGLEBASE_CTX == null){ |
| 1219 |
3 |
GOOGLEBASE_CTX = JAXBContext.newInstance(GOOGLEBASE_JAXB_CONTEXT); |
| 1220 |
|
} |
| 1221 |
3 |
return GOOGLEBASE_CTX; |
| 1222 |
33 |
}else if(ctxEnum == ContextEnum.ITUNES){ |
| 1223 |
9 |
if(ITUNES_CTX == null){ |
| 1224 |
3 |
ITUNES_CTX = JAXBContext.newInstance(ITUNES_JAXB_CONTEXT); |
| 1225 |
|
} |
| 1226 |
9 |
return ITUNES_CTX; |
| 1227 |
24 |
}else if(ctxEnum == ContextEnum.MRSS){ |
| 1228 |
6 |
if(MRSS_CTX == null){ |
| 1229 |
3 |
MRSS_CTX = JAXBContext.newInstance(MRSS_JAXB_CONTEXT); |
| 1230 |
|
} |
| 1231 |
6 |
return MRSS_CTX; |
| 1232 |
18 |
}else if(ctxEnum == ContextEnum.SY){ |
| 1233 |
12 |
if(SY_CTX == null){ |
| 1234 |
6 |
SY_CTX = JAXBContext.newInstance(SY_JAXB_CONTEXT); |
| 1235 |
|
} |
| 1236 |
12 |
return SY_CTX; |
| 1237 |
6 |
}else if(ctxEnum == ContextEnum.WFW){ |
| 1238 |
6 |
if(WFW_CTX == null){ |
| 1239 |
3 |
WFW_CTX = JAXBContext.newInstance(WFW_JAXB_CONTEXT); |
| 1240 |
|
} |
| 1241 |
6 |
return WFW_CTX; |
| 1242 |
|
} |
| 1243 |
|
|
| 1244 |
0 |
throw new UnsupportedOperationException("Unknown JAXB context: "+ctxEnum); |
| 1245 |
|
} |
| 1246 |
|
|
| 1247 |
|
private static List<Element> toElements(Object extensionObject, ContextEnum ctxEnum) throws YarfrawException { |
| 1248 |
63 |
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
| 1249 |
63 |
dbf.setNamespaceAware(true); |
| 1250 |
63 |
List<Element> ret = new ArrayList<Element>(); |
| 1251 |
|
try { |
| 1252 |
63 |
Document doc = dbf.newDocumentBuilder().newDocument(); |
| 1253 |
63 |
Marshaller m = getContext(ctxEnum).createMarshaller(); |
| 1254 |
63 |
m.setProperty(JAXBUtils.PREFIX_MAPPER_PROPERTY_NAME, JAXBUtils.getNamespacePrefixMapper(FeedFormat.RSS20)); |
| 1255 |
63 |
m.marshal(extensionObject, doc); |
| 1256 |
63 |
Element e = doc.getDocumentElement(); |
| 1257 |
63 |
NodeList list = e.getChildNodes(); |
| 1258 |
402 |
for(int i =0; i< list.getLength(); i++){ |
| 1259 |
339 |
Node n = list.item(i); |
| 1260 |
339 |
if (n instanceof Element) { |
| 1261 |
339 |
Element element = (Element) n; |
| 1262 |
339 |
ret.add(element); |
| 1263 |
|
}else { |
| 1264 |
0 |
LOG.error("Ignore unexpected node "+n.getNodeName()+", this should not happen"); |
| 1265 |
|
} |
| 1266 |
|
} |
| 1267 |
|
} |
| 1268 |
0 |
catch (ParserConfigurationException e) { |
| 1269 |
0 |
throw new YarfrawException("Parserconfig exception", e); |
| 1270 |
|
} |
| 1271 |
0 |
catch (JAXBException e) { |
| 1272 |
0 |
e.printStackTrace(); |
| 1273 |
0 |
throw new YarfrawException("JAXB exception", e); |
| 1274 |
|
} |
| 1275 |
63 |
return ret; |
| 1276 |
|
} |
| 1277 |
|
|
| 1278 |
|
} |