Log in Help
Print
HomegatepluginsLang_Welshsrcwnltmorph 〉 Variable.java
 
/*
 *  Copyright (c) 1995-2012, The University of Sheffield. See the file
 *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
 *
 *  This file is part of GATE (see http://gate.ac.uk/), and is free
 *  software, licenced under the GNU Library General Public License,
 *  Version 2, June 1991 (in the distribution as file licence.html,
 *  and also available at http://gate.ac.uk/gate/licence.html).
 *
 *  Niraj Aswani, 21/10/2003
 *
 *  $Id: Variable.java 15333 2012-02-07 13:18:33Z ian_roberts $
 */

package wnlt.morph;

/**
 * <p>Description: This is an interface which should be implemented by every
 * new variable type. Variable here is considered to have more than one values.
 * Example of built-in varilables for morpher are StringSet, CharacterRange,
 * CharacterSet.
 * </p>
 */
public abstract class Variable {

  protected int pointer = 0;

  /** name of the variable */
  protected String varName = "";

  /** value of the variable */
  protected String varValue = "";

  /** method tells if next element is available to fetch */
  public abstract boolean hasNext();

  /** should return the next element in the variable */
  public abstract String next();

  /** Sets the variable name and pattern for the variable */
  public abstract boolean set(String varName, String pattern);

  /** should tell variable has one of the values with varValue */
  public abstract boolean contains(String varValue);

  /**
   * this method returns the formatted pattern, which could be recognized
   * by the regular expressions
   */
  public String getPattern() {
    return varValue;
  }

  /**
   * resets the pointer to the begining
   */
  public void resetPointer() {
    pointer = 0;
  }
}