Package penny.parser

Source Code of penny.parser.WordParserInputStream

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package penny.parser;

import java.io.IOException;
import java.io.InputStream;
import java.text.StringCharacterIterator;

/**
*
* @author john
*/
public class WordParserInputStream extends InputStream {

    private InputStream in;
    private WordEater eater;
    private WordReplacer replacer;
    private StringCharacterIterator replaceWord;

    public WordParserInputStream(InputStream in, WordEater eater) {
        this.in = in;
        this.eater = eater;
        this.replaceWord = new StringCharacterIterator("");
    }

    public WordParserInputStream(InputStream in, WordEater eater, WordReplacer replacer) {
        this.in = in;
        this.eater = eater;
        this.replacer = replacer;
        this.replaceWord = new StringCharacterIterator("");
    }

    @Override
    public int read() throws IOException {
        int returnCharacter = -1;
        returnCharacter = replaceWord.next();
        if (returnCharacter == StringCharacterIterator.DONE) {
            returnCharacter = in.read();
            if (Character.isLetter(returnCharacter)) {
                StringBuffer word = new StringBuffer();
                while (Character.isLetter(returnCharacter)) {
                    word.append((char) returnCharacter);
                    returnCharacter = in.read();
                }
                eater.eatWord(word.toString());
                if (replacer != null) {
                    replaceWord.setText(replacer.getReplaceWord(word.toString()) + (char) returnCharacter);
                } else {
                    replaceWord.setText(word.toString() + (char) returnCharacter);
                }
                returnCharacter = replaceWord.first();
            }
        }
        return returnCharacter;
    }

    /**
     * @return the in
     */
    public InputStream getIn() {
        return in;
    }
}
TOP

Related Classes of penny.parser.WordParserInputStream

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.