2017-06-28 23:54:27 -04:00
|
|
|
/* Copyright (c) 2017 Christopher Cromer
|
|
|
|
* Copyright (c) 2017 Carlos Faúndez
|
|
|
|
*
|
|
|
|
* This file is part of mt. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution.
|
|
|
|
* This file may not be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.
|
|
|
|
*/
|
|
|
|
|
2017-07-03 20:46:11 -04:00
|
|
|
package cl.cromer.mt;
|
2017-06-28 23:54:27 -04:00
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Clase que funciona como enlaze entre dos estados ó asi mismo
|
|
|
|
*/
|
2017-07-05 23:41:07 -04:00
|
|
|
public class Enlace {
|
2017-06-28 23:54:27 -04:00
|
|
|
private char si;
|
|
|
|
private char sj;
|
|
|
|
private char movimiento;
|
|
|
|
private Estado qj;
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Contructor de la clase
|
|
|
|
*
|
2017-07-07 00:39:13 -04:00
|
|
|
* @param si Simbolo a analizar en la cadena
|
|
|
|
* @param qj Estado con que se enlaza
|
|
|
|
* @param sj Simbolo a escribir en la cadena
|
|
|
|
* @param mover Movimiento del indice de la cadena
|
2017-07-06 11:59:51 -04:00
|
|
|
*/
|
2017-07-07 00:39:13 -04:00
|
|
|
public Enlace(char si, Estado qj, char sj, char mover) {
|
|
|
|
setMovimiento(mover);
|
2017-06-28 23:54:27 -04:00
|
|
|
setSj(sj);
|
|
|
|
setQj(qj);
|
|
|
|
setSi(si);
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Retorna simbolo a analizar
|
|
|
|
*
|
|
|
|
* @return simbolo
|
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
public char getSi() {
|
|
|
|
return this.si;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Asigna simbolo a analizar
|
|
|
|
*
|
2017-07-07 00:39:13 -04:00
|
|
|
* @param si simbolo
|
2017-07-06 11:59:51 -04:00
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
private void setSi(char si) {
|
|
|
|
this.si = si;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Retorna simbolo a escribir
|
|
|
|
*
|
|
|
|
* @return simbolo
|
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
public char getSj() {
|
|
|
|
return this.sj;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Asigna simbolo a escribir
|
|
|
|
*
|
2017-07-07 00:39:13 -04:00
|
|
|
* @param sj simbolo
|
2017-07-06 11:59:51 -04:00
|
|
|
*/
|
2017-07-05 23:41:07 -04:00
|
|
|
public void setSj(char sj) {
|
2017-06-28 23:54:27 -04:00
|
|
|
this.sj = sj;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Retorna el movimiento del indice de la cadena
|
|
|
|
*
|
|
|
|
* @return simbolo caracteristico (R,L,E ó *)
|
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
public char getMovimiento() {
|
|
|
|
return this.movimiento;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Asigna el movimiento del indice
|
|
|
|
*
|
|
|
|
* @param movimiento simbolo caracteristico (R,L,E ó *)
|
|
|
|
*/
|
2017-07-05 23:41:07 -04:00
|
|
|
public void setMovimiento(char movimiento) {
|
2017-06-28 23:54:27 -04:00
|
|
|
this.movimiento = movimiento;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Retorna el estado con que se enlaza
|
|
|
|
*
|
|
|
|
* @return estado siguiente
|
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
public Estado getQj() {
|
|
|
|
return qj;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Asigna el estado con que se enlaza
|
|
|
|
*
|
|
|
|
* @param qj estado siguiente
|
|
|
|
*/
|
2017-07-05 23:41:07 -04:00
|
|
|
public void setQj(Estado qj) {
|
2017-06-28 23:54:27 -04:00
|
|
|
this.qj = qj;
|
|
|
|
}
|
|
|
|
|
2017-07-06 11:59:51 -04:00
|
|
|
/**
|
|
|
|
* Retorna la función de transición definida en un String
|
|
|
|
*
|
|
|
|
* @return String con la función
|
|
|
|
*/
|
2017-06-28 23:54:27 -04:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "," + si + ") = (q" + qj.getQ() + "," + sj + "," + movimiento + ")";
|
|
|
|
}
|
|
|
|
}
|