edu.stanford.nlp.ling.Word.java Source code

Java tutorial

Introduction

Here is the source code for edu.stanford.nlp.ling.Word.java

Source

package edu.stanford.nlp.ling;

/**
 * A {@code Word} object acts as a Label by containing a String.
 * This class is in essence identical to a {@code StringLabel}, but
 * it also uses the value to implement the {@code HasWord} interface.
 *
 * @author Christopher Manning
 * @version 2000/12/20
 */
public class Word extends StringLabel implements HasWord {

    /**
     * String representation of an empty.
     */
    private static final String EMPTY_STRING = "*t*";

    /**
     * Word representation of an empty.
     */
    public static final Word EMPTY = new Word(EMPTY_STRING);

    /**
     * Construct a new word with a {@code null} value.
     */
    public Word() {
        super();
    }

    /**
     * Construct a new word, with the given value.
     *
     * @param word String value of the Word
     */
    public Word(String word) {
        super(word);
    }

    /**
     * Construct a new word, with the given value.
     *
     * @param word String value of the Word
     */
    public Word(String word, int beginPosition, int endPosition) {
        super(word, beginPosition, endPosition);
    }

    /**
     * Creates a new word whose word value is the value of any
     * class that supports the {@code Label} interface.
     *
     * @param lab The label to be used as the basis of the new Word
     */
    public Word(Label lab) {
        super(lab);
    }

    @Override
    public String word() {
        return value();
    }

    @Override
    public void setWord(String word) {
        setValue(word);
    }

    // extra class guarantees correct lazy loading (Bloch p.194)
    private static class WordFactoryHolder {

        private static final LabelFactory lf = new WordFactory();

        private WordFactoryHolder() {
        }

    }

    /**
     * Return a factory for this kind of label (i.e., {@code Word}).
     * The factory returned is always the same one (a singleton).
     *
     * @return The label factory
     */
    @Override
    public LabelFactory labelFactory() {
        return WordFactoryHolder.lf;
    }

    /**
     * Return a factory for this kind of label.
     *
     * @return The label factory
     */
    public static LabelFactory factory() {
        return WordFactoryHolder.lf;
    }

    private static final long serialVersionUID = -4817252915997034058L;

}