Automatic verification of design patterns in Java
the java language specification .