package checkers.jimmu.examples;
import checkers.jimmu.quals.*;
/**
* Example for the encapsulation of representation in JimmuChecker.
*
* @author saf
*/
public class EncapProtection {
public static class Value {
public @Immutable Integer v;
public Value(@Immutable Integer v) {
this.v = v;
}
}
public static class A {
@Peer Value value;
void set(@Peer Value v) {
this.value = v;
}
@ReadOnly void foo() {
value.v = 0;
}
}
public static class B {
@Rep A a;
public B() {
@Rep Value v = new /*@Rep*/ Value(1);
a = new /*@Rep*/ A();
a.set(v);
}
@ReadOnly void bar() {
a.foo();
}
}
}