StorageImpl.java
上传用户:qing5858
上传日期:2015-10-27
资源大小:6056k
文件大小:3k
源码类别:

搜索引擎

开发平台:

Java

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