morph Reserve2Java: Reserve ==> Java { metamorph AcqIds(): Identifiers ==> Statement; metamorph RelIds(): Identifiers ==> Statement; Statement[reserve](Is,S) Is.AcqIds()=>Ac, S()=>S, Is.RelIds()=>Re ==> << { } >> AcqIds[one](I) ==> << acquire( ); >> AcqIds[more](I,Is) Is.AcqIds()=>Is ==> << { acquire( ); } >> RelIds[one](I) ==> << release( ); >> RelIds[more](I,Is) Is.RelIds()=>Is ==> << { release( ); } >> }