⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indexfactory.java

📁 CD Manager光盘资料管家婆源代码
💻 JAVA
字号:
package com.galaxyworkstation.model;
import java.io.IOException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;

/**
 * 该类模拟了管理索引文件的工厂,并采用单一实例模式实现了对各种索引流的管理
 * @author 李奕
 * @version 1.0
 */
public class IndexFactory {
	
	private static IndexReader cdIndexReader = null;
	private static IndexReader discIndexReader = null;
	private static IndexSearcher cdIndexSearcher = null;
	private static IndexSearcher discIndexSearcher = null;
	
	/***************IndexReader Factory****************/
	
	/**
	 * 得到光盘索引文件的读出流
	 * @return 光盘索引文件的读出流
	 */
	public static IndexReader getCDIndexReader(){
		if(cdIndexReader == null)
			if(IndexReader.indexExists("cdindex"))
				try {
					cdIndexReader = IndexReader.open("cdindex");
				}catch (IOException e) {
					e.printStackTrace();
				}
			else return null;
		return cdIndexReader;
	}
	
	/**
	 * 关闭光盘索引文件的读出流
	 * @return True 如果关闭成功
	 */
	public static boolean closeCDIndexReader(){
		try {
			if(cdIndexReader != null)
				cdIndexReader.close();
				cdIndexReader = null;
		} catch (IOException e) {
			cdIndexReader = null;
			return false;
		}
		return true;
	}
	
	/**
	 * 得到硬盘索引文件的读出流
	 * @return 硬盘索引文件的读出流
	 */
	public static IndexReader getDiscIndexReader(){
		if(discIndexReader == null)
			if(IndexReader.indexExists("discindex"))
				try {
					discIndexReader = IndexReader.open("discindex");
				}catch (IOException e) {
					e.printStackTrace();
				}
			else return null;
		return discIndexReader;
	}
	
	/**
	 * 关闭硬盘索引文件的读出流
	 * @return True 如果关闭成功
	 */
	public static boolean closeDiscIndexReader(){
		try {
			if(discIndexReader != null)
				discIndexReader.close();
				discIndexReader = null;
		} catch (IOException e) {
			discIndexReader = null;
			return false;
		}
		return true;
	}
	
	/**************IndexSearcher Factory**************/
	
	/**
	 * 得到光盘索引文件的搜索流
	 * @return 光盘索引文件的搜索流
	 */
	public static IndexSearcher getCDIndexSearcher(){
		if(cdIndexSearcher == null)
			cdIndexSearcher = new IndexSearcher(getCDIndexReader());
		return cdIndexSearcher;
	}
	
	/**
	 * 关闭光盘索引文件的搜索流
	 * @return True 如果关闭成功
	 */
	public static boolean closeCDIndexSearcher(){
		try {
			if(cdIndexSearcher != null)
				cdIndexSearcher.close();
				cdIndexSearcher = null;
		} catch (IOException e) {
			cdIndexSearcher = null;
			return false;
		}
		return true;
	}
	
	/**
	 * 得到硬盘索引文件的搜索流
	 * @return 硬盘索引文件的搜索流
	 */
	public static IndexSearcher getDiscIndexSearcher(){
		if(discIndexSearcher == null)
			discIndexSearcher = new IndexSearcher(getDiscIndexReader());
		return discIndexSearcher;
	}
	
	/**
	 * 关闭硬盘索引文件的搜索流
	 * @return True 如果关闭成功
	 */
	public static boolean closeDiscIndexSearcher(){
		try {
			if(discIndexSearcher != null)
				discIndexSearcher.close();
				discIndexSearcher = null;
		} catch (IOException e) {
			discIndexSearcher = null;
			return false;
		}
		return true;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -