Static Code Analysis For Java