/** * @param siteURL URL of site requested * @param date Requested date * @return SiteData or null if data does not exist */ public SiteData doGetSiteDataForDate(String siteURL, Date date) { SiteData siteData = null; try { Pattern p = Pattern.compile( "(@)?(href=')?(HREF=')?(HREF=\")?(href=\")?(http://)?[a-zA-Z_0-9\\-]+(\\.\\w[a-zA-Z_0-9\\-]+)+(/[#&\\n\\-=?\\+\\%/\\.\\w]+)?"); Matcher m = p.matcher(siteURL); if (!m.matches()) throw new Exception("Site URL is not valid: " + siteURL); if (!allSitesMap.containsKey(siteURL)) throw new Exception("No Site data available for: " + siteURL); SiteArchive siteArchive = allSitesMap.get(siteURL); siteData = siteArchive.retrieveSiteData(date); } catch (Exception e) { e.printStackTrace(); return siteData; } return siteData; }