The PatternListener can be an interface.
Javadoc for the PatternListener.