import com.groupstp.rtneo.entity.*
import com.haulmont.cuba.core.global.*;
import com.haulmont.cuba.core.app.*;
import com.haulmont.cuba.core.entity.EntitySnapshot;
import com.groupstp.rtneo.service.*;
import com.haulmont.cuba.core.app.serialization.EntitySerializationAPI;
import com.haulmont.cuba.core.app.serialization.ViewSerializationAPI;
import com.haulmont.cuba.core.app.serialization.ViewSerializationOption;
import com.groupstp.rtneo.util.JsonUtil;
EntitySnapshotService entitySnapshotService = AppBeans.get(EntitySnapshotService.NAME);
EntitySerializationAPI entitySerializationAPI = AppBeans.get(EntitySerializationAPI.NAME);
ViewSerializationAPI viewSerializationAPI = AppBeans.get(ViewSerializationAPI.NAME)
ViewRepository viewRepository = AppBeans.get(ViewRepository.NAME)
//viewSerializationAPI.toJson(view, ViewSerializationOption.COMPACT_FORMAT)
//entitySerializationAPI.toJson(contract)
View contractView = viewRepository.getView(Contract.class, "contract-print")
def contract = dataManager.load(Contract.class).id(UUID.fromString('cbda59ad-009a-0d0e-24dc-03b0e7c58a1b')).view(contractView).one()
TestSnapshot testSnapshot = createSnapshot(contract, contractView)
private TestSnapshot createSnapshot(Object object, View view){
EntitySnapshotService entitySnapshotService = AppBeans.get(EntitySnapshotService.NAME)
CommitContext ctx = new CommitContext();
object = dataManager.reload(object, view);
EntitySnapshot snp = entitySnapshotService.createSnapshot(object, view);
TestSnapshot testSnapshot = metadata.create(TestSnapshot.class);
testSnapshot.setEntityClass(object.getClass().toString());
CustomView customView = createCustomView(view)
testSnapshot.setView(customView)
ctx.addInstanceToCommit(customView)
testSnapshot.setSnapshot(snp.getId())
ctx.addInstanceToCommit(testSnapshot)
dataManager.commit(ctx)
_(testSnapshot)
return testSnapshot;
}
private CustomView createCustomView(View view){
ViewSerializationAPI viewSerializationAPI = AppBeans.get(ViewSerializationAPI.NAME)
String json = viewSerializationAPI.toJson(view, ViewSerializationOption.COMPACT_FORMAT)
CustomView customView = metadata.create(CustomView.class);
customView.setViewJson(json)
dataManager.commit(customView)
return customView;
}
/**
*
*/
private _(Object o){
JsonUtil jsonUtil = AppBeans.get(JsonUtil.class)
EntitySerializationAPI entitySerializationAPI = AppBeans.get(EntitySerializationAPI.NAME);
log.debug(o)
log.debug(entitySerializationAPI.toJson(o))
}