addressindex.java
来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 180 行
JAVA
180 行
package jp.co.sjts.gsession.main;
/*
* 僀儞僨僢僋僗庢摼僋儔僗 AddressIndex.java
* Copyright (C) 1999-2002 Japan Total System Co,LTD
*
*/
import java.io.File;
import java.util.Iterator;
import java.util.Hashtable;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import jp.co.sjts.gsession.tools.*;
import jp.co.sjts.gsession.tools.mail.*;
public class AddressIndex {
private int max = 0;
private String cardDir = null;
private String dataDir = null;
private static final String[] indexs = {"偁","偄","偆","偊","偍","偐","偒","偔","偗","偙","偝","偟","偡","偣","偦","偨","偪","偮","偰","偲","側","偵","偸","偹","偺","偼","傂","傆","傊","傎","傑","傒","傓","傔","傕","傗","備","傛","傜","傝","傞","傟","傠","傢","傪","傫","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","etc"};
public AddressIndex() {
}
public static synchronized HashSet getIndexs(int subcmd, UserManager usermanager, String dataDir) {
IndexSearch idxSearch = null;
HashSet indexSet = new HashSet();
if(subcmd == GSCmd.SUB_SHAINADD_GROUP)
return indexSet;
String indexURL = dataDir+GSFilename.GS_DIR_IDX+File.separator;
if(subcmd == GSCmd.SUB_SHAINADD_EMAIL)
idxSearch = new KanaIndexSearch(indexURL+GSFilename.GS_IDX_MAIL);
else
idxSearch = new KanaIndexSearch(indexURL+GSFilename.GS_IDX_KANA);
try {
for(int i=0; i < indexs.length; i++) {
List idlist = idxSearch.getIDs(indexs[i].hashCode());
if(idlist != null) {
Iterator it_id = idlist.iterator();
while(it_id.hasNext()) {
Integer id = (Integer)it_id.next();
IUser user = usermanager.getUser(id.intValue());
if(user.getEmail().length() > 0) {
indexSet.add(indexs[i]);
break;
}
}
}
}
} catch(GSException ge) {
indexSet = new HashSet();
}
return indexSet;
}
public static synchronized MailAddress setMailAddress(MailAddress address, UserManager usermanager, Hashtable hsPara, String dataDir) throws GSException {
try {
String indexDir = dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_KANA;
IndexSearch idxSearch = new KanaIndexSearch(indexDir);
String[] tos = (String[])hsPara.get("to");
HashSet toSet = new HashSet();
if(tos != null) {
for(int i=0; i < tos.length; i++)
toSet.add(tos[i]);
}
String[] ccs = (String[])hsPara.get("cc");
HashSet ccSet = new HashSet();
if(ccs != null) {
for(int i=0; i < ccs.length; i++)
ccSet.add(ccs[i]);
}
String[] bccs = (String[])hsPara.get("bcc");
HashSet bccSet = new HashSet();
if(bccs != null) {
for(int i=0; i < bccs.length; i++)
bccSet.add(bccs[i]);
}
for(int i=0; i < indexs.length; i++) {
List idlist = idxSearch.getIDs(indexs[i].hashCode());
if(idlist != null) {
Iterator it_id = idlist.iterator();
while(it_id.hasNext()) {
Integer id = (Integer)it_id.next();
IUser user = usermanager.getUser(id.intValue());
String email = user.getEmail();
if(email.length() > 0) {
address.removeTO(email);
address.removeCC(email);
address.removeBCC(email);
if(toSet.contains(id.toString()))
address.addTO(user.getName(),email);
if(ccSet.contains(id.toString()))
address.addCC(user.getName(),email);
if(bccSet.contains(id.toString()))
address.addBCC(user.getName(),email);
}
}
}
}
} catch(GSException ge) {
throw ge;
}
return address;
}
public static synchronized Hashtable setParam(MailAddress address, UserManager usermanager, Hashtable hsPara, String dataDir) throws GSException {
try {
String indexDir = dataDir+GSFilename.GS_DIR_IDX+File.separator+GSFilename.GS_IDX_KANA;
IndexSearch idxSearch = new KanaIndexSearch(indexDir);
HashSet toSet = new HashSet();
HashSet ccSet = new HashSet();
HashSet bccSet = new HashSet();
for(int i=0; i < indexs.length; i++) {
List idlist = idxSearch.getIDs(indexs[i].hashCode());
if(idlist != null) {
Iterator it_id = idlist.iterator();
while(it_id.hasNext()) {
Integer id = (Integer)it_id.next();
IUser user = usermanager.getUser(id.intValue());
String email = user.getEmail();
if(email.length() > 0) {
if(address.containsTO(email))
toSet.add(id.toString());
if(address.containsCC(email))
ccSet.add(id.toString());
if(address.containsBCC(email))
bccSet.add(id.toString());
}
}
}
}
String[] tos = new String[toSet.size()];
Iterator it_to = toSet.iterator();
for(int i=0; i < tos.length; i++) {
tos[i] = (String)it_to.next();
}
String[] ccs = new String[ccSet.size()];
Iterator it_cc = ccSet.iterator();
for(int i=0; i < ccs.length; i++) {
ccs[i] = (String)it_cc.next();
}
String[] bccs = new String[bccSet.size()];
Iterator it_bcc = bccSet.iterator();
for(int i=0; i < bccs.length; i++) {
bccs[i] = (String)it_bcc.next();
}
hsPara.put("to", tos);
hsPara.put("cc", ccs);
hsPara.put("bcc", bccs);
} catch(GSException ge) {
return hsPara;
}
return hsPara;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?