filipg/amu_automata_2011 — Issue #538: Opracować klasę do konwersji RegexpOperatorTree do wyrażenia regularnego
Author: filipg
Created: 2012-01-11 07:24:18+00:00
State: open

Czyli zadanie odwrotne do #352 - na podstawie `RegexpOperatorTree` należy zrekonstruować String-a z wyrażeniem regularnym. Do rekonstrukcji potrzebny będzie zarządca operatorów (zob. #348, nigdzie indziej nie ma informacji o tym, za pomocą jakich znaków wyraża się poszczególne operatory) - za pomocą rozwiązania #512 należy wydobyć z zarządcy listę wszystkich operatorów i następnie dla każdego operatora w drzewie operatorów `RegexpOperatorTree` szukać odpowiedniej fabryki na liście.

W tej chwili niemożliwe byłoby zrekonstruowanie fabryk i parametrów poszczególnych operatorów, w tym celu należy uzupełnić inne klasy:

* w klasie `RegexpOperator` dodać metodę abstrakcyjną `getFactory()`, która będzie zwracać fabrykę (taką, dla której, jeśliby wywołać `createOperator` otrzymalibyśmy z powrotem odpowiedni operator),
* metodę `getFactory()` zdefiniować (w trywialny sposób - jedna linijka) w każdej klasie implementującej `RegexpOperator`,
* w klasie `RegexpOperator` dodać metodę abstrakcyjną `getParams()` zwracającą listę wszystkich parametrów, metodę tę należy zdefiniować następnie dla każdego operatora.

Zadanie nie jest trudne pod względem algorytmicznym, nie powinno być żadnych niespodzianek, tylko trochę "pisaniny" Javowej.