cl.cromer.mt

## Class Maquina

- java.lang.Object
- - cl.cromer.mt.Maquina

    public class Maquina
    extends java.lang.Object

Clase de la Maquina de Turing que renocerá algún asociado a las transiciones escritas en un archivo XML

### Field Summary

Fields
`private Automata` `automata` La automata destras de la maquina de turning
`private int` `cabezal` Donde está el cabezal
`private java.lang.String` `cintaAnterior` La cinta anterior para usar paso a paso
`private Enlace` `enlaceActual` El enlace actual
`private Estado` `estadoActual` El estado actual donde se encuentra la maquina

### Constructor Summary

Constructors
Constructor and Description
`Maquina(org.w3c.dom.Document document)` Constructor de la clase

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `comprobarCadena(java.lang.StringBuilder cinta, int[] estadosFinales)` Comprueba que si la cadena ingresada es reconocida por la automata
`int` `comprobarCadenaS2S(java.lang.StringBuilder cinta, int[] estadosFinales)` Comprueba que si el simbolo en la cadena, identificado por el cabezal es reconocido por la automata.
`Automata` `getAutomata()` Retorna la automata de Turing
`int` `getCabezal()` Retorna el indice en que se ubica en la cadena (Cabezal)
`java.lang.String` `getCintaAnterior()` Retorna la cadena anterior a que la automata hiciera cambios
`Enlace` `getEnlaceActual()` Retorna un enlace en que la automata asocio a la cadena ingresada y al cabezal que se encuentra
`Estado` `getEstadoActual()` Retorna el estado en que esta la automata
`private void` `movimientoCabezal(char mov, java.lang.StringBuilder cinta)` Realiza el movimiento correspondiente a base del caracter guardado en [movimiento]
`void` `reset()` Inicializa atributos
`void` `setCabezal(int cabezal)` Asigna el indice en que se ubica en la cadena (Cabezal)
`void` `setCintaAnterior(java.lang.String cintaAnterior)` Asigna la cadena anterior a que la automata hiciera cambios
`void` `setEnlaceActual(Enlace enlaceActual)` Asigna un enlace actual que esta la automata en un instante de tiempo
`void` `setEstadoActual(Estado estadoActual)` Asigna un estado actual que esta la automata en un instante de tiempo

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### automata

    private final Automata automata

La automata destras de la maquina de turning

#### estadoActual

    private Estado estadoActual

El estado actual donde se encuentra la maquina

#### enlaceActual

    private Enlace enlaceActual

El enlace actual

#### cintaAnterior

    private java.lang.String cintaAnterior

La cinta anterior para usar paso a paso

#### cabezal

    private int cabezal

Donde está el cabezal

### Constructor Detail

#### Maquina

    public Maquina(org.w3c.dom.Document document)

Constructor de la clase

Parameters:
  `document` - Document asociado al XML

### Method Detail

#### getAutomata

    public Automata getAutomata()

Retorna la automata de Turing

Returns:
  automata asociado a alguna función de transición

#### getEstadoActual

    public Estado getEstadoActual()

Retorna el estado en que esta la automata

Returns:
  estado actual

#### setEstadoActual

    public void setEstadoActual(Estado estadoActual)

Asigna un estado actual que esta la automata en un instante de tiempo

Parameters:
  `estadoActual` - En que estado es la automata

#### getEnlaceActual

    public Enlace getEnlaceActual()

Retorna un enlace en que la automata asocio a la cadena ingresada y al cabezal que se encuentra

Returns:
  el enlace actual

#### setEnlaceActual

    public void setEnlaceActual(Enlace enlaceActual)

Asigna un enlace actual que esta la automata en un instante de tiempo

Parameters:
  `enlaceActual` - La enlace donde esta la automata

#### getCintaAnterior

    public java.lang.String getCintaAnterior()

Retorna la cadena anterior a que la automata hiciera cambios

Returns:
  la cadena anterior

#### setCintaAnterior

    public void setCintaAnterior(java.lang.String cintaAnterior)

Asigna la cadena anterior a que la automata hiciera cambios

Parameters:
  `cintaAnterior` - La cinta a verificar

#### getCabezal

    public int getCabezal()

Retorna el indice en que se ubica en la cadena (Cabezal)

Returns:
  un número asociado

#### setCabezal

    public void setCabezal(int cabezal)

Asigna el indice en que se ubica en la cadena (Cabezal)

Parameters:
  `cabezal` - Donde poner la cabezal

#### reset

    public void reset()

Inicializa atributos

#### comprobarCadena

    public boolean comprobarCadena(java.lang.StringBuilder cinta,
                                   int[] estadosFinales)

Comprueba que si la cadena ingresada es reconocida por la automata

Parameters:
  `cinta` - cadena ingresada por el usuario
  `estadosFinales` - Arreglo de estados finales, también ingresados por usuario
Returns:
  Verdadero si lo reconoce, caso contrario, falso

#### comprobarCadenaS2S

    public int comprobarCadenaS2S(java.lang.StringBuilder cinta,
                                  int[] estadosFinales)

Comprueba que si el simbolo en la cadena, identificado por el cabezal es reconocido por la automata. Este guarda la cadena anterior, estado actual y un enlace actual

Parameters:
  `cinta` - Cadena ingresada por el usuario
  `estadosFinales` - Arreglo de estados finales, también ingresados por usuario
Returns:
  Verdadero si reconce la cinta, sino falso

#### movimientoCabezal

    private void movimientoCabezal(char mov,
                                   java.lang.StringBuilder cinta)

Realiza el movimiento correspondiente a base del caracter guardado en [movimiento]

Parameters:
  `mov` - caracter asociado al movimiento
  `cinta` - Cadena ingresada por el usuario