Map.java
Map.java
—
Python Source,
1 kB (1295 bytes)
File contents
import org.jmlspecs.models.JMLValueToObjectMap;
import java.util.NoSuchElementException;
public class Map {
private /*@ spec_public nullable @*/ Node root;
Map() {
/*@ set content = computeContent(root); @*/
}
/*@ private model pure JMLValueToObjectMap computeContent(nullable Node n) {
TODO: Implement
}
*/
/*@ public nullable ghost JMLValueToObjectMap content; */
/*@ TODO: Specify */
public Object add(Key k, Object v) {
// TODO: Implement
}
/*@ TODO: Specify */
public /*@ pure @*/ Object get(Key k) {
// TODO: Implement
}
private /*@ pure @*/ String toStringHelper(/*@ nullable @*/ Node node, String rep0){
if(node == null) return rep0;
String rep = new String(rep0 + (node != root ? ", " : ""));
return new String(toStringHelper(node.right, toStringHelper(node.left, rep + node.key.toString() + " -> " + node.value.toString())));
}
public /*@ pure @*/ String toString(){
return new String(toStringHelper(root,"{") + "}");
}
}
class Node {
Key key;
Object value;
/*@ nullable @*/ Node left, right;
Node(Key k, Object v,/*@ nullable @*/ Node l,/*@ nullable @*/ Node r) {
key = k;
value = v;
left = l;
right = r;
}
}
