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 * @since 1.1 010 **/ 011 public class ActionContainer { 012 protected int actionCode; 013 protected String actionSymbol; 014 protected Table table; 015 protected String name; 016 017 public ActionContainer(TableContainer tableContainer) { 018 setTable(tableContainer.getTable()); 019 setName(tableContainer.getTableContainerName()); 020 clear(); 021 } 022 023 public void clear() { 024 actionCode = -1; 025 actionSymbol = null; 026 } 027 028 public String getActionSymbol() { 029 return actionSymbol; 030 } 031 032 public int getActionCode() { 033 return actionCode; 034 } 035 036 public String setAction(int code) throws MaltChainedException { 037 if (actionCode != code) { 038 if (code < 0) { 039 clear(); 040 } else { 041 actionSymbol = table.getSymbolCodeToString(code); 042 if (actionSymbol == null) { 043 clear(); 044 } else { 045 actionCode = code; 046 } 047 } 048 } 049 return actionSymbol; 050 } 051 052 public int setAction(String symbol) throws MaltChainedException { 053 if (symbol == null) { 054 clear(); 055 } else { 056 actionCode = table.getSymbolStringToCode(symbol); 057 if (actionCode == -1) { 058 clear(); 059 } else { 060 actionSymbol = symbol; 061 } 062 } 063 return actionCode; 064 } 065 066 public Table getTable() { 067 return table; 068 } 069 070 public String getTableName() { 071 if (table == null) { 072 return null; 073 } 074 return table.getName(); 075 } 076 077 public String getTableContainerName() { 078 return name; 079 } 080 081 public void setTable(Table table) { 082 this.table = table; 083 } 084 085 protected void setName(String name) { 086 this.name = name; 087 } 088 089 public String toString() { 090 final StringBuilder sb = new StringBuilder(); 091 sb.append(name); 092 sb.append(" -> "); 093 sb.append(actionSymbol); 094 sb.append(" = "); 095 sb.append(actionCode); 096 return sb.toString(); 097 } 098 }