org.jmlspecs.samples.stacks
Class UnboundedStack2
java.lang.Object
org.jmlspecs.samples.stacks.UnboundedStack2
- public abstract class UnboundedStack2
- extends Object
Class Specifications |
public initially this.theStack.isEmpty(); |
Specifications inherited from class Object |
represents objectState <- org.jmlspecs.lang.JMLDataGroup.IT;
public represents _getClass <- \typeof(this); |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
theStack
public JMLObjectSequence theStack
- Specifications: non_null
UnboundedStack2
public UnboundedStack2()
pop
public abstract void pop()
- Specifications:
-
public normal_behavior
requires !this.theStack.isEmpty();
assignable theStack;
ensures this.theStack.equals(\old(this.theStack.trailer()));
push
public abstract void push(Object x)
- Specifications:
-
public normal_behavior
assignable theStack;
ensures this.theStack.equals(\old(this.theStack.insertFront(x)));
top
public abstract Object top()
- Specifications: pure
-
public normal_behavior
requires !this.theStack.isEmpty();
assignable \nothing;
ensures \result == this.theStack.first();
JML is Copyright (C) 1998-2002 by Iowa State University and is distributed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This release depends on code from the MultiJava project and is based in part on the Kopi project Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.