| Variable.java |
1 /*
2 * Copyright (c) 1998-2004, The University of Sheffield.
3 *
4 * This file is part of GATE (see http://gate.ac.uk/), and is free
5 * software, licenced under the GNU Library General Public License,
6 * Version 2, June 1991 (in the distribution as file licence.html,
7 * and also available at http://gate.ac.uk/gate/licence.html).
8 *
9 * Niraj Aswani, 21/10/2003
10 *
11 * $Id: Variable.java,v 1.2 2004/07/21 17:10:05 akshay Exp $
12 */
13
14 package gate.creole.morph;
15
16 /**
17 * <p>Description: This is an interface which should be implemented by every
18 * new variable type. Variable here is considered to have more than one values.
19 * Example of built-in varilables for morpher are StringSet, CharacterRange,
20 * CharacterSet.
21 * </p>
22 */
23 public abstract class Variable {
24
25 protected int pointer = 0;
26
27 /** name of the variable */
28 protected String varName = "";
29
30 /** value of the variable */
31 protected String varValue = "";
32
33 /** method tells if next element is available to fetch */
34 public abstract boolean hasNext();
35
36 /** should return the next element in the variable */
37 public abstract String next();
38
39 /** Sets the variable name and pattern for the variable */
40 public abstract boolean set(String varName, String pattern);
41
42 /** should tell variable has one of the values with varValue */
43 public abstract boolean contains(String varValue);
44
45 /**
46 * this method returns the formatted pattern, which could be recognized
47 * by the regular expressions
48 */
49 public String getPattern() {
50 return varValue;
51 }
52
53 /**
54 * resets the pointer to the begining
55 */
56 public void resetPointer() {
57 pointer = 0;
58 }
59 }