KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > core > storage > memory > EMailAddressDAOImpl


1 package net.javacoding.jspider.core.storage.memory;
2
3 import net.javacoding.jspider.core.storage.spi.EMailAddressDAOSPI;
4 import net.javacoding.jspider.core.storage.spi.StorageSPI;
5 import net.javacoding.jspider.core.model.*;
6
7 import java.util.*;
8
9 /**
10  * $Id: EMailAddressDAOImpl.java,v 1.2 2003/04/11 16:37:06 vanrogu Exp $
11  */

12 class EMailAddressDAOImpl implements EMailAddressDAOSPI {
13
14     protected StorageSPI storage;
15
16     protected Map byResource;
17     protected Map addresses;
18
19     public EMailAddressDAOImpl ( StorageSPI storage ) {
20         this.storage = storage;
21         this.byResource= new HashMap();
22         this.addresses = new HashMap ();
23     }
24
25     public void register(ResourceInternal resource, EMailAddressInternal address) {
26         Map map = (Map)byResource.get(new Integer JavaDoc(resource.getId()));
27         if (map == null) {
28             map = new HashMap();
29             byResource.put(new Integer JavaDoc(resource.getId()), map);
30         }
31
32         EMailAddressReferenceInternal reference =(EMailAddressReferenceInternal) map.get(address.getAddress());
33         if ( reference == null ) {
34             reference = new EMailAddressReferenceInternal(storage, resource.getId(), address.getAddress(), 0);
35             map.put(address.getAddress(), reference);
36         }
37         reference.incrementCount();
38         addresses.put(address.getAddress(), address);
39     }
40
41     public EMailAddressInternal[] findByResource(ResourceInternal resource) {
42         EMailAddressReferenceInternal[] refs = findReferencesByResource(resource);
43         ArrayList al = new ArrayList();
44         for (int i = 0; i < refs.length; i++) {
45             EMailAddressReferenceInternal ref = refs[i];
46             al.add(ref.getEMailAddress());
47         }
48         return (EMailAddressInternal[])al.toArray(new EMailAddressInternal[al.size()]);
49     }
50
51     public EMailAddressReferenceInternal[] findReferencesByResource(ResourceInternal resource) {
52         Map map = (Map)byResource.get(new Integer JavaDoc(resource.getId()));
53         if (map == null) {
54             return new EMailAddressReferenceInternal[0];
55         } else {
56             return (EMailAddressReferenceInternal[]) map.values().toArray(new EMailAddressReferenceInternal[map.size()]);
57         }
58     }
59
60     public EMailAddressInternal find(String JavaDoc address) {
61         return (EMailAddressInternal) addresses.get(address);
62     }
63 }
64
Popular Tags