package tirateima.controlador; import java.util.ArrayList; import java.util.List; import tirateima.gui.variaveis.Variavel; /** * Comando de definição de novo tipo. * * @author Luciano Santos */ public class CommandNewType extends Command { private String name; private List<VarDefinition> fields; public CommandNewType(String name, List<VarDefinition> fields) { this.name = name; this.fields = fields; } /** * Executa o comando de novo tipo adicionando os campos e salvando o novo tipo no mapa de registros declarados. */ public void execute(Controlador c) throws TiraTeimaLanguageException { List<Variavel> vars = new ArrayList<Variavel>(); for (VarDefinition ref : fields) { vars.add(newVar(c, ref)); } c.declared_records.put(name, new RecordDefinition(name, vars)); } @Override public void revert(Controlador c) throws TiraTeimaLanguageException, ExecutionException { // TODO Auto-generated method stub } }