\' Gambas class file
Private ListaOpciones As New InterfaceOpcion[]
Public Sub _new(contadores As Integer[])
\'En el constructor indico que opciones estan disponibles
\'\'------------------------------------------
\'\'NOTE: Listado de Estrategias disponibles:
\'\'------------------------------------------
\'\'NOTE: Si hubieran mas opciones se añadirian continuacion
\'--- poner aqui nuevas opciones... Dim XXXXXtmp as new OpcionXXXX
Dim Opcion1tmp As New Opcion1
Dim Opcion2tmp As New Opcion2
Dim Opcion3tmp As New Opcion3
Dim Opcion4tmp As New Opcion4
Dim Opcion5tmp As New Opcion5
Dim Opcion6tmp As New Opcion6
Opcion1tmp.numero = contadores
Opcion2tmp.numero = contadores
Opcion3tmp.numero = contadores
Opcion4tmp.numero = contadores
Opcion5tmp.numero = contadores
Opcion6tmp.numero = contadores
\'añado las opciones a la lista de opciones
add(Opcion1tmp)
add(Opcion2tmp)
add(Opcion3tmp)
add(Opcion4tmp)
add(Opcion5tmp)
add(Opcion6tmp)
\'aqui el programador podrá añadir más estrategias
End
Public Sub add(opcion As InterfaceOpcion)
\'este médoto se puede usar tambien dinamicamente, durante la ejecución del programa..
ListaOpciones.Add(opcion)
End
Public Sub remove(opcion As InterfaceOpcion)
\'este método permite borrar dinamicamente durante la ejecución del programa, opciones
ListaOpciones.Remove(ListaOpciones.Find(opcion))
End
Public Sub operar(expresion As String)
Dim opciontmp As New InterfaceOpcion
For Each opciontmp In ListaOpciones
If opciontmp.comprobar(expresion) Then
opciontmp.operar(expresion)
Return
Endif
Next
\'no se ha encontrado ninguna opcion para la expresión
\'se ejecuta la opcion por defecto
opcionDefecto(expresion)
End
Public Sub opcionDefecto(expresion As String)
Print "Error: " & expresion & " no reconocido "
End