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; + } +}