package de.vksi.c4j.acceptancetest.stack; import static de.vksi.c4j.Condition.postCondition; import static de.vksi.c4j.Condition.preCondition; import de.vksi.c4j.ClassInvariant; import de.vksi.c4j.ConstructorContract; import de.vksi.c4j.Target; public class StackContract<T> extends Stack<T> { @Target private Stack<T> target; public StackContract() { super(0); } @ConstructorContract public void constructor(int capacity) { if (preCondition()) { assert capacity > 0 : "capacity > 0"; } if (postCondition()) { assert target.capacity() == capacity : "capacity set"; } } @ClassInvariant public void classInvariant() { // no class invariant identified yet } }