/************************************************************************** /* A factory for creating Lucene Documents from text-files. /* /* Copyright (c) 2003-2004 by Bernhard Bablok (mail@bablokb.de) /* /* This library is free software; you can redistribute it and/or modify /* it under the terms of the GNU Lesser General Public License as published /* by the Free Software Foundation; either version 2 of the License or /* (at your option) any later version. /* /* This library is distributed in the hope that it will be useful, but /* WITHOUT ANY WARRANTY; without even the implied warranty of /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /* GNU Lesser General Public License for more details. /* /* You should have received a copy of the GNU Lesser General Public License /* along with this library; see the file COPYING.LESSER. If not, write to /* the Free Software Foundation Inc., 59 Temple Place - Suite 330, /* Boston, MA 02111-1307 USA /**************************************************************************/ package de.bablokb.luala.lib; import java.io.*; import org.apache.lucene.document.*; /** A factory for creating Lucene Documents from text-files. This is a sort of fallback-factory, if not a more specific factory is available. @version $Revision: 1.6 $ @author $Author: bablokb $ */ public class TextDocumentFactory extends StandardDocumentFactory { //////////////////////////////////////////////////////////////////////////// /** Create a Lucene-Document with the file-content as a TEXT-field. @param name The name of the source-document @return A {@link org.apache.lucene.document.Document} @throws FactoryException */ public Document createDocument(String name) throws FactoryException { try{ Document doc = super.createDocument(name); FileInputStream is = new FileInputStream(name); Reader reader = new BufferedReader(new InputStreamReader(is)); addSummary(doc,reader); addContent(doc,reader); return doc; } catch (Exception e) { throw new FactoryException(e); } } //////////////////////////////////////////////////////////////////////////// /** Set the type-field of this document. @param doc The document */ public void setType(Document doc) { doc.add(Field.UnIndexed(TYPE,"text/plain")); } }