Package com.flaptor.hounder.indexer

Source Code of com.flaptor.hounder.indexer.FixedValueTokenStream

package com.flaptor.hounder.indexer;

import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;

import com.flaptor.hounder.searcher.payload.LongPayload;



/**
* A TokenStream that returns only one token, with a fixed value, and a long as payload.
* @author Flaptor Development Team
*/
public class FixedValueTokenStream extends TokenStream {

    private boolean ended;
    private final long payload;
    private final char[] value;

    /**
     * @param value
     *          The string value for the only Token this TokenStream will generate.
     * @param payload
     *          The payload for the only Token this TokenStream will generate.
     */
    public FixedValueTokenStream(String value, long payload){
        this.ended = false;
        this.value = value.toCharArray();
        this.payload = payload;
    }


    /**
     * Use FixedValueTokenStream.next(Token) instead.
     * @throws UnsupportedOperationException always.
    **/
    @Override
    @Deprecated
    public Token next() {
        throw new UnsupportedOperationException();
    }

    /**
     * @return
     *      A Token (with the value specified at the constructor) and the payload
     *      specified at the constructor, iff it is the first time this method is
     *      called. Every further call to this method will return null.
     *
     */
    @Override
    public Token next(Token token) {
        if (this.ended) return null;
        this.ended = true;
        token.reinit(value, 0, value.length, 0, value.length -1);
        LongPayload lPayload = new LongPayload(payload);
        token.setPayload(lPayload.asPayload());
        return token;
    }
}
TOP

Related Classes of com.flaptor.hounder.indexer.FixedValueTokenStream

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.