001 package edu.upenn.cis.propbank_shen;
002
003 import java.io.*;
004
005 /**
006 This class represents the voice part of the inflection of
007 a verb. A voice is either active or passive or "NoVoice"
008 in the case that it just hasn't been specified or doesn't
009 make sense, such as when the form is infinitival.
010
011 @author Scott Cotton
012 @see Inflection
013 */
014 public final class InflVoice {
015
016 private String srep;
017 /** use a private constructor so that only static members
018 can be referenced. This helps us emulate an enumeration */
019 private InflVoice(String s) {srep = s;}
020
021 /** the active inflection */
022 public static final InflVoice Active = new InflVoice("a");
023 /** the passive inflection */
024 public static final InflVoice Passive = new InflVoice("p");
025 /** none specified */
026 public static final InflVoice NoVoice = new InflVoice("-");
027
028 /** convert the voide to a string */
029 public String toString() { return srep; }
030
031 /** convert a string to a InflVoice instance */
032 public static InflVoice ofString(String s)
033 {
034 if (s.equals("a")) { return InflVoice.Active; }
035 else if (s.equals("p")) { return InflVoice.Passive; }
036 else if (s.equals("-")) { return InflVoice.NoVoice; }
037 else {
038 System.err.println("invalid string for inflection.voice: "
039 + s
040 + ", defaulting to NoVoice.");
041 return InflVoice.NoVoice;
042 }
043 }
044 }