@Override protected void doImportStagedModel(PortletDataContext portletDataContext, WikiNode node) throws Exception { long userId = portletDataContext.getUserId(node.getUserUuid()); ServiceContext serviceContext = portletDataContext.createServiceContext(node); WikiNode importedNode = null; if (portletDataContext.isDataStrategyMirror()) { WikiNode existingNode = WikiNodeLocalServiceUtil.fetchNodeByUuidAndGroupId( node.getUuid(), portletDataContext.getScopeGroupId()); String initialNodeName = PropsValues.WIKI_INITIAL_NODE_NAME; if ((existingNode == null) && initialNodeName.equals(node.getName())) { WikiNode initialNode = WikiNodeLocalServiceUtil.fetchNode( portletDataContext.getScopeGroupId(), node.getName()); if (initialNode != null) { WikiNodeLocalServiceUtil.deleteWikiNode(initialNode); } } if (existingNode == null) { serviceContext.setUuid(node.getUuid()); importedNode = WikiNodeLocalServiceUtil.addNode( userId, node.getName(), node.getDescription(), serviceContext); } else { importedNode = WikiNodeLocalServiceUtil.updateNode( existingNode.getNodeId(), node.getName(), node.getDescription(), serviceContext); } } else { String initialNodeName = PropsValues.WIKI_INITIAL_NODE_NAME; if (initialNodeName.equals(node.getName())) { WikiNode initialNode = WikiNodeLocalServiceUtil.fetchNode( portletDataContext.getScopeGroupId(), node.getName()); if (initialNode != null) { WikiNodeLocalServiceUtil.deleteWikiNode(initialNode); } } String nodeName = getNodeName(portletDataContext, node, node.getName(), 2); importedNode = WikiNodeLocalServiceUtil.addNode(userId, nodeName, node.getDescription(), serviceContext); } portletDataContext.importClassedModel(node, importedNode); }
@Override protected void doRestoreStagedModel(PortletDataContext portletDataContext, WikiNode node) throws Exception { long userId = portletDataContext.getUserId(node.getUserUuid()); WikiNode existingNode = WikiNodeLocalServiceUtil.fetchNodeByUuidAndGroupId( node.getUuid(), portletDataContext.getScopeGroupId()); if ((existingNode == null) || !existingNode.isInTrash()) { return; } TrashHandler trashHandler = existingNode.getTrashHandler(); if (trashHandler.isRestorable(existingNode.getNodeId())) { trashHandler.restoreTrashEntry(userId, existingNode.getNodeId()); } }
@Test public void testUpdateExisting() throws Exception { long pk = RandomTestUtil.nextLong(); WikiNode newWikiNode = _persistence.create(pk); newWikiNode.setUuid(RandomTestUtil.randomString()); newWikiNode.setGroupId(RandomTestUtil.nextLong()); newWikiNode.setCompanyId(RandomTestUtil.nextLong()); newWikiNode.setUserId(RandomTestUtil.nextLong()); newWikiNode.setUserName(RandomTestUtil.randomString()); newWikiNode.setCreateDate(RandomTestUtil.nextDate()); newWikiNode.setModifiedDate(RandomTestUtil.nextDate()); newWikiNode.setName(RandomTestUtil.randomString()); newWikiNode.setDescription(RandomTestUtil.randomString()); newWikiNode.setLastPostDate(RandomTestUtil.nextDate()); newWikiNode.setStatus(RandomTestUtil.nextInt()); newWikiNode.setStatusByUserId(RandomTestUtil.nextLong()); newWikiNode.setStatusByUserName(RandomTestUtil.randomString()); newWikiNode.setStatusDate(RandomTestUtil.nextDate()); _persistence.update(newWikiNode); WikiNode existingWikiNode = _persistence.findByPrimaryKey(newWikiNode.getPrimaryKey()); Assert.assertEquals(existingWikiNode.getUuid(), newWikiNode.getUuid()); Assert.assertEquals(existingWikiNode.getNodeId(), newWikiNode.getNodeId()); Assert.assertEquals(existingWikiNode.getGroupId(), newWikiNode.getGroupId()); Assert.assertEquals(existingWikiNode.getCompanyId(), newWikiNode.getCompanyId()); Assert.assertEquals(existingWikiNode.getUserId(), newWikiNode.getUserId()); Assert.assertEquals(existingWikiNode.getUserName(), newWikiNode.getUserName()); Assert.assertEquals( Time.getShortTimestamp(existingWikiNode.getCreateDate()), Time.getShortTimestamp(newWikiNode.getCreateDate())); Assert.assertEquals( Time.getShortTimestamp(existingWikiNode.getModifiedDate()), Time.getShortTimestamp(newWikiNode.getModifiedDate())); Assert.assertEquals(existingWikiNode.getName(), newWikiNode.getName()); Assert.assertEquals(existingWikiNode.getDescription(), newWikiNode.getDescription()); Assert.assertEquals( Time.getShortTimestamp(existingWikiNode.getLastPostDate()), Time.getShortTimestamp(newWikiNode.getLastPostDate())); Assert.assertEquals(existingWikiNode.getStatus(), newWikiNode.getStatus()); Assert.assertEquals(existingWikiNode.getStatusByUserId(), newWikiNode.getStatusByUserId()); Assert.assertEquals(existingWikiNode.getStatusByUserName(), newWikiNode.getStatusByUserName()); Assert.assertEquals( Time.getShortTimestamp(existingWikiNode.getStatusDate()), Time.getShortTimestamp(newWikiNode.getStatusDate())); }