001
002 package edu.upenn.cis.propbank_shen;
003
004 import java.io.*;
005
006 /**
007 the "aspect" part of inflectional information. we represent aspect
008 as either "perfect", "progressive" or "perfect progressive".
009
010 @author Scott Cotton
011 @see edu.upenn.cis.propbank_shen.Inflection
012 */
013 public final class InflAspect {
014
015 private String srep;
016 /** use a private constructor so that only static members
017 can be referenced. This helps us emulate an enumeration */
018 private InflAspect(String s) {srep = s;}
019
020
021 /** the Perfect voice */
022 public static final InflAspect Perfect = new InflAspect("p");
023 /** the progressive voice */
024 public static final InflAspect Progressive = new InflAspect("o");
025 /** the perfect progressive voice */
026 public static final InflAspect Both = new InflAspect("b");
027 /** no aspect specified */
028 public static final InflAspect NoAspect = new InflAspect("-");
029
030 public String toString() { return srep; }
031 public static InflAspect ofString(String s)
032 {
033 if (s.equals("p")) { return InflAspect.Perfect; }
034 else if (s.equals("o")) { return InflAspect.Progressive; }
035 else if (s.equals("b")) { return InflAspect.Both; }
036 else if (s.equals("-")) { return InflAspect.NoAspect; }
037 else {
038 System.err.println("invalid inflection.aspect string: "
039 + s
040 + ", defaulting to NoAspect.");
041 return InflAspect.NoAspect;
042 }
043 }
044 }
045