package project.Entrytypes; import java.util.*; import org.overture.codegen.runtime.*; import org.overture.codegen.vdm2jml.runtime.*; @SuppressWarnings("all") //@ nullable_by_default final public class A implements Record { public VDMMap m; //@ public instance invariant project.Entry.invChecksOn ==> inv_A(m); public A(final VDMMap _m) { //@ assert (V2J.isMap(_m) && (\forall int i_1; 0 <= i_1 && i_1 < V2J.size(_m); Utils.is_nat(V2J.getDom(_m,i_1)) && Utils.is_(V2J.getRng(_m,i_1),project.Entrytypes.B.class))); m = _m != null ? Utils.copy(_m) : null; //@ assert (V2J.isMap(m) && (\forall int i_1; 0 <= i_1 && i_1 < V2J.size(m); Utils.is_nat(V2J.getDom(m,i_1)) && Utils.is_(V2J.getRng(m,i_1),project.Entrytypes.B.class))); } /*@ pure @*/ public boolean equals(final Object obj) { if (!(obj instanceof project.Entrytypes.A)) { return false; } project.Entrytypes.A other = ((project.Entrytypes.A) obj); return Utils.equals(m, other.m); } /*@ pure @*/ public int hashCode() { return Utils.hashCode(m); } /*@ pure @*/ public project.Entrytypes.A copy() { return new project.Entrytypes.A(m); } /*@ pure @*/ public String toString() { return "mk_Entry`A" + Utils.formatFields(m); } /*@ pure @*/ public VDMMap get_m() { VDMMap ret_3 = m; //@ assert project.Entry.invChecksOn ==> ((V2J.isMap(ret_3) && (\forall int i_1; 0 <= i_1 && i_1 < V2J.size(ret_3); Utils.is_nat(V2J.getDom(ret_3,i_1)) && Utils.is_(V2J.getRng(ret_3,i_1),project.Entrytypes.B.class)))); return ret_3; } public void set_m(final VDMMap _m) { //@ assert project.Entry.invChecksOn ==> ((V2J.isMap(_m) && (\forall int i_1; 0 <= i_1 && i_1 < V2J.size(_m); Utils.is_nat(V2J.getDom(_m,i_1)) && Utils.is_(V2J.getRng(_m,i_1),project.Entrytypes.B.class)))); m = _m; //@ assert project.Entry.invChecksOn ==> ((V2J.isMap(m) && (\forall int i_1; 0 <= i_1 && i_1 < V2J.size(m); Utils.is_nat(V2J.getDom(m,i_1)) && Utils.is_(V2J.getRng(m,i_1),project.Entrytypes.B.class)))); } /*@ pure @*/ public Boolean valid() { return true; } /*@ pure @*/ /*@ helper @*/ public static Boolean inv_A(final VDMMap _m) { Boolean forAllExpResult_2 = true; VDMSet set_2 = MapUtil.dom(_m); for (Iterator iterator_2 = set_2.iterator(); iterator_2.hasNext() && forAllExpResult_2; ) { Number i = ((Number) iterator_2.next()); forAllExpResult_2 = Utils.equals(((project.Entrytypes.B) Utils.get(_m, i)).x, 2L); } return forAllExpResult_2; } }