@Override public NewsFeedContent fetchNewsFeed(String url) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException, ParseException { GenericFeedParser parser = GenericFeedParser.ParseFeed(url, "/rss/channel/item"); List<NewsFeedItem> output = new ArrayList<NewsFeedItem>(); NewsFeedItemFactory itemFactory = new NewsFeedItemFactory(); for (int i = 0; i < parser.getFeedLength(); i++) { Date date = DateTime.parse((parser.getStringKeyValue(i, "pubDate"))).toDate(); NewsFeedItem item = itemFactory.createInstance( parser.getStringKeyValue(i, "title"), parser.getStringKeyValue(i, "description"), parser.getStringKeyValue(i, "link"), parser.getStringKeyValue(i, "guid"), date, parser.getStringKeyValue(i, "name"), "", parser.getStringKeyValue(i, "image")); output.add(item); } return DefaultNewsFeedContent.createInstance(output); }
public static synchronized Literal getLiteralMatchingDataPropertyRange( OntModel m, String rnguri, Object v) throws Exception { Literal val = null; String errMsg = null; RDFDatatype rdftype = TypeMapper.getInstance().getSafeTypeByName(rnguri); if (rdftype != null && !rdftype.getURI().equals(XSD.xboolean.getURI()) && !rdftype.getURI().equals(XSD.date.getURI()) && !rdftype.getURI().equals(XSD.dateTime.getURI()) && !rdftype.getURI().equals(XSD.time.getURI())) { val = m.createTypedLiteral(v, rdftype); if (val != null) { return val; } } if (rnguri != null) { if (rnguri.contains("float")) { if (v instanceof String) { v = Double.parseDouble(stripQuotes((String) v)); } if (v instanceof Double) { v = new Float(((Double) v).floatValue()); val = m.createTypedLiteral(v); } else if (v instanceof Float) { val = m.createTypedLiteral(v); } else if (v instanceof Integer) { v = new Float(((Integer) v).floatValue()); val = m.createTypedLiteral(v); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range float"; } } else if (rnguri.contains("double")) { if (v instanceof String) { v = Double.parseDouble(stripQuotes((String) v)); } if (v instanceof Double) { val = m.createTypedLiteral(v); } else if (v instanceof Float) { v = new Double(((Float) v).doubleValue()); val = m.createTypedLiteral(v); } else if (v instanceof Integer) { v = new Double(((Integer) v).doubleValue()); val = m.createTypedLiteral(v); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range double"; } } else if (rnguri.contains("decimal")) { if (v instanceof String) { v = Double.parseDouble(stripQuotes((String) v)); } if (v instanceof Double) { v = new BigDecimal(((Double) v).doubleValue()); } else if (v instanceof Float) { v = new BigDecimal(((Float) v).doubleValue()); } else if (v instanceof Integer) { v = new BigDecimal(((Integer) v).doubleValue()); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range decimal"; } val = m.createTypedLiteral(v); } else if (rnguri.contains("int")) { if (v instanceof String) { v = Integer.parseInt(stripQuotes((String) v)); } if (v instanceof Integer) { val = m.createTypedLiteral(v); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range int"; } } else if (rnguri.contains("long")) { if (v instanceof String) { v = Long.parseLong(stripQuotes((String) v)); } if (v instanceof Long) { val = m.createTypedLiteral(v); } else if (v instanceof Integer) { val = m.createTypedLiteral(new Long(((Integer) v).longValue())); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range long"; } } else if (rnguri.contains("string")) { if (v instanceof String) { v = stripQuotes((String) v); val = m.createTypedLiteral(v); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range string"; } } else if (rnguri.endsWith("date")) { if (v instanceof String) { v = stripQuotes((String) v); DateTime dt = new DateTime((String) v); String xsdFormat = "yyyy-MM-dd"; String modifiedV = dt.toString(xsdFormat); val = m.createTypedLiteral(modifiedV, rnguri); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range date/dateTime/time"; } } else if (rnguri.endsWith("dateTime")) { if (v instanceof String) { v = stripQuotes((String) v); if (v != null && ((String) v).length() > 0) { DateTime dt = new DateTime((String) v); String xsdFormat = "yyyy-MM-dd'T'HH:mm:ssZZ"; String modifiedV = dt.toString(xsdFormat); val = m.createTypedLiteral(modifiedV, rnguri); } } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range date/dateTime/time"; } } else if (rnguri.endsWith("time")) { if (v instanceof String) { v = stripQuotes((String) v); val = m.createTypedLiteral("\"" + v + "\"", rnguri); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range date/dateTime/time"; } } else if (rnguri.endsWith("boolean")) { if (v instanceof String) { v = Boolean.parseBoolean(stripQuotes((String) v)); } if (v instanceof Boolean) { val = m.createTypedLiteral(v); } else { errMsg = "Unexpected value '" + v.toString() + "' (" + v.getClass().getSimpleName() + ") doesn't match range boolean"; } } else { errMsg = "Unhandled range " + rnguri; } } else { errMsg = "Range should not be null."; } if (errMsg != null) { throw new Exception(errMsg); } return val; }