From 7375ec6d47d4e5f6bd7ee63294e61e79a05c7049 Mon Sep 17 00:00:00 2001 From: "alexander.a.kuznetsov" Date: Fri, 16 Oct 2009 15:08:15 +0000 Subject: [PATCH] =?UTF-8?q?=D0=BA=D1=83=D0=B0=D1=84refactor=20class=20for?= =?UTF-8?q?=20encoding=20letters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://russianmorphology.googlecode.com/svn/trunk@60 d817d54c-26ab-11de-abc9-2f7d1455ff7a --- .../morphology/BaseLetterDecoderEncoder.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 morph/src/main/java/org/apache/lucene/morphology/BaseLetterDecoderEncoder.java diff --git a/morph/src/main/java/org/apache/lucene/morphology/BaseLetterDecoderEncoder.java b/morph/src/main/java/org/apache/lucene/morphology/BaseLetterDecoderEncoder.java new file mode 100644 index 0000000..0598d92 --- /dev/null +++ b/morph/src/main/java/org/apache/lucene/morphology/BaseLetterDecoderEncoder.java @@ -0,0 +1,55 @@ +/** + * Copyright 2009 Alexander Kuznetsov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.lucene.morphology; + +import java.util.ArrayList; + + +public abstract class BaseLetterDecoderEncoder implements LetterDecoderEncoder { + public int[] encodeToArray(String s) { + ArrayList integers = new ArrayList(); + while (s.length() > 6) { + integers.add(encode(s.substring(0, 6))); + s = s.substring(6); + } + integers.add(encode(s)); + int[] ints = new int[integers.size()]; + int pos = 0; + for (Integer i : integers) { + ints[pos] = i; + pos++; + } + return ints; + } + + public String decodeArray(int[] array) { + String result = ""; + for (int i : array) { + result += decode(i); + } + return result; + } + + public boolean checkString(String word) { + for (int i = 0; i < word.length(); i++) { + if (!checkCharacter(word.charAt(i))) { + return false; + } + } + return true; + } +}