package pl.edu.amu.wmi.daut.re;
import java.util.List;
import pl.edu.amu.wmi.daut.base.AutomataOperations;
import pl.edu.amu.wmi.daut.base.AutomatonSpecification;
/**
*
* Klasa reprezentująca niejawny, dwuargumentowy operator koniunkcji.
* Nie odpowiada to żadnemu operatorowi standardowych wyrażeń regularnych.
*/
public class ConjunctionOperator extends BinaryRegexpOperator {
/**
* Domyślny konstruktor.
*/
public ConjunctionOperator() { }
@Override
public AutomatonSpecification createAutomatonFromTwoAutomata(
AutomatonSpecification leftSubautomaton,
AutomatonSpecification rightSubautomaton) {
return AutomataOperations.intersection(leftSubautomaton, rightSubautomaton);
}
/**
* Metoda toString().
*/
@Override
public String toString() {
return "CONJUNCTION";
}
/**
* Fabryka operatora.
*/
public static class Factory extends BinaryRegexpOperatorFactory {
@Override
public int numberOfParams() {
return 0;
}
@Override
protected RegexpOperator doCreateOperator(List<String> params) {
return new ConjunctionOperator();
}
}
}