/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.tools.sample.sql.builder; import com.liferay.asset.kernel.model.AssetCategory; import com.liferay.asset.kernel.model.AssetCategoryConstants; import com.liferay.asset.kernel.model.AssetCategoryModel; import com.liferay.asset.kernel.model.AssetEntryModel; import com.liferay.asset.kernel.model.AssetTag; import com.liferay.asset.kernel.model.AssetTagModel; import com.liferay.asset.kernel.model.AssetTagStatsModel; import com.liferay.asset.kernel.model.AssetVocabulary; import com.liferay.asset.kernel.model.AssetVocabularyModel; import com.liferay.blogs.model.BlogsEntry; import com.liferay.blogs.model.BlogsEntryModel; import com.liferay.blogs.model.BlogsStatsUserModel; import com.liferay.blogs.model.impl.BlogsEntryModelImpl; import com.liferay.blogs.model.impl.BlogsStatsUserModelImpl; import com.liferay.blogs.social.BlogsActivityKeys; import com.liferay.blogs.web.constants.BlogsPortletKeys; import com.liferay.counter.kernel.model.Counter; import com.liferay.counter.kernel.model.CounterModel; import com.liferay.counter.model.impl.CounterModelImpl; import com.liferay.document.library.kernel.model.DLFileEntry; import com.liferay.document.library.kernel.model.DLFileEntryConstants; import com.liferay.document.library.kernel.model.DLFileEntryMetadata; import com.liferay.document.library.kernel.model.DLFileEntryMetadataModel; import com.liferay.document.library.kernel.model.DLFileEntryModel; import com.liferay.document.library.kernel.model.DLFileEntryTypeConstants; import com.liferay.document.library.kernel.model.DLFileEntryTypeModel; import com.liferay.document.library.kernel.model.DLFileVersionModel; import com.liferay.document.library.kernel.model.DLFolder; import com.liferay.document.library.kernel.model.DLFolderModel; import com.liferay.document.library.web.constants.DLPortletKeys; import com.liferay.dynamic.data.lists.constants.DDLPortletKeys; import com.liferay.dynamic.data.lists.model.DDLRecordConstants; import com.liferay.dynamic.data.lists.model.DDLRecordModel; import com.liferay.dynamic.data.lists.model.DDLRecordSet; import com.liferay.dynamic.data.lists.model.DDLRecordSetConstants; import com.liferay.dynamic.data.lists.model.DDLRecordSetModel; import com.liferay.dynamic.data.lists.model.DDLRecordVersionModel; import com.liferay.dynamic.data.lists.model.impl.DDLRecordModelImpl; import com.liferay.dynamic.data.lists.model.impl.DDLRecordSetModelImpl; import com.liferay.dynamic.data.lists.model.impl.DDLRecordVersionModelImpl; import com.liferay.dynamic.data.mapping.constants.DDMPortletKeys; import com.liferay.dynamic.data.mapping.model.DDMContent; import com.liferay.dynamic.data.mapping.model.DDMContentModel; import com.liferay.dynamic.data.mapping.model.DDMStorageLink; import com.liferay.dynamic.data.mapping.model.DDMStorageLinkModel; import com.liferay.dynamic.data.mapping.model.DDMStructure; import com.liferay.dynamic.data.mapping.model.DDMStructureConstants; import com.liferay.dynamic.data.mapping.model.DDMStructureLayoutModel; import com.liferay.dynamic.data.mapping.model.DDMStructureLinkModel; import com.liferay.dynamic.data.mapping.model.DDMStructureModel; import com.liferay.dynamic.data.mapping.model.DDMStructureVersionModel; import com.liferay.dynamic.data.mapping.model.DDMTemplate; import com.liferay.dynamic.data.mapping.model.DDMTemplateConstants; import com.liferay.dynamic.data.mapping.model.DDMTemplateLinkModel; import com.liferay.dynamic.data.mapping.model.DDMTemplateModel; import com.liferay.dynamic.data.mapping.model.impl.DDMContentModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMStorageLinkModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMStructureLayoutModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMStructureLinkModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMStructureModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMStructureVersionModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMTemplateLinkModelImpl; import com.liferay.dynamic.data.mapping.model.impl.DDMTemplateModelImpl; import com.liferay.dynamic.data.mapping.storage.StorageType; import com.liferay.friendly.url.model.FriendlyURLEntryModel; import com.liferay.friendly.url.model.impl.FriendlyURLEntryModelImpl; import com.liferay.journal.constants.JournalPortletKeys; import com.liferay.journal.model.JournalArticle; import com.liferay.journal.model.JournalArticleConstants; import com.liferay.journal.model.JournalArticleLocalizationModel; import com.liferay.journal.model.JournalArticleModel; import com.liferay.journal.model.JournalArticleResourceModel; import com.liferay.journal.model.JournalContentSearchModel; import com.liferay.journal.model.impl.JournalArticleLocalizationModelImpl; import com.liferay.journal.model.impl.JournalArticleModelImpl; import com.liferay.journal.model.impl.JournalArticleResourceModelImpl; import com.liferay.journal.model.impl.JournalContentSearchModelImpl; import com.liferay.journal.social.JournalActivityKeys; import com.liferay.login.web.constants.LoginPortletKeys; import com.liferay.message.boards.kernel.model.MBCategory; import com.liferay.message.boards.kernel.model.MBCategoryConstants; import com.liferay.message.boards.kernel.model.MBCategoryModel; import com.liferay.message.boards.kernel.model.MBDiscussion; import com.liferay.message.boards.kernel.model.MBDiscussionModel; import com.liferay.message.boards.kernel.model.MBMailingListModel; import com.liferay.message.boards.kernel.model.MBMessage; import com.liferay.message.boards.kernel.model.MBMessageConstants; import com.liferay.message.boards.kernel.model.MBMessageModel; import com.liferay.message.boards.kernel.model.MBStatsUserModel; import com.liferay.message.boards.kernel.model.MBThread; import com.liferay.message.boards.kernel.model.MBThreadFlagModel; import com.liferay.message.boards.kernel.model.MBThreadModel; import com.liferay.message.boards.web.constants.MBPortletKeys; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.io.OutputStreamWriter; import com.liferay.portal.kernel.io.unsync.UnsyncBufferedReader; import com.liferay.portal.kernel.io.unsync.UnsyncBufferedWriter; import com.liferay.portal.kernel.metadata.RawMetadataProcessor; import com.liferay.portal.kernel.model.AccountModel; import com.liferay.portal.kernel.model.BaseModel; import com.liferay.portal.kernel.model.ClassNameModel; import com.liferay.portal.kernel.model.Company; import com.liferay.portal.kernel.model.CompanyModel; import com.liferay.portal.kernel.model.ContactConstants; import com.liferay.portal.kernel.model.ContactModel; import com.liferay.portal.kernel.model.Group; import com.liferay.portal.kernel.model.GroupConstants; import com.liferay.portal.kernel.model.GroupModel; import com.liferay.portal.kernel.model.Layout; import com.liferay.portal.kernel.model.LayoutConstants; import com.liferay.portal.kernel.model.LayoutFriendlyURLModel; import com.liferay.portal.kernel.model.LayoutModel; import com.liferay.portal.kernel.model.LayoutSetModel; import com.liferay.portal.kernel.model.LayoutTypePortletConstants; import com.liferay.portal.kernel.model.ModelHintsUtil; import com.liferay.portal.kernel.model.PortletConstants; import com.liferay.portal.kernel.model.PortletPreferencesModel; import com.liferay.portal.kernel.model.ReleaseModel; import com.liferay.portal.kernel.model.ResourceConstants; import com.liferay.portal.kernel.model.ResourcePermission; import com.liferay.portal.kernel.model.ResourcePermissionModel; import com.liferay.portal.kernel.model.Role; import com.liferay.portal.kernel.model.RoleConstants; import com.liferay.portal.kernel.model.RoleModel; import com.liferay.portal.kernel.model.User; import com.liferay.portal.kernel.model.UserModel; import com.liferay.portal.kernel.model.VirtualHostModel; import com.liferay.portal.kernel.portlet.PortletPreferencesFactory; import com.liferay.portal.kernel.security.auth.FullNameGenerator; import com.liferay.portal.kernel.security.auth.FullNameGeneratorFactory; import com.liferay.portal.kernel.service.permission.PortletPermissionUtil; import com.liferay.portal.kernel.template.TemplateConstants; import com.liferay.portal.kernel.util.ArrayUtil; import com.liferay.portal.kernel.util.CharPool; import com.liferay.portal.kernel.util.ContentTypes; import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil; import com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.kernel.util.IntegerWrapper; import com.liferay.portal.kernel.util.ObjectValuePair; import com.liferay.portal.kernel.util.PortletKeys; import com.liferay.portal.kernel.util.ReflectionUtil; import com.liferay.portal.kernel.util.StringBundler; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.kernel.util.TextFormatter; import com.liferay.portal.kernel.util.Time; import com.liferay.portal.kernel.util.UnicodeProperties; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.workflow.WorkflowConstants; import com.liferay.portal.model.impl.AccountModelImpl; import com.liferay.portal.model.impl.ClassNameModelImpl; import com.liferay.portal.model.impl.CompanyModelImpl; import com.liferay.portal.model.impl.ContactModelImpl; import com.liferay.portal.model.impl.GroupModelImpl; import com.liferay.portal.model.impl.LayoutFriendlyURLModelImpl; import com.liferay.portal.model.impl.LayoutModelImpl; import com.liferay.portal.model.impl.LayoutSetModelImpl; import com.liferay.portal.model.impl.PortletPreferencesModelImpl; import com.liferay.portal.model.impl.ReleaseModelImpl; import com.liferay.portal.model.impl.ResourcePermissionModelImpl; import com.liferay.portal.model.impl.RoleModelImpl; import com.liferay.portal.model.impl.UserModelImpl; import com.liferay.portal.model.impl.VirtualHostModelImpl; import com.liferay.portal.util.PropsValues; import com.liferay.portlet.PortletPreferencesFactoryImpl; import com.liferay.portlet.PortletPreferencesImpl; import com.liferay.portlet.asset.model.impl.AssetCategoryModelImpl; import com.liferay.portlet.asset.model.impl.AssetEntryModelImpl; import com.liferay.portlet.asset.model.impl.AssetTagModelImpl; import com.liferay.portlet.asset.model.impl.AssetTagStatsModelImpl; import com.liferay.portlet.asset.model.impl.AssetVocabularyModelImpl; import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryMetadataModelImpl; import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryModelImpl; import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryTypeModelImpl; import com.liferay.portlet.documentlibrary.model.impl.DLFileVersionModelImpl; import com.liferay.portlet.documentlibrary.model.impl.DLFolderModelImpl; import com.liferay.portlet.documentlibrary.social.DLActivityKeys; import com.liferay.portlet.messageboards.model.impl.MBCategoryModelImpl; import com.liferay.portlet.messageboards.model.impl.MBDiscussionModelImpl; import com.liferay.portlet.messageboards.model.impl.MBMailingListModelImpl; import com.liferay.portlet.messageboards.model.impl.MBMessageModelImpl; import com.liferay.portlet.messageboards.model.impl.MBStatsUserModelImpl; import com.liferay.portlet.messageboards.model.impl.MBThreadFlagModelImpl; import com.liferay.portlet.messageboards.model.impl.MBThreadModelImpl; import com.liferay.portlet.messageboards.social.MBActivityKeys; import com.liferay.portlet.social.model.impl.SocialActivityModelImpl; import com.liferay.social.kernel.model.SocialActivity; import com.liferay.social.kernel.model.SocialActivityConstants; import com.liferay.social.kernel.model.SocialActivityModel; import com.liferay.subscription.model.SubscriptionConstants; import com.liferay.subscription.model.SubscriptionModel; import com.liferay.subscription.model.impl.SubscriptionModelImpl; import com.liferay.util.SimpleCounter; import com.liferay.wiki.constants.WikiPortletKeys; import com.liferay.wiki.model.WikiNode; import com.liferay.wiki.model.WikiNodeModel; import com.liferay.wiki.model.WikiPage; import com.liferay.wiki.model.WikiPageConstants; import com.liferay.wiki.model.WikiPageModel; import com.liferay.wiki.model.WikiPageResourceModel; import com.liferay.wiki.model.impl.WikiNodeModelImpl; import com.liferay.wiki.model.impl.WikiPageModelImpl; import com.liferay.wiki.model.impl.WikiPageResourceModelImpl; import com.liferay.wiki.social.WikiActivityKeys; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.Writer; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.sql.Types; import java.text.Format; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.TimeZone; import javax.portlet.PortletPreferences; /** * @author Brian Wing Shun Chan */ public class DataFactory { public DataFactory(Properties properties) throws Exception { initContext(properties); _counter = new SimpleCounter(_maxGroupsCount + 1); _timeCounter = new SimpleCounter(); _futureDateCounter = new SimpleCounter(); _resourcePermissionCounter = new SimpleCounter(); _socialActivityCounter = new SimpleCounter(); _userScreenNameCounter = new SimpleCounter(); List<String> models = ModelHintsUtil.getModels(); for (String model : models) { ClassNameModel classNameModel = new ClassNameModelImpl(); long classNameId = _counter.get(); classNameModel.setClassNameId(classNameId); classNameModel.setValue(model); _classNameModels.put(model, classNameModel); } _assetClassNameIds = new long[] { getClassNameId(BlogsEntry.class), getClassNameId(JournalArticle.class), getClassNameId(WikiPage.class) }; _accountId = _counter.get(); _companyId = _counter.get(); _defaultUserId = _counter.get(); _globalGroupId = _counter.get(); _guestGroupId = _counter.get(); _sampleUserId = _counter.get(); List<String> lines = new ArrayList<>(); StringUtil.readLines( getResourceInputStream("ddm_structure_basic_document.json"), lines); _dlDDMStructureContent = StringUtil.merge(lines, StringPool.SPACE); lines.clear(); StringUtil.readLines( getResourceInputStream("ddm_structure_layout_basic_document.json"), lines); _dlDDMStructureLayoutContent = StringUtil.merge( lines, StringPool.SPACE); lines.clear(); StringUtil.readLines( getResourceInputStream("ddm_structure_basic_web_content.json"), lines); _journalDDMStructureContent = StringUtil.merge(lines, StringPool.SPACE); lines.clear(); StringUtil.readLines( getResourceInputStream( "ddm_structure_layout_basic_web_content.json"), lines); _journalDDMStructureLayoutContent = StringUtil.merge( lines, StringPool.SPACE); lines.clear(); String defaultAssetPublisherPreference = StringUtil.read( getResourceInputStream("default_asset_publisher_preference.xml")); _defaultAssetPublisherPortletPreference = (PortletPreferencesImpl)_portletPreferencesFactory.fromDefaultXML( defaultAssetPublisherPreference); initAssetCategoryModels(); initAssetTagModels(); initCompanyModel(); initDLFileEntryTypeModel(); initGroupModels(); int maxJournalArticleSize = GetterUtil.getInteger( properties.getProperty("sample.sql.max.journal.article.size")); initJournalArticleContent(maxJournalArticleSize); initRoleModels(); initUserNames(); initUserModels(); initVirtualHostModel( properties.getProperty("sample.sql.virtual.hostname")); } public void closeCSVWriters() throws IOException { for (Writer writer : _csvWriters.values()) { writer.close(); } } public AccountModel getAccountModel() { return _accountModel; } public RoleModel getAdministratorRoleModel() { return _administratorRoleModel; } public List<Long> getAssetCategoryIds(AssetEntryModel assetEntryModel) { Map<Long, List<AssetCategoryModel>> assetCategoryModelsMap = _assetCategoryModelsMaps[(int)assetEntryModel.getGroupId() - 1]; if ((assetCategoryModelsMap == null) || assetCategoryModelsMap.isEmpty()) { return Collections.emptyList(); } List<AssetCategoryModel> assetCategoryModels = assetCategoryModelsMap.get(assetEntryModel.getClassNameId()); if ((assetCategoryModels == null) || assetCategoryModels.isEmpty()) { return Collections.emptyList(); } if (_assetCategoryCounters == null) { _assetCategoryCounters = (Map<Long, SimpleCounter>[])new HashMap<?, ?>[_maxGroupsCount]; } SimpleCounter counter = getSimpleCounter( _assetCategoryCounters, assetEntryModel.getGroupId(), assetEntryModel.getClassNameId()); List<Long> assetCategoryIds = new ArrayList<>( _maxAssetEntryToAssetCategoryCount); for (int i = 0; i < _maxAssetEntryToAssetCategoryCount; i++) { int index = (int)counter.get() % assetCategoryModels.size(); AssetCategoryModel assetCategoryModel = assetCategoryModels.get( index); assetCategoryIds.add(assetCategoryModel.getCategoryId()); } return assetCategoryIds; } public List<AssetCategoryModel> getAssetCategoryModels() { List<AssetCategoryModel> allAssetCategoryModels = new ArrayList<>(); for (Map<Long, List<AssetCategoryModel>> assetCategoryModelsMap : _assetCategoryModelsMaps) { for (List<AssetCategoryModel> assetCategoryModels : assetCategoryModelsMap.values()) { allAssetCategoryModels.addAll(assetCategoryModels); } } return allAssetCategoryModels; } public List<Long> getAssetTagIds(AssetEntryModel assetEntryModel) { Map<Long, List<AssetTagModel>> assetTagModelsMap = _assetTagModelsMaps[(int)assetEntryModel.getGroupId() - 1]; if ((assetTagModelsMap == null) || assetTagModelsMap.isEmpty()) { return Collections.emptyList(); } List<AssetTagModel> assetTagModels = assetTagModelsMap.get( assetEntryModel.getClassNameId()); if ((assetTagModels == null) || assetTagModels.isEmpty()) { return Collections.emptyList(); } if (_assetTagCounters == null) { _assetTagCounters = (Map<Long, SimpleCounter>[])new HashMap<?, ?>[_maxGroupsCount]; } SimpleCounter counter = getSimpleCounter( _assetTagCounters, assetEntryModel.getGroupId(), assetEntryModel.getClassNameId()); List<Long> assetTagIds = new ArrayList<>(_maxAssetEntryToAssetTagCount); for (int i = 0; i < _maxAssetEntryToAssetTagCount; i++) { int index = (int)counter.get() % assetTagModels.size(); AssetTagModel assetTagModel = assetTagModels.get(index); assetTagIds.add(assetTagModel.getTagId()); } return assetTagIds; } public List<AssetTagModel> getAssetTagModels() { List<AssetTagModel> allAssetTagModels = new ArrayList<>(); for (Map<Long, List<AssetTagModel>> assetTagModelsMap : _assetTagModelsMaps) { for (List<AssetTagModel> assetTagModels : assetTagModelsMap.values()) { allAssetTagModels.addAll(assetTagModels); } } return allAssetTagModels; } public List<AssetTagStatsModel> getAssetTagStatsModels() { List<AssetTagStatsModel> allAssetTagStatsModels = new ArrayList<>(); for (List<AssetTagStatsModel> assetTagStatsModels : _assetTagStatsModelsArray) { allAssetTagStatsModels.addAll(assetTagStatsModels); } return allAssetTagStatsModels; } public List<AssetVocabularyModel> getAssetVocabularyModels() { List<AssetVocabularyModel> allAssetVocabularyModels = new ArrayList<>(); allAssetVocabularyModels.add(_defaultAssetVocabularyModel); for (List<AssetVocabularyModel> assetVocabularyModels : _assetVocabularyModelsArray) { allAssetVocabularyModels.addAll(assetVocabularyModels); } return allAssetVocabularyModels; } public long getBlogsEntryClassNameId() { return getClassNameId(BlogsEntry.class); } public long getClassNameId(Class<?> clazz) { ClassNameModel classNameModel = _classNameModels.get(clazz.getName()); return classNameModel.getClassNameId(); } public Collection<ClassNameModel> getClassNameModels() { return _classNameModels.values(); } public CompanyModel getCompanyModel() { return _companyModel; } public SimpleCounter getCounter() { return _counter; } public long getCounterNext() { return _counter.get(); } public Writer getCSVWriter(String csvFileName) { Writer writer = _csvWriters.get(csvFileName); if (writer == null) { throw new IllegalArgumentException( "Unknown CSV file name: " + csvFileName); } return writer; } public String getDateLong(Date date) { return String.valueOf(date.getTime()); } public String getDateString(Date date) { if (date == null) { return null; } return _simpleDateFormat.format(date); } public long getDDLRecordSetClassNameId() { return getClassNameId(DDLRecordSet.class); } public long getDefaultDLDDMStructureId() { return _defaultDLDDMStructureModel.getStructureId(); } public DDMStructureLayoutModel getDefaultDLDDMStructureLayoutModel() { return _defaultDLDDMStructureLayoutModel; } public DDMStructureModel getDefaultDLDDMStructureModel() { return _defaultDLDDMStructureModel; } public DDMStructureVersionModel getDefaultDLDDMStructureVersionModel() { return _defaultDLDDMStructureVersionModel; } public DLFileEntryTypeModel getDefaultDLFileEntryTypeModel() { return _defaultDLFileEntryTypeModel; } public DDMStructureLayoutModel getDefaultJournalDDMStructureLayoutModel() { return _defaultJournalDDMStructureLayoutModel; } public DDMStructureModel getDefaultJournalDDMStructureModel() { return _defaultJournalDDMStructureModel; } public DDMStructureVersionModel getDefaultJournalDDMStructureVersionModel() { return _defaultJournalDDMStructureVersionModel; } public DDMTemplateModel getDefaultJournalDDMTemplateModel() { return _defaultJournalDDMTemplateModel; } public UserModel getDefaultUserModel() { return _defaultUserModel; } public long getDLFileEntryClassNameId() { return getClassNameId(DLFileEntry.class); } public GroupModel getGlobalGroupModel() { return _globalGroupModel; } public long getGroupClassNameId() { return getClassNameId(Group.class); } public List<GroupModel> getGroupModels() { return _groupModels; } public GroupModel getGuestGroupModel() { return _guestGroupModel; } public UserModel getGuestUserModel() { return _guestUserModel; } public long getJournalArticleClassNameId() { return getClassNameId(JournalArticle.class); } public String getJournalArticleLayoutColumn(String portletPrefix) { StringBundler sb = new StringBundler(3 * _maxJournalArticleCount); for (int i = 1; i <= _maxJournalArticleCount; i++) { sb.append(portletPrefix); sb.append(i); sb.append(StringPool.COMMA); } return sb.toString(); } public long getLayoutClassNameId() { return getClassNameId(Layout.class); } public int getMaxAssetPublisherPageCount() { return _maxAssetPublisherPageCount; } public int getMaxBlogsEntryCommentCount() { return _maxBlogsEntryCommentCount; } public int getMaxDDLRecordCount() { return _maxDDLRecordCount; } public int getMaxDDLRecordSetCount() { return _maxDDLRecordSetCount; } public int getMaxDLFolderDepth() { return _maxDLFolderDepth; } public int getMaxGroupCount() { return _maxGroupsCount; } public int getMaxJournalArticleCount() { return _maxJournalArticleCount; } public int getMaxJournalArticlePageCount() { return _maxJournalArticlePageCount; } public int getMaxJournalArticleVersionCount() { return _maxJournalArticleVersionCount; } public int getMaxWikiPageCommentCount() { return _maxWikiPageCommentCount; } public List<Long> getNewUserGroupIds(long groupId) { List<Long> groupIds = new ArrayList<>(_maxUserToGroupCount + 1); groupIds.add(_guestGroupModel.getGroupId()); if ((groupId + _maxUserToGroupCount) > _maxGroupsCount) { groupId = groupId - _maxUserToGroupCount + 1; } for (int i = 0; i < _maxUserToGroupCount; i++) { groupIds.add(groupId + i); } return groupIds; } public long getNextAssetClassNameId(long groupId) { Integer index = _assetClassNameIdsIndexes.get(groupId); if (index == null) { index = 0; } long classNameId = _assetClassNameIds[index % _assetClassNameIds.length]; _assetClassNameIdsIndexes.put(groupId, ++index); return classNameId; } public String getPortletId(String portletPrefix) { return portletPrefix.concat(PortletConstants.generateInstanceId()); } public RoleModel getPowerUserRoleModel() { return _powerUserRoleModel; } public List<RoleModel> getRoleModels() { return _roleModels; } public UserModel getSampleUserModel() { return _sampleUserModel; } public List<Integer> getSequence(int size) { List<Integer> sequence = new ArrayList<>(size); for (int i = 1; i <= size; i++) { sequence.add(i); } return sequence; } public RoleModel getUserRoleModel() { return _userRoleModel; } public VirtualHostModel getVirtualHostModel() { return _virtualHostModel; } public long getWikiPageClassNameId() { return getClassNameId(WikiPage.class); } public void initAssetCategoryModels() { _assetCategoryModelsArray = (List<AssetCategoryModel>[])new List<?>[_maxGroupsCount]; _assetCategoryModelsMaps = (Map<Long, List<AssetCategoryModel>>[]) new HashMap<?, ?>[_maxGroupsCount]; _assetVocabularyModelsArray = (List<AssetVocabularyModel>[])new List<?>[_maxGroupsCount]; _defaultAssetVocabularyModel = newAssetVocabularyModel( _globalGroupId, _defaultUserId, null, PropsValues.ASSET_VOCABULARY_DEFAULT); StringBundler sb = new StringBundler(4); for (int i = 1; i <= _maxGroupsCount; i++) { List<AssetVocabularyModel> assetVocabularyModels = new ArrayList<>( _maxAssetVocabularyCount); List<AssetCategoryModel> assetCategoryModels = new ArrayList<>( _maxAssetVocabularyCount * _maxAssetCategoryCount); long lastRightCategoryId = 2; for (int j = 0; j < _maxAssetVocabularyCount; j++) { sb.setIndex(0); sb.append("TestVocabulary_"); sb.append(i); sb.append(StringPool.UNDERLINE); sb.append(j); AssetVocabularyModel assetVocabularyModel = newAssetVocabularyModel( i, _sampleUserId, _SAMPLE_USER_NAME, sb.toString()); assetVocabularyModels.add(assetVocabularyModel); for (int k = 0; k < _maxAssetCategoryCount; k++) { sb.setIndex(0); sb.append("TestCategory_"); sb.append(assetVocabularyModel.getVocabularyId()); sb.append(StringPool.UNDERLINE); sb.append(k); AssetCategoryModel assetCategoryModel = newAssetCategoryModel( i, lastRightCategoryId, sb.toString(), assetVocabularyModel.getVocabularyId()); lastRightCategoryId += 2; assetCategoryModels.add(assetCategoryModel); } } _assetCategoryModelsArray[i - 1] = assetCategoryModels; _assetVocabularyModelsArray[i - 1] = assetVocabularyModels; Map<Long, List<AssetCategoryModel>> assetCategoryModelsMap = new HashMap<>(); int pageSize = assetCategoryModels.size() / _assetClassNameIds.length; for (int j = 0; j < _assetClassNameIds.length; j++) { int fromIndex = j * pageSize; int toIndex = (j + 1) * pageSize; if (j == (_assetClassNameIds.length - 1)) { toIndex = assetCategoryModels.size(); } assetCategoryModelsMap.put( _assetClassNameIds[j], assetCategoryModels.subList(fromIndex, toIndex)); } _assetCategoryModelsMaps[i - 1] = assetCategoryModelsMap; } } public void initAssetTagModels() { _assetTagModelsArray = (List<AssetTagModel>[])new List<?>[_maxGroupsCount]; _assetTagModelsMaps = (Map<Long, List<AssetTagModel>>[]) new HashMap<?, ?>[_maxGroupsCount]; _assetTagStatsModelsArray = (List<AssetTagStatsModel>[])new List<?>[_maxGroupsCount]; for (int i = 1; i <= _maxGroupsCount; i++) { List<AssetTagModel> assetTagModels = new ArrayList<>( _maxAssetTagCount); List<AssetTagStatsModel> assetTagStatsModels = new ArrayList<>( _maxAssetTagCount * 3); for (int j = 0; j < _maxAssetTagCount; j++) { AssetTagModel assetTagModel = new AssetTagModelImpl(); assetTagModel.setUuid(SequentialUUID.generate()); assetTagModel.setTagId(_counter.get()); assetTagModel.setGroupId(i); assetTagModel.setCompanyId(_companyId); assetTagModel.setUserId(_sampleUserId); assetTagModel.setUserName(_SAMPLE_USER_NAME); assetTagModel.setCreateDate(new Date()); assetTagModel.setModifiedDate(new Date()); assetTagModel.setName("TestTag_" + i + "_" + j); assetTagModel.setLastPublishDate(new Date()); assetTagModels.add(assetTagModel); AssetTagStatsModel assetTagStatsModel = newAssetTagStatsModel( assetTagModel.getTagId(), getClassNameId(BlogsEntry.class)); assetTagStatsModels.add(assetTagStatsModel); assetTagStatsModel = newAssetTagStatsModel( assetTagModel.getTagId(), getClassNameId(JournalArticle.class)); assetTagStatsModels.add(assetTagStatsModel); assetTagStatsModel = newAssetTagStatsModel( assetTagModel.getTagId(), getClassNameId(WikiPage.class)); assetTagStatsModels.add(assetTagStatsModel); } _assetTagModelsArray[i - 1] = assetTagModels; _assetTagStatsModelsArray[i - 1] = assetTagStatsModels; Map<Long, List<AssetTagModel>> assetTagModelsMap = new HashMap<>(); int pageSize = assetTagModels.size() / _assetClassNameIds.length; for (int j = 0; j < _assetClassNameIds.length; j++) { int fromIndex = j * pageSize; int toIndex = (j + 1) * pageSize; if (j == (_assetClassNameIds.length - 1)) { toIndex = assetTagModels.size(); } assetTagModelsMap.put( _assetClassNameIds[j], assetTagModels.subList(fromIndex, toIndex)); } _assetTagModelsMaps[i - 1] = assetTagModelsMap; } } public void initCompanyModel() { _companyModel = new CompanyModelImpl(); _companyModel.setCompanyId(_companyId); _companyModel.setAccountId(_accountId); _companyModel.setWebId("liferay.com"); _companyModel.setMx("liferay.com"); _companyModel.setActive(true); _accountModel = new AccountModelImpl(); _accountModel.setAccountId(_accountId); _accountModel.setCompanyId(_companyId); _accountModel.setCreateDate(new Date()); _accountModel.setModifiedDate(new Date()); _accountModel.setName("Liferay"); _accountModel.setLegalName("Liferay, Inc."); } public void initContext(Properties properties) throws FileNotFoundException { String timeZoneId = properties.getProperty("sample.sql.db.time.zone"); if (Validator.isNotNull(timeZoneId)) { TimeZone timeZone = TimeZone.getTimeZone(timeZoneId); if (timeZone != null) { TimeZone.setDefault(timeZone); _simpleDateFormat = FastDateFormatFactoryUtil.getSimpleDateFormat( "yyyy-MM-dd HH:mm:ss", timeZone); } } _maxAssetCategoryCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.asset.category.count")); _maxAssetEntryToAssetCategoryCount = GetterUtil.getInteger( properties.getProperty( "sample.sql.max.asset.entry.to.asset.category.count")); _maxAssetEntryToAssetTagCount = GetterUtil.getInteger( properties.getProperty( "sample.sql.max.asset.entry.to.asset.tag.count")); _maxAssetPublisherPageCount = GetterUtil.getInteger( properties.getProperty( "sample.sql.max.asset.publisher.page.count")); _maxAssetTagCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.asset.tag.count")); _maxAssetVocabularyCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.asset.vocabulary.count")); _maxBlogsEntryCommentCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.blogs.entry.comment.count")); _maxBlogsEntryCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.blogs.entry.count")); _maxDDLCustomFieldCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.ddl.custom.field.count")); _maxDDLRecordCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.ddl.record.count")); _maxDDLRecordSetCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.ddl.record.set.count")); _maxDLFileEntryCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.dl.file.entry.count")); _maxDLFileEntrySize = GetterUtil.getInteger( properties.getProperty("sample.sql.max.dl.file.entry.size")); _maxDLFolderCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.dl.folder.count")); _maxDLFolderDepth = GetterUtil.getInteger( properties.getProperty("sample.sql.max.dl.folder.depth")); _maxGroupsCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.group.count")); _maxJournalArticleCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.journal.article.count")); _maxJournalArticlePageCount = GetterUtil.getInteger( properties.getProperty( "sample.sql.max.journal.article.page.count")); _maxJournalArticleVersionCount = GetterUtil.getInteger( properties.getProperty( "sample.sql.max.journal.article.version.count")); _maxMBCategoryCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.mb.category.count")); _maxMBMessageCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.mb.message.count")); _maxMBThreadCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.mb.thread.count")); _maxUserCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.user.count")); _maxUserToGroupCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.user.to.group.count")); _maxWikiNodeCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.wiki.node.count")); _maxWikiPageCommentCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.wiki.page.comment.count")); _maxWikiPageCount = GetterUtil.getInteger( properties.getProperty("sample.sql.max.wiki.page.count")); File outputDir = new File( properties.getProperty("sample.sql.output.dir")); outputDir.mkdirs(); for (String csvFileName : StringUtil.split( properties.getProperty("sample.sql.output.csv.file.names"))) { _csvWriters.put( csvFileName, new UnsyncBufferedWriter( new OutputStreamWriter( new FileOutputStream( new File(outputDir, csvFileName.concat(".csv")))), _WRITER_BUFFER_SIZE) { @Override public void flush() { // Disable FreeMarker from flushing } }); } } public void initDLFileEntryTypeModel() { _defaultDLFileEntryTypeModel = new DLFileEntryTypeModelImpl(); _defaultDLFileEntryTypeModel.setUuid(SequentialUUID.generate()); _defaultDLFileEntryTypeModel.setFileEntryTypeId( DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT); _defaultDLFileEntryTypeModel.setCreateDate(nextFutureDate()); _defaultDLFileEntryTypeModel.setModifiedDate(nextFutureDate()); _defaultDLFileEntryTypeModel.setFileEntryTypeKey( StringUtil.toUpperCase( DLFileEntryTypeConstants.NAME_BASIC_DOCUMENT)); StringBundler sb = new StringBundler(4); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><name language-id=\"en_US\">"); sb.append(DLFileEntryTypeConstants.NAME_BASIC_DOCUMENT); sb.append("</name></root>"); _defaultDLFileEntryTypeModel.setName(sb.toString()); _defaultDLFileEntryTypeModel.setLastPublishDate(nextFutureDate()); _defaultDLDDMStructureModel = newDDMStructureModel( _globalGroupId, _defaultUserId, getClassNameId(DLFileEntry.class), RawMetadataProcessor.TIKA_RAW_METADATA, _dlDDMStructureContent); _defaultDLDDMStructureVersionModel = newDDMStructureVersionModel( _defaultDLDDMStructureModel); _defaultDLDDMStructureLayoutModel = newDDMStructureLayoutModel( _globalGroupId, _defaultUserId, _defaultDLDDMStructureVersionModel.getStructureVersionId(), _dlDDMStructureLayoutContent); _defaultJournalDDMStructureModel = newDDMStructureModel( _globalGroupId, _defaultUserId, getClassNameId(JournalArticle.class), "BASIC-WEB-CONTENT", _journalDDMStructureContent); _defaultJournalDDMStructureVersionModel = newDDMStructureVersionModel( _defaultJournalDDMStructureModel); _defaultJournalDDMStructureLayoutModel = newDDMStructureLayoutModel( _globalGroupId, _defaultUserId, _defaultJournalDDMStructureVersionModel.getStructureVersionId(), _journalDDMStructureLayoutContent); _defaultJournalDDMTemplateModel = newDDMTemplateModel( _globalGroupId, _defaultUserId, _defaultJournalDDMStructureModel.getStructureId(), getClassNameId(JournalArticle.class)); } public void initGroupModels() throws Exception { long groupClassNameId = getGroupClassNameId(); _globalGroupModel = newGroupModel( _globalGroupId, getClassNameId(Company.class), _companyId, GroupConstants.GLOBAL, false); _guestGroupModel = newGroupModel( _guestGroupId, groupClassNameId, _guestGroupId, GroupConstants.GUEST, true); _groupModels = new ArrayList<>(_maxGroupsCount); for (int i = 1; i <= _maxGroupsCount; i++) { GroupModel groupModel = newGroupModel( i, groupClassNameId, i, "Site " + i, true); _groupModels.add(groupModel); } } public void initJournalArticleContent(int maxJournalArticleSize) { StringBundler sb = new StringBundler(6); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><dynamic-element name=\"content"); sb.append("\" type=\"text_area\" index-type=\"keyword\" index=\"0\">"); sb.append("<dynamic-content language-id=\"en_US\"><![CDATA["); if (maxJournalArticleSize <= 0) { maxJournalArticleSize = 1; } char[] chars = new char[maxJournalArticleSize]; for (int i = 0; i < maxJournalArticleSize; i++) { chars[i] = (char)(CharPool.LOWER_CASE_A + (i % 26)); } sb.append(new String(chars)); sb.append("]]></dynamic-content></dynamic-element></root>"); _journalArticleContent = sb.toString(); } public void initRoleModels() { _roleModels = new ArrayList<>(); // Administrator _administratorRoleModel = newRoleModel( RoleConstants.ADMINISTRATOR, RoleConstants.TYPE_REGULAR); _roleModels.add(_administratorRoleModel); // Guest _guestRoleModel = newRoleModel( RoleConstants.GUEST, RoleConstants.TYPE_REGULAR); _roleModels.add(_guestRoleModel); // Organization Administrator RoleModel organizationAdministratorRoleModel = newRoleModel( RoleConstants.ORGANIZATION_ADMINISTRATOR, RoleConstants.TYPE_ORGANIZATION); _roleModels.add(organizationAdministratorRoleModel); // Organization Owner RoleModel organizationOwnerRoleModel = newRoleModel( RoleConstants.ORGANIZATION_OWNER, RoleConstants.TYPE_ORGANIZATION); _roleModels.add(organizationOwnerRoleModel); // Organization User RoleModel organizationUserRoleModel = newRoleModel( RoleConstants.ORGANIZATION_USER, RoleConstants.TYPE_ORGANIZATION); _roleModels.add(organizationUserRoleModel); // Owner _ownerRoleModel = newRoleModel( RoleConstants.OWNER, RoleConstants.TYPE_REGULAR); _roleModels.add(_ownerRoleModel); // Power User _powerUserRoleModel = newRoleModel( RoleConstants.POWER_USER, RoleConstants.TYPE_REGULAR); _roleModels.add(_powerUserRoleModel); // Site Administrator RoleModel siteAdministratorRoleModel = newRoleModel( RoleConstants.SITE_ADMINISTRATOR, RoleConstants.TYPE_SITE); _roleModels.add(siteAdministratorRoleModel); // Site Member _siteMemberRoleModel = newRoleModel( RoleConstants.SITE_MEMBER, RoleConstants.TYPE_SITE); _roleModels.add(_siteMemberRoleModel); // Site Owner RoleModel siteOwnerRoleModel = newRoleModel( RoleConstants.SITE_OWNER, RoleConstants.TYPE_SITE); _roleModels.add(siteOwnerRoleModel); // User _userRoleModel = newRoleModel( RoleConstants.USER, RoleConstants.TYPE_REGULAR); _roleModels.add(_userRoleModel); } public void initUserModels() { _defaultUserModel = newUserModel( _defaultUserId, StringPool.BLANK, StringPool.BLANK, StringPool.BLANK, true); _guestUserModel = newUserModel( _counter.get(), "Test", "Test", "Test", false); _sampleUserModel = newUserModel( _sampleUserId, _SAMPLE_USER_NAME, _SAMPLE_USER_NAME, _SAMPLE_USER_NAME, false); } public void initUserNames() throws IOException { _firstNames = new ArrayList<>(); UnsyncBufferedReader unsyncBufferedReader = new UnsyncBufferedReader( new InputStreamReader(getResourceInputStream("first_names.txt"))); String line = null; while ((line = unsyncBufferedReader.readLine()) != null) { _firstNames.add(line); } unsyncBufferedReader.close(); _lastNames = new ArrayList<>(); unsyncBufferedReader = new UnsyncBufferedReader( new InputStreamReader(getResourceInputStream("last_names.txt"))); while ((line = unsyncBufferedReader.readLine()) != null) { _lastNames.add(line); } unsyncBufferedReader.close(); } public void initVirtualHostModel(String hostname) { _virtualHostModel = new VirtualHostModelImpl(); _virtualHostModel.setVirtualHostId(_counter.get()); _virtualHostModel.setCompanyId(_companyId); _virtualHostModel.setHostname(hostname); } public AssetEntryModel newAssetEntryModel(BlogsEntryModel blogsEntryModel) { return newAssetEntryModel( blogsEntryModel.getGroupId(), blogsEntryModel.getCreateDate(), blogsEntryModel.getModifiedDate(), getClassNameId(BlogsEntry.class), blogsEntryModel.getEntryId(), blogsEntryModel.getUuid(), 0, true, true, ContentTypes.TEXT_HTML, blogsEntryModel.getTitle()); } public AssetEntryModel newAssetEntryModel( DLFileEntryModel dLFileEntryModel) { return newAssetEntryModel( dLFileEntryModel.getGroupId(), dLFileEntryModel.getCreateDate(), dLFileEntryModel.getModifiedDate(), getClassNameId(DLFileEntry.class), dLFileEntryModel.getFileEntryId(), dLFileEntryModel.getUuid(), dLFileEntryModel.getFileEntryTypeId(), true, true, dLFileEntryModel.getMimeType(), dLFileEntryModel.getTitle()); } public AssetEntryModel newAssetEntryModel(DLFolderModel dLFolderModel) { return newAssetEntryModel( dLFolderModel.getGroupId(), dLFolderModel.getCreateDate(), dLFolderModel.getModifiedDate(), getClassNameId(DLFolder.class), dLFolderModel.getFolderId(), dLFolderModel.getUuid(), 0, true, true, null, dLFolderModel.getName()); } public AssetEntryModel newAssetEntryModel(MBMessageModel mbMessageModel) { long classNameId = 0; boolean visible = false; if (mbMessageModel.getCategoryId() == MBCategoryConstants.DISCUSSION_CATEGORY_ID) { classNameId = getClassNameId(MBDiscussion.class); } else { classNameId = getClassNameId(MBMessage.class); visible = true; } return newAssetEntryModel( mbMessageModel.getGroupId(), mbMessageModel.getCreateDate(), mbMessageModel.getModifiedDate(), classNameId, mbMessageModel.getMessageId(), mbMessageModel.getUuid(), 0, true, visible, ContentTypes.TEXT_HTML, mbMessageModel.getSubject()); } public AssetEntryModel newAssetEntryModel(MBThreadModel mbThreadModel) { return newAssetEntryModel( mbThreadModel.getGroupId(), mbThreadModel.getCreateDate(), mbThreadModel.getModifiedDate(), getClassNameId(MBThread.class), mbThreadModel.getThreadId(), mbThreadModel.getUuid(), 0, true, false, StringPool.BLANK, String.valueOf(mbThreadModel.getRootMessageId())); } public AssetEntryModel newAssetEntryModel( ObjectValuePair<JournalArticleModel, JournalArticleLocalizationModel> objectValuePair) { JournalArticleModel journalArticleModel = objectValuePair.getKey(); JournalArticleLocalizationModel journalArticleLocalizationModel = objectValuePair.getValue(); long resourcePrimKey = journalArticleModel.getResourcePrimKey(); String resourceUUID = _journalArticleResourceUUIDs.get(resourcePrimKey); return newAssetEntryModel( journalArticleModel.getGroupId(), journalArticleModel.getCreateDate(), journalArticleModel.getModifiedDate(), getClassNameId(JournalArticle.class), resourcePrimKey, resourceUUID, _defaultJournalDDMStructureModel.getStructureId(), journalArticleModel.isIndexable(), true, ContentTypes.TEXT_HTML, journalArticleLocalizationModel.getTitle()); } public AssetEntryModel newAssetEntryModel(WikiPageModel wikiPageModel) { return newAssetEntryModel( wikiPageModel.getGroupId(), wikiPageModel.getCreateDate(), wikiPageModel.getModifiedDate(), getClassNameId(WikiPage.class), wikiPageModel.getResourcePrimKey(), wikiPageModel.getUuid(), 0, true, true, ContentTypes.TEXT_HTML, wikiPageModel.getTitle()); } public List<PortletPreferencesModel> newAssetPublisherPortletPreferencesModels(long plid) { List<PortletPreferencesModel> portletPreferencesModels = new ArrayList<>(3); portletPreferencesModels.add( newPortletPreferencesModel( plid, BlogsPortletKeys.BLOGS, PortletConstants.DEFAULT_PREFERENCES)); portletPreferencesModels.add( newPortletPreferencesModel( plid, JournalPortletKeys.JOURNAL, PortletConstants.DEFAULT_PREFERENCES)); portletPreferencesModels.add( newPortletPreferencesModel( plid, WikiPortletKeys.WIKI, PortletConstants.DEFAULT_PREFERENCES)); return portletPreferencesModels; } public List<BlogsEntryModel> newBlogsEntryModels(long groupId) { List<BlogsEntryModel> blogEntryModels = new ArrayList<>( _maxBlogsEntryCount); for (int i = 1; i <= _maxBlogsEntryCount; i++) { blogEntryModels.add(newBlogsEntryModel(groupId, i)); } return blogEntryModels; } public BlogsStatsUserModel newBlogsStatsUserModel(long groupId) { BlogsStatsUserModel blogsStatsUserModel = new BlogsStatsUserModelImpl(); blogsStatsUserModel.setStatsUserId(_counter.get()); blogsStatsUserModel.setGroupId(groupId); blogsStatsUserModel.setCompanyId(_companyId); blogsStatsUserModel.setUserId(_sampleUserId); blogsStatsUserModel.setEntryCount(_maxBlogsEntryCount); blogsStatsUserModel.setLastPostDate(new Date()); return blogsStatsUserModel; } public ContactModel newContactModel(UserModel userModel) { ContactModel contactModel = new ContactModelImpl(); contactModel.setContactId(userModel.getContactId()); contactModel.setCompanyId(userModel.getCompanyId()); contactModel.setUserId(userModel.getUserId()); FullNameGenerator fullNameGenerator = FullNameGeneratorFactory.getInstance(); String fullName = fullNameGenerator.getFullName( userModel.getFirstName(), userModel.getMiddleName(), userModel.getLastName()); contactModel.setUserName(fullName); contactModel.setCreateDate(new Date()); contactModel.setModifiedDate(new Date()); contactModel.setClassNameId(getClassNameId(User.class)); contactModel.setClassPK(userModel.getUserId()); contactModel.setAccountId(_accountId); contactModel.setParentContactId( ContactConstants.DEFAULT_PARENT_CONTACT_ID); contactModel.setEmailAddress(userModel.getEmailAddress()); contactModel.setFirstName(userModel.getFirstName()); contactModel.setLastName(userModel.getLastName()); contactModel.setMale(true); contactModel.setBirthday(new Date()); return contactModel; } public List<CounterModel> newCounterModels() { List<CounterModel> counterModels = new ArrayList<>(); // Counter CounterModel counterModel = new CounterModelImpl(); counterModel.setName(Counter.class.getName()); counterModel.setCurrentId(_counter.get()); counterModels.add(counterModel); // ResourcePermission counterModel = new CounterModelImpl(); counterModel.setName(ResourcePermission.class.getName()); counterModel.setCurrentId(_resourcePermissionCounter.get()); counterModels.add(counterModel); // SocialActivity counterModel = new CounterModelImpl(); counterModel.setName(SocialActivity.class.getName()); counterModel.setCurrentId(_socialActivityCounter.get()); counterModels.add(counterModel); return counterModels; } public DDMStructureLayoutModel newDDLDDMStructureLayoutModel( long groupId, DDMStructureVersionModel ddmStructureVersionModel) { StringBundler sb = new StringBundler(4 + _maxDDLCustomFieldCount * 4); sb.append("{\"defaultLanguageId\": \"en_US\", \"pages\": [{\"rows\": "); sb.append("["); for (int i = 0; i < _maxDDLCustomFieldCount; i++) { sb.append("{\"columns\": [{\"fieldNames\": [\""); sb.append(nextDDLCustomFieldName(groupId, i)); sb.append("\"], \"size\": 12}]}"); sb.append(", "); } if (_maxDDLCustomFieldCount > 0) { sb.setIndex(sb.index() - 1); } sb.append("], \"title\": {\"en_US\": \"\"}}],\"paginationMode\": "); sb.append("\"single-page\"}"); return newDDMStructureLayoutModel( _globalGroupId, _defaultUserId, ddmStructureVersionModel.getStructureVersionId(), sb.toString()); } public DDMStructureModel newDDLDDMStructureModel(long groupId) { StringBundler sb = new StringBundler(3 + _maxDDLCustomFieldCount * 9); sb.append("{\"availableLanguageIds\": [\"en_US\"],"); sb.append("\"defaultLanguageId\": \"en_US\", \"fields\": ["); for (int i = 0; i < _maxDDLCustomFieldCount; i++) { sb.append( "{\"dataType\": \"string\", \"indexType\": \"keyword\", "); sb.append("\"label\": {\"en_US\": \"Text"); sb.append(i); sb.append("\"}, \"name\": \""); sb.append(nextDDLCustomFieldName(groupId, i)); sb.append("\", \"readOnly\": false, \"repeatable\": false,"); sb.append("\"required\": false, \"showLabel\": true, \"type\": "); sb.append("\"text\"}"); sb.append(","); } if (_maxDDLCustomFieldCount > 0) { sb.setIndex(sb.index() - 1); } sb.append("]}"); return newDDMStructureModel( groupId, _sampleUserId, getClassNameId(DDLRecordSet.class), "Test DDM Structure", sb.toString()); } public List<PortletPreferencesModel> newDDLPortletPreferencesModels(long plid) { List<PortletPreferencesModel> portletPreferencesModels = new ArrayList<>(3); portletPreferencesModels.add( newPortletPreferencesModel( plid, DDLPortletKeys.DYNAMIC_DATA_LISTS_DISPLAY, PortletConstants.DEFAULT_PREFERENCES)); portletPreferencesModels.add( newPortletPreferencesModel( plid, DDLPortletKeys.DYNAMIC_DATA_LISTS, PortletConstants.DEFAULT_PREFERENCES)); portletPreferencesModels.add( newPortletPreferencesModel( plid, DDMPortletKeys.DYNAMIC_DATA_MAPPING, PortletConstants.DEFAULT_PREFERENCES)); return portletPreferencesModels; } public DDLRecordModel newDDLRecordModel( DDLRecordSetModel dDLRecordSetModel) { DDLRecordModel ddlRecordModel = new DDLRecordModelImpl(); ddlRecordModel.setUuid(SequentialUUID.generate()); ddlRecordModel.setRecordId(_counter.get()); ddlRecordModel.setGroupId(dDLRecordSetModel.getGroupId()); ddlRecordModel.setCompanyId(_companyId); ddlRecordModel.setUserId(_sampleUserId); ddlRecordModel.setUserName(_SAMPLE_USER_NAME); ddlRecordModel.setVersionUserId(_sampleUserId); ddlRecordModel.setVersionUserName(_SAMPLE_USER_NAME); ddlRecordModel.setCreateDate(new Date()); ddlRecordModel.setModifiedDate(new Date()); ddlRecordModel.setDDMStorageId(_counter.get()); ddlRecordModel.setRecordSetId(dDLRecordSetModel.getRecordSetId()); ddlRecordModel.setVersion(DDLRecordConstants.VERSION_DEFAULT); ddlRecordModel.setDisplayIndex( DDLRecordConstants.DISPLAY_INDEX_DEFAULT); ddlRecordModel.setLastPublishDate(new Date()); return ddlRecordModel; } public DDLRecordSetModel newDDLRecordSetModel( DDMStructureModel ddmStructureModel, int currentIndex) { DDLRecordSetModel ddlRecordSetModel = new DDLRecordSetModelImpl(); ddlRecordSetModel.setUuid(SequentialUUID.generate()); ddlRecordSetModel.setRecordSetId(_counter.get()); ddlRecordSetModel.setGroupId(ddmStructureModel.getGroupId()); ddlRecordSetModel.setCompanyId(_companyId); ddlRecordSetModel.setUserId(_sampleUserId); ddlRecordSetModel.setUserName(_SAMPLE_USER_NAME); ddlRecordSetModel.setCreateDate(new Date()); ddlRecordSetModel.setModifiedDate(new Date()); ddlRecordSetModel.setDDMStructureId(ddmStructureModel.getStructureId()); ddlRecordSetModel.setRecordSetKey(String.valueOf(_counter.get())); StringBundler sb = new StringBundler(5); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><name language-id=\"en_US\">"); sb.append("Test DDL Record Set "); sb.append(currentIndex); sb.append("</name></root>"); ddlRecordSetModel.setName(sb.toString()); ddlRecordSetModel.setMinDisplayRows( DDLRecordSetConstants.MIN_DISPLAY_ROWS_DEFAULT); ddlRecordSetModel.setScope( DDLRecordSetConstants.SCOPE_DYNAMIC_DATA_LISTS); ddlRecordSetModel.setSettings(StringPool.BLANK); ddlRecordSetModel.setLastPublishDate(new Date()); return ddlRecordSetModel; } public DDLRecordVersionModel newDDLRecordVersionModel( DDLRecordModel dDLRecordModel) { DDLRecordVersionModel ddlRecordVersionModel = new DDLRecordVersionModelImpl(); ddlRecordVersionModel.setRecordVersionId(_counter.get()); ddlRecordVersionModel.setGroupId(dDLRecordModel.getGroupId()); ddlRecordVersionModel.setCompanyId(_companyId); ddlRecordVersionModel.setUserId(_sampleUserId); ddlRecordVersionModel.setUserName(_SAMPLE_USER_NAME); ddlRecordVersionModel.setCreateDate(dDLRecordModel.getModifiedDate()); ddlRecordVersionModel.setDDMStorageId(dDLRecordModel.getDDMStorageId()); ddlRecordVersionModel.setRecordSetId(dDLRecordModel.getRecordSetId()); ddlRecordVersionModel.setRecordId(dDLRecordModel.getRecordId()); ddlRecordVersionModel.setVersion(dDLRecordModel.getVersion()); ddlRecordVersionModel.setDisplayIndex(dDLRecordModel.getDisplayIndex()); ddlRecordVersionModel.setStatus(WorkflowConstants.STATUS_APPROVED); ddlRecordVersionModel.setStatusDate(dDLRecordModel.getModifiedDate()); return ddlRecordVersionModel; } public DDMContentModel newDDMContentModel( DDLRecordModel ddlRecordModel, int currentIndex) { StringBundler sb = new StringBundler(3 + _maxDDLCustomFieldCount * 7); sb.append("{\"availableLanguageIds\": [\"en_US\"],"); sb.append("\"defaultLanguageId\": \"en_US\", \"fieldValues\": ["); for (int i = 0; i < _maxDDLCustomFieldCount; i++) { sb.append("{\"instanceId\": \""); sb.append(StringUtil.randomId()); sb.append("\", \"name\": \""); sb.append(nextDDLCustomFieldName(ddlRecordModel.getGroupId(), i)); sb.append("\", \"value\": {\"en_US\": \"Test Record "); sb.append(currentIndex); sb.append("\"}},"); } if (_maxDDLCustomFieldCount > 0) { sb.setIndex(sb.index() - 1); } sb.append("]}"); return newDDMContentModel( ddlRecordModel.getDDMStorageId(), ddlRecordModel.getGroupId(), sb.toString()); } public DDMContentModel newDDMContentModel( DLFileEntryModel dlFileEntryModel) { StringBundler sb = new StringBundler(6); sb.append("{\"availableLanguageIds\": [\"en_US\"],"); sb.append("\"defaultLanguageId\": \"en_US\", \"fieldValues\": [{"); sb.append("\"instanceId\": \""); sb.append(StringUtil.randomId()); sb.append("\", \"name\": \"CONTENT_TYPE\", \"value\": {\"en_US\": "); sb.append("\"text/plain\"}}]}"); return newDDMContentModel( _counter.get(), dlFileEntryModel.getGroupId(), sb.toString()); } public DDMStorageLinkModel newDDMStorageLinkModel( JournalArticleModel journalArticleModel, long structureId) { DDMStorageLinkModel ddmStorageLinkModel = new DDMStorageLinkModelImpl(); ddmStorageLinkModel.setUuid(SequentialUUID.generate()); ddmStorageLinkModel.setStorageLinkId(_counter.get()); ddmStorageLinkModel.setClassNameId( getClassNameId(JournalArticle.class)); ddmStorageLinkModel.setClassPK(journalArticleModel.getId()); ddmStorageLinkModel.setStructureId(structureId); return ddmStorageLinkModel; } public DDMStorageLinkModel newDDMStorageLinkModel( long ddmStorageLinkId, DDMContentModel ddmContentModel, long structureId) { DDMStorageLinkModel ddmStorageLinkModel = new DDMStorageLinkModelImpl(); ddmStorageLinkModel.setUuid(SequentialUUID.generate()); ddmStorageLinkModel.setStorageLinkId(ddmStorageLinkId); ddmStorageLinkModel.setClassNameId(getClassNameId(DDMContent.class)); ddmStorageLinkModel.setClassPK(ddmContentModel.getContentId()); ddmStorageLinkModel.setStructureId(structureId); return ddmStorageLinkModel; } public DDMStructureLinkModel newDDMStructureLinkModel( DDLRecordSetModel ddlRecordSetModel) { return newDDMStructureLinkModel( getClassNameId(DDLRecordSet.class), ddlRecordSetModel.getRecordSetId(), ddlRecordSetModel.getDDMStructureId()); } public DDMStructureLinkModel newDDMStructureLinkModel( DLFileEntryMetadataModel dLFileEntryMetadataModel) { return newDDMStructureLinkModel( getClassNameId(DLFileEntryMetadata.class), dLFileEntryMetadataModel.getFileEntryMetadataId(), dLFileEntryMetadataModel.getDDMStructureId()); } public DDMStructureVersionModel newDDMStructureVersionModel( DDMStructureModel ddmStructureModel) { DDMStructureVersionModel ddmStructureVersionModel = new DDMStructureVersionModelImpl(); ddmStructureVersionModel.setStructureVersionId(_counter.get()); ddmStructureVersionModel.setGroupId(ddmStructureModel.getGroupId()); ddmStructureVersionModel.setCompanyId(_companyId); ddmStructureVersionModel.setUserId(ddmStructureModel.getUserId()); ddmStructureVersionModel.setUserName(_SAMPLE_USER_NAME); ddmStructureVersionModel.setCreateDate(nextFutureDate()); ddmStructureVersionModel.setStructureId( ddmStructureModel.getStructureId()); ddmStructureVersionModel.setVersion( DDMStructureConstants.VERSION_DEFAULT); StringBundler sb = new StringBundler(4); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><name language-id=\"en_US\">"); sb.append(ddmStructureModel.getStructureKey()); sb.append("</name></root>"); ddmStructureVersionModel.setName(sb.toString()); ddmStructureVersionModel.setDefinition( ddmStructureModel.getDefinition()); ddmStructureVersionModel.setStorageType(StorageType.JSON.toString()); ddmStructureVersionModel.setStatusByUserId( ddmStructureModel.getUserId()); ddmStructureVersionModel.setStatusByUserName(_SAMPLE_USER_NAME); ddmStructureVersionModel.setStatusDate(nextFutureDate()); return ddmStructureVersionModel; } public DDMTemplateLinkModel newDDMTemplateLinkModel( JournalArticleModel journalArticleModel, long templateId) { DDMTemplateLinkModel ddmTemplateLinkModel = new DDMTemplateLinkModelImpl(); ddmTemplateLinkModel.setCompanyId(_companyId); ddmTemplateLinkModel.setTemplateLinkId(_counter.get()); ddmTemplateLinkModel.setClassNameId( getClassNameId(JournalArticle.class)); ddmTemplateLinkModel.setClassPK(journalArticleModel.getId()); ddmTemplateLinkModel.setTemplateId(templateId); return ddmTemplateLinkModel; } public DLFileEntryMetadataModel newDLFileEntryMetadataModel( long ddmStorageLinkId, long ddmStructureId, DLFileVersionModel dlFileVersionModel) { DLFileEntryMetadataModel dlFileEntryMetadataModel = new DLFileEntryMetadataModelImpl(); dlFileEntryMetadataModel.setUuid(SequentialUUID.generate()); dlFileEntryMetadataModel.setFileEntryMetadataId(_counter.get()); dlFileEntryMetadataModel.setDDMStorageId(ddmStorageLinkId); dlFileEntryMetadataModel.setDDMStructureId(ddmStructureId); dlFileEntryMetadataModel.setFileEntryId( dlFileVersionModel.getFileEntryId()); dlFileEntryMetadataModel.setFileVersionId( dlFileVersionModel.getFileVersionId()); return dlFileEntryMetadataModel; } public List<DLFileEntryModel> newDlFileEntryModels( DLFolderModel dlFolerModel) { List<DLFileEntryModel> dlFileEntryModels = new ArrayList<>( _maxDLFileEntryCount); for (int i = 1; i <= _maxDLFileEntryCount; i++) { dlFileEntryModels.add(newDlFileEntryModel(dlFolerModel, i)); } return dlFileEntryModels; } public DLFileVersionModel newDLFileVersionModel( DLFileEntryModel dlFileEntryModel) { DLFileVersionModel dlFileVersionModel = new DLFileVersionModelImpl(); dlFileVersionModel.setUuid(SequentialUUID.generate()); dlFileVersionModel.setFileVersionId(_counter.get()); dlFileVersionModel.setGroupId(dlFileEntryModel.getGroupId()); dlFileVersionModel.setCompanyId(_companyId); dlFileVersionModel.setUserId(_sampleUserId); dlFileVersionModel.setUserName(_SAMPLE_USER_NAME); dlFileVersionModel.setCreateDate(nextFutureDate()); dlFileVersionModel.setModifiedDate(nextFutureDate()); dlFileVersionModel.setRepositoryId(dlFileEntryModel.getRepositoryId()); dlFileVersionModel.setFolderId(dlFileEntryModel.getFolderId()); dlFileVersionModel.setFileEntryId(dlFileEntryModel.getFileEntryId()); dlFileVersionModel.setFileName(dlFileEntryModel.getFileName()); dlFileVersionModel.setExtension(dlFileEntryModel.getExtension()); dlFileVersionModel.setMimeType(dlFileEntryModel.getMimeType()); dlFileVersionModel.setTitle(dlFileEntryModel.getTitle()); dlFileVersionModel.setFileEntryTypeId( dlFileEntryModel.getFileEntryTypeId()); dlFileVersionModel.setVersion(dlFileEntryModel.getVersion()); dlFileVersionModel.setSize(dlFileEntryModel.getSize()); dlFileVersionModel.setLastPublishDate(nextFutureDate()); return dlFileVersionModel; } public List<DLFolderModel> newDLFolderModels( long groupId, long parentFolderId) { List<DLFolderModel> dlFolderModels = new ArrayList<>(_maxDLFolderCount); for (int i = 1; i <= _maxDLFolderCount; i++) { dlFolderModels.add(newDLFolderModel(groupId, parentFolderId, i)); } return dlFolderModels; } public FriendlyURLEntryModel newFriendlyURLEntryModel( BlogsEntryModel blogsEntryModel) { FriendlyURLEntryModel friendlyURLEntryModel = new FriendlyURLEntryModelImpl(); friendlyURLEntryModel.setUuid(SequentialUUID.generate()); friendlyURLEntryModel.setFriendlyURLEntryId(_counter.get()); friendlyURLEntryModel.setGroupId(blogsEntryModel.getGroupId()); friendlyURLEntryModel.setCompanyId(_companyId); friendlyURLEntryModel.setCreateDate(new Date()); friendlyURLEntryModel.setModifiedDate(new Date()); friendlyURLEntryModel.setClassNameId(getClassNameId(BlogsEntry.class)); friendlyURLEntryModel.setClassPK(blogsEntryModel.getEntryId()); friendlyURLEntryModel.setUrlTitle(blogsEntryModel.getUrlTitle()); friendlyURLEntryModel.setMain(true); return friendlyURLEntryModel; } public GroupModel newGroupModel(UserModel userModel) throws Exception { return newGroupModel( _counter.get(), getClassNameId(User.class), userModel.getUserId(), userModel.getScreenName(), false); } public IntegerWrapper newInteger() { return new IntegerWrapper(); } public JournalArticleLocalizationModel newJournalArticleLocalizationModel( JournalArticleModel journalArticleModel, int articleIndex, int versionIndex) { JournalArticleLocalizationModel journalArticleLocalizationModel = new JournalArticleLocalizationModelImpl(); StringBundler sb = new StringBundler(4); sb.append("TestJournalArticle_"); sb.append(articleIndex); sb.append(StringPool.UNDERLINE); sb.append(versionIndex); journalArticleLocalizationModel.setArticleLocalizationId( _counter.get()); journalArticleLocalizationModel.setCompanyId( journalArticleModel.getCompanyId()); journalArticleLocalizationModel.setArticlePK( journalArticleModel.getId()); journalArticleLocalizationModel.setTitle(sb.toString()); journalArticleLocalizationModel.setLanguageId( journalArticleModel.getDefaultLanguageId()); return journalArticleLocalizationModel; } public JournalArticleModel newJournalArticleModel( JournalArticleResourceModel journalArticleResourceModel, int articleIndex, int versionIndex) throws PortalException { JournalArticleModel journalArticleModel = new JournalArticleModelImpl(); journalArticleModel.setUuid(SequentialUUID.generate()); journalArticleModel.setId(_counter.get()); journalArticleModel.setResourcePrimKey( journalArticleResourceModel.getResourcePrimKey()); journalArticleModel.setGroupId( journalArticleResourceModel.getGroupId()); journalArticleModel.setCompanyId(_companyId); journalArticleModel.setUserId(_sampleUserId); journalArticleModel.setUserName(_SAMPLE_USER_NAME); journalArticleModel.setCreateDate(new Date()); journalArticleModel.setModifiedDate(new Date()); journalArticleModel.setClassNameId( JournalArticleConstants.CLASSNAME_ID_DEFAULT); journalArticleModel.setArticleId( journalArticleResourceModel.getArticleId()); journalArticleModel.setVersion(versionIndex); StringBundler sb = new StringBundler(4); sb.append("TestJournalArticle_"); sb.append(articleIndex); sb.append(StringPool.UNDERLINE); sb.append(versionIndex); String urlTitle = sb.toString(); journalArticleModel.setUrlTitle(urlTitle); journalArticleModel.setContent(_journalArticleContent); journalArticleModel.setDefaultLanguageId("en_US"); journalArticleModel.setDDMStructureKey( _defaultJournalDDMStructureModel.getStructureKey()); journalArticleModel.setDDMTemplateKey( _defaultJournalDDMTemplateModel.getTemplateKey()); journalArticleModel.setDisplayDate(new Date()); journalArticleModel.setExpirationDate(nextFutureDate()); journalArticleModel.setReviewDate(new Date()); journalArticleModel.setIndexable(true); journalArticleModel.setLastPublishDate(new Date()); journalArticleModel.setStatusDate(new Date()); return journalArticleModel; } public JournalArticleResourceModel newJournalArticleResourceModel( long groupId) { JournalArticleResourceModel journalArticleResourceModel = new JournalArticleResourceModelImpl(); journalArticleResourceModel.setUuid(SequentialUUID.generate()); journalArticleResourceModel.setResourcePrimKey(_counter.get()); journalArticleResourceModel.setGroupId(groupId); journalArticleResourceModel.setArticleId( String.valueOf(_counter.get())); _journalArticleResourceUUIDs.put( journalArticleResourceModel.getPrimaryKey(), journalArticleResourceModel.getUuid()); return journalArticleResourceModel; } public JournalContentSearchModel newJournalContentSearchModel( JournalArticleModel journalArticleModel, long layoutId) { JournalContentSearchModel journalContentSearchModel = new JournalContentSearchModelImpl(); journalContentSearchModel.setContentSearchId(_counter.get()); journalContentSearchModel.setGroupId(journalArticleModel.getGroupId()); journalContentSearchModel.setCompanyId(_companyId); journalContentSearchModel.setLayoutId(layoutId); journalContentSearchModel.setPortletId( "com_liferay_journal_content_web_portlet_JournalContentPortlet"); journalContentSearchModel.setArticleId( journalArticleModel.getArticleId()); return journalContentSearchModel; } public List<PortletPreferencesModel> newJournalPortletPreferencesModels(long plid) { return Collections.singletonList( newPortletPreferencesModel( plid, JournalPortletKeys.JOURNAL, PortletConstants.DEFAULT_PREFERENCES)); } public LayoutFriendlyURLModel newLayoutFriendlyURLModel( LayoutModel layoutModel) { LayoutFriendlyURLModel layoutFriendlyURLEntryModel = new LayoutFriendlyURLModelImpl(); layoutFriendlyURLEntryModel.setUuid(SequentialUUID.generate()); layoutFriendlyURLEntryModel.setLayoutFriendlyURLId(_counter.get()); layoutFriendlyURLEntryModel.setGroupId(layoutModel.getGroupId()); layoutFriendlyURLEntryModel.setCompanyId(_companyId); layoutFriendlyURLEntryModel.setUserId(_sampleUserId); layoutFriendlyURLEntryModel.setUserName(_SAMPLE_USER_NAME); layoutFriendlyURLEntryModel.setCreateDate(new Date()); layoutFriendlyURLEntryModel.setModifiedDate(new Date()); layoutFriendlyURLEntryModel.setPlid(layoutModel.getPlid()); layoutFriendlyURLEntryModel.setFriendlyURL( layoutModel.getFriendlyURL()); layoutFriendlyURLEntryModel.setLanguageId("en_US"); layoutFriendlyURLEntryModel.setLastPublishDate(new Date()); return layoutFriendlyURLEntryModel; } public LayoutModel newLayoutModel( long groupId, String name, String column1, String column2) { SimpleCounter simpleCounter = _layoutCounters.get(groupId); if (simpleCounter == null) { simpleCounter = new SimpleCounter(); _layoutCounters.put(groupId, simpleCounter); } LayoutModel layoutModel = new LayoutModelImpl(); layoutModel.setUuid(SequentialUUID.generate()); layoutModel.setPlid(_counter.get()); layoutModel.setGroupId(groupId); layoutModel.setCompanyId(_companyId); layoutModel.setUserId(_sampleUserId); layoutModel.setUserName(_SAMPLE_USER_NAME); layoutModel.setCreateDate(new Date()); layoutModel.setModifiedDate(new Date()); layoutModel.setLayoutId(simpleCounter.get()); layoutModel.setName( "<?xml version=\"1.0\"?><root><name>" + name + "</name></root>"); layoutModel.setType(LayoutConstants.TYPE_PORTLET); layoutModel.setFriendlyURL(StringPool.FORWARD_SLASH + name); UnicodeProperties typeSettingsProperties = new UnicodeProperties(true); typeSettingsProperties.setProperty( LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID, "2_columns_ii"); typeSettingsProperties.setProperty("column-1", column1); typeSettingsProperties.setProperty("column-2", column2); String typeSettings = StringUtil.replace( typeSettingsProperties.toString(), '\n', "\\n"); layoutModel.setTypeSettings(typeSettings); layoutModel.setLastPublishDate(new Date()); return layoutModel; } public List<LayoutSetModel> newLayoutSetModels( long groupId, int publicLayoutSetPageCount) { List<LayoutSetModel> layoutSetModels = new ArrayList<>(2); layoutSetModels.add(newLayoutSetModel(groupId, true, 0)); layoutSetModels.add( newLayoutSetModel(groupId, false, publicLayoutSetPageCount)); return layoutSetModels; } public List<MBCategoryModel> newMBCategoryModels(long groupId) { List<MBCategoryModel> mbCategoryModels = new ArrayList<>( _maxMBCategoryCount); for (int i = 1; i <= _maxMBCategoryCount; i++) { mbCategoryModels.add(newMBCategoryModel(groupId, i)); } return mbCategoryModels; } public MBDiscussionModel newMBDiscussionModel( long groupId, long classNameId, long classPK, long threadId) { MBDiscussionModel mbDiscussionModel = new MBDiscussionModelImpl(); mbDiscussionModel.setUuid(SequentialUUID.generate()); mbDiscussionModel.setDiscussionId(_counter.get()); mbDiscussionModel.setGroupId(groupId); mbDiscussionModel.setCompanyId(_companyId); mbDiscussionModel.setUserId(_sampleUserId); mbDiscussionModel.setUserName(_SAMPLE_USER_NAME); mbDiscussionModel.setCreateDate(new Date()); mbDiscussionModel.setModifiedDate(new Date()); mbDiscussionModel.setClassNameId(classNameId); mbDiscussionModel.setClassPK(classPK); mbDiscussionModel.setThreadId(threadId); mbDiscussionModel.setLastPublishDate(new Date()); return mbDiscussionModel; } public MBMailingListModel newMBMailingListModel( MBCategoryModel mbCategoryModel) { MBMailingListModel mbMailingListModel = new MBMailingListModelImpl(); mbMailingListModel.setUuid(SequentialUUID.generate()); mbMailingListModel.setMailingListId(_counter.get()); mbMailingListModel.setGroupId(mbCategoryModel.getGroupId()); mbMailingListModel.setCompanyId(_companyId); mbMailingListModel.setUserId(_sampleUserId); mbMailingListModel.setUserName(_SAMPLE_USER_NAME); mbMailingListModel.setCreateDate(new Date()); mbMailingListModel.setModifiedDate(new Date()); mbMailingListModel.setCategoryId(mbCategoryModel.getCategoryId()); mbMailingListModel.setInProtocol("pop3"); mbMailingListModel.setInServerPort(110); mbMailingListModel.setInUserName(_sampleUserModel.getEmailAddress()); mbMailingListModel.setInPassword(_sampleUserModel.getPassword()); mbMailingListModel.setInReadInterval(5); mbMailingListModel.setOutServerPort(25); return mbMailingListModel; } public MBMessageModel newMBMessageModel( MBThreadModel mbThreadModel, long classNameId, long classPK, int index) { long messageId = 0; long parentMessageId = 0; String subject = null; String body = null; if (index == 0) { messageId = mbThreadModel.getRootMessageId(); parentMessageId = MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID; subject = String.valueOf(classPK); body = String.valueOf(classPK); } else { messageId = _counter.get(); parentMessageId = mbThreadModel.getRootMessageId(); subject = "N/A"; body = "This is test comment " + index + "."; } return newMBMessageModel( mbThreadModel.getGroupId(), classNameId, classPK, MBCategoryConstants.DISCUSSION_CATEGORY_ID, mbThreadModel.getThreadId(), messageId, mbThreadModel.getRootMessageId(), parentMessageId, subject, body); } public List<MBMessageModel> newMBMessageModels( MBThreadModel mbThreadModel) { List<MBMessageModel> mbMessageModels = new ArrayList<>( _maxMBMessageCount); mbMessageModels.add( newMBMessageModel( mbThreadModel.getGroupId(), 0, 0, mbThreadModel.getCategoryId(), mbThreadModel.getThreadId(), mbThreadModel.getRootMessageId(), mbThreadModel.getRootMessageId(), MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID, "Test Message 1", "This is test message 1.")); for (int i = 2; i <= _maxMBMessageCount; i++) { mbMessageModels.add( newMBMessageModel( mbThreadModel.getGroupId(), 0, 0, mbThreadModel.getCategoryId(), mbThreadModel.getThreadId(), _counter.get(), mbThreadModel.getRootMessageId(), mbThreadModel.getRootMessageId(), "Test Message " + i, "This is test message " + i + ".")); } return mbMessageModels; } public List<MBMessageModel> newMBMessageModels( MBThreadModel mbThreadModel, long classNameId, long classPK, int maxMessageCount) { List<MBMessageModel> mbMessageModels = new ArrayList<>(maxMessageCount); for (int i = 1; i <= maxMessageCount; i++) { mbMessageModels.add( newMBMessageModel(mbThreadModel, classNameId, classPK, i)); } return mbMessageModels; } public MBStatsUserModel newMBStatsUserModel(long groupId) { MBStatsUserModel mbStatsUserModel = new MBStatsUserModelImpl(); mbStatsUserModel.setStatsUserId(_counter.get()); mbStatsUserModel.setGroupId(groupId); mbStatsUserModel.setUserId(_sampleUserId); mbStatsUserModel.setMessageCount( _maxMBCategoryCount * _maxMBThreadCount * _maxMBMessageCount); mbStatsUserModel.setLastPostDate(new Date()); return mbStatsUserModel; } public MBThreadFlagModel newMBThreadFlagModel(MBThreadModel mbThreadModel) { MBThreadFlagModel mbThreadFlagModel = new MBThreadFlagModelImpl(); mbThreadFlagModel.setUuid(SequentialUUID.generate()); mbThreadFlagModel.setThreadFlagId(_counter.get()); mbThreadFlagModel.setGroupId(mbThreadModel.getGroupId()); mbThreadFlagModel.setCompanyId(_companyId); mbThreadFlagModel.setUserId(_sampleUserId); mbThreadFlagModel.setUserName(_SAMPLE_USER_NAME); mbThreadFlagModel.setCreateDate(new Date()); mbThreadFlagModel.setModifiedDate(new Date()); mbThreadFlagModel.setThreadId(mbThreadModel.getThreadId()); mbThreadFlagModel.setLastPublishDate(new Date()); return mbThreadFlagModel; } public MBThreadModel newMBThreadModel( long threadId, long groupId, long rootMessageId, int messageCount) { if (messageCount == 0) { messageCount = 1; } return newMBThreadModel( threadId, groupId, MBCategoryConstants.DISCUSSION_CATEGORY_ID, rootMessageId, messageCount); } public List<MBThreadModel> newMBThreadModels( MBCategoryModel mbCategoryModel) { List<MBThreadModel> mbThreadModels = new ArrayList<>(_maxMBThreadCount); for (int i = 0; i < _maxMBThreadCount; i++) { mbThreadModels.add( newMBThreadModel( _counter.get(), mbCategoryModel.getGroupId(), mbCategoryModel.getCategoryId(), _counter.get(), _maxMBMessageCount)); } return mbThreadModels; } public <K, V> ObjectValuePair<K, V> newObjectValuePair(K key, V value) { return new ObjectValuePair<>(key, value); } public PortletPreferencesModel newPortletPreferencesModel( long plid, long groupId, String portletId, int currentIndex) throws Exception { if (currentIndex == 1) { return newPortletPreferencesModel( plid, portletId, PortletConstants.DEFAULT_PREFERENCES); } String assetPublisherQueryName = "assetCategories"; if ((currentIndex % 2) == 0) { assetPublisherQueryName = "assetTags"; } ObjectValuePair<String[], Integer> objectValuePair = null; Integer startIndex = _assetPublisherQueryStartIndexes.get(groupId); if (startIndex == null) { startIndex = 0; } if (assetPublisherQueryName.equals("assetCategories")) { Map<Long, List<AssetCategoryModel>> assetCategoryModelsMap = _assetCategoryModelsMaps[(int)groupId - 1]; List<AssetCategoryModel> assetCategoryModels = assetCategoryModelsMap.get(getNextAssetClassNameId(groupId)); if ((assetCategoryModels == null) || assetCategoryModels.isEmpty()) { return newPortletPreferencesModel( plid, portletId, PortletConstants.DEFAULT_PREFERENCES); } objectValuePair = getAssetPublisherAssetCategoriesQueryValues( assetCategoryModels, startIndex); } else { Map<Long, List<AssetTagModel>> assetTagModelsMap = _assetTagModelsMaps[(int)groupId - 1]; List<AssetTagModel> assetTagModels = assetTagModelsMap.get( getNextAssetClassNameId(groupId)); if ((assetTagModels == null) || assetTagModels.isEmpty()) { return newPortletPreferencesModel( plid, portletId, PortletConstants.DEFAULT_PREFERENCES); } objectValuePair = getAssetPublisherAssetTagsQueryValues( assetTagModels, startIndex); } String[] assetPublisherQueryValues = objectValuePair.getKey(); _assetPublisherQueryStartIndexes.put( groupId, objectValuePair.getValue()); PortletPreferences jxPortletPreferences = (PortletPreferences)_defaultAssetPublisherPortletPreference.clone(); jxPortletPreferences.setValue("queryAndOperator0", "false"); jxPortletPreferences.setValue("queryContains0", "true"); jxPortletPreferences.setValue("queryName0", assetPublisherQueryName); jxPortletPreferences.setValues( "queryValues0", new String[] { assetPublisherQueryValues[0], assetPublisherQueryValues[1], assetPublisherQueryValues[2] }); jxPortletPreferences.setValue("queryAndOperator1", "false"); jxPortletPreferences.setValue("queryContains1", "false"); jxPortletPreferences.setValue("queryName1", assetPublisherQueryName); jxPortletPreferences.setValue( "queryValues1", assetPublisherQueryValues[3]); return newPortletPreferencesModel( plid, portletId, _portletPreferencesFactory.toXML(jxPortletPreferences)); } public PortletPreferencesModel newPortletPreferencesModel( long plid, String portletId, DDLRecordSetModel ddlRecordSetModel) throws Exception { PortletPreferences jxPortletPreferences = new PortletPreferencesImpl(); jxPortletPreferences.setValue("editable", "true"); jxPortletPreferences.setValue( "recordSetId", String.valueOf(ddlRecordSetModel.getRecordSetId())); jxPortletPreferences.setValue("spreadsheet", "false"); return newPortletPreferencesModel( plid, portletId, _portletPreferencesFactory.toXML(jxPortletPreferences)); } public PortletPreferencesModel newPortletPreferencesModel( long plid, String portletId, JournalArticleResourceModel journalArticleResourceModel) throws Exception { PortletPreferences jxPortletPreferences = new PortletPreferencesImpl(); jxPortletPreferences.setValue( "articleId", journalArticleResourceModel.getArticleId()); jxPortletPreferences.setValue( "groupId", String.valueOf(journalArticleResourceModel.getGroupId())); return newPortletPreferencesModel( plid, portletId, _portletPreferencesFactory.toXML(jxPortletPreferences)); } public List<LayoutModel> newPublicLayoutModels(long groupId) { List<LayoutModel> layoutModels = new ArrayList<>(); layoutModels.add( newLayoutModel( groupId, "welcome", LoginPortletKeys.LOGIN + ",", "com_liferay_hello_world_web_portlet_HelloWorldPortlet,")); layoutModels.add( newLayoutModel(groupId, "blogs", "", BlogsPortletKeys.BLOGS + ",")); layoutModels.add( newLayoutModel( groupId, "document_library", "", DLPortletKeys.DOCUMENT_LIBRARY + ",")); layoutModels.add( newLayoutModel( groupId, "forums", "", MBPortletKeys.MESSAGE_BOARDS + ",")); layoutModels.add( newLayoutModel(groupId, "wiki", "", WikiPortletKeys.WIKI + ",")); return layoutModels; } public List<ReleaseModel> newReleaseModels() throws IOException { List<ReleaseModel> releases = new ArrayList<>(); try (InputStream is = DataFactory.class.getResourceAsStream( "dependencies/releases.txt"); Reader reader = new InputStreamReader(is); UnsyncBufferedReader unsyncBufferedReader = new UnsyncBufferedReader(reader)) { String line = null; while ((line = unsyncBufferedReader.readLine()) != null) { String[] parts = StringUtil.split(line, CharPool.COLON); if (parts.length > 0) { String servletContextName = parts[0]; String schemaVersion = parts[1]; releases.add( newReleaseModel(servletContextName, schemaVersion)); } } } return releases; } public List<ResourcePermissionModel> newResourcePermissionModels( AssetCategoryModel assetCategoryModel) { return newResourcePermissionModels( AssetCategory.class.getName(), String.valueOf(assetCategoryModel.getCategoryId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( AssetTagModel assetTagModel) { return newResourcePermissionModels( AssetTag.class.getName(), String.valueOf(assetTagModel.getTagId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( AssetVocabularyModel assetVocabularyModel) { if (assetVocabularyModel.getUserId() == _defaultUserId) { return Collections.singletonList( newResourcePermissionModel( AssetVocabulary.class.getName(), String.valueOf(assetVocabularyModel.getVocabularyId()), _ownerRoleModel.getRoleId(), _defaultUserId)); } return newResourcePermissionModels( AssetVocabulary.class.getName(), String.valueOf(assetVocabularyModel.getVocabularyId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( BlogsEntryModel blogsEntryModel) { return newResourcePermissionModels( BlogsEntry.class.getName(), String.valueOf(blogsEntryModel.getEntryId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( DDLRecordSetModel ddlRecordSetModel) { return Collections.singletonList( newResourcePermissionModel( DDLRecordSet.class.getName(), String.valueOf(ddlRecordSetModel.getRecordSetId()), _ownerRoleModel.getRoleId(), _defaultUserId)); } public List<ResourcePermissionModel> newResourcePermissionModels( DDMStructureModel ddmStructureModel) { List<ResourcePermissionModel> resourcePermissionModels = new ArrayList<>(3); String name = _getResourcePermissionModelName( DDMStructure.class.getName(), getClassName(ddmStructureModel.getClassNameId())); String primKey = String.valueOf(ddmStructureModel.getStructureId()); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _guestRoleModel.getRoleId(), 0)); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _ownerRoleModel.getRoleId(), ddmStructureModel.getUserId())); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _userRoleModel.getRoleId(), 0)); return resourcePermissionModels; } public List<ResourcePermissionModel> newResourcePermissionModels( DDMTemplateModel ddmTemplateModel) { List<ResourcePermissionModel> resourcePermissionModels = new ArrayList<>(3); String name = _getResourcePermissionModelName( DDMTemplate.class.getName(), getClassName(ddmTemplateModel.getResourceClassNameId())); String primKey = String.valueOf(ddmTemplateModel.getTemplateId()); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _guestRoleModel.getRoleId(), 0)); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _ownerRoleModel.getRoleId(), ddmTemplateModel.getUserId())); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _userRoleModel.getRoleId(), 0)); return resourcePermissionModels; } public List<ResourcePermissionModel> newResourcePermissionModels( DLFileEntryModel dlFileEntryModel) { return newResourcePermissionModels( DLFileEntry.class.getName(), String.valueOf(dlFileEntryModel.getFileEntryId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( DLFolderModel dlFolderModel) { return newResourcePermissionModels( DLFolder.class.getName(), String.valueOf(dlFolderModel.getFolderId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( GroupModel groupModel) { return Collections.singletonList( newResourcePermissionModel( Group.class.getName(), String.valueOf(groupModel.getGroupId()), _ownerRoleModel.getRoleId(), _sampleUserId)); } public List<ResourcePermissionModel> newResourcePermissionModels( JournalArticleResourceModel journalArticleResourceModel) { return newResourcePermissionModels( JournalArticle.class.getName(), String.valueOf(journalArticleResourceModel.getResourcePrimKey()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( LayoutModel layoutModel) { return newResourcePermissionModels( Layout.class.getName(), String.valueOf(layoutModel.getPlid()), 0); } public List<ResourcePermissionModel> newResourcePermissionModels( MBCategoryModel mbCategoryModel) { return newResourcePermissionModels( MBCategory.class.getName(), String.valueOf(mbCategoryModel.getCategoryId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( MBMessageModel mbMessageModel) { return Collections.singletonList( newResourcePermissionModel( MBMessage.class.getName(), String.valueOf(mbMessageModel.getMessageId()), _ownerRoleModel.getRoleId(), _sampleUserId)); } public List<ResourcePermissionModel> newResourcePermissionModels( PortletPreferencesModel portletPreferencesModel) { String portletId = portletPreferencesModel.getPortletId(); String name = portletId; int index = portletId.indexOf(StringPool.UNDERLINE); if (index > 0) { name = portletId.substring(0, index); } String primKey = PortletPermissionUtil.getPrimaryKey( portletPreferencesModel.getPlid(), portletId); return newResourcePermissionModels(name, primKey, 0); } public List<ResourcePermissionModel> newResourcePermissionModels( RoleModel roleModel) { return Collections.singletonList( newResourcePermissionModel( Role.class.getName(), String.valueOf(roleModel.getRoleId()), _ownerRoleModel.getRoleId(), _sampleUserId)); } public List<ResourcePermissionModel> newResourcePermissionModels( String name, long primKey) { return newResourcePermissionModels( name, String.valueOf(primKey), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( UserModel userModel) { return Collections.singletonList( newResourcePermissionModel( User.class.getName(), String.valueOf(userModel.getUserId()), _ownerRoleModel.getRoleId(), userModel.getUserId())); } public List<ResourcePermissionModel> newResourcePermissionModels( WikiNodeModel wikiNodeModel) { return newResourcePermissionModels( WikiNode.class.getName(), String.valueOf(wikiNodeModel.getNodeId()), _sampleUserId); } public List<ResourcePermissionModel> newResourcePermissionModels( WikiPageModel wikiPageModel) { return newResourcePermissionModels( WikiPage.class.getName(), String.valueOf(wikiPageModel.getResourcePrimKey()), _sampleUserId); } public SocialActivityModel newSocialActivityModel( BlogsEntryModel blogsEntryModel) { return newSocialActivityModel( blogsEntryModel.getGroupId(), getClassNameId(BlogsEntry.class), blogsEntryModel.getEntryId(), BlogsActivityKeys.ADD_ENTRY, "{\"title\":\"" + blogsEntryModel.getTitle() + "\"}"); } public SocialActivityModel newSocialActivityModel( DLFileEntryModel dlFileEntryModel) { return newSocialActivityModel( dlFileEntryModel.getGroupId(), getClassNameId(DLFileEntry.class), dlFileEntryModel.getFileEntryId(), DLActivityKeys.ADD_FILE_ENTRY, StringPool.BLANK); } public SocialActivityModel newSocialActivityModel( JournalArticleModel journalArticleModel) { int type = JournalActivityKeys.UPDATE_ARTICLE; if (journalArticleModel.getVersion() == JournalArticleConstants.VERSION_DEFAULT) { type = JournalActivityKeys.ADD_ARTICLE; } return newSocialActivityModel( journalArticleModel.getGroupId(), getClassNameId(JournalArticle.class), journalArticleModel.getResourcePrimKey(), type, "{\"title\":\"" + journalArticleModel.getUrlTitle() + "\"}"); } public SocialActivityModel newSocialActivityModel( MBMessageModel mbMessageModel) { long classNameId = mbMessageModel.getClassNameId(); long classPK = mbMessageModel.getClassPK(); int type = 0; String extraData = null; if (classNameId == getClassNameId(WikiPage.class)) { extraData = "{\"version\":1}"; type = WikiActivityKeys.ADD_PAGE; } else if (classNameId == 0) { extraData = "{\"title\":\"" + mbMessageModel.getSubject() + "\"}"; type = MBActivityKeys.ADD_MESSAGE; classNameId = getClassNameId(MBMessage.class); classPK = mbMessageModel.getMessageId(); } else { StringBundler sb = new StringBundler(5); sb.append("{\"messageId\": \""); sb.append(mbMessageModel.getMessageId()); sb.append("\", \"title\": "); sb.append(mbMessageModel.getSubject()); sb.append("}"); extraData = sb.toString(); type = SocialActivityConstants.TYPE_ADD_COMMENT; } return newSocialActivityModel( mbMessageModel.getGroupId(), classNameId, classPK, type, extraData); } public SubscriptionModel newSubscriptionModel( BlogsEntryModel blogsEntryModel) { return newSubscriptionModel( getClassNameId(BlogsEntry.class), blogsEntryModel.getEntryId()); } public SubscriptionModel newSubscriptionModel(MBThreadModel mBThreadModel) { return newSubscriptionModel( getClassNameId(MBThread.class), mBThreadModel.getThreadId()); } public SubscriptionModel newSubscriptionModel(WikiPageModel wikiPageModel) { return newSubscriptionModel( getClassNameId(WikiPage.class), wikiPageModel.getResourcePrimKey()); } public List<UserModel> newUserModels() { List<UserModel> userModels = new ArrayList<>(_maxUserCount); for (int i = 0; i < _maxUserCount; i++) { String[] userName = nextUserName(i); userModels.add( newUserModel( _counter.get(), userName[0], userName[1], "test" + _userScreenNameCounter.get(), false)); } return userModels; } public List<WikiNodeModel> newWikiNodeModels(long groupId) { List<WikiNodeModel> wikiNodeModels = new ArrayList<>(_maxWikiNodeCount); for (int i = 1; i <= _maxWikiNodeCount; i++) { wikiNodeModels.add(newWikiNodeModel(groupId, i)); } return wikiNodeModels; } public List<WikiPageModel> newWikiPageModels(WikiNodeModel wikiNodeModel) { List<WikiPageModel> wikiPageModels = new ArrayList<>(_maxWikiPageCount); for (int i = 1; i <= _maxWikiPageCount; i++) { wikiPageModels.add(newWikiPageModel(wikiNodeModel, i)); } return wikiPageModels; } public WikiPageResourceModel newWikiPageResourceModel( WikiPageModel wikiPageModel) { WikiPageResourceModel wikiPageResourceModel = new WikiPageResourceModelImpl(); wikiPageResourceModel.setUuid(SequentialUUID.generate()); wikiPageResourceModel.setResourcePrimKey( wikiPageModel.getResourcePrimKey()); wikiPageResourceModel.setNodeId(wikiPageModel.getNodeId()); wikiPageResourceModel.setTitle(wikiPageModel.getTitle()); return wikiPageResourceModel; } public String[] nextUserName(long index) { String[] userName = new String[2]; userName[0] = _firstNames.get( (int)(index / _lastNames.size()) % _firstNames.size()); userName[1] = _lastNames.get((int)(index % _lastNames.size())); return userName; } public String toInsertSQL(BaseModel<?> baseModel) { try { StringBundler sb = new StringBundler(); toInsertSQL(sb, baseModel); Class<?> clazz = baseModel.getClass(); for (Class<?> modelClass : clazz.getInterfaces()) { try { Method method = DataFactory.class.getMethod( "newResourcePermissionModels", modelClass); for (ResourcePermissionModel resourcePermissionModel : (List<ResourcePermissionModel>)method.invoke( this, baseModel)) { sb.append("\n"); toInsertSQL(sb, resourcePermissionModel); } } catch (NoSuchMethodException nsme) { } } return sb.toString(); } catch (ReflectiveOperationException roe) { return ReflectionUtil.throwException(roe); } } protected ObjectValuePair<String[], Integer> getAssetPublisherAssetCategoriesQueryValues( List<AssetCategoryModel> assetCategoryModels, int index) { AssetCategoryModel assetCategoryModel0 = assetCategoryModels.get( index % assetCategoryModels.size()); AssetCategoryModel assetCategoryModel1 = assetCategoryModels.get( (index + _maxAssetEntryToAssetCategoryCount) % assetCategoryModels.size()); AssetCategoryModel assetCategoryModel2 = assetCategoryModels.get( (index + _maxAssetEntryToAssetCategoryCount * 2) % assetCategoryModels.size()); int lastIndex = (index + _maxAssetEntryToAssetCategoryCount * 3) % assetCategoryModels.size(); AssetCategoryModel assetCategoryModel3 = assetCategoryModels.get( lastIndex); return new ObjectValuePair<>( new String[] { String.valueOf(assetCategoryModel0.getCategoryId()), String.valueOf(assetCategoryModel1.getCategoryId()), String.valueOf(assetCategoryModel2.getCategoryId()), String.valueOf(assetCategoryModel3.getCategoryId()) }, lastIndex + _maxAssetEntryToAssetCategoryCount); } protected ObjectValuePair<String[], Integer> getAssetPublisherAssetTagsQueryValues( List<AssetTagModel> assetTagModels, int index) { AssetTagModel assetTagModel0 = assetTagModels.get( index % assetTagModels.size()); AssetTagModel assetTagModel1 = assetTagModels.get( (index + _maxAssetEntryToAssetTagCount) % assetTagModels.size()); AssetTagModel assetTagModel2 = assetTagModels.get( (index + _maxAssetEntryToAssetTagCount * 2) % assetTagModels.size()); int lastIndex = (index + _maxAssetEntryToAssetTagCount * 3) % assetTagModels.size(); AssetTagModel assetTagModel3 = assetTagModels.get(lastIndex); return new ObjectValuePair<>( new String[] { assetTagModel0.getName(), assetTagModel1.getName(), assetTagModel2.getName(), assetTagModel3.getName() }, lastIndex + _maxAssetEntryToAssetTagCount); } protected String getClassName(long classNameId) { for (ClassNameModel classNameModel : _classNameModels.values()) { if (classNameModel.getClassNameId() == classNameId) { return classNameModel.getValue(); } } throw new RuntimeException( "Unable to find class name for id " + classNameId); } protected InputStream getResourceInputStream(String resourceName) { Class<?> clazz = getClass(); ClassLoader classLoader = clazz.getClassLoader(); return classLoader.getResourceAsStream( _DEPENDENCIES_DIR + resourceName); } protected SimpleCounter getSimpleCounter( Map<Long, SimpleCounter>[] simpleCountersArray, long groupId, long classNameId) { Map<Long, SimpleCounter> simpleCounters = simpleCountersArray[(int)groupId - 1]; if (simpleCounters == null) { simpleCounters = new HashMap<>(); simpleCountersArray[(int)groupId - 1] = simpleCounters; } SimpleCounter simpleCounter = simpleCounters.get(classNameId); if (simpleCounter == null) { simpleCounter = new SimpleCounter(0); simpleCounters.put(classNameId, simpleCounter); } return simpleCounter; } protected AssetCategoryModel newAssetCategoryModel( long groupId, long lastRightCategoryId, String name, long vocabularyId) { AssetCategoryModel assetCategoryModel = new AssetCategoryModelImpl(); assetCategoryModel.setUuid(SequentialUUID.generate()); assetCategoryModel.setCategoryId(_counter.get()); assetCategoryModel.setGroupId(groupId); assetCategoryModel.setCompanyId(_companyId); assetCategoryModel.setUserId(_sampleUserId); assetCategoryModel.setUserName(_SAMPLE_USER_NAME); assetCategoryModel.setCreateDate(new Date()); assetCategoryModel.setModifiedDate(new Date()); assetCategoryModel.setParentCategoryId( AssetCategoryConstants.DEFAULT_PARENT_CATEGORY_ID); assetCategoryModel.setLeftCategoryId(lastRightCategoryId++); assetCategoryModel.setRightCategoryId(lastRightCategoryId++); assetCategoryModel.setName(name); StringBundler sb = new StringBundler(4); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><Title language-id=\"en_US\">"); sb.append(name); sb.append("</Title></root>"); assetCategoryModel.setTitle(sb.toString()); assetCategoryModel.setVocabularyId(vocabularyId); assetCategoryModel.setLastPublishDate(new Date()); return assetCategoryModel; } protected AssetEntryModel newAssetEntryModel( long groupId, Date createDate, Date modifiedDate, long classNameId, long classPK, String uuid, long classTypeId, boolean listable, boolean visible, String mimeType, String title) { AssetEntryModel assetEntryModel = new AssetEntryModelImpl(); assetEntryModel.setEntryId(_counter.get()); assetEntryModel.setGroupId(groupId); assetEntryModel.setCompanyId(_companyId); assetEntryModel.setUserId(_sampleUserId); assetEntryModel.setUserName(_SAMPLE_USER_NAME); assetEntryModel.setCreateDate(createDate); assetEntryModel.setModifiedDate(modifiedDate); assetEntryModel.setClassNameId(classNameId); assetEntryModel.setClassPK(classPK); assetEntryModel.setClassUuid(uuid); assetEntryModel.setClassTypeId(classTypeId); assetEntryModel.setListable(listable); assetEntryModel.setVisible(visible); assetEntryModel.setStartDate(createDate); assetEntryModel.setEndDate(nextFutureDate()); assetEntryModel.setPublishDate(createDate); assetEntryModel.setExpirationDate(nextFutureDate()); assetEntryModel.setMimeType(mimeType); assetEntryModel.setTitle(title); return assetEntryModel; } protected AssetTagStatsModel newAssetTagStatsModel( long tagId, long classNameId) { AssetTagStatsModel assetTagStatsModel = new AssetTagStatsModelImpl(); assetTagStatsModel.setTagStatsId(_counter.get()); assetTagStatsModel.setTagId(tagId); assetTagStatsModel.setClassNameId(classNameId); return assetTagStatsModel; } protected AssetVocabularyModel newAssetVocabularyModel( long grouId, long userId, String userName, String name) { AssetVocabularyModel assetVocabularyModel = new AssetVocabularyModelImpl(); assetVocabularyModel.setUuid(SequentialUUID.generate()); assetVocabularyModel.setVocabularyId(_counter.get()); assetVocabularyModel.setGroupId(grouId); assetVocabularyModel.setCompanyId(_companyId); assetVocabularyModel.setUserId(userId); assetVocabularyModel.setUserName(userName); assetVocabularyModel.setCreateDate(new Date()); assetVocabularyModel.setModifiedDate(new Date()); assetVocabularyModel.setName(name); StringBundler sb = new StringBundler(4); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><Title language-id=\"en_US\">"); sb.append(name); sb.append("</Title></root>"); assetVocabularyModel.setTitle(sb.toString()); assetVocabularyModel.setSettings( "multiValued=true\\nselectedClassNameIds=0"); assetVocabularyModel.setLastPublishDate(new Date()); return assetVocabularyModel; } protected BlogsEntryModel newBlogsEntryModel(long groupId, int index) { BlogsEntryModel blogsEntryModel = new BlogsEntryModelImpl(); blogsEntryModel.setUuid(SequentialUUID.generate()); blogsEntryModel.setEntryId(_counter.get()); blogsEntryModel.setGroupId(groupId); blogsEntryModel.setCompanyId(_companyId); blogsEntryModel.setUserId(_sampleUserId); blogsEntryModel.setUserName(_SAMPLE_USER_NAME); blogsEntryModel.setCreateDate(new Date()); blogsEntryModel.setModifiedDate(new Date()); blogsEntryModel.setTitle("Test Blog " + index); blogsEntryModel.setSubtitle("Subtitle of Test Blog " + index); blogsEntryModel.setUrlTitle("testblog" + index); blogsEntryModel.setContent("This is test blog " + index + "."); blogsEntryModel.setDisplayDate(new Date()); blogsEntryModel.setLastPublishDate(new Date()); blogsEntryModel.setStatusByUserId(_sampleUserId); blogsEntryModel.setStatusDate(new Date()); return blogsEntryModel; } protected DDMContentModel newDDMContentModel( long contentId, long groupId, String data) { DDMContentModel ddmContentModel = new DDMContentModelImpl(); ddmContentModel.setUuid(SequentialUUID.generate()); ddmContentModel.setContentId(contentId); ddmContentModel.setGroupId(groupId); ddmContentModel.setCompanyId(_companyId); ddmContentModel.setUserId(_sampleUserId); ddmContentModel.setUserName(_SAMPLE_USER_NAME); ddmContentModel.setCreateDate(nextFutureDate()); ddmContentModel.setModifiedDate(nextFutureDate()); ddmContentModel.setName(DDMStorageLink.class.getName()); ddmContentModel.setData(data); return ddmContentModel; } protected DDMStructureLayoutModel newDDMStructureLayoutModel( long groupId, long userId, long structureVersionId, String definition) { DDMStructureLayoutModel ddmStructureLayoutModel = new DDMStructureLayoutModelImpl(); ddmStructureLayoutModel.setUuid(SequentialUUID.generate()); ddmStructureLayoutModel.setStructureLayoutId(_counter.get()); ddmStructureLayoutModel.setGroupId(groupId); ddmStructureLayoutModel.setCompanyId(_companyId); ddmStructureLayoutModel.setUserId(userId); ddmStructureLayoutModel.setUserName(_SAMPLE_USER_NAME); ddmStructureLayoutModel.setCreateDate(nextFutureDate()); ddmStructureLayoutModel.setModifiedDate(nextFutureDate()); ddmStructureLayoutModel.setStructureVersionId(structureVersionId); ddmStructureLayoutModel.setDefinition(definition); return ddmStructureLayoutModel; } protected DDMStructureLinkModel newDDMStructureLinkModel( long classNameId, long classPK, long structureId) { DDMStructureLinkModel ddmStructureLinkModel = new DDMStructureLinkModelImpl(); ddmStructureLinkModel.setStructureLinkId(_counter.get()); ddmStructureLinkModel.setClassNameId(classNameId); ddmStructureLinkModel.setClassPK(classPK); ddmStructureLinkModel.setStructureId(structureId); return ddmStructureLinkModel; } protected DDMStructureModel newDDMStructureModel( long groupId, long userId, long classNameId, String structureKey, String definition) { DDMStructureModel ddmStructureModel = new DDMStructureModelImpl(); ddmStructureModel.setUuid(SequentialUUID.generate()); ddmStructureModel.setStructureId(_counter.get()); ddmStructureModel.setGroupId(groupId); ddmStructureModel.setCompanyId(_companyId); ddmStructureModel.setUserId(userId); ddmStructureModel.setUserName(_SAMPLE_USER_NAME); ddmStructureModel.setVersionUserId(userId); ddmStructureModel.setVersionUserName(_SAMPLE_USER_NAME); ddmStructureModel.setCreateDate(nextFutureDate()); ddmStructureModel.setModifiedDate(nextFutureDate()); ddmStructureModel.setClassNameId(classNameId); ddmStructureModel.setStructureKey(structureKey); ddmStructureModel.setVersion(DDMStructureConstants.VERSION_DEFAULT); StringBundler sb = new StringBundler(4); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><name language-id=\"en_US\">"); sb.append(structureKey); sb.append("</name></root>"); ddmStructureModel.setName(sb.toString()); ddmStructureModel.setDefinition(definition); ddmStructureModel.setStorageType(StorageType.JSON.toString()); ddmStructureModel.setLastPublishDate(nextFutureDate()); return ddmStructureModel; } protected DDMTemplateModel newDDMTemplateModel( long groupId, long userId, long structureId, long sourceClassNameId) { DDMTemplateModel ddmTemplateModel = new DDMTemplateModelImpl(); ddmTemplateModel.setUuid(SequentialUUID.generate()); ddmTemplateModel.setTemplateId(_counter.get()); ddmTemplateModel.setGroupId(groupId); ddmTemplateModel.setCompanyId(_companyId); ddmTemplateModel.setUserId(userId); ddmTemplateModel.setCreateDate(nextFutureDate()); ddmTemplateModel.setModifiedDate(nextFutureDate()); ddmTemplateModel.setClassNameId(getClassNameId(DDMStructure.class)); ddmTemplateModel.setClassPK(structureId); ddmTemplateModel.setResourceClassNameId(sourceClassNameId); ddmTemplateModel.setTemplateKey(String.valueOf(_counter.get())); ddmTemplateModel.setVersion(DDMTemplateConstants.VERSION_DEFAULT); ddmTemplateModel.setVersionUserId(userId); ddmTemplateModel.setVersionUserName(_SAMPLE_USER_NAME); StringBundler sb = new StringBundler(3); sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" "); sb.append("default-locale=\"en_US\"><name language-id=\"en_US\">"); sb.append("Basic Web Content</name></root>"); ddmTemplateModel.setName(sb.toString()); ddmTemplateModel.setType(DDMTemplateConstants.TEMPLATE_TYPE_DISPLAY); ddmTemplateModel.setMode(DDMTemplateConstants.TEMPLATE_MODE_CREATE); ddmTemplateModel.setLanguage(TemplateConstants.LANG_TYPE_FTL); ddmTemplateModel.setScript("${content.getData()}"); ddmTemplateModel.setCacheable(true); ddmTemplateModel.setSmallImage(false); ddmTemplateModel.setLastPublishDate(nextFutureDate()); return ddmTemplateModel; } protected DLFileEntryModel newDlFileEntryModel( DLFolderModel dlFolerModel, int index) { DLFileEntryModel dlFileEntryModel = new DLFileEntryModelImpl(); dlFileEntryModel.setUuid(SequentialUUID.generate()); dlFileEntryModel.setFileEntryId(_counter.get()); dlFileEntryModel.setGroupId(dlFolerModel.getGroupId()); dlFileEntryModel.setCompanyId(_companyId); dlFileEntryModel.setUserId(_sampleUserId); dlFileEntryModel.setUserName(_SAMPLE_USER_NAME); dlFileEntryModel.setCreateDate(nextFutureDate()); dlFileEntryModel.setModifiedDate(nextFutureDate()); dlFileEntryModel.setRepositoryId(dlFolerModel.getRepositoryId()); dlFileEntryModel.setFolderId(dlFolerModel.getFolderId()); dlFileEntryModel.setName("TestFile" + index); dlFileEntryModel.setFileName("TestFile" + index + ".txt"); dlFileEntryModel.setExtension("txt"); dlFileEntryModel.setMimeType(ContentTypes.TEXT_PLAIN); dlFileEntryModel.setTitle("TestFile" + index + ".txt"); dlFileEntryModel.setFileEntryTypeId( DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT); dlFileEntryModel.setVersion(DLFileEntryConstants.VERSION_DEFAULT); dlFileEntryModel.setSize(_maxDLFileEntrySize); dlFileEntryModel.setLastPublishDate(nextFutureDate()); return dlFileEntryModel; } protected DLFolderModel newDLFolderModel( long groupId, long parentFolderId, int index) { DLFolderModel dlFolderModel = new DLFolderModelImpl(); dlFolderModel.setUuid(SequentialUUID.generate()); dlFolderModel.setFolderId(_counter.get()); dlFolderModel.setGroupId(groupId); dlFolderModel.setCompanyId(_companyId); dlFolderModel.setUserId(_sampleUserId); dlFolderModel.setUserName(_SAMPLE_USER_NAME); dlFolderModel.setCreateDate(nextFutureDate()); dlFolderModel.setModifiedDate(nextFutureDate()); dlFolderModel.setRepositoryId(groupId); dlFolderModel.setParentFolderId(parentFolderId); dlFolderModel.setName("Test Folder " + index); dlFolderModel.setLastPostDate(nextFutureDate()); dlFolderModel.setDefaultFileEntryTypeId( _defaultDLFileEntryTypeModel.getFileEntryTypeId()); dlFolderModel.setLastPublishDate(nextFutureDate()); dlFolderModel.setStatusDate(nextFutureDate()); return dlFolderModel; } protected GroupModel newGroupModel( long groupId, long classNameId, long classPK, String name, boolean site) throws Exception { GroupModel groupModel = new GroupModelImpl(); groupModel.setUuid(SequentialUUID.generate()); groupModel.setGroupId(groupId); groupModel.setCompanyId(_companyId); groupModel.setCreatorUserId(_sampleUserId); groupModel.setClassNameId(classNameId); groupModel.setClassPK(classPK); groupModel.setTreePath( StringPool.SLASH + groupModel.getGroupId() + StringPool.SLASH); groupModel.setGroupKey(name); groupModel.setName(name); groupModel.setManualMembership(true); groupModel.setMembershipRestriction( GroupConstants.DEFAULT_MEMBERSHIP_RESTRICTION); groupModel.setFriendlyURL( StringPool.FORWARD_SLASH + FriendlyURLNormalizerUtil.normalize(name)); groupModel.setSite(site); groupModel.setActive(true); return groupModel; } protected LayoutSetModel newLayoutSetModel( long groupId, boolean privateLayout, int pageCount) { LayoutSetModel layoutSetModel = new LayoutSetModelImpl(); layoutSetModel.setLayoutSetId(_counter.get()); layoutSetModel.setGroupId(groupId); layoutSetModel.setCompanyId(_companyId); layoutSetModel.setCreateDate(new Date()); layoutSetModel.setModifiedDate(new Date()); layoutSetModel.setPrivateLayout(privateLayout); layoutSetModel.setThemeId("classic_WAR_classictheme"); layoutSetModel.setColorSchemeId("01"); layoutSetModel.setPageCount(pageCount); return layoutSetModel; } protected MBCategoryModel newMBCategoryModel(long groupId, int index) { MBCategoryModel mbCategoryModel = new MBCategoryModelImpl(); mbCategoryModel.setUuid(SequentialUUID.generate()); mbCategoryModel.setCategoryId(_counter.get()); mbCategoryModel.setGroupId(groupId); mbCategoryModel.setCompanyId(_companyId); mbCategoryModel.setUserId(_sampleUserId); mbCategoryModel.setUserName(_SAMPLE_USER_NAME); mbCategoryModel.setCreateDate(new Date()); mbCategoryModel.setModifiedDate(new Date()); mbCategoryModel.setParentCategoryId( MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID); mbCategoryModel.setName("Test Category " + index); mbCategoryModel.setDisplayStyle( MBCategoryConstants.DEFAULT_DISPLAY_STYLE); mbCategoryModel.setThreadCount(_maxMBThreadCount); mbCategoryModel.setMessageCount(_maxMBThreadCount * _maxMBMessageCount); mbCategoryModel.setLastPostDate(new Date()); mbCategoryModel.setLastPublishDate(new Date()); mbCategoryModel.setStatusDate(new Date()); return mbCategoryModel; } protected MBMessageModel newMBMessageModel( long groupId, long classNameId, long classPK, long categoryId, long threadId, long messageId, long rootMessageId, long parentMessageId, String subject, String body) { MBMessageModel mBMessageModel = new MBMessageModelImpl(); mBMessageModel.setUuid(SequentialUUID.generate()); mBMessageModel.setMessageId(messageId); mBMessageModel.setGroupId(groupId); mBMessageModel.setCompanyId(_companyId); mBMessageModel.setUserId(_sampleUserId); mBMessageModel.setUserName(_SAMPLE_USER_NAME); mBMessageModel.setCreateDate(new Date()); mBMessageModel.setModifiedDate(new Date()); mBMessageModel.setClassNameId(classNameId); mBMessageModel.setClassPK(classPK); mBMessageModel.setCategoryId(categoryId); mBMessageModel.setThreadId(threadId); mBMessageModel.setRootMessageId(rootMessageId); mBMessageModel.setParentMessageId(parentMessageId); mBMessageModel.setSubject(subject); mBMessageModel.setBody(body); mBMessageModel.setFormat(MBMessageConstants.DEFAULT_FORMAT); mBMessageModel.setLastPublishDate(new Date()); mBMessageModel.setStatusDate(new Date()); return mBMessageModel; } protected MBThreadModel newMBThreadModel( long threadId, long groupId, long categoryId, long rootMessageId, int messageCount) { MBThreadModel mbThreadModel = new MBThreadModelImpl(); mbThreadModel.setUuid(SequentialUUID.generate()); mbThreadModel.setThreadId(threadId); mbThreadModel.setGroupId(groupId); mbThreadModel.setCompanyId(_companyId); mbThreadModel.setUserId(_sampleUserId); mbThreadModel.setUserName(_SAMPLE_USER_NAME); mbThreadModel.setCreateDate(new Date()); mbThreadModel.setModifiedDate(new Date()); mbThreadModel.setCategoryId(categoryId); mbThreadModel.setRootMessageId(rootMessageId); mbThreadModel.setRootMessageUserId(_sampleUserId); mbThreadModel.setMessageCount(messageCount); mbThreadModel.setLastPostByUserId(_sampleUserId); mbThreadModel.setLastPostDate(new Date()); mbThreadModel.setLastPublishDate(new Date()); mbThreadModel.setStatusDate(new Date()); return mbThreadModel; } protected PortletPreferencesModel newPortletPreferencesModel( long plid, String portletId, String preferences) { PortletPreferencesModel portletPreferencesModel = new PortletPreferencesModelImpl(); portletPreferencesModel.setPortletPreferencesId(_counter.get()); portletPreferencesModel.setOwnerId(PortletKeys.PREFS_OWNER_ID_DEFAULT); portletPreferencesModel.setOwnerType( PortletKeys.PREFS_OWNER_TYPE_LAYOUT); portletPreferencesModel.setPlid(plid); portletPreferencesModel.setPortletId(portletId); portletPreferencesModel.setPreferences(preferences); return portletPreferencesModel; } protected ReleaseModelImpl newReleaseModel( String servletContextName, String schemaVersion) throws IOException { ReleaseModelImpl releaseModel = new ReleaseModelImpl(); releaseModel.setReleaseId(_counter.get()); releaseModel.setCreateDate(new Date()); releaseModel.setModifiedDate(new Date()); releaseModel.setServletContextName(servletContextName); releaseModel.setSchemaVersion(schemaVersion); releaseModel.setBuildDate(new Date()); releaseModel.setVerified(true); return releaseModel; } protected ResourcePermissionModel newResourcePermissionModel( String name, String primKey, long roleId, long ownerId) { ResourcePermissionModel resourcePermissionModel = new ResourcePermissionModelImpl(); resourcePermissionModel.setResourcePermissionId( _resourcePermissionCounter.get()); resourcePermissionModel.setCompanyId(_companyId); resourcePermissionModel.setName(name); resourcePermissionModel.setScope(ResourceConstants.SCOPE_INDIVIDUAL); resourcePermissionModel.setPrimKey(primKey); resourcePermissionModel.setPrimKeyId(GetterUtil.getLong(primKey)); resourcePermissionModel.setRoleId(roleId); resourcePermissionModel.setOwnerId(ownerId); resourcePermissionModel.setActionIds(1); resourcePermissionModel.setViewActionId(true); return resourcePermissionModel; } protected List<ResourcePermissionModel> newResourcePermissionModels( String name, String primKey, long ownerId) { List<ResourcePermissionModel> resourcePermissionModels = new ArrayList<>(3); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _guestRoleModel.getRoleId(), 0)); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _ownerRoleModel.getRoleId(), ownerId)); resourcePermissionModels.add( newResourcePermissionModel( name, primKey, _siteMemberRoleModel.getRoleId(), 0)); return resourcePermissionModels; } protected RoleModel newRoleModel(String name, int type) { RoleModel roleModel = new RoleModelImpl(); roleModel.setUuid(SequentialUUID.generate()); roleModel.setRoleId(_counter.get()); roleModel.setCompanyId(_companyId); roleModel.setUserId(_sampleUserId); roleModel.setUserName(_SAMPLE_USER_NAME); roleModel.setCreateDate(new Date()); roleModel.setModifiedDate(new Date()); roleModel.setClassNameId(getClassNameId(Role.class)); roleModel.setClassPK(roleModel.getRoleId()); roleModel.setName(name); roleModel.setType(type); return roleModel; } protected SocialActivityModel newSocialActivityModel( long groupId, long classNameId, long classPK, int type, String extraData) { SocialActivityModel socialActivityModel = new SocialActivityModelImpl(); socialActivityModel.setActivityId(_socialActivityCounter.get()); socialActivityModel.setGroupId(groupId); socialActivityModel.setCompanyId(_companyId); socialActivityModel.setUserId(_sampleUserId); socialActivityModel.setCreateDate(_CURRENT_TIME + _timeCounter.get()); socialActivityModel.setClassNameId(classNameId); socialActivityModel.setClassPK(classPK); socialActivityModel.setType(type); socialActivityModel.setExtraData(extraData); return socialActivityModel; } protected SubscriptionModel newSubscriptionModel( long classNameId, long classPK) { SubscriptionModel subscriptionModel = new SubscriptionModelImpl(); subscriptionModel.setSubscriptionId(_counter.get()); subscriptionModel.setCompanyId(_companyId); subscriptionModel.setUserId(_sampleUserId); subscriptionModel.setUserName(_SAMPLE_USER_NAME); subscriptionModel.setCreateDate(new Date()); subscriptionModel.setModifiedDate(new Date()); subscriptionModel.setClassNameId(classNameId); subscriptionModel.setClassPK(classPK); subscriptionModel.setFrequency(SubscriptionConstants.FREQUENCY_INSTANT); return subscriptionModel; } protected UserModel newUserModel( long userId, String firstName, String lastName, String screenName, boolean defaultUser) { if (Validator.isNull(screenName)) { screenName = String.valueOf(userId); } UserModel userModel = new UserModelImpl(); userModel.setUuid(SequentialUUID.generate()); userModel.setUserId(userId); userModel.setCompanyId(_companyId); userModel.setCreateDate(new Date()); userModel.setModifiedDate(new Date()); userModel.setDefaultUser(defaultUser); userModel.setContactId(_counter.get()); userModel.setPassword("test"); userModel.setPasswordModifiedDate(new Date()); userModel.setReminderQueryQuestion("What is your screen name?"); userModel.setReminderQueryAnswer(screenName); userModel.setEmailAddress(screenName + "@liferay.com"); userModel.setScreenName(screenName); userModel.setLanguageId("en_US"); userModel.setGreeting("Welcome " + screenName + StringPool.EXCLAMATION); userModel.setFirstName(firstName); userModel.setLastName(lastName); userModel.setLoginDate(new Date()); userModel.setLastLoginDate(new Date()); userModel.setLastFailedLoginDate(new Date()); userModel.setLockoutDate(new Date()); userModel.setAgreedToTermsOfUse(true); userModel.setEmailAddressVerified(true); return userModel; } protected WikiNodeModel newWikiNodeModel(long groupId, int index) { WikiNodeModel wikiNodeModel = new WikiNodeModelImpl(); wikiNodeModel.setUuid(SequentialUUID.generate()); wikiNodeModel.setNodeId(_counter.get()); wikiNodeModel.setGroupId(groupId); wikiNodeModel.setCompanyId(_companyId); wikiNodeModel.setUserId(_sampleUserId); wikiNodeModel.setUserName(_SAMPLE_USER_NAME); wikiNodeModel.setCreateDate(new Date()); wikiNodeModel.setModifiedDate(new Date()); wikiNodeModel.setName("Test Node " + index); wikiNodeModel.setLastPostDate(new Date()); wikiNodeModel.setLastPublishDate(new Date()); wikiNodeModel.setStatusDate(new Date()); return wikiNodeModel; } protected WikiPageModel newWikiPageModel( WikiNodeModel wikiNodeModel, int index) { WikiPageModel wikiPageModel = new WikiPageModelImpl(); wikiPageModel.setUuid(SequentialUUID.generate()); wikiPageModel.setPageId(_counter.get()); wikiPageModel.setResourcePrimKey(_counter.get()); wikiPageModel.setGroupId(wikiNodeModel.getGroupId()); wikiPageModel.setCompanyId(_companyId); wikiPageModel.setUserId(_sampleUserId); wikiPageModel.setUserName(_SAMPLE_USER_NAME); wikiPageModel.setCreateDate(new Date()); wikiPageModel.setModifiedDate(new Date()); wikiPageModel.setNodeId(wikiNodeModel.getNodeId()); wikiPageModel.setTitle("Test Page " + index); wikiPageModel.setVersion(WikiPageConstants.VERSION_DEFAULT); wikiPageModel.setContent("This is test page " + index + "."); wikiPageModel.setFormat("creole"); wikiPageModel.setHead(true); wikiPageModel.setLastPublishDate(new Date()); return wikiPageModel; } protected String nextDDLCustomFieldName( long groupId, int customFieldIndex) { StringBundler sb = new StringBundler(4); sb.append("custom_field_text_"); sb.append(groupId); sb.append("_"); sb.append(customFieldIndex); return sb.toString(); } protected Date nextFutureDate() { return new Date( _FUTURE_TIME + (_futureDateCounter.get() * Time.SECOND)); } protected void toInsertSQL(StringBundler sb, BaseModel<?> baseModel) { try { sb.append("insert into "); Class<?> clazz = baseModel.getClass(); Field tableNameField = clazz.getField("TABLE_NAME"); sb.append(tableNameField.get(null)); sb.append(" values ("); Field tableColumnsField = clazz.getField("TABLE_COLUMNS"); for (Object[] tableColumn : (Object[][])tableColumnsField.get(null)) { String name = TextFormatter.format( (String)tableColumn[0], TextFormatter.G); if (name.endsWith(StringPool.UNDERLINE)) { name = name.substring(0, name.length() - 1); } int type = (int)tableColumn[1]; if (type == Types.TIMESTAMP) { Method method = clazz.getMethod("get".concat(name)); Date date = (Date)method.invoke(baseModel); if (date == null) { sb.append("null"); } else { sb.append("'"); sb.append(getDateString(date)); sb.append("'"); } } else if ((type == Types.VARCHAR) || (type == Types.CLOB)) { Method method = clazz.getMethod("get".concat(name)); sb.append("'"); sb.append(method.invoke(baseModel)); sb.append("'"); } else if (type == Types.BOOLEAN) { Method method = clazz.getMethod("is".concat(name)); sb.append(method.invoke(baseModel)); } else { Method method = clazz.getMethod("get".concat(name)); sb.append(method.invoke(baseModel)); } sb.append(", "); } sb.setIndex(sb.index() - 1); sb.append(");"); } catch (ReflectiveOperationException roe) { ReflectionUtil.throwException(roe); } } private String _getResourcePermissionModelName(String... classNames) { if (ArrayUtil.isEmpty(classNames)) { return StringPool.BLANK; } Arrays.sort(classNames); StringBundler sb = new StringBundler(classNames.length * 2); for (String className : classNames) { sb.append(className); sb.append(StringPool.DASH); } sb.setIndex(sb.index() - 1); return sb.toString(); } private static final long _CURRENT_TIME = System.currentTimeMillis(); private static final String _DEPENDENCIES_DIR = "com/liferay/portal/tools/sample/sql/builder/dependencies/"; private static final long _FUTURE_TIME = System.currentTimeMillis() + Time.YEAR; private static final String _SAMPLE_USER_NAME = "Sample"; private static final int _WRITER_BUFFER_SIZE = 16 * 1024; private static final PortletPreferencesFactory _portletPreferencesFactory = new PortletPreferencesFactoryImpl(); private final long _accountId; private AccountModel _accountModel; private RoleModel _administratorRoleModel; private Map<Long, SimpleCounter>[] _assetCategoryCounters; private List<AssetCategoryModel>[] _assetCategoryModelsArray; private Map<Long, List<AssetCategoryModel>>[] _assetCategoryModelsMaps; private final long[] _assetClassNameIds; private final Map<Long, Integer> _assetClassNameIdsIndexes = new HashMap<>(); private final Map<Long, Integer> _assetPublisherQueryStartIndexes = new HashMap<>(); private Map<Long, SimpleCounter>[] _assetTagCounters; private List<AssetTagModel>[] _assetTagModelsArray; private Map<Long, List<AssetTagModel>>[] _assetTagModelsMaps; private List<AssetTagStatsModel>[] _assetTagStatsModelsArray; private List<AssetVocabularyModel>[] _assetVocabularyModelsArray; private final Map<String, ClassNameModel> _classNameModels = new HashMap<>(); private final long _companyId; private CompanyModel _companyModel; private final SimpleCounter _counter; private final Map<String, Writer> _csvWriters = new HashMap<>(); private final PortletPreferencesImpl _defaultAssetPublisherPortletPreference; private AssetVocabularyModel _defaultAssetVocabularyModel; private DDMStructureLayoutModel _defaultDLDDMStructureLayoutModel; private DDMStructureModel _defaultDLDDMStructureModel; private DDMStructureVersionModel _defaultDLDDMStructureVersionModel; private DLFileEntryTypeModel _defaultDLFileEntryTypeModel; private DDMStructureLayoutModel _defaultJournalDDMStructureLayoutModel; private DDMStructureModel _defaultJournalDDMStructureModel; private DDMStructureVersionModel _defaultJournalDDMStructureVersionModel; private DDMTemplateModel _defaultJournalDDMTemplateModel; private final long _defaultUserId; private UserModel _defaultUserModel; private final String _dlDDMStructureContent; private final String _dlDDMStructureLayoutContent; private List<String> _firstNames; private final SimpleCounter _futureDateCounter; private final long _globalGroupId; private GroupModel _globalGroupModel; private List<GroupModel> _groupModels; private final long _guestGroupId; private GroupModel _guestGroupModel; private RoleModel _guestRoleModel; private UserModel _guestUserModel; private String _journalArticleContent; private final Map<Long, String> _journalArticleResourceUUIDs = new HashMap<>(); private final String _journalDDMStructureContent; private final String _journalDDMStructureLayoutContent; private List<String> _lastNames; private final Map<Long, SimpleCounter> _layoutCounters = new HashMap<>(); private int _maxAssetCategoryCount; private int _maxAssetEntryToAssetCategoryCount; private int _maxAssetEntryToAssetTagCount; private int _maxAssetPublisherPageCount; private int _maxAssetTagCount; private int _maxAssetVocabularyCount; private int _maxBlogsEntryCommentCount; private int _maxBlogsEntryCount; private int _maxDDLCustomFieldCount; private int _maxDDLRecordCount; private int _maxDDLRecordSetCount; private int _maxDLFileEntryCount; private int _maxDLFileEntrySize; private int _maxDLFolderCount; private int _maxDLFolderDepth; private int _maxGroupsCount; private int _maxJournalArticleCount; private int _maxJournalArticlePageCount; private int _maxJournalArticleVersionCount; private int _maxMBCategoryCount; private int _maxMBMessageCount; private int _maxMBThreadCount; private int _maxUserCount; private int _maxUserToGroupCount; private int _maxWikiNodeCount; private int _maxWikiPageCommentCount; private int _maxWikiPageCount; private RoleModel _ownerRoleModel; private RoleModel _powerUserRoleModel; private final SimpleCounter _resourcePermissionCounter; private List<RoleModel> _roleModels; private final long _sampleUserId; private UserModel _sampleUserModel; private Format _simpleDateFormat = FastDateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private RoleModel _siteMemberRoleModel; private final SimpleCounter _socialActivityCounter; private final SimpleCounter _timeCounter; private RoleModel _userRoleModel; private final SimpleCounter _userScreenNameCounter; private VirtualHostModel _virtualHostModel; }