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

搜索引擎

开发平台:

Java

  1. package net.javacoding.jspider.core.storage.memory;
  2. import net.javacoding.jspider.core.storage.spi.EMailAddressDAOSPI;
  3. import net.javacoding.jspider.core.storage.spi.StorageSPI;
  4. import net.javacoding.jspider.core.model.*;
  5. import java.util.*;
  6. /**
  7.  * $Id: EMailAddressDAOImpl.java,v 1.2 2003/04/11 16:37:06 vanrogu Exp $
  8.  */
  9. class EMailAddressDAOImpl implements EMailAddressDAOSPI {
  10.     protected StorageSPI storage;
  11.     protected Map byResource;
  12.     protected Map addresses;
  13.     public EMailAddressDAOImpl ( StorageSPI storage ) {
  14.         this.storage = storage;
  15.         this.byResource= new HashMap();
  16.         this.addresses = new HashMap ();
  17.     }
  18.     public void register(ResourceInternal resource, EMailAddressInternal address) {
  19.         Map map = (Map)byResource.get(new Integer(resource.getId()));
  20.         if (map == null) {
  21.             map = new HashMap();
  22.             byResource.put(new Integer(resource.getId()), map);
  23.         }
  24.         EMailAddressReferenceInternal reference =(EMailAddressReferenceInternal) map.get(address.getAddress());
  25.         if ( reference == null ) {
  26.             reference = new EMailAddressReferenceInternal(storage, resource.getId(), address.getAddress(), 0);
  27.             map.put(address.getAddress(), reference);
  28.         }
  29.         reference.incrementCount();
  30.         addresses.put(address.getAddress(), address);
  31.     }
  32.     public EMailAddressInternal[] findByResource(ResourceInternal resource) {
  33.         EMailAddressReferenceInternal[] refs = findReferencesByResource(resource);
  34.         ArrayList al = new ArrayList();
  35.         for (int i = 0; i < refs.length; i++) {
  36.             EMailAddressReferenceInternal ref = refs[i];
  37.             al.add(ref.getEMailAddress());
  38.         }
  39.         return (EMailAddressInternal[])al.toArray(new EMailAddressInternal[al.size()]);
  40.     }
  41.     public EMailAddressReferenceInternal[] findReferencesByResource(ResourceInternal resource) {
  42.         Map map = (Map)byResource.get(new Integer(resource.getId()));
  43.         if (map == null) {
  44.             return new EMailAddressReferenceInternal[0];
  45.         } else {
  46.             return (EMailAddressReferenceInternal[]) map.values().toArray(new EMailAddressReferenceInternal[map.size()]);
  47.         }
  48.     }
  49.     public EMailAddressInternal find(String address) {
  50.         return (EMailAddressInternal) addresses.get(address);
  51.     }
  52. }