Java Software Solutions Foundations of Program Design - John Lewis (Addison-Wesley)