package pl.edu.amu.wmi.daut.re; import pl.edu.amu.wmi.daut.base.AutomatonSpecification; import pl.edu.amu.wmi.daut.base.NaiveAutomatonSpecification; import java.util.List; /** * * @author Adam * * klasa reprezentująca operator jednego znaku z wyrażeń regularnych. Na przykład "a" albo "%" */ public class SingleCharacterOperator extends NullaryRegexpOperator { private char character; /** * Konstruktor jaki jest każdy widzi. Ten akurat pobiera chara :) */ public SingleCharacterOperator(char a) { character = a; } /** * Funkcja zwracajaca znak akceptowany przez automat. */ public char getCharacter() { return character; } /** * Generuje automat składający się tylko z jednego znaku. */ @Override public AutomatonSpecification createFixedAutomaton() { return new NaiveAutomatonSpecification().makeOneTransitionAutomaton(character); } /** * Fabryka operatora. */ public static class Factory extends NullaryRegexpOperatorFactory { @Override public int numberOfParams() { return 1; } protected RegexpOperator doCreateOperator(List<String> params) { return new SingleCharacterOperator(params.get(0).charAt(0)); } } /** * Metoda toString(). */ @Override public String toString() { return "SINGLE_OPERATOR_" + character; } }