public JournalStructure copyStructure( long userId, long groupId, String oldStructureId, String newStructureId, boolean autoStructureId) throws PortalException, SystemException { // Structure User user = userPersistence.findByPrimaryKey(userId); oldStructureId = oldStructureId.trim().toUpperCase(); newStructureId = newStructureId.trim().toUpperCase(); Date now = new Date(); JournalStructure oldStructure = journalStructurePersistence.findByG_S(groupId, oldStructureId); if (autoStructureId) { newStructureId = String.valueOf(counterLocalService.increment()); } else { validateStructureId(newStructureId); JournalStructure newStructure = journalStructurePersistence.fetchByG_S(groupId, newStructureId); if (newStructure != null) { throw new DuplicateStructureIdException(); } } long id = counterLocalService.increment(); JournalStructure newStructure = journalStructurePersistence.create(id); newStructure.setGroupId(groupId); newStructure.setCompanyId(user.getCompanyId()); newStructure.setUserId(user.getUserId()); newStructure.setUserName(user.getFullName()); newStructure.setCreateDate(now); newStructure.setModifiedDate(now); newStructure.setStructureId(newStructureId); newStructure.setName(oldStructure.getName()); newStructure.setDescription(oldStructure.getDescription()); newStructure.setXsd(oldStructure.getXsd()); journalStructurePersistence.update(newStructure, false); // Resources addStructureResources(newStructure, true, true); return newStructure; }
public JournalStructure addStructure( long userId, long groupId, String structureId, boolean autoStructureId, String parentStructureId, String name, String description, String xsd, ServiceContext serviceContext) throws PortalException, SystemException { // Structure User user = userPersistence.findByPrimaryKey(userId); structureId = structureId.trim().toUpperCase(); Date now = new Date(); try { xsd = JournalUtil.formatXML(xsd); } catch (Exception e) { throw new StructureXsdException(); } if (autoStructureId) { structureId = String.valueOf(counterLocalService.increment()); } validate(groupId, structureId, autoStructureId, parentStructureId, name, description, xsd); long id = counterLocalService.increment(); JournalStructure structure = journalStructurePersistence.create(id); structure.setUuid(serviceContext.getUuid()); structure.setGroupId(groupId); structure.setCompanyId(user.getCompanyId()); structure.setUserId(user.getUserId()); structure.setUserName(user.getFullName()); structure.setCreateDate(serviceContext.getCreateDate(now)); structure.setModifiedDate(serviceContext.getModifiedDate(now)); structure.setStructureId(structureId); structure.setParentStructureId(parentStructureId); structure.setName(name); structure.setDescription(description); structure.setXsd(xsd); journalStructurePersistence.update(structure, false); // Resources if (serviceContext.getAddCommunityPermissions() || serviceContext.getAddGuestPermissions()) { addStructureResources( structure, serviceContext.getAddCommunityPermissions(), serviceContext.getAddGuestPermissions()); } else { addStructureResources( structure, serviceContext.getCommunityPermissions(), serviceContext.getGuestPermissions()); } // Expando ExpandoBridge expandoBridge = structure.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); return structure; }