| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // which accompanies this distribution, and is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // Contributors: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.publishing.services.search; |
| |
| import java.io.BufferedReader; |
| import java.io.File; |
| import java.io.FileInputStream; |
| import java.io.InputStreamReader; |
| import java.util.Vector; |
| |
| /** |
| * This class reads in a configuration file of stop words |
| * and provides the stop words as a list. <br> |
| */ |
| class StopWordReader |
| { |
| private static Vector _stopwords = null; |
| |
| /** |
| * Default constructor. |
| */ |
| private StopWordReader() |
| { |
| } |
| |
| /** |
| * Retrieve the set of stopwords from the given file. |
| */ |
| static String[] getStopwords( String filepath, |
| String filename ) |
| { |
| if( null == _stopwords ) |
| { |
| _stopwords = new Vector(); |
| |
| try |
| { |
| // read in the file |
| String fullFilename = filepath + |
| File.separator + |
| filename; |
| FileInputStream inStream = new FileInputStream( fullFilename ); |
| InputStreamReader streamReader = new InputStreamReader( inStream ); |
| BufferedReader read = new BufferedReader(streamReader); |
| /* char[] charRead = new char[ inStream.available() ]; |
| streamReader.read( charRead ); |
| String content = new String( charRead ); |
| */ |
| |
| String word = read.readLine(); |
| while (word != null) |
| { |
| _stopwords.add(word); |
| word = read.readLine(); |
| } |
| |
| // close stream |
| read.close(); |
| streamReader.close(); |
| inStream.close(); |
| |
| // parseContent |
| // parseContent( content, _stopwords ); |
| } |
| catch( Exception e ) |
| { |
| e.printStackTrace(); |
| } |
| } |
| |
| Object[] stopObjects = _stopwords.toArray(); |
| String[] stopStrings = new String[ stopObjects.length ]; |
| for( int i = 0; i < stopObjects.length; i++ ) |
| { |
| stopStrings[ i ] = (String)stopObjects[ i ]; |
| } |
| return( stopStrings ); |
| |
| } |
| |
| /** |
| * Parses the content into stopwords. |
| */ |
| /* |
| private static void parseContent( String content, |
| Vector _stopwords ) |
| { |
| StringTokenizer tokenizer = new StringTokenizer( content, |
| System.getProperty( "line.separator" ) ); |
| while( tokenizer.hasMoreElements() ) |
| { |
| _stopwords.addElement( tokenizer.nextElement() ); |
| } |
| } |
| */ |
| } |
| |