This repository has been archived by the owner on Jan 7, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
groovyConsole Quick Start
andresteingress edited this page Apr 10, 2013
·
11 revisions
1. Fire up your groovyConsole
2. Copy the following code snippet into groovyConsole’s editor window.
3. Have fun!
@Grab(group='org.gcontracts', module='gcontracts-core', version='[1.2.12,)') import org.gcontracts.annotations.*
@Invariant({ elements != null }) class Stack {
private List elements
@Ensures({ is_empty() }) public Stack() { elements = [] }
@Requires({ preElements?.size() > 0 }) @Ensures({ !is_empty() }) public Stack(List preElements) { elements = preElements }
def boolean is_empty() { elements.isEmpty() }
@Requires({ !is_empty() }) def last_item() { elements.last() }
def count() { elements.size() }
@Ensures({ result == true ? count() > 0 : count() >= 0 }) def boolean has(def item) { elements.contains(item) }
@Ensures({ last_item() == item }) def put(def item) { elements.push(item) }
@Requires({ !is_empty() }) @Ensures({ last_item() == item }) def replace(def item) { remove() elements.push(item) }
@Requires({ !is_empty() }) @Ensures({ result != null }) def remove() { elements.pop() }
def String toString() { elements.toString() } }
def stack = new Stack([1,2,3,4,5])