1 package net.javacoding.jspider.core.storage.impl; 2 3 import net.javacoding.jspider.core.storage.*; 4 import net.javacoding.jspider.core.storage.spi.StorageSPI; 5 import net.javacoding.jspider.core.util.config.PropertySet; 6 import net.javacoding.jspider.core.logging.LogFactory; 7 import net.javacoding.jspider.core.model.SummaryInternal; 8 import net.javacoding.jspider.api.model.Summary; 9 import net.javacoding.jspider.api.model.Resource; 10 11 14 public class StorageImpl implements Storage { 15 16 protected StorageSPI storage; 17 protected SiteDAO siteDAO; 18 protected ResourceDAO resourceDAO; 19 protected DecisionDAO decisionDAO; 20 protected CookieDAO cookieDAO; 21 protected EMailAddressDAO emailAddressDAO; 22 23 public StorageImpl ( StorageProvider provider, PropertySet props ) { 24 this.storage = provider.createStorage(props); 25 this.siteDAO = new SiteDAOImpl(LogFactory.getLog(SiteDAO.class),storage, storage.getSiteDAO()); 26 this.resourceDAO = new ResourceDAOImpl(LogFactory.getLog(ResourceDAO.class),storage, storage.getResourceDAO()); 27 this.decisionDAO = new DecisionDAOImpl(LogFactory.getLog(DecisionDAO.class),storage, storage.getDecisionDAO()); 28 this.cookieDAO = new CookieDAOImpl(LogFactory.getLog(CookieDAO.class),storage, storage.getCookieDAO()); 29 this.emailAddressDAO = new EMailAddressDAOImpl(LogFactory.getLog(EMailAddressDAO.class),storage, storage.getEMailAddressDAO()); 30 } 31 32 public SiteDAO getSiteDAO() { 33 return siteDAO; 34 } 35 36 public ResourceDAO getResourceDAO() { 37 return resourceDAO; 38 } 39 40 public DecisionDAO getDecisionDAO() { 41 return decisionDAO; 42 } 43 44 public CookieDAO getCookieDAO() { 45 return cookieDAO; 46 } 47 48 public EMailAddressDAO getEMailAddressDAO() { 49 return emailAddressDAO; 50 } 51 52 public Summary getSummary() { 53 Resource[] resources = getResourceDAO().getAllResources(); 54 int knownURLs = resources.length; 55 56 int parsedResources = 0; 57 int ignoredForFetchingResources = 0; 58 int ignoredForParsingResources = 0; 59 int fetchErrorResources = 0; 60 int parseErrorResources = 0; 61 int forbiddenResources = 0; 62 int unvisitedURLs = 0; 63 for (int i = 0; i < resources.length; i++) { 64 Resource resource = resources[i]; 65 switch ( resource.getState()) { 66 case Resource.STATE_DISCOVERED: 67 unvisitedURLs++; 68 break; 69 case Resource.STATE_FETCH_ERROR : 70 fetchErrorResources++; 71 break; 72 case Resource.STATE_FETCH_IGNORED : 73 ignoredForFetchingResources++; 74 break; 75 case Resource.STATE_FETCH_FORBIDDEN : 76 forbiddenResources++; 77 break; 78 case Resource.STATE_FETCHED : 79 break; 80 case Resource.STATE_PARSE_ERROR : 81 parseErrorResources++; 82 break; 83 case Resource.STATE_PARSE_IGNORED : 84 ignoredForParsingResources++; 85 break; 86 case Resource.STATE_PARSED : 87 parsedResources++; 88 break; 89 } 90 } 91 return new SummaryInternal(knownURLs, parsedResources,ignoredForFetchingResources, ignoredForParsingResources,fetchErrorResources,parseErrorResources, forbiddenResources, unvisitedURLs); 92 } 93 94 } 95 | Popular Tags |