    001    // This file is part of the Attempto Java Packages.
    002    // Copyright 2008, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
    003    //
    004    // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
    005    // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
    006    // either version 3 of the License, or (at your option) any later version.
    007    //
    008    // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
    009    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    010    // PURPOSE. See the GNU Lesser General Public License for more details.
    011    //
    012    // You should have received a copy of the GNU Lesser General Public License along with the Attempto
    013    // Java Packages. If not, see http://www.gnu.org/licenses/.
    014
    015    package ch.uzh.ifi.attempto.preditor.text;
    016
    017    /**
    018     * This interface describes a text element (a word or phrase) that is used by the
    019     * predictive editor. Every text element contains a text and a grammatical category.
    020     *
    021     * @author Tobias Kuhn
    022     */
    023    public interface TextElement {
    024
    025            /**
    026             * Returns the text of this text element.
    027             *
    028             * @return The text.
    029             */
    030            public String getText();
    031
    032            /**
    033             * Returns the grammatical category of this text element.
    034             *
    035             * @return The grammatical category.
    036             */
    037            public String getCategory();
    038
    039            /**
    040             * Checks the preceding and next text element. This is needed for words that change their form
    041             * depending on the context, e.g. for capitalization or for the indefinite article "a"/"an".
    042             *
    043             * @param precedingTextElement
    044             */
    045            public void checkNeighborTextElements(TextElement precedingTextElement, TextElement nextTextElement);
    046
    047            public boolean equals(Object obj);
    048
    049    }