001 package org.maltparser.parser.history.container; 002 003 004 import org.maltparser.core.exception.MaltChainedException; 005 import org.maltparser.core.symbol.Table; 006 /** 007 * 008 * @author Johan Hall 009 **/ 010 public class ActionContainer { 011 private int actionCode; 012 private String actionSymbol; 013 private Table table; 014 private String name; 015 016 public ActionContainer(TableContainer tableContainer) { 017 this.table = tableContainer.getTable(); 018 this.name = tableContainer.getTableContainerName(); 019 clear(); 020 } 021 022 public void clear() { 023 actionCode = -1; 024 actionSymbol = null; 025 } 026 027 public String getActionSymbol() { 028 return actionSymbol; 029 } 030 031 public int getActionCode() { 032 return actionCode; 033 } 034 035 public String setAction(int code) throws MaltChainedException { 036 if (actionCode != code) { 037 if (code < 0) { 038 clear(); 039 } else { 040 actionSymbol = table.getSymbolCodeToString(code); 041 if (actionSymbol == null) { 042 clear(); 043 } else { 044 actionCode = code; 045 } 046 } 047 } 048 return actionSymbol; 049 } 050 051 public int setAction(String symbol) throws MaltChainedException { 052 if (symbol == null) { 053 clear(); 054 } else { 055 actionCode = table.getSymbolStringToCode(symbol); 056 if (actionCode == -1) { 057 clear(); 058 } else { 059 actionSymbol = symbol; 060 } 061 } 062 return actionCode; 063 } 064 065 public Table getTable() { 066 return table; 067 } 068 069 public String getTableName() { 070 if (table == null) { 071 return null; 072 } 073 return table.getName(); 074 } 075 076 public String getTableContainerName() { 077 return name; 078 } 079 080 081 082 public String toString() { 083 final StringBuilder sb = new StringBuilder(); 084 sb.append(name); 085 sb.append(" -> "); 086 sb.append(actionSymbol); 087 sb.append(" = "); 088 sb.append(actionCode); 089 return sb.toString(); 090 } 091 }