||A helper implementation of the Visitor pattern using java's reflection.
This results in not having to add overloaded methods for each subclass of clause as this implementation will
automatically find those overloaded methods without explicitly having to call them in each Clause class.
This saves alot of work when adding new Clause subclasses.
The overloaded method name is specified by VISIT_METHOD_IMPL.