package de.vksi.c4j.acceptancetest.lesson111; import static de.vksi.c4j.Condition.ignored; 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 AContract extends A { @Target private A target; @ClassInvariant public void classInvariant() { assert a > 0 : "a > 0"; } @Override public int query(int x, int y) { if (preCondition()) { assert x >= 1 : "x >= 1"; } if (postCondition()) { assert y >= 2 : "y >= 2"; } return (Integer) ignored(); } @Override public void command(int value) { if (preCondition()) { assert value > 0 : "value > 0"; } if (postCondition()) { assert target.getA() == value : "a set"; } } }