From a6970bda311552d00bedc7fe914d6f1fa18ca741 Mon Sep 17 00:00:00 2001 From: "alexander.a.kuznetsov" Date: Sun, 4 Oct 2009 19:49:57 +0000 Subject: [PATCH] adding reading morphology fromresource git-svn-id: https://russianmorphology.googlecode.com/svn/trunk@54 d817d54c-26ab-11de-abc9-2f7d1455ff7a --- .../apache/lucene/morphology/LuceneMorph.java | 9 +++++++-- .../org/apache/lucene/morphology/Morph.java | 19 +++++++++++++------ .../analayzer/MorphlogyAnalayzer.java | 11 ++++++++--- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/morph/src/main/java/org/apache/lucene/morphology/LuceneMorph.java b/morph/src/main/java/org/apache/lucene/morphology/LuceneMorph.java index 493ade3..bed0875 100644 --- a/morph/src/main/java/org/apache/lucene/morphology/LuceneMorph.java +++ b/morph/src/main/java/org/apache/lucene/morphology/LuceneMorph.java @@ -18,14 +18,19 @@ package org.apache.lucene.morphology; import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; public class LuceneMorph extends Morph { - public LuceneMorph(String fileName,LetterDecoderEncoder decoderEncoder) throws IOException { - super(fileName,decoderEncoder); + public LuceneMorph(String fileName, LetterDecoderEncoder decoderEncoder) throws IOException { + super(fileName, decoderEncoder); + } + + public LuceneMorph(InputStream inputStream, LetterDecoderEncoder decoderEncoder) throws IOException { + super(inputStream, decoderEncoder); } @Override diff --git a/morph/src/main/java/org/apache/lucene/morphology/Morph.java b/morph/src/main/java/org/apache/lucene/morphology/Morph.java index 3718792..b6d2602 100644 --- a/morph/src/main/java/org/apache/lucene/morphology/Morph.java +++ b/morph/src/main/java/org/apache/lucene/morphology/Morph.java @@ -16,10 +16,7 @@ package org.apache.lucene.morphology; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; import java.util.ArrayList; import java.util.List; @@ -32,11 +29,16 @@ public class Morph { protected LetterDecoderEncoder decoderEncoder; - public Morph(String fileName,LetterDecoderEncoder decoderEncoder) throws IOException { + public Morph(String fileName, LetterDecoderEncoder decoderEncoder) throws IOException { readFromFile(fileName); this.decoderEncoder = decoderEncoder; } + public Morph(InputStream inputStream, LetterDecoderEncoder decoderEncoder) throws IOException { + readFromInputStream(inputStream); + this.decoderEncoder = decoderEncoder; + } + public Morph(int[][] separators, short[] rulesId, Heuristic[][] rules, String[] grammaInfo) { this.separators = separators; this.rulesId = rulesId; @@ -130,7 +132,12 @@ public class Morph { } public void readFromFile(String fileName) throws IOException { - BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName)); + FileInputStream inputStream = new FileInputStream(fileName); + readFromInputStream(inputStream); + } + + private void readFromInputStream(InputStream inputStream) throws IOException { + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String s = bufferedReader.readLine(); Integer amount = Integer.valueOf(s); diff --git a/morph/src/main/java/org/apache/lucene/morphology/analayzer/MorphlogyAnalayzer.java b/morph/src/main/java/org/apache/lucene/morphology/analayzer/MorphlogyAnalayzer.java index 296d8cc..6c36a68 100644 --- a/morph/src/main/java/org/apache/lucene/morphology/analayzer/MorphlogyAnalayzer.java +++ b/morph/src/main/java/org/apache/lucene/morphology/analayzer/MorphlogyAnalayzer.java @@ -21,17 +21,22 @@ import org.apache.lucene.analysis.LowerCaseFilter; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardFilter; import org.apache.lucene.analysis.standard.StandardTokenizer; -import org.apache.lucene.morphology.LuceneMorph; import org.apache.lucene.morphology.LetterDecoderEncoder; +import org.apache.lucene.morphology.LuceneMorph; import java.io.IOException; +import java.io.InputStream; import java.io.Reader; public class MorphlogyAnalayzer extends Analyzer { private LuceneMorph luceneMorph; - public MorphlogyAnalayzer(String pathToMorph,LetterDecoderEncoder letterDecoderEncoder) throws IOException { - luceneMorph = new LuceneMorph("sep.txt",letterDecoderEncoder); + public MorphlogyAnalayzer(String pathToMorph, LetterDecoderEncoder letterDecoderEncoder) throws IOException { + luceneMorph = new LuceneMorph("sep.txt", letterDecoderEncoder); + } + + public MorphlogyAnalayzer(InputStream inputStream, LetterDecoderEncoder letterDecoderEncoder) throws IOException { + luceneMorph = new LuceneMorph(inputStream, letterDecoderEncoder); } public TokenStream tokenStream(String fieldName, Reader reader) {