亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmlstorage.java

?? Gmail API for Java 一個gmail信箱的客戶端
?? JAVA
字號:
package siuying.gm.app.gmailer4j;

import java.util.*;
import siuying.gm.structure.*;
import java.io.*;
import java.util.logging.*;
import com.tagtraum.sixbs.*;
import com.tagtraum.sixbs.adapters.util.*;

/**
 * Open a directory, use files under this directorys as data store
 * @todo use some caching technique to improve performance
 * @version 0.1
 */
public class XMLStorage implements GMStorage{
    /**
     * if the storage is opened
     */
    private boolean opened;

    /**
     * url of the storage
     */
    private String url;

    /**
     * file postfix that used by the data store, default ".xml"
     */
    private String postfix;

    /**
     * list of all items in storage
     */
    protected HashSet items;

    protected static Logger logger = Logger.getLogger(XMLStorage.class.getName());

    /**
     * Filefilter that list only xml
     */
    private static FileFilter filter;

    private XMLStorage(){
        items = new HashSet();
        postfix = ".xml";
        opened = false;
    }

    public String getPostfix(){
        return postfix;
    }

    public void setPostfix(String postfix){
        this.postfix = postfix;
        this.filter = new PostfixFileFilter(postfix);
    }

    /**
     * Open a XMLThreadStorage by url
     * @param String pathname directory to store the XML files
     * @throws IOException when open directory failed
     */
    public static XMLStorage getXMLStorage(String path) throws IOException{
        logger.info("Setting up XML Thread Storage ... ");

        File dataDir = new File(path);

        if (!dataDir.exists()){
          // try to create the directory if not exist
          dataDir.mkdirs();
        }

        if (!dataDir.isDirectory()){
            throw new IOException("Parameter path not exist or not a directory: " + path);
        }
        XMLStorage newStore = new XMLStorage();
        newStore.setUrl(path);
        newStore.setPostfix(".xml");
        return newStore;
    }

    /**
     * Open a XMLThreadStorage by url
     * @param String pathname directory to store the XML files
     * @param String postfix the files type treated as xml files, e.g. ".xml"
     * @throws IOException when open directory failed
     */
    public static XMLStorage getXMLStorage(String path, String postfix) throws IOException{
        XMLStorage store = XMLStorage.getXMLStorage(path);
        store.setPostfix(postfix);
        return store;
    }

    public void setUrl(String url) throws NullPointerException{
        if (url == null) throw new NullPointerException("URL cannot be null. ");

        if (url.equals("")) throw new IllegalArgumentException("URL must not be empty!");

        this.url = url;
    }

    public String getUrl(){
        return url;
    }

    public void open() throws IOException {
        logger.info("Opening directory ... " + url);

        File dataDir = new File(url);

        if (!dataDir.exists()){
          // try to create the directory if not exist
          dataDir.mkdirs();
        }

        if (!dataDir.isDirectory()){
            throw new IOException("Parameter path not exist or not a directory: " +
                                  url + " (" + dataDir.getAbsolutePath() + ")");
        }

        logger.fine("Listing file ... ");
        File[] xmlFiles = dataDir.listFiles(filter);

        // add files to store if it match the postfix we specified
        for(int i=0; i<xmlFiles.length; i++){
          items.add(xmlFiles[i].getName());
        }

        logger.info("Number of files added: " + items.size());

        opened = true;
    }

    public void close(){
        opened = false;
    }

    /**
     * check if the thread with id specified existed in the store
     * @param id the id of the thread
     */
    public boolean containsId(String id){
        // check if the file have been downloaded
        return items.contains((id + postfix).intern());
    }

    /**
     * save thread as xml
     * @throws NullPointerException when id or thread is null
     * @throws IllegalArgumentException when id is empty string
     */
    public void put(String id, Object thread) throws IOException, NullPointerException {
        if (id == null || thread == null){
            throw new NullPointerException("id or thread cannot be null!");
        }

        if (id.equals("")) {
            throw new IllegalArgumentException("id must not be empty!");
        }

        FileWriter writer = null;
        SIXBSWriter out = null;
        try{
            writer = new FileWriter(url + File.separator + id + postfix);
            out = new SIXBSWriter(writer);
            out.writeObject(thread);
        }finally{
            try{
                out.close();
                writer.close();
            }catch(Exception e){}
        }

        items.add(id + postfix);
        logger.info("Thread added, id: " + url + File.separator + id + postfix );
    }

    /**
     * get thread from xml store by id
     * @throws NullPointerException when id or thread is null
     * @throws IllegalArgumentException when id is empty string
     */
    public Object get(String id) throws IOException, NullPointerException{
        if (id == null) throw new NullPointerException("id cannot be null. ");
        if (id.equals("")) throw new IllegalArgumentException("id must not be empty!");

        FileReader reader = new FileReader(new File(url + File.separator + id + postfix));
        SIXBSReader in = null;
        Object thread = null;

        try{
            in = new SIXBSReader(reader);
            thread = in.readObject();
        }finally{
            try{
                in.close();
                reader.close();
            }catch(Exception e){}
        }
        logger.info("Object loaded, id: " + id );
        return thread;
    }

    /**
     * remove thread xml file
     * @throws NullPointerException when id is null
     */
    public void remove(String id) throws NullPointerException, SecurityException {
        if (id == null) throw new NullPointerException("id cannot be null. ");

        if (id.equals("")) {
            throw new IllegalArgumentException("id must not be empty!");
        }
        File file = new File(url + File.separator + id + postfix);
        boolean exist = file.exists();

        if(exist){
            file.delete();
        }

        logger.info("Thread deleted, id: " + id );
        items.remove(id + postfix );
    }

    /**
     * do nothing in this implementation
     * as we save every time we access file
     */
    public void flush() throws IOException {

    }

    public Iterator iterator() {
        return items.iterator();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂福利av| 极品少妇一区二区三区精品视频 | 欧美刺激午夜性久久久久久久| 欧美精品一区二区三区一线天视频| 中文字幕一区二区三区在线播放 | 国产一区二区三区免费在线观看| 色婷婷av一区| 国产喷白浆一区二区三区| 午夜免费欧美电影| av电影天堂一区二区在线观看| 欧美日韩中文一区| 亚洲精品日韩专区silk| 国产一区二区三区日韩| 日韩三级.com| 亚洲成av人在线观看| 色成年激情久久综合| 久久影院视频免费| 日本在线不卡视频| 欧美日韩在线三级| 一区二区三区日韩在线观看| 国产91精品在线观看| 2014亚洲片线观看视频免费| 亚洲成人av中文| 在线观看av一区二区| 亚洲精品国产第一综合99久久| 国产成人8x视频一区二区| 精品av久久707| 精品午夜一区二区三区在线观看| 欧美一级片在线观看| 91免费版在线| 国产精品久久久久9999吃药| 成人高清视频在线观看| 中文字幕精品三区| 成人av网站在线观看| 国产精品无人区| 国产a视频精品免费观看| 欧美极品另类videosde| 国产乱一区二区| 精品久久一二三区| 麻豆91精品视频| 欧美男男青年gay1069videost | 免费观看在线综合色| 色噜噜狠狠成人网p站| 中文字幕av资源一区| 精品一区二区在线视频| 日韩一区二区中文字幕| 亚洲成人自拍一区| 欧美私人免费视频| 亚洲午夜在线视频| 在线免费精品视频| 亚洲福利国产精品| 欧美日韩视频在线第一区| 国产精品高清亚洲| 色狠狠色噜噜噜综合网| 国产在线视频精品一区| 精品美女一区二区| 美女视频黄久久| 日韩免费观看高清完整版| 日日夜夜免费精品| 精品视频免费看| 日本亚洲三级在线| 日韩亚洲欧美高清| 精品影视av免费| 国产色产综合产在线视频| 夫妻av一区二区| 亚洲人成7777| 色哟哟精品一区| 国产精品乱码一区二三区小蝌蚪| 色综合欧美在线视频区| 亚洲午夜影视影院在线观看| 日韩午夜精品视频| 国产一区二区三区不卡在线观看 | 亚洲国产精品一区二区www| 欧美色倩网站大全免费| 精品午夜久久福利影院| 欧美亚洲一区二区三区四区| 久久国产麻豆精品| 国产精品久久777777| 欧美理论片在线| 狠狠色狠狠色综合系列| 国产精品污网站| 日韩欧美卡一卡二| 成人在线视频一区| 亚洲一级二级三级在线免费观看| 欧美久久婷婷综合色| 国产一区高清在线| 亚洲欧洲日产国码二区| 欧美日韩精品一区二区三区| 国内精品伊人久久久久av一坑| 国产精品久久久久影院| 欧美日韩久久不卡| 成人免费看视频| 视频一区视频二区中文字幕| 久久久精品黄色| 在线欧美日韩国产| 国产精品一区二区在线看| 亚洲综合一区在线| 久久人人97超碰com| 欧美日韩精品欧美日韩精品 | 91精品国产免费久久综合| 国产精品亚洲一区二区三区妖精 | 日韩电影免费在线观看网站| 欧美刺激脚交jootjob| 67194成人在线观看| 成人av动漫在线| 日韩专区欧美专区| 亚洲日穴在线视频| 精品捆绑美女sm三区| 日本精品裸体写真集在线观看| 久久99精品久久只有精品| 亚洲国产人成综合网站| 国产精品女同互慰在线看| 日韩免费一区二区| 色就色 综合激情| 午夜精品一区二区三区电影天堂 | 91麻豆免费视频| 亚洲va国产va欧美va观看| 国产精品久久久久影视| 久久久久久久久97黄色工厂| 欧美成人aa大片| 欧美日韩精品二区第二页| 色欲综合视频天天天| 成人综合激情网| 成人一区二区三区| 国产成人亚洲精品狼色在线| 狠狠色狠狠色综合| 精品在线一区二区| 极品少妇一区二区| 日本一不卡视频| 免费不卡在线视频| 五月综合激情日本mⅴ| 夜夜精品浪潮av一区二区三区| 国产精品高潮呻吟| 国产精品国模大尺度视频| 国产精品少妇自拍| 国产精品久久午夜| 中文字幕一区二区三区精华液| 中文字幕在线免费不卡| 国产无人区一区二区三区| 欧美mv日韩mv亚洲| 久久综合九色综合久久久精品综合| 欧美成人video| www成人在线观看| 久久久久久久久久久久久久久99 | 日韩毛片精品高清免费| 成人欧美一区二区三区白人| 国产精品久线观看视频| 国产精品电影一区二区| 国产精品传媒入口麻豆| 婷婷综合久久一区二区三区| 日韩精品每日更新| 精品亚洲免费视频| 波多野结衣亚洲一区| 在线亚洲一区二区| 在线播放欧美女士性生活| 日韩精品最新网址| 国产精品五月天| 亚洲综合另类小说| 久久精品噜噜噜成人av农村| 福利一区二区在线观看| 欧美午夜免费电影| 欧美一区二区日韩| 国产午夜亚洲精品午夜鲁丝片| 亚洲日本va在线观看| 亚洲.国产.中文慕字在线| 九色综合狠狠综合久久| 成人夜色视频网站在线观看| av亚洲精华国产精华| caoporn国产一区二区| 欧美日韩www| 国产农村妇女毛片精品久久麻豆| 亚洲精品免费看| 午夜久久久久久久久| 国产成人在线看| 欧美日韩精品高清| 国产精品色呦呦| 亚洲大尺度视频在线观看| 91美女视频网站| 精品sm捆绑视频| 亚洲成人综合网站| 麻豆精品蜜桃视频网站| 成人一道本在线| 日韩一区二区三区电影在线观看| 免费观看成人av| 成人动漫一区二区在线| 欧美久久久一区| 日韩一区在线播放| 韩国v欧美v亚洲v日本v| 欧美视频在线一区二区三区 | 国产综合久久久久久鬼色| 欧美亚洲国产一区二区三区va| 久久久久久99精品| 蜜桃视频在线一区| 欧美日韩视频在线第一区| 日韩毛片在线免费观看| 国产曰批免费观看久久久| 欧美日韩国产成人在线91| 亚洲丝袜自拍清纯另类| 国产成人av影院| 日韩精品一区二区三区swag|