package de.vksi.c4j.acceptancetest.timeofday; import static de.vksi.c4j.Condition.postCondition; import static de.vksi.c4j.Condition.preCondition; import de.vksi.c4j.ClassInvariant; import de.vksi.c4j.Target; public class TimeOfDayContract extends TimeOfDay { @Target private TimeOfDay target; public TimeOfDayContract() { super(); if (preCondition()) { // no pre-condition identified yet } if (postCondition()) { assert target.getHour() == 0 : "hour == 0"; assert target.getMinute() == 0 : "minute == 0"; assert target.getSecond() == 0 : "second == 0"; } } @ClassInvariant public void classInvariant() { assert 0 <= target.getHour() && target.getHour() <= 23 : "hour always valid"; assert 0 <= target.getMinute() && target.getMinute() <= 59 : "minute always valid"; assert 0 <= target.getSecond() && target.getSecond() <= 59 : "second always valid"; } }