package origo.listeners; import models.origo.core.RootNode; import origo.helpers.forms.FormHelper; import play.modules.origo.core.annotations.forms.OnSubmit; import play.mvc.Scope; public class RootNodeAdminProvider { @OnSubmit // TODO: Probably should be move to validation when that is ready public static void storeNode(Scope.Params params) { String nodeId = FormHelper.getNodeId(params); Long version = FormHelper.getNodeVersion(params); RootNode oldRootNode = RootNode.findWithNodeIdAndSpecificVersion(nodeId, version); if (oldRootNode == null) { throw new RuntimeException("Root node with id=\'" + nodeId + "\' does not exist"); } RootNode oldNodeVersion = RootNode.findLatestVersionWithNodeId(nodeId); if (!oldNodeVersion.version.equals(version)) { throw new RuntimeException("Root node with id=\'" + nodeId + "\' and version =\'" + version + "\' has a newer version stored."); } } }