Designing a Programming Contract Library for Java