CombinerChain.java revision 7196566d4f2048a4160acc6271ccb26c73d6fcd6
1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.inputmethod.event;
18
19import java.util.ArrayList;
20
21/**
22 * Compatibility class that stands in for the combiner chain in LatinIME.
23 *
24 * This is not used by dicttool, it's just needed by the dependency chain.
25 */
26// TODO: there should not be a dependency to this in dicttool, so there
27// should be a sensible way to separate them cleanly.
28public class CombinerChain {
29    private StringBuilder mComposingWord;
30    public CombinerChain(final String initialText, final Combiner... combinerList) {
31        mComposingWord = new StringBuilder(initialText);
32    }
33
34    public Event processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
35        return newEvent;
36    }
37
38    public void applyProcessedEvent(final Event event) {
39        mComposingWord.append(event.getTextToCommit());
40    }
41
42    public CharSequence getComposingWordWithCombiningFeedback() {
43        return mComposingWord;
44    }
45
46    public void reset() {
47        mComposingWord.setLength(0);
48    }
49
50    public static Combiner[] createCombiners(final String spec) {
51        // Dicttool never uses a combiner at all, so we just return a zero-sized array.
52        return new Combiner[0];
53    }
54}
55