KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > core > storage > impl > StorageImpl


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 /**
12  * $Id: StorageImpl.java,v 1.1 2003/04/11 16:37:05 vanrogu Exp $
13  */

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