001 // This file is part of AceWiki. 002 // Copyright 2008-2012, AceWiki developers. 003 // 004 // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU 005 // Lesser General Public License as published by the Free Software Foundation, either version 3 of 006 // the License, or (at your option) any later version. 007 // 008 // AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 009 // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 010 // Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If 013 // not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.base; 016 017 import java.util.Set; 018 019 /** 020 * This class represents a set of options that describe how a partial text can be continued 021 * according. The possible next tokens are represented in an abstract way (on the basis of abstract 022 * options) and also in a concrete way (on the basis of concrete options). 023 * 024 * @see AbstractOption 025 * @see ConcreteOption 026 * @author Tobias Kuhn 027 */ 028 public interface NextTokenOptions { 029 030 /** 031 * Returns the abstract options. 032 * 033 * @return The set of abstract options. 034 */ 035 public Set<? extends AbstractOption> getAbstractOptions(); 036 037 /** 038 * Returns the concrete options. 039 * 040 * @return The set of concrete options. 041 */ 042 public Set<? extends ConcreteOption> getConcreteOptions(); 043 044 /** 045 * Returns true if the specified token is a possible next token. 046 * 047 * @param token The token text. 048 * @return true if it is a possible next token. 049 */ 050 public boolean containsToken(String token); 051 052 /** 053 * Returns true if the specifed category represents a possible next token. 054 * 055 * @param categoryName The name of the category. 056 * @return true if it represents a possible next token. 057 */ 058 public boolean containsCategory(String categoryName); 059 060 }