lux.index.analysis.ValueTokenStream.java Source code

Java tutorial

Introduction

Here is the source code for lux.index.analysis.ValueTokenStream.java

Source

package lux.index.analysis;

import java.util.Iterator;

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;

public abstract class ValueTokenStream extends TokenStream {

    protected final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
    protected int pos = 0;
    protected char[] value;
    private Iterable<char[]> values;
    private Iterator<char[]> valueIter;

    protected ValueTokenStream(Iterable<char[]> values) {
        setValues(values);
    }

    protected void setValues(Iterable<char[]> values) {
        this.values = values;
        reset();
    }

    @Override
    public void reset() {
        valueIter = values.iterator();
        advanceValue();
    }

    protected boolean advanceValue() {
        pos = 0;
        if (valueIter.hasNext()) {
            value = valueIter.next();
            return true;
        } else {
            value = null;
            return false;
        }
    }

}

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */