001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.tools.samplesqlbuilder;
016    
017    import com.liferay.counter.model.Counter;
018    import com.liferay.counter.model.CounterModel;
019    import com.liferay.counter.model.impl.CounterModelImpl;
020    import com.liferay.portal.kernel.io.unsync.UnsyncBufferedReader;
021    import com.liferay.portal.kernel.util.CharPool;
022    import com.liferay.portal.kernel.util.ContentTypes;
023    import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil;
024    import com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil;
025    import com.liferay.portal.kernel.util.GetterUtil;
026    import com.liferay.portal.kernel.util.IntegerWrapper;
027    import com.liferay.portal.kernel.util.StringBundler;
028    import com.liferay.portal.kernel.util.StringPool;
029    import com.liferay.portal.kernel.util.StringUtil;
030    import com.liferay.portal.kernel.util.Time;
031    import com.liferay.portal.kernel.util.UnicodeProperties;
032    import com.liferay.portal.kernel.util.Validator;
033    import com.liferay.portal.kernel.workflow.WorkflowConstants;
034    import com.liferay.portal.model.AccountModel;
035    import com.liferay.portal.model.ClassNameModel;
036    import com.liferay.portal.model.Company;
037    import com.liferay.portal.model.CompanyModel;
038    import com.liferay.portal.model.ContactConstants;
039    import com.liferay.portal.model.ContactModel;
040    import com.liferay.portal.model.Group;
041    import com.liferay.portal.model.GroupConstants;
042    import com.liferay.portal.model.GroupModel;
043    import com.liferay.portal.model.Layout;
044    import com.liferay.portal.model.LayoutConstants;
045    import com.liferay.portal.model.LayoutFriendlyURLModel;
046    import com.liferay.portal.model.LayoutModel;
047    import com.liferay.portal.model.LayoutSetModel;
048    import com.liferay.portal.model.LayoutTypePortletConstants;
049    import com.liferay.portal.model.ModelHintsUtil;
050    import com.liferay.portal.model.PortletConstants;
051    import com.liferay.portal.model.PortletPreferencesModel;
052    import com.liferay.portal.model.ResourceConstants;
053    import com.liferay.portal.model.ResourcePermission;
054    import com.liferay.portal.model.ResourcePermissionModel;
055    import com.liferay.portal.model.Role;
056    import com.liferay.portal.model.RoleConstants;
057    import com.liferay.portal.model.RoleModel;
058    import com.liferay.portal.model.SubscriptionConstants;
059    import com.liferay.portal.model.SubscriptionModel;
060    import com.liferay.portal.model.User;
061    import com.liferay.portal.model.UserModel;
062    import com.liferay.portal.model.VirtualHostModel;
063    import com.liferay.portal.model.impl.AccountModelImpl;
064    import com.liferay.portal.model.impl.ClassNameModelImpl;
065    import com.liferay.portal.model.impl.CompanyModelImpl;
066    import com.liferay.portal.model.impl.ContactModelImpl;
067    import com.liferay.portal.model.impl.GroupModelImpl;
068    import com.liferay.portal.model.impl.LayoutFriendlyURLModelImpl;
069    import com.liferay.portal.model.impl.LayoutModelImpl;
070    import com.liferay.portal.model.impl.LayoutSetModelImpl;
071    import com.liferay.portal.model.impl.PortletPreferencesModelImpl;
072    import com.liferay.portal.model.impl.ResourcePermissionModelImpl;
073    import com.liferay.portal.model.impl.RoleModelImpl;
074    import com.liferay.portal.model.impl.SubscriptionModelImpl;
075    import com.liferay.portal.model.impl.UserModelImpl;
076    import com.liferay.portal.model.impl.VirtualHostModelImpl;
077    import com.liferay.portal.security.auth.FullNameGenerator;
078    import com.liferay.portal.security.auth.FullNameGeneratorFactory;
079    import com.liferay.portal.service.permission.PortletPermissionUtil;
080    import com.liferay.portal.util.PortletKeys;
081    import com.liferay.portal.util.PropsValues;
082    import com.liferay.portlet.PortletPreferencesFactory;
083    import com.liferay.portlet.PortletPreferencesFactoryImpl;
084    import com.liferay.portlet.asset.model.AssetCategory;
085    import com.liferay.portlet.asset.model.AssetCategoryConstants;
086    import com.liferay.portlet.asset.model.AssetCategoryModel;
087    import com.liferay.portlet.asset.model.AssetEntryModel;
088    import com.liferay.portlet.asset.model.AssetTag;
089    import com.liferay.portlet.asset.model.AssetTagModel;
090    import com.liferay.portlet.asset.model.AssetTagStatsModel;
091    import com.liferay.portlet.asset.model.AssetVocabulary;
092    import com.liferay.portlet.asset.model.AssetVocabularyModel;
093    import com.liferay.portlet.asset.model.impl.AssetCategoryModelImpl;
094    import com.liferay.portlet.asset.model.impl.AssetEntryModelImpl;
095    import com.liferay.portlet.asset.model.impl.AssetTagModelImpl;
096    import com.liferay.portlet.asset.model.impl.AssetTagStatsModelImpl;
097    import com.liferay.portlet.asset.model.impl.AssetVocabularyModelImpl;
098    import com.liferay.portlet.blogs.model.BlogsEntry;
099    import com.liferay.portlet.blogs.model.BlogsEntryModel;
100    import com.liferay.portlet.blogs.model.BlogsStatsUserModel;
101    import com.liferay.portlet.blogs.model.impl.BlogsEntryModelImpl;
102    import com.liferay.portlet.blogs.model.impl.BlogsStatsUserModelImpl;
103    import com.liferay.portlet.blogs.social.BlogsActivityKeys;
104    import com.liferay.portlet.documentlibrary.model.DLFileEntry;
105    import com.liferay.portlet.documentlibrary.model.DLFileEntryConstants;
106    import com.liferay.portlet.documentlibrary.model.DLFileEntryMetadata;
107    import com.liferay.portlet.documentlibrary.model.DLFileEntryMetadataModel;
108    import com.liferay.portlet.documentlibrary.model.DLFileEntryModel;
109    import com.liferay.portlet.documentlibrary.model.DLFileEntryTypeConstants;
110    import com.liferay.portlet.documentlibrary.model.DLFileEntryTypeModel;
111    import com.liferay.portlet.documentlibrary.model.DLFileVersionModel;
112    import com.liferay.portlet.documentlibrary.model.DLFolder;
113    import com.liferay.portlet.documentlibrary.model.DLFolderModel;
114    import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryMetadataModelImpl;
115    import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryModelImpl;
116    import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryTypeModelImpl;
117    import com.liferay.portlet.documentlibrary.model.impl.DLFileVersionModelImpl;
118    import com.liferay.portlet.documentlibrary.model.impl.DLFolderModelImpl;
119    import com.liferay.portlet.documentlibrary.social.DLActivityKeys;
120    import com.liferay.portlet.dynamicdatalists.model.DDLRecordConstants;
121    import com.liferay.portlet.dynamicdatalists.model.DDLRecordModel;
122    import com.liferay.portlet.dynamicdatalists.model.DDLRecordSet;
123    import com.liferay.portlet.dynamicdatalists.model.DDLRecordSetConstants;
124    import com.liferay.portlet.dynamicdatalists.model.DDLRecordSetModel;
125    import com.liferay.portlet.dynamicdatalists.model.DDLRecordVersionModel;
126    import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordModelImpl;
127    import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordSetModelImpl;
128    import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordVersionModelImpl;
129    import com.liferay.portlet.dynamicdatamapping.model.DDMContent;
130    import com.liferay.portlet.dynamicdatamapping.model.DDMContentModel;
131    import com.liferay.portlet.dynamicdatamapping.model.DDMStorageLink;
132    import com.liferay.portlet.dynamicdatamapping.model.DDMStorageLinkModel;
133    import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
134    import com.liferay.portlet.dynamicdatamapping.model.DDMStructureLinkModel;
135    import com.liferay.portlet.dynamicdatamapping.model.DDMStructureModel;
136    import com.liferay.portlet.dynamicdatamapping.model.impl.DDMContentModelImpl;
137    import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStorageLinkModelImpl;
138    import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureLinkModelImpl;
139    import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureModelImpl;
140    import com.liferay.portlet.dynamicdatamapping.util.DDMImpl;
141    import com.liferay.portlet.journal.model.JournalArticle;
142    import com.liferay.portlet.journal.model.JournalArticleConstants;
143    import com.liferay.portlet.journal.model.JournalArticleModel;
144    import com.liferay.portlet.journal.model.JournalArticleResourceModel;
145    import com.liferay.portlet.journal.model.JournalContentSearchModel;
146    import com.liferay.portlet.journal.model.impl.JournalArticleModelImpl;
147    import com.liferay.portlet.journal.model.impl.JournalArticleResourceModelImpl;
148    import com.liferay.portlet.journal.model.impl.JournalContentSearchModelImpl;
149    import com.liferay.portlet.journal.social.JournalActivityKeys;
150    import com.liferay.portlet.messageboards.model.MBCategory;
151    import com.liferay.portlet.messageboards.model.MBCategoryConstants;
152    import com.liferay.portlet.messageboards.model.MBCategoryModel;
153    import com.liferay.portlet.messageboards.model.MBDiscussion;
154    import com.liferay.portlet.messageboards.model.MBDiscussionModel;
155    import com.liferay.portlet.messageboards.model.MBMailingListModel;
156    import com.liferay.portlet.messageboards.model.MBMessage;
157    import com.liferay.portlet.messageboards.model.MBMessageConstants;
158    import com.liferay.portlet.messageboards.model.MBMessageModel;
159    import com.liferay.portlet.messageboards.model.MBStatsUserModel;
160    import com.liferay.portlet.messageboards.model.MBThread;
161    import com.liferay.portlet.messageboards.model.MBThreadFlagModel;
162    import com.liferay.portlet.messageboards.model.MBThreadModel;
163    import com.liferay.portlet.messageboards.model.impl.MBCategoryModelImpl;
164    import com.liferay.portlet.messageboards.model.impl.MBDiscussionModelImpl;
165    import com.liferay.portlet.messageboards.model.impl.MBMailingListModelImpl;
166    import com.liferay.portlet.messageboards.model.impl.MBMessageModelImpl;
167    import com.liferay.portlet.messageboards.model.impl.MBStatsUserModelImpl;
168    import com.liferay.portlet.messageboards.model.impl.MBThreadFlagModelImpl;
169    import com.liferay.portlet.messageboards.model.impl.MBThreadModelImpl;
170    import com.liferay.portlet.messageboards.social.MBActivityKeys;
171    import com.liferay.portlet.social.model.SocialActivity;
172    import com.liferay.portlet.social.model.SocialActivityConstants;
173    import com.liferay.portlet.social.model.SocialActivityModel;
174    import com.liferay.portlet.social.model.impl.SocialActivityModelImpl;
175    import com.liferay.portlet.wiki.model.WikiNode;
176    import com.liferay.portlet.wiki.model.WikiNodeModel;
177    import com.liferay.portlet.wiki.model.WikiPage;
178    import com.liferay.portlet.wiki.model.WikiPageConstants;
179    import com.liferay.portlet.wiki.model.WikiPageModel;
180    import com.liferay.portlet.wiki.model.WikiPageResourceModel;
181    import com.liferay.portlet.wiki.model.impl.WikiNodeModelImpl;
182    import com.liferay.portlet.wiki.model.impl.WikiPageModelImpl;
183    import com.liferay.portlet.wiki.model.impl.WikiPageResourceModelImpl;
184    import com.liferay.portlet.wiki.social.WikiActivityKeys;
185    import com.liferay.util.SimpleCounter;
186    
187    import java.io.IOException;
188    import java.io.InputStream;
189    import java.io.InputStreamReader;
190    
191    import java.text.Format;
192    
193    import java.util.ArrayList;
194    import java.util.Collections;
195    import java.util.Date;
196    import java.util.HashMap;
197    import java.util.List;
198    import java.util.Map;
199    import java.util.Properties;
200    
201    /**
202     * @author Brian Wing Shun Chan
203     */
204    public class DataFactory {
205    
206            public DataFactory(Properties properties) throws Exception {
207                    initContext(properties);
208    
209                    _counter = new SimpleCounter(_maxGroupsCount + 1);
210                    _timeCounter = new SimpleCounter();
211                    _futureDateCounter = new SimpleCounter();
212                    _resourcePermissionCounter = new SimpleCounter();
213                    _socialActivityCounter = new SimpleCounter();
214                    _userScreenNameCounter = new SimpleCounter();
215    
216                    _classNameModels = new ArrayList<ClassNameModel>();
217    
218                    List<String> models = ModelHintsUtil.getModels();
219    
220                    for (String model : models) {
221                            ClassNameModel classNameModel = new ClassNameModelImpl();
222    
223                            long classNameId = _counter.get();
224    
225                            classNameModel.setClassNameId(classNameId);
226    
227                            classNameModel.setValue(model);
228    
229                            _classNameModels.add(classNameModel);
230    
231                            _classNameModelsMap.put(model, classNameId);
232                    }
233    
234                    _accountId = _counter.get();
235                    _companyId = _counter.get();
236                    _defaultUserId = _counter.get();
237                    _globalGroupId = _counter.get();
238                    _guestGroupId = _counter.get();
239                    _sampleUserId = _counter.get();
240    
241                    _dlDDMStructureContent = StringUtil.read(
242                            getResourceInputStream("ddm_structure_basic_document.xml"));
243    
244                    initAssetCategoryModels();
245                    initAssetTagModels();
246                    initCompanyModel();
247                    initDLFileEntryTypeModel();
248                    initGroupModels();
249    
250                    int maxJournalArticleSize = GetterUtil.getInteger(
251                            properties.getProperty("sample.sql.max.journal.article.size"));
252    
253                    initJournalArticleContent(maxJournalArticleSize);
254    
255                    initRoleModels();
256                    initUserNames();
257                    initUserModels();
258                    initVirtualHostModel();
259            }
260    
261            public AccountModel getAccountModel() {
262                    return _accountModel;
263            }
264    
265            public RoleModel getAdministratorRoleModel() {
266                    return _administratorRoleModel;
267            }
268    
269            public List<Long> getAssetCategoryIds(long groupId) {
270                    SimpleCounter counter = _assetCategoryCounters.get(groupId);
271    
272                    if (counter == null) {
273                            counter = new SimpleCounter(0);
274    
275                            _assetCategoryCounters.put(groupId, counter);
276                    }
277    
278                    List<AssetCategoryModel> assetCategoryModels =
279                            _assetCategoryModelsArray[(int)groupId - 1];
280    
281                    if ((assetCategoryModels == null) || assetCategoryModels.isEmpty()) {
282                            return Collections.emptyList();
283                    }
284    
285                    List<Long> assetCategoryIds = new ArrayList<Long>(
286                            _maxAssetEntryToAssetCategoryCount);
287    
288                    for (int i = 0; i < _maxAssetEntryToAssetCategoryCount; i++) {
289                            int index = (int)counter.get() % assetCategoryModels.size();
290    
291                            AssetCategoryModel assetCategoryModel = assetCategoryModels.get(
292                                    index);
293    
294                            assetCategoryIds.add(assetCategoryModel.getCategoryId());
295                    }
296    
297                    return assetCategoryIds;
298            }
299    
300            public List<AssetCategoryModel> getAssetCategoryModels() {
301                    List<AssetCategoryModel> allAssetCategoryModels =
302                            new ArrayList<AssetCategoryModel>();
303    
304                    for (List<AssetCategoryModel> assetCategoryModels :
305                                    _assetCategoryModelsArray) {
306    
307                            allAssetCategoryModels.addAll(assetCategoryModels);
308                    }
309    
310                    return allAssetCategoryModels;
311            }
312    
313            public List<Long> getAssetTagIds(long groupId) {
314                    SimpleCounter counter = _assetTagCounters.get(groupId);
315    
316                    if (counter == null) {
317                            counter = new SimpleCounter(0);
318    
319                            _assetTagCounters.put(groupId, counter);
320                    }
321    
322                    List<AssetTagModel> assetTagModels =
323                            _assetTagModelsArray[(int)groupId - 1];
324    
325                    if ((assetTagModels == null) || assetTagModels.isEmpty()) {
326                            return Collections.emptyList();
327                    }
328    
329                    List<Long> assetTagIds = new ArrayList<Long>(
330                            _maxAssetEntryToAssetTagCount);
331    
332                    for (int i = 0; i < _maxAssetEntryToAssetTagCount; i++) {
333                            int index = (int)counter.get() % assetTagModels.size();
334    
335                            AssetTagModel assetTagModel = assetTagModels.get(index);
336    
337                            assetTagIds.add(assetTagModel.getTagId());
338                    }
339    
340                    return assetTagIds;
341            }
342    
343            public List<AssetTagModel> getAssetTagModels() {
344                    List<AssetTagModel> allAssetTagModels = new ArrayList<AssetTagModel>();
345    
346                    for (List<AssetTagModel> assetTagModels : _assetTagModelsArray) {
347                            allAssetTagModels.addAll(assetTagModels);
348                    }
349    
350                    return allAssetTagModels;
351            }
352    
353            public List<AssetTagStatsModel> getAssetTagStatsModels() {
354                    List<AssetTagStatsModel> allAssetTagStatsModels =
355                            new ArrayList<AssetTagStatsModel>();
356    
357                    for (List<AssetTagStatsModel> assetTagStatsModels :
358                                    _assetTagStatsModelsArray) {
359    
360                            allAssetTagStatsModels.addAll(assetTagStatsModels);
361                    }
362    
363                    return allAssetTagStatsModels;
364            }
365    
366            public List<AssetVocabularyModel> getAssetVocabularyModels() {
367                    List<AssetVocabularyModel> allAssetVocabularyModels =
368                            new ArrayList<AssetVocabularyModel>();
369    
370                    allAssetVocabularyModels.add(_defaultAssetVocabularyModel);
371    
372                    for (List<AssetVocabularyModel> assetVocabularyModels :
373                                    _assetVocabularyModelsArray) {
374    
375                            allAssetVocabularyModels.addAll(assetVocabularyModels);
376                    }
377    
378                    return allAssetVocabularyModels;
379            }
380    
381            public long getBlogsEntryClassNameId() {
382                    return _classNameModelsMap.get(BlogsEntry.class.getName());
383            }
384    
385            public List<ClassNameModel> getClassNameModels() {
386                    return _classNameModels;
387            }
388    
389            public CompanyModel getCompanyModel() {
390                    return _companyModel;
391            }
392    
393            public SimpleCounter getCounter() {
394                    return _counter;
395            }
396    
397            public long getCounterNext() {
398                    return _counter.get();
399            }
400    
401            public String getDateLong(Date date) {
402                    return String.valueOf(date.getTime());
403            }
404    
405            public String getDateString(Date date) {
406                    if (date == null) {
407                            return null;
408                    }
409    
410                    return _simpleDateFormat.format(date);
411            }
412    
413            public long getDDLRecordSetClassNameId() {
414                    return _classNameModelsMap.get(DDLRecordSet.class.getName());
415            }
416    
417            public long getDefaultDLDDMStructureId() {
418                    return _defaultDLDDMStructureModel.getStructureId();
419            }
420    
421            public DDMStructureModel getDefaultDLDDMStructureModel() {
422                    return _defaultDLDDMStructureModel;
423            }
424    
425            public DLFileEntryTypeModel getDefaultDLFileEntryTypeModel() {
426                    return _defaultDLFileEntryTypeModel;
427            }
428    
429            public UserModel getDefaultUserModel() {
430                    return _defaultUserModel;
431            }
432    
433            public long getDLFileEntryClassNameId() {
434                    return _classNameModelsMap.get(DLFileEntry.class.getName());
435            }
436    
437            public GroupModel getGlobalGroupModel() {
438                    return _globalGroupModel;
439            }
440    
441            public long getGroupClassNameId() {
442                    return _classNameModelsMap.get(Group.class.getName());
443            }
444    
445            public List<GroupModel> getGroupModels() {
446                    return _groupModels;
447            }
448    
449            public GroupModel getGuestGroupModel() {
450                    return _guestGroupModel;
451            }
452    
453            public UserModel getGuestUserModel() {
454                    return _guestUserModel;
455            }
456    
457            public long getJournalArticleClassNameId() {
458                    return _classNameModelsMap.get(JournalArticle.class.getName());
459            }
460    
461            public String getJournalArticleLayoutColumn(String portletPrefix) {
462                    StringBundler sb = new StringBundler(3 * _maxJournalArticleCount);
463    
464                    for (int i = 1; i <= _maxJournalArticleCount; i++) {
465                            sb.append(portletPrefix);
466                            sb.append(i);
467                            sb.append(StringPool.COMMA);
468                    }
469    
470                    return sb.toString();
471            }
472    
473            public long getLayoutClassNameId() {
474                    return _classNameModelsMap.get(Layout.class.getName());
475            }
476    
477            public int getMaxAssetPublisherPageCount() {
478                    return _maxAssetPublisherPageCount;
479            }
480    
481            public int getMaxBlogsEntryCommentCount() {
482                    return _maxBlogsEntryCommentCount;
483            }
484    
485            public int getMaxDDLRecordCount() {
486                    return _maxDDLRecordCount;
487            }
488    
489            public int getMaxDDLRecordSetCount() {
490                    return _maxDDLRecordSetCount;
491            }
492    
493            public int getMaxDLFolderDepth() {
494                    return _maxDLFolderDepth;
495            }
496    
497            public int getMaxGroupCount() {
498                    return _maxGroupsCount;
499            }
500    
501            public int getMaxJournalArticleCount() {
502                    return _maxJournalArticleCount;
503            }
504    
505            public int getMaxJournalArticlePageCount() {
506                    return _maxJournalArticlePageCount;
507            }
508    
509            public int getMaxJournalArticleVersionCount() {
510                    return _maxJournalArticleVersionCount;
511            }
512    
513            public int getMaxWikiPageCommentCount() {
514                    return _maxWikiPageCommentCount;
515            }
516    
517            public List<Long> getNewUserGroupIds(long groupId) {
518                    List<Long> groupIds = new ArrayList<Long>(_maxUserToGroupCount + 1);
519    
520                    groupIds.add(_guestGroupModel.getGroupId());
521    
522                    if ((groupId + _maxUserToGroupCount) > _maxGroupsCount) {
523                            groupId = groupId - _maxUserToGroupCount + 1;
524                    }
525    
526                    for (int i = 0; i < _maxUserToGroupCount; i++) {
527                            groupIds.add(groupId + i);
528                    }
529    
530                    return groupIds;
531            }
532    
533            public RoleModel getPowerUserRoleModel() {
534                    return _powerUserRoleModel;
535            }
536    
537            public List<RoleModel> getRoleModels() {
538                    return _roleModels;
539            }
540    
541            public UserModel getSampleUserModel() {
542                    return _sampleUserModel;
543            }
544    
545            public List<Integer> getSequence(int size) {
546                    List<Integer> sequence = new ArrayList<Integer>(size);
547    
548                    for (int i = 1; i <= size; i++) {
549                            sequence.add(i);
550                    }
551    
552                    return sequence;
553            }
554    
555            public RoleModel getUserRoleModel() {
556                    return _userRoleModel;
557            }
558    
559            public VirtualHostModel getVirtualHostModel() {
560                    return _virtualHostModel;
561            }
562    
563            public long getWikiPageClassNameId() {
564                    return _classNameModelsMap.get(WikiPage.class.getName());
565            }
566    
567            public void initAssetCategoryModels() {
568                    _assetCategoryModelsArray =
569                            (List<AssetCategoryModel>[])new List<?>[_maxGroupsCount];
570                    _assetVocabularyModelsArray =
571                            (List<AssetVocabularyModel>[])new List<?>[_maxGroupsCount];
572                    _defaultAssetVocabularyModel = newAssetVocabularyModel(
573                            _globalGroupId, _defaultUserId, null,
574                            PropsValues.ASSET_VOCABULARY_DEFAULT);
575    
576                    StringBundler sb = new StringBundler(4);
577    
578                    for (int i = 1; i <= _maxGroupsCount; i++) {
579                            List<AssetVocabularyModel> assetVocabularyModels =
580                                    new ArrayList<AssetVocabularyModel>(_maxAssetVocabularyCount);
581                            List<AssetCategoryModel> assetCategoryModels =
582                                    new ArrayList<AssetCategoryModel>(
583                                            _maxAssetVocabularyCount * _maxAssetCategoryCount);
584    
585                            long lastRightCategoryId = 2;
586    
587                            for (int j = 0; j < _maxAssetVocabularyCount; j++) {
588                                    sb.setIndex(0);
589    
590                                    sb.append("TestVocabulary_");
591                                    sb.append(i);
592                                    sb.append(StringPool.UNDERLINE);
593                                    sb.append(j);
594    
595                                    AssetVocabularyModel assetVocabularyModel =
596                                            newAssetVocabularyModel(
597                                                    i, _sampleUserId, _SAMPLE_USER_NAME, sb.toString());
598    
599                                    assetVocabularyModels.add(assetVocabularyModel);
600    
601                                    for (int k = 0; k < _maxAssetCategoryCount; k++) {
602                                            sb.setIndex(0);
603    
604                                            sb.append("TestCategory_");
605                                            sb.append(assetVocabularyModel.getVocabularyId());
606                                            sb.append(StringPool.UNDERLINE);
607                                            sb.append(k);
608    
609                                            AssetCategoryModel assetCategoryModel =
610                                                    newAssetCategoryModel(
611                                                            i, lastRightCategoryId, sb.toString(),
612                                                            assetVocabularyModel.getVocabularyId());
613    
614                                            lastRightCategoryId += 2;
615    
616                                            assetCategoryModels.add(assetCategoryModel);
617                                    }
618                            }
619    
620                            _assetCategoryModelsArray[i - 1] = assetCategoryModels;
621                            _assetVocabularyModelsArray[i - 1] = assetVocabularyModels;
622                    }
623            }
624    
625            public void initAssetTagModels() {
626                    _assetTagModelsArray =
627                            (List<AssetTagModel>[])new List<?>[_maxGroupsCount];
628                    _assetTagStatsModelsArray =
629                            (List<AssetTagStatsModel>[])new List<?>[_maxGroupsCount];
630    
631                    for (int i = 1; i <= _maxGroupsCount; i++) {
632                            List<AssetTagModel> assetTagModels = new ArrayList<AssetTagModel>(
633                                    _maxAssetTagCount);
634                            List<AssetTagStatsModel> assetTagStatsModels =
635                                    new ArrayList<AssetTagStatsModel>(_maxAssetTagCount * 3);
636    
637                            for (int j = 0; j < _maxAssetTagCount; j++) {
638                                    AssetTagModel assetTagModel = new AssetTagModelImpl();
639    
640                                    assetTagModel.setTagId(_counter.get());
641                                    assetTagModel.setGroupId(i);
642                                    assetTagModel.setCompanyId(_companyId);
643                                    assetTagModel.setUserId(_sampleUserId);
644                                    assetTagModel.setUserName(_SAMPLE_USER_NAME);
645                                    assetTagModel.setCreateDate(new Date());
646                                    assetTagModel.setModifiedDate(new Date());
647                                    assetTagModel.setName("TestTag_" + i + "_" + j);
648    
649                                    assetTagModels.add(assetTagModel);
650    
651                                    AssetTagStatsModel assetTagStatsModel = newAssetTagStatsModel(
652                                            assetTagModel.getTagId(),
653                                            _classNameModelsMap.get(BlogsEntry.class.getName()));
654    
655                                    assetTagStatsModels.add(assetTagStatsModel);
656    
657                                    assetTagStatsModel = newAssetTagStatsModel(
658                                            assetTagModel.getTagId(),
659                                            _classNameModelsMap.get(JournalArticle.class.getName()));
660    
661                                    assetTagStatsModels.add(assetTagStatsModel);
662    
663                                    assetTagStatsModel = newAssetTagStatsModel(
664                                            assetTagModel.getTagId(),
665                                            _classNameModelsMap.get(WikiPage.class.getName()));
666    
667                                    assetTagStatsModels.add(assetTagStatsModel);
668                            }
669    
670                            _assetTagModelsArray[i - 1] = assetTagModels;
671                            _assetTagStatsModelsArray[i - 1] = assetTagStatsModels;
672                    }
673            }
674    
675            public void initCompanyModel() {
676                    _companyModel = new CompanyModelImpl();
677    
678                    _companyModel.setCompanyId(_companyId);
679                    _companyModel.setAccountId(_accountId);
680                    _companyModel.setWebId("liferay.com");
681                    _companyModel.setMx("liferay.com");
682                    _companyModel.setActive(true);
683    
684                    _accountModel = new AccountModelImpl();
685    
686                    _accountModel.setAccountId(_accountId);
687                    _accountModel.setCompanyId(_companyId);
688                    _accountModel.setCreateDate(new Date());
689                    _accountModel.setModifiedDate(new Date());
690                    _accountModel.setName("Liferay");
691                    _accountModel.setLegalName("Liferay, Inc.");
692            }
693    
694            public void initContext(Properties properties) {
695                    _maxAssetCategoryCount = GetterUtil.getInteger(
696                            properties.getProperty("sample.sql.max.asset.category.count"));
697                    _maxAssetEntryToAssetCategoryCount = GetterUtil.getInteger(
698                            properties.getProperty(
699                                    "sample.sql.max.asset.entry.to.asset.category.count"));
700                    _maxAssetEntryToAssetTagCount = GetterUtil.getInteger(
701                            properties.getProperty(
702                                    "sample.sql.max.asset.entry.to.asset.tag.count"));
703                    _maxAssetPublisherFilterRuleCount = GetterUtil.getInteger(
704                            properties.getProperty(
705                                    "sample.sql.max.asset.publisher.filter.rule.count"));
706                    _maxAssetPublisherPageCount = GetterUtil.getInteger(
707                            properties.getProperty(
708                                    "sample.sql.max.asset.publisher.page.count"));
709                    _maxAssetTagCount = GetterUtil.getInteger(
710                            properties.getProperty("sample.sql.max.asset.tag.count"));
711                    _maxAssetVocabularyCount = GetterUtil.getInteger(
712                            properties.getProperty("sample.sql.max.asset.vocabulary.count"));
713                    _maxBlogsEntryCommentCount = GetterUtil.getInteger(
714                            properties.getProperty("sample.sql.max.blogs.entry.comment.count"));
715                    _maxBlogsEntryCount = GetterUtil.getInteger(
716                            properties.getProperty("sample.sql.max.blogs.entry.count"));
717                    _maxDDLCustomFieldCount = GetterUtil.getInteger(
718                            properties.getProperty("sample.sql.max.ddl.custom.field.count"));
719                    _maxDDLRecordCount = GetterUtil.getInteger(
720                            properties.getProperty("sample.sql.max.ddl.record.count"));
721                    _maxDDLRecordSetCount = GetterUtil.getInteger(
722                            properties.getProperty("sample.sql.max.ddl.record.set.count"));
723                    _maxDLFileEntryCount = GetterUtil.getInteger(
724                            properties.getProperty("sample.sql.max.dl.file.entry.count"));
725                    _maxDLFileEntrySize = GetterUtil.getInteger(
726                            properties.getProperty("sample.sql.max.dl.file.entry.size"));
727                    _maxDLFolderCount = GetterUtil.getInteger(
728                            properties.getProperty("sample.sql.max.dl.folder.count"));
729                    _maxDLFolderDepth = GetterUtil.getInteger(
730                            properties.getProperty("sample.sql.max.dl.folder.depth"));
731                    _maxGroupsCount = GetterUtil.getInteger(
732                            properties.getProperty("sample.sql.max.group.count"));
733                    _maxJournalArticleCount = GetterUtil.getInteger(
734                            properties.getProperty("sample.sql.max.journal.article.count"));
735                    _maxJournalArticlePageCount = GetterUtil.getInteger(
736                            properties.getProperty(
737                                    "sample.sql.max.journal.article.page.count"));
738                    _maxJournalArticleVersionCount = GetterUtil.getInteger(
739                            properties.getProperty(
740                                    "sample.sql.max.journal.article.version.count"));
741                    _maxMBCategoryCount = GetterUtil.getInteger(
742                            properties.getProperty("sample.sql.max.mb.category.count"));
743                    _maxMBMessageCount = GetterUtil.getInteger(
744                            properties.getProperty("sample.sql.max.mb.message.count"));
745                    _maxMBThreadCount = GetterUtil.getInteger(
746                            properties.getProperty("sample.sql.max.mb.thread.count"));
747                    _maxUserCount = GetterUtil.getInteger(
748                            properties.getProperty("sample.sql.max.user.count"));
749                    _maxUserToGroupCount = GetterUtil.getInteger(
750                            properties.getProperty("sample.sql.max.user.to.group.count"));
751                    _maxWikiNodeCount = GetterUtil.getInteger(
752                            properties.getProperty("sample.sql.max.wiki.node.count"));
753                    _maxWikiPageCommentCount = GetterUtil.getInteger(
754                            properties.getProperty("sample.sql.max.wiki.page.comment.count"));
755                    _maxWikiPageCount = GetterUtil.getInteger(
756                            properties.getProperty("sample.sql.max.wiki.page.count"));
757            }
758    
759            public void initDLFileEntryTypeModel() {
760                    _defaultDLFileEntryTypeModel = new DLFileEntryTypeModelImpl();
761    
762                    _defaultDLFileEntryTypeModel.setUuid(SequentialUUID.generate());
763                    _defaultDLFileEntryTypeModel.setFileEntryTypeId(
764                            DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT);
765                    _defaultDLFileEntryTypeModel.setCreateDate(nextFutureDate());
766                    _defaultDLFileEntryTypeModel.setModifiedDate(nextFutureDate());
767                    _defaultDLFileEntryTypeModel.setFileEntryTypeKey(
768                            DLFileEntryTypeConstants.NAME_BASIC_DOCUMENT.toUpperCase());
769    
770                    StringBundler sb = new StringBundler(5);
771    
772                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
773                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
774                    sb.append("<name language-id=\"en_US\">");
775                    sb.append(DLFileEntryTypeConstants.NAME_BASIC_DOCUMENT);
776                    sb.append("</name></root>");
777    
778                    _defaultDLFileEntryTypeModel.setName(sb.toString());
779    
780                    _defaultDLDDMStructureModel = newDDMStructureModel(
781                            _guestGroupId, getDLFileEntryClassNameId(), "TIKARAWMETADATA",
782                            _dlDDMStructureContent);
783            }
784    
785            public void initGroupModels() throws Exception {
786                    long groupClassNameId = getGroupClassNameId();
787    
788                    _globalGroupModel = newGroupModel(
789                            _globalGroupId, _classNameModelsMap.get(Company.class.getName()),
790                            _companyId, GroupConstants.GLOBAL, false);
791    
792                    _guestGroupModel = newGroupModel(
793                            _guestGroupId, groupClassNameId, _guestGroupId,
794                            GroupConstants.GUEST, true);
795    
796                    _groupModels = new ArrayList<GroupModel>(_maxGroupsCount);
797    
798                    for (int i = 1; i <= _maxGroupsCount; i++) {
799                            GroupModel groupModel = newGroupModel(
800                                    i, groupClassNameId, i, "Site " + i, true);
801    
802                            _groupModels.add(groupModel);
803                    }
804            }
805    
806            public void initJournalArticleContent(int maxJournalArticleSize) {
807                    StringBundler sb = new StringBundler(5);
808    
809                    sb.append("<?xml version=\"1.0\"?><root available-locales=\"en_US\" ");
810                    sb.append("default-locale=\"en_US\"><static-content language-id=");
811                    sb.append("\"en_US\"><![CDATA[<p>");
812    
813                    if (maxJournalArticleSize <= 0) {
814                            maxJournalArticleSize = 1;
815                    }
816    
817                    char[] chars = new char[maxJournalArticleSize];
818    
819                    for (int i = 0; i < maxJournalArticleSize; i++) {
820                            chars[i] = (char)(CharPool.LOWER_CASE_A + (i % 26));
821                    }
822    
823                    sb.append(new String(chars));
824    
825                    sb.append("</p>]]></static-content></root>");
826    
827                    _journalArticleContent = sb.toString();
828            }
829    
830            public void initRoleModels() {
831                    _roleModels = new ArrayList<RoleModel>();
832    
833                    // Administrator
834    
835                    _administratorRoleModel = newRoleModel(
836                            RoleConstants.ADMINISTRATOR, RoleConstants.TYPE_REGULAR);
837    
838                    _roleModels.add(_administratorRoleModel);
839    
840                    // Guest
841    
842                    _guestRoleModel = newRoleModel(
843                            RoleConstants.GUEST, RoleConstants.TYPE_REGULAR);
844    
845                    _roleModels.add(_guestRoleModel);
846    
847                    // Organization Administrator
848    
849                    RoleModel organizationAdministratorRoleModel = newRoleModel(
850                            RoleConstants.ORGANIZATION_ADMINISTRATOR,
851                            RoleConstants.TYPE_ORGANIZATION);
852    
853                    _roleModels.add(organizationAdministratorRoleModel);
854    
855                    // Organization Owner
856    
857                    RoleModel organizationOwnerRoleModel = newRoleModel(
858                            RoleConstants.ORGANIZATION_OWNER, RoleConstants.TYPE_ORGANIZATION);
859    
860                    _roleModels.add(organizationOwnerRoleModel);
861    
862                    // Organization User
863    
864                    RoleModel organizationUserRoleModel = newRoleModel(
865                            RoleConstants.ORGANIZATION_USER, RoleConstants.TYPE_ORGANIZATION);
866    
867                    _roleModels.add(organizationUserRoleModel);
868    
869                    // Owner
870    
871                    _ownerRoleModel = newRoleModel(
872                            RoleConstants.OWNER, RoleConstants.TYPE_REGULAR);
873    
874                    _roleModels.add(_ownerRoleModel);
875    
876                    // Power User
877    
878                    _powerUserRoleModel = newRoleModel(
879                            RoleConstants.POWER_USER, RoleConstants.TYPE_REGULAR);
880    
881                    _roleModels.add(_powerUserRoleModel);
882    
883                    // Site Administrator
884    
885                    RoleModel siteAdministratorRoleModel = newRoleModel(
886                            RoleConstants.SITE_ADMINISTRATOR, RoleConstants.TYPE_SITE);
887    
888                    _roleModels.add(siteAdministratorRoleModel);
889    
890                    // Site Member
891    
892                    _siteMemberRoleModel = newRoleModel(
893                            RoleConstants.SITE_MEMBER, RoleConstants.TYPE_SITE);
894    
895                    _roleModels.add(_siteMemberRoleModel);
896    
897                    // Site Owner
898    
899                    RoleModel siteOwnerRoleModel = newRoleModel(
900                            RoleConstants.SITE_OWNER, RoleConstants.TYPE_SITE);
901    
902                    _roleModels.add(siteOwnerRoleModel);
903    
904                    // User
905    
906                    _userRoleModel = newRoleModel(
907                            RoleConstants.USER, RoleConstants.TYPE_REGULAR);
908    
909                    _roleModels.add(_userRoleModel);
910            }
911    
912            public void initUserModels() {
913                    _defaultUserModel = newUserModel(
914                            _defaultUserId, StringPool.BLANK, StringPool.BLANK,
915                            StringPool.BLANK, true);
916                    _guestUserModel = newUserModel(
917                            _counter.get(), "Test", "Test", "Test", false);
918                    _sampleUserModel = newUserModel(
919                            _sampleUserId, _SAMPLE_USER_NAME, _SAMPLE_USER_NAME,
920                            _SAMPLE_USER_NAME, false);
921            }
922    
923            public void initUserNames() throws IOException {
924                    _firstNames = new ArrayList<String>();
925    
926                    UnsyncBufferedReader unsyncBufferedReader = new UnsyncBufferedReader(
927                            new InputStreamReader(getResourceInputStream("first_names.txt")));
928    
929                    String line = null;
930    
931                    while ((line = unsyncBufferedReader.readLine()) != null) {
932                            _firstNames.add(line);
933                    }
934    
935                    unsyncBufferedReader.close();
936    
937                    _lastNames = new ArrayList<String>();
938    
939                    unsyncBufferedReader = new UnsyncBufferedReader(
940                            new InputStreamReader(getResourceInputStream("last_names.txt")));
941    
942                    while ((line = unsyncBufferedReader.readLine()) != null) {
943                            _lastNames.add(line);
944                    }
945    
946                    unsyncBufferedReader.close();
947            }
948    
949            public void initVirtualHostModel() {
950                    _virtualHostModel = new VirtualHostModelImpl();
951    
952                    _virtualHostModel.setVirtualHostId(_counter.get());
953                    _virtualHostModel.setCompanyId(_companyId);
954                    _virtualHostModel.setHostname("localhost");
955            }
956    
957            public AssetEntryModel newAssetEntryModel(BlogsEntryModel blogsEntryModel) {
958                    return newAssetEntryModel(
959                            blogsEntryModel.getGroupId(), blogsEntryModel.getCreateDate(),
960                            blogsEntryModel.getModifiedDate(), getBlogsEntryClassNameId(),
961                            blogsEntryModel.getEntryId(), blogsEntryModel.getUuid(), 0, true,
962                            ContentTypes.TEXT_HTML, blogsEntryModel.getTitle());
963            }
964    
965            public AssetEntryModel newAssetEntryModel(
966                    DLFileEntryModel dLFileEntryModel) {
967    
968                    return newAssetEntryModel(
969                            dLFileEntryModel.getGroupId(), dLFileEntryModel.getCreateDate(),
970                            dLFileEntryModel.getModifiedDate(), getDLFileEntryClassNameId(),
971                            dLFileEntryModel.getFileEntryId(), dLFileEntryModel.getUuid(),
972                            dLFileEntryModel.getFileEntryTypeId(), true,
973                            dLFileEntryModel.getMimeType(), dLFileEntryModel.getTitle());
974            }
975    
976            public AssetEntryModel newAssetEntryModel(DLFolderModel dLFolderModel) {
977                    return newAssetEntryModel(
978                            dLFolderModel.getGroupId(), dLFolderModel.getCreateDate(),
979                            dLFolderModel.getModifiedDate(),
980                            _classNameModelsMap.get(DLFolder.class.getName()),
981                            dLFolderModel.getFolderId(), dLFolderModel.getUuid(), 0, true, null,
982                            dLFolderModel.getName());
983            }
984    
985            public AssetEntryModel newAssetEntryModel(
986                    JournalArticleModel journalArticleModel) {
987    
988                    return newAssetEntryModel(
989                            journalArticleModel.getGroupId(),
990                            journalArticleModel.getCreateDate(),
991                            journalArticleModel.getModifiedDate(),
992                            getJournalArticleClassNameId(),
993                            journalArticleModel.getResourcePrimKey(),
994                            journalArticleModel.getUuid(), 0, true, ContentTypes.TEXT_HTML,
995                            journalArticleModel.getTitle());
996            }
997    
998            public AssetEntryModel newAssetEntryModel(MBMessageModel mbMessageModel) {
999                    long classNameId = 0;
1000                    boolean visible = false;
1001    
1002                    if (mbMessageModel.getCategoryId() ==
1003                                    MBCategoryConstants.DISCUSSION_CATEGORY_ID) {
1004    
1005                            classNameId = _classNameModelsMap.get(MBDiscussion.class.getName());
1006                    }
1007                    else {
1008                            classNameId = _classNameModelsMap.get(MBMessage.class.getName());
1009                            visible = true;
1010                    }
1011    
1012                    return newAssetEntryModel(
1013                            mbMessageModel.getGroupId(), mbMessageModel.getCreateDate(),
1014                            mbMessageModel.getModifiedDate(), classNameId,
1015                            mbMessageModel.getMessageId(), mbMessageModel.getUuid(), 0, visible,
1016                            ContentTypes.TEXT_HTML, mbMessageModel.getSubject());
1017            }
1018    
1019            public AssetEntryModel newAssetEntryModel(MBThreadModel mbThreadModel) {
1020                    return newAssetEntryModel(
1021                            mbThreadModel.getGroupId(), mbThreadModel.getCreateDate(),
1022                            mbThreadModel.getModifiedDate(),
1023                            _classNameModelsMap.get(MBThread.class.getName()),
1024                            mbThreadModel.getThreadId(), mbThreadModel.getUuid(), 0, false,
1025                            StringPool.BLANK, String.valueOf(mbThreadModel.getRootMessageId()));
1026            }
1027    
1028            public AssetEntryModel newAssetEntryModel(WikiPageModel wikiPageModel) {
1029                    return newAssetEntryModel(
1030                            wikiPageModel.getGroupId(), wikiPageModel.getCreateDate(),
1031                            wikiPageModel.getModifiedDate(), getWikiPageClassNameId(),
1032                            wikiPageModel.getResourcePrimKey(), wikiPageModel.getUuid(), 0,
1033                            true, ContentTypes.TEXT_HTML, wikiPageModel.getTitle());
1034            }
1035    
1036            public List<PortletPreferencesModel>
1037                    newAssetPublisherPortletPreferencesModels(long plid) {
1038    
1039                    List<PortletPreferencesModel> portletPreferencesModels =
1040                            new ArrayList<PortletPreferencesModel>(4);
1041    
1042                    portletPreferencesModels.add(
1043                            newPortletPreferencesModel(
1044                                    plid, PortletKeys.BLOGS, PortletConstants.DEFAULT_PREFERENCES));
1045                    portletPreferencesModels.add(
1046                            newPortletPreferencesModel(
1047                                    plid, PortletKeys.DOCKBAR,
1048                                    PortletConstants.DEFAULT_PREFERENCES));
1049                    portletPreferencesModels.add(
1050                            newPortletPreferencesModel(
1051                                    plid, PortletKeys.JOURNAL,
1052                                    PortletConstants.DEFAULT_PREFERENCES));
1053                    portletPreferencesModels.add(
1054                            newPortletPreferencesModel(
1055                                    plid, PortletKeys.WIKI, PortletConstants.DEFAULT_PREFERENCES));
1056    
1057                    return portletPreferencesModels;
1058            }
1059    
1060            public List<BlogsEntryModel> newBlogsEntryModels(long groupId) {
1061                    List<BlogsEntryModel> blogEntryModels = new ArrayList<BlogsEntryModel>(
1062                            _maxBlogsEntryCount);
1063    
1064                    for (int i = 1; i <= _maxBlogsEntryCount; i++) {
1065                            blogEntryModels.add(newBlogsEntryModel(groupId, i));
1066                    }
1067    
1068                    return blogEntryModels;
1069            }
1070    
1071            public BlogsStatsUserModel newBlogsStatsUserModel(long groupId) {
1072                    BlogsStatsUserModel blogsStatsUserModel = new BlogsStatsUserModelImpl();
1073    
1074                    blogsStatsUserModel.setStatsUserId(_counter.get());
1075                    blogsStatsUserModel.setGroupId(groupId);
1076                    blogsStatsUserModel.setCompanyId(_companyId);
1077                    blogsStatsUserModel.setUserId(_sampleUserId);
1078                    blogsStatsUserModel.setEntryCount(_maxBlogsEntryCount);
1079                    blogsStatsUserModel.setLastPostDate(new Date());
1080    
1081                    return blogsStatsUserModel;
1082            }
1083    
1084            public ContactModel newContactModel(UserModel userModel) {
1085                    ContactModel contactModel = new ContactModelImpl();
1086    
1087                    contactModel.setContactId(userModel.getContactId());
1088                    contactModel.setCompanyId(userModel.getCompanyId());
1089                    contactModel.setUserId(userModel.getUserId());
1090    
1091                    FullNameGenerator fullNameGenerator =
1092                            FullNameGeneratorFactory.getInstance();
1093    
1094                    String fullName = fullNameGenerator.getFullName(
1095                            userModel.getFirstName(), userModel.getMiddleName(),
1096                            userModel.getLastName());
1097    
1098                    contactModel.setUserName(fullName);
1099                    contactModel.setCreateDate(new Date());
1100                    contactModel.setModifiedDate(new Date());
1101                    contactModel.setClassNameId(
1102                            _classNameModelsMap.get(User.class.getName()));
1103                    contactModel.setClassPK(userModel.getUserId());
1104                    contactModel.setAccountId(_accountId);
1105                    contactModel.setParentContactId(
1106                            ContactConstants.DEFAULT_PARENT_CONTACT_ID);
1107                    contactModel.setEmailAddress(userModel.getEmailAddress());
1108                    contactModel.setFirstName(userModel.getFirstName());
1109                    contactModel.setLastName(userModel.getLastName());
1110                    contactModel.setMale(true);
1111                    contactModel.setBirthday(new Date());
1112    
1113                    return contactModel;
1114            }
1115    
1116            public List<CounterModel> newCounterModels() {
1117                    List<CounterModel> counterModels = new ArrayList<CounterModel>();
1118    
1119                    // Counter
1120    
1121                    CounterModel counterModel = new CounterModelImpl();
1122    
1123                    counterModel.setName(Counter.class.getName());
1124                    counterModel.setCurrentId(_counter.get());
1125    
1126                    counterModels.add(counterModel);
1127    
1128                    // ResourcePermission
1129    
1130                    counterModel = new CounterModelImpl();
1131    
1132                    counterModel.setName(ResourcePermission.class.getName());
1133                    counterModel.setCurrentId(_resourcePermissionCounter.get());
1134    
1135                    counterModels.add(counterModel);
1136    
1137                    // SocialActivity
1138    
1139                    counterModel = new CounterModelImpl();
1140    
1141                    counterModel.setName(SocialActivity.class.getName());
1142                    counterModel.setCurrentId(_socialActivityCounter.get());
1143    
1144                    counterModels.add(counterModel);
1145    
1146                    return counterModels;
1147            }
1148    
1149            public DDMStructureModel newDDLDDMStructureModel(long groupId) {
1150                    StringBundler sb = new StringBundler(3 + _maxDDLCustomFieldCount * 10);
1151    
1152                    sb.append("<?xml version=\"1.0\"?>");
1153                    sb.append(
1154                            "<root available-locales=\"en_US\" default-locale=\"en_US\">");
1155    
1156                    for (int i = 0; i < _maxDDLCustomFieldCount; i++) {
1157                            sb.append(
1158                                    "<dynamic-element dataType=\"string\" indexType=\"keyword\"");
1159                            sb.append(" name=\"");
1160                            sb.append(nextDDLCustomFieldName(groupId, i));
1161                            sb.append(
1162                                    "\" readOnly=\"false\" repeatable=\"false\" required=\"false");
1163                            sb.append(
1164                                    "\" showLabel=\"true\" type=\"text\" width=\"25\"><meta-data");
1165                            sb.append(" locale=\"en_US\"><entry name=\"label\"><![CDATA[Text");
1166                            sb.append(i);
1167                            sb.append(
1168                                    "]]></entry><entry name=\"predefinedValue\"><![CDATA[]]>");
1169                            sb.append("</entry><entry name=\"tip\"><![CDATA[]]></entry>");
1170                            sb.append("</meta-data></dynamic-element>");
1171                    }
1172    
1173                    sb.append("</root>");
1174    
1175                    return newDDMStructureModel(
1176                            groupId, _classNameModelsMap.get(DDLRecordSet.class.getName()),
1177                            "Test DDM Structure", sb.toString());
1178            }
1179    
1180            public DDLRecordModel newDDLRecordModel(
1181                    DDLRecordSetModel dDLRecordSetModel) {
1182    
1183                    DDLRecordModel ddlRecordModel = new DDLRecordModelImpl();
1184    
1185                    ddlRecordModel.setUuid(SequentialUUID.generate());
1186                    ddlRecordModel.setRecordId(_counter.get());
1187                    ddlRecordModel.setGroupId(dDLRecordSetModel.getGroupId());
1188                    ddlRecordModel.setCompanyId(_companyId);
1189                    ddlRecordModel.setUserId(_sampleUserId);
1190                    ddlRecordModel.setUserName(_SAMPLE_USER_NAME);
1191                    ddlRecordModel.setVersionUserId(_sampleUserId);
1192                    ddlRecordModel.setVersionUserName(_SAMPLE_USER_NAME);
1193                    ddlRecordModel.setCreateDate(new Date());
1194                    ddlRecordModel.setModifiedDate(new Date());
1195                    ddlRecordModel.setDDMStorageId(_counter.get());
1196                    ddlRecordModel.setRecordSetId(dDLRecordSetModel.getRecordSetId());
1197                    ddlRecordModel.setVersion(DDLRecordConstants.VERSION_DEFAULT);
1198                    ddlRecordModel.setDisplayIndex(
1199                            DDLRecordConstants.DISPLAY_INDEX_DEFAULT);
1200    
1201                    return ddlRecordModel;
1202            }
1203    
1204            public DDLRecordSetModel newDDLRecordSetModel(
1205                    DDMStructureModel ddmStructureModel, int currentIndex) {
1206    
1207                    DDLRecordSetModel ddlRecordSetModel = new DDLRecordSetModelImpl();
1208    
1209                    ddlRecordSetModel.setUuid(SequentialUUID.generate());
1210                    ddlRecordSetModel.setRecordSetId(_counter.get());
1211                    ddlRecordSetModel.setGroupId(ddmStructureModel.getGroupId());
1212                    ddlRecordSetModel.setCompanyId(_companyId);
1213                    ddlRecordSetModel.setUserId(_sampleUserId);
1214                    ddlRecordSetModel.setUserName(_SAMPLE_USER_NAME);
1215                    ddlRecordSetModel.setCreateDate(new Date());
1216                    ddlRecordSetModel.setModifiedDate(new Date());
1217                    ddlRecordSetModel.setDDMStructureId(ddmStructureModel.getStructureId());
1218                    ddlRecordSetModel.setRecordSetKey(String.valueOf(_counter.get()));
1219    
1220                    StringBundler sb = new StringBundler(5);
1221    
1222                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
1223                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
1224                    sb.append("<name language-id=\"en_US\">Test DDL Record Set ");
1225                    sb.append(currentIndex);
1226                    sb.append("</name></root>");
1227    
1228                    ddlRecordSetModel.setName(sb.toString());
1229    
1230                    ddlRecordSetModel.setMinDisplayRows(
1231                            DDLRecordSetConstants.MIN_DISPLAY_ROWS_DEFAULT);
1232                    ddlRecordSetModel.setScope(
1233                            DDLRecordSetConstants.SCOPE_DYNAMIC_DATA_LISTS);
1234    
1235                    return ddlRecordSetModel;
1236            }
1237    
1238            public DDLRecordVersionModel newDDLRecordVersionModel(
1239                    DDLRecordModel dDLRecordModel) {
1240    
1241                    DDLRecordVersionModel ddlRecordVersionModel =
1242                            new DDLRecordVersionModelImpl();
1243    
1244                    ddlRecordVersionModel.setRecordVersionId(_counter.get());
1245                    ddlRecordVersionModel.setGroupId(dDLRecordModel.getGroupId());
1246                    ddlRecordVersionModel.setCompanyId(_companyId);
1247                    ddlRecordVersionModel.setUserId(_sampleUserId);
1248                    ddlRecordVersionModel.setUserName(_SAMPLE_USER_NAME);
1249                    ddlRecordVersionModel.setCreateDate(dDLRecordModel.getModifiedDate());
1250                    ddlRecordVersionModel.setDDMStorageId(dDLRecordModel.getDDMStorageId());
1251                    ddlRecordVersionModel.setRecordSetId(dDLRecordModel.getRecordSetId());
1252                    ddlRecordVersionModel.setRecordId(dDLRecordModel.getRecordId());
1253                    ddlRecordVersionModel.setVersion(dDLRecordModel.getVersion());
1254                    ddlRecordVersionModel.setDisplayIndex(dDLRecordModel.getDisplayIndex());
1255                    ddlRecordVersionModel.setStatus(WorkflowConstants.STATUS_APPROVED);
1256                    ddlRecordVersionModel.setStatusDate(dDLRecordModel.getModifiedDate());
1257    
1258                    return ddlRecordVersionModel;
1259            }
1260    
1261            public DDMContentModel newDDMContentModel(
1262                    DDLRecordModel ddlRecordModel, int currentIndex) {
1263    
1264                    StringBundler sb = new StringBundler(3 + _maxDDLCustomFieldCount * 10);
1265    
1266                    sb.append("<?xml version=\"1.0\"?><root>");
1267    
1268                    for (int i = 0; i < _maxDDLCustomFieldCount; i++) {
1269                            sb.append("<dynamic-element default-language-id=\"en_US\" name=\"");
1270                            sb.append(nextDDLCustomFieldName(ddlRecordModel.getGroupId(), i));
1271                            sb.append("\"><dynamic-content language-id=\"en_US\">");
1272                            sb.append("<![CDATA[Test Record ");
1273                            sb.append(currentIndex);
1274                            sb.append("]]></dynamic-content></dynamic-element>");
1275                    }
1276    
1277                    sb.append("<dynamic-element default-language-id=\"en_US\" name=\"_");
1278                    sb.append(
1279                            "fieldsDisplay\"><dynamic-content language-id=\"en_US\"><![CDATA[");
1280    
1281                    for (int i = 0; i < _maxDDLCustomFieldCount; i++) {
1282                            sb.append(nextDDLCustomFieldName(ddlRecordModel.getGroupId(), i));
1283                            sb.append(DDMImpl.INSTANCE_SEPARATOR);
1284                            sb.append(StringUtil.randomId());
1285                            sb.append(StringPool.COMMA);
1286                    }
1287    
1288                    sb.setStringAt(
1289                            "]]></dynamic-content></dynamic-element></root>", sb.index() - 1);
1290    
1291                    return newDDMContentModel(
1292                            ddlRecordModel.getDDMStorageId(), ddlRecordModel.getGroupId(),
1293                            sb.toString());
1294            }
1295    
1296            public DDMContentModel newDDMContentModel(
1297                    DLFileEntryModel dlFileEntryModel) {
1298    
1299                    StringBundler sb = new StringBundler(5);
1300    
1301                    sb.append("<?xml version=\"1.0\"?><root><dynamic-element ");
1302                    sb.append("name=\"CONTENT_TYPE\"><dynamic-content>");
1303                    sb.append("<![CDATA[text/plain]]></dynamic-content></dynamic-element>");
1304                    sb.append("<dynamic-element <![CDATA[ISO-8859-1]]></dynamic-content>");
1305                    sb.append("</dynamic-element></root>");
1306    
1307                    return newDDMContentModel(
1308                            _counter.get(), dlFileEntryModel.getGroupId(), sb.toString());
1309            }
1310    
1311            public DDMStorageLinkModel newDDMStorageLinkModel(
1312                    long ddmStorageLinkId, DDMContentModel ddmContentModel,
1313                    long structureId) {
1314    
1315                    DDMStorageLinkModel ddmStorageLinkModel = new DDMStorageLinkModelImpl();
1316    
1317                    ddmStorageLinkModel.setUuid(SequentialUUID.generate());
1318                    ddmStorageLinkModel.setStorageLinkId(ddmStorageLinkId);
1319                    ddmStorageLinkModel.setClassNameId(
1320                            _classNameModelsMap.get(DDMContent.class.getName()));
1321                    ddmStorageLinkModel.setClassPK(ddmContentModel.getContentId());
1322                    ddmStorageLinkModel.setStructureId(structureId);
1323    
1324                    return ddmStorageLinkModel;
1325            }
1326    
1327            public DDMStructureLinkModel newDDMStructureLinkModel(
1328                    DDLRecordSetModel ddlRecordSetModel) {
1329    
1330                    return newDDMStructureLinkModel(
1331                            _classNameModelsMap.get(DDLRecordSet.class.getName()),
1332                            ddlRecordSetModel.getRecordSetId(),
1333                            ddlRecordSetModel.getDDMStructureId());
1334            }
1335    
1336            public DDMStructureLinkModel newDDMStructureLinkModel(
1337                    DLFileEntryMetadataModel dLFileEntryMetadataModel) {
1338    
1339                    return newDDMStructureLinkModel(
1340                            _classNameModelsMap.get(DLFileEntryMetadata.class.getName()),
1341                            dLFileEntryMetadataModel.getFileEntryMetadataId(),
1342                            dLFileEntryMetadataModel.getDDMStructureId());
1343            }
1344    
1345            public DLFileEntryMetadataModel newDLFileEntryMetadataModel(
1346                    long ddmStorageLinkId, long ddmStructureId,
1347                    DLFileVersionModel dlFileVersionModel) {
1348    
1349                    DLFileEntryMetadataModel dlFileEntryMetadataModel =
1350                            new DLFileEntryMetadataModelImpl();
1351    
1352                    dlFileEntryMetadataModel.setUuid(SequentialUUID.generate());
1353                    dlFileEntryMetadataModel.setFileEntryMetadataId(_counter.get());
1354                    dlFileEntryMetadataModel.setDDMStorageId(ddmStorageLinkId);
1355                    dlFileEntryMetadataModel.setDDMStructureId(ddmStructureId);
1356                    dlFileEntryMetadataModel.setFileEntryTypeId(
1357                            dlFileVersionModel.getFileEntryTypeId());
1358                    dlFileEntryMetadataModel.setFileEntryId(
1359                            dlFileVersionModel.getFileEntryId());
1360                    dlFileEntryMetadataModel.setFileVersionId(
1361                            dlFileVersionModel.getFileVersionId());
1362    
1363                    return dlFileEntryMetadataModel;
1364            }
1365    
1366            public List<DLFileEntryModel> newDlFileEntryModels(
1367                    DLFolderModel dlFolerModel) {
1368    
1369                    List<DLFileEntryModel> dlFileEntryModels =
1370                            new ArrayList<DLFileEntryModel>(_maxDLFileEntryCount);
1371    
1372                    for (int i = 1; i <= _maxDLFileEntryCount; i++) {
1373                            dlFileEntryModels.add(newDlFileEntryModel(dlFolerModel, i));
1374                    }
1375    
1376                    return dlFileEntryModels;
1377            }
1378    
1379            public DLFileVersionModel newDLFileVersionModel(
1380                    DLFileEntryModel dlFileEntryModel) {
1381    
1382                    DLFileVersionModel dlFileVersionModel = new DLFileVersionModelImpl();
1383    
1384                    dlFileVersionModel.setUuid(SequentialUUID.generate());
1385                    dlFileVersionModel.setFileVersionId(_counter.get());
1386                    dlFileVersionModel.setGroupId(dlFileEntryModel.getGroupId());
1387                    dlFileVersionModel.setCompanyId(_companyId);
1388                    dlFileVersionModel.setUserId(_sampleUserId);
1389                    dlFileVersionModel.setUserName(_SAMPLE_USER_NAME);
1390                    dlFileVersionModel.setCreateDate(nextFutureDate());
1391                    dlFileVersionModel.setModifiedDate(nextFutureDate());
1392                    dlFileVersionModel.setRepositoryId(dlFileEntryModel.getRepositoryId());
1393                    dlFileVersionModel.setFolderId(dlFileEntryModel.getFolderId());
1394                    dlFileVersionModel.setFileEntryId(dlFileEntryModel.getFileEntryId());
1395                    dlFileVersionModel.setExtension(dlFileEntryModel.getExtension());
1396                    dlFileVersionModel.setMimeType(dlFileEntryModel.getMimeType());
1397                    dlFileVersionModel.setTitle(dlFileEntryModel.getTitle());
1398                    dlFileVersionModel.setFileEntryTypeId(
1399                            dlFileEntryModel.getFileEntryTypeId());
1400                    dlFileVersionModel.setVersion(dlFileEntryModel.getVersion());
1401                    dlFileVersionModel.setSize(dlFileEntryModel.getSize());
1402    
1403                    return dlFileVersionModel;
1404            }
1405    
1406            public List<DLFolderModel> newDLFolderModels(
1407                    long groupId, long parentFolderId) {
1408    
1409                    List<DLFolderModel> dlFolderModels = new ArrayList<DLFolderModel>(
1410                            _maxDLFolderCount);
1411    
1412                    for (int i = 1; i <= _maxDLFolderCount; i++) {
1413                            dlFolderModels.add(newDLFolderModel(groupId, parentFolderId, i));
1414                    }
1415    
1416                    return dlFolderModels;
1417            }
1418    
1419            public GroupModel newGroupModel(UserModel userModel) throws Exception {
1420                    return newGroupModel(
1421                            _counter.get(), _classNameModelsMap.get(User.class.getName()),
1422                            userModel.getUserId(), userModel.getScreenName(), false);
1423            }
1424    
1425            public IntegerWrapper newInteger() {
1426                    return new IntegerWrapper();
1427            }
1428    
1429            public JournalArticleModel newJournalArticleModel(
1430                    JournalArticleResourceModel journalArticleResourceModel,
1431                    int articleIndex, int versionIndex) {
1432    
1433                    JournalArticleModel journalArticleModel = new JournalArticleModelImpl();
1434    
1435                    journalArticleModel.setUuid(SequentialUUID.generate());
1436                    journalArticleModel.setId(_counter.get());
1437                    journalArticleModel.setResourcePrimKey(
1438                            journalArticleResourceModel.getResourcePrimKey());
1439                    journalArticleModel.setGroupId(
1440                            journalArticleResourceModel.getGroupId());
1441                    journalArticleModel.setCompanyId(_companyId);
1442                    journalArticleModel.setUserId(_sampleUserId);
1443                    journalArticleModel.setUserName(_SAMPLE_USER_NAME);
1444                    journalArticleModel.setCreateDate(new Date());
1445                    journalArticleModel.setModifiedDate(new Date());
1446                    journalArticleModel.setClassNameId(
1447                            JournalArticleConstants.CLASSNAME_ID_DEFAULT);
1448                    journalArticleModel.setArticleId(
1449                            journalArticleResourceModel.getArticleId());
1450                    journalArticleModel.setVersion(versionIndex);
1451    
1452                    StringBundler sb = new StringBundler(4);
1453    
1454                    sb.append("TestJournalArticle_");
1455                    sb.append(articleIndex);
1456                    sb.append(StringPool.UNDERLINE);
1457                    sb.append(versionIndex);
1458    
1459                    String urlTitle = sb.toString();
1460    
1461                    sb = new StringBundler(5);
1462    
1463                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
1464                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
1465                    sb.append("<Title language-id=\"en_US\">");
1466                    sb.append(urlTitle);
1467                    sb.append("</Title></root>");
1468    
1469                    String title = sb.toString();
1470    
1471                    journalArticleModel.setTitle(title);
1472                    journalArticleModel.setUrlTitle(urlTitle);
1473    
1474                    journalArticleModel.setContent(_journalArticleContent);
1475                    journalArticleModel.setType("general");
1476                    journalArticleModel.setDisplayDate(new Date());
1477                    journalArticleModel.setExpirationDate(nextFutureDate());
1478                    journalArticleModel.setReviewDate(new Date());
1479                    journalArticleModel.setIndexable(true);
1480                    journalArticleModel.setStatusDate(new Date());
1481    
1482                    return journalArticleModel;
1483            }
1484    
1485            public JournalArticleResourceModel newJournalArticleResourceModel(
1486                    long groupId) {
1487    
1488                    JournalArticleResourceModel journalArticleResourceModel =
1489                            new JournalArticleResourceModelImpl();
1490    
1491                    journalArticleResourceModel.setUuid(SequentialUUID.generate());
1492                    journalArticleResourceModel.setResourcePrimKey(_counter.get());
1493                    journalArticleResourceModel.setGroupId(groupId);
1494                    journalArticleResourceModel.setArticleId(
1495                            String.valueOf(_counter.get()));
1496    
1497                    return journalArticleResourceModel;
1498            }
1499    
1500            public JournalContentSearchModel newJournalContentSearchModel(
1501                    JournalArticleModel journalArticleModel, long layoutId) {
1502    
1503                    JournalContentSearchModel journalContentSearchModel =
1504                            new JournalContentSearchModelImpl();
1505    
1506                    journalContentSearchModel.setContentSearchId(_counter.get());
1507                    journalContentSearchModel.setGroupId(journalArticleModel.getGroupId());
1508                    journalContentSearchModel.setCompanyId(_companyId);
1509                    journalContentSearchModel.setLayoutId(layoutId);
1510                    journalContentSearchModel.setPortletId(PortletKeys.JOURNAL_CONTENT);
1511                    journalContentSearchModel.setArticleId(
1512                            journalArticleModel.getArticleId());
1513    
1514                    return journalContentSearchModel;
1515            }
1516    
1517            public LayoutFriendlyURLModel newLayoutFriendlyURLModel(
1518                    LayoutModel layoutModel) {
1519    
1520                    LayoutFriendlyURLModel layoutFriendlyURLModel =
1521                            new LayoutFriendlyURLModelImpl();
1522    
1523                    layoutFriendlyURLModel.setUuid(SequentialUUID.generate());
1524                    layoutFriendlyURLModel.setLayoutFriendlyURLId(_counter.get());
1525                    layoutFriendlyURLModel.setGroupId(layoutModel.getGroupId());
1526                    layoutFriendlyURLModel.setCompanyId(_companyId);
1527                    layoutFriendlyURLModel.setUserId(_sampleUserId);
1528                    layoutFriendlyURLModel.setUserName(_SAMPLE_USER_NAME);
1529                    layoutFriendlyURLModel.setCreateDate(new Date());
1530                    layoutFriendlyURLModel.setModifiedDate(new Date());
1531                    layoutFriendlyURLModel.setPlid(layoutModel.getPlid());
1532                    layoutFriendlyURLModel.setFriendlyURL(layoutModel.getFriendlyURL());
1533                    layoutFriendlyURLModel.setLanguageId("en_US");
1534    
1535                    return layoutFriendlyURLModel;
1536            }
1537    
1538            public LayoutModel newLayoutModel(
1539                    long groupId, String name, String column1, String column2) {
1540    
1541                    SimpleCounter simpleCounter = _layoutCounters.get(groupId);
1542    
1543                    if (simpleCounter == null) {
1544                            simpleCounter = new SimpleCounter();
1545    
1546                            _layoutCounters.put(groupId, simpleCounter);
1547                    }
1548    
1549                    LayoutModel layoutModel = new LayoutModelImpl();
1550    
1551                    layoutModel.setUuid(SequentialUUID.generate());
1552                    layoutModel.setPlid(_counter.get());
1553                    layoutModel.setGroupId(groupId);
1554                    layoutModel.setCompanyId(_companyId);
1555                    layoutModel.setUserId(_sampleUserId);
1556                    layoutModel.setUserName(_SAMPLE_USER_NAME);
1557                    layoutModel.setCreateDate(new Date());
1558                    layoutModel.setModifiedDate(new Date());
1559                    layoutModel.setLayoutId(simpleCounter.get());
1560                    layoutModel.setName(
1561                            "<?xml version=\"1.0\"?><root><name>" + name + "</name></root>");
1562                    layoutModel.setType(LayoutConstants.TYPE_PORTLET);
1563                    layoutModel.setFriendlyURL(StringPool.FORWARD_SLASH + name);
1564    
1565                    UnicodeProperties typeSettingsProperties = new UnicodeProperties(true);
1566    
1567                    typeSettingsProperties.setProperty(
1568                            LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID, "2_columns_ii");
1569                    typeSettingsProperties.setProperty("column-1", column1);
1570                    typeSettingsProperties.setProperty("column-2", column2);
1571    
1572                    String typeSettings = StringUtil.replace(
1573                            typeSettingsProperties.toString(), "\n", "\\n");
1574    
1575                    layoutModel.setTypeSettings(typeSettings);
1576    
1577                    return layoutModel;
1578            }
1579    
1580            public List<LayoutSetModel> newLayoutSetModels(
1581                    long groupId, int publicLayoutSetPageCount) {
1582    
1583                    List<LayoutSetModel> layoutSetModels = new ArrayList<LayoutSetModel>(2);
1584    
1585                    layoutSetModels.add(newLayoutSetModel(groupId, true, 0));
1586                    layoutSetModels.add(
1587                            newLayoutSetModel(groupId, false, publicLayoutSetPageCount));
1588    
1589                    return layoutSetModels;
1590            }
1591    
1592            public List<MBCategoryModel> newMBCategoryModels(long groupId) {
1593                    List<MBCategoryModel> mbCategoryModels = new ArrayList<MBCategoryModel>(
1594                            _maxMBCategoryCount);
1595    
1596                    for (int i = 1; i <= _maxMBCategoryCount; i++) {
1597                            mbCategoryModels.add(newMBCategoryModel(groupId, i));
1598                    }
1599    
1600                    return mbCategoryModels;
1601            }
1602    
1603            public MBDiscussionModel newMBDiscussionModel(
1604                    long groupId, long classNameId, long classPK, long threadId) {
1605    
1606                    MBDiscussionModel mbDiscussionModel = new MBDiscussionModelImpl();
1607    
1608                    mbDiscussionModel.setUuid(SequentialUUID.generate());
1609                    mbDiscussionModel.setDiscussionId(_counter.get());
1610                    mbDiscussionModel.setGroupId(groupId);
1611                    mbDiscussionModel.setCompanyId(_companyId);
1612                    mbDiscussionModel.setUserId(_sampleUserId);
1613                    mbDiscussionModel.setUserName(_SAMPLE_USER_NAME);
1614                    mbDiscussionModel.setCreateDate(new Date());
1615                    mbDiscussionModel.setModifiedDate(new Date());
1616                    mbDiscussionModel.setClassNameId(classNameId);
1617                    mbDiscussionModel.setClassPK(classPK);
1618                    mbDiscussionModel.setThreadId(threadId);
1619    
1620                    return mbDiscussionModel;
1621            }
1622    
1623            public MBMailingListModel newMBMailingListModel(
1624                    MBCategoryModel mbCategoryModel) {
1625    
1626                    MBMailingListModel mbMailingListModel = new MBMailingListModelImpl();
1627    
1628                    mbMailingListModel.setUuid(SequentialUUID.generate());
1629                    mbMailingListModel.setMailingListId(_counter.get());
1630                    mbMailingListModel.setGroupId(mbCategoryModel.getGroupId());
1631                    mbMailingListModel.setCompanyId(_companyId);
1632                    mbMailingListModel.setUserId(_sampleUserId);
1633                    mbMailingListModel.setUserName(_SAMPLE_USER_NAME);
1634                    mbMailingListModel.setCreateDate(new Date());
1635                    mbMailingListModel.setModifiedDate(new Date());
1636                    mbMailingListModel.setCategoryId(mbCategoryModel.getCategoryId());
1637                    mbMailingListModel.setInProtocol("pop3");
1638                    mbMailingListModel.setInServerPort(110);
1639                    mbMailingListModel.setInUserName(_sampleUserModel.getEmailAddress());
1640                    mbMailingListModel.setInPassword(_sampleUserModel.getPassword());
1641                    mbMailingListModel.setInReadInterval(5);
1642                    mbMailingListModel.setOutServerPort(25);
1643    
1644                    return mbMailingListModel;
1645            }
1646    
1647            public MBMessageModel newMBMessageModel(
1648                    MBThreadModel mbThreadModel, long classNameId, long classPK,
1649                    int index) {
1650    
1651                    long messageId = 0;
1652                    long parentMessageId = 0;
1653                    String subject = null;
1654                    String body = null;
1655    
1656                    if (index == 0) {
1657                            messageId = mbThreadModel.getRootMessageId();
1658                            parentMessageId = MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID;
1659                            subject = String.valueOf(classPK);
1660                            body = String.valueOf(classPK);
1661                    }
1662                    else {
1663                            messageId = _counter.get();
1664                            parentMessageId = mbThreadModel.getRootMessageId();
1665                            subject = "N/A";
1666                            body = "This is test comment " + index + ".";
1667                    }
1668    
1669                    return newMBMessageModel(
1670                            mbThreadModel.getGroupId(), classNameId, classPK,
1671                            MBCategoryConstants.DISCUSSION_CATEGORY_ID,
1672                            mbThreadModel.getThreadId(), messageId,
1673                            mbThreadModel.getRootMessageId(), parentMessageId, subject, body);
1674            }
1675    
1676            public List<MBMessageModel> newMBMessageModels(
1677                    MBThreadModel mbThreadModel) {
1678    
1679                    List<MBMessageModel> mbMessageModels = new ArrayList<MBMessageModel>(
1680                            _maxMBMessageCount);
1681    
1682                    mbMessageModels.add(
1683                            newMBMessageModel(
1684                                    mbThreadModel.getGroupId(), 0, 0, mbThreadModel.getCategoryId(),
1685                                    mbThreadModel.getThreadId(), mbThreadModel.getRootMessageId(),
1686                                    mbThreadModel.getRootMessageId(),
1687                                    MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID, "Test Message 1",
1688                                    "This is test message 1."));
1689    
1690                    for (int i = 2; i <= _maxMBMessageCount; i++) {
1691                            mbMessageModels.add(
1692                                    newMBMessageModel(
1693                                            mbThreadModel.getGroupId(), 0, 0,
1694                                            mbThreadModel.getCategoryId(), mbThreadModel.getThreadId(),
1695                                            _counter.get(), mbThreadModel.getRootMessageId(),
1696                                            mbThreadModel.getRootMessageId(), "Test Message " + i,
1697                                            "This is test message " + i + "."));
1698                    }
1699    
1700                    return mbMessageModels;
1701            }
1702    
1703            public List<MBMessageModel> newMBMessageModels(
1704                    MBThreadModel mbThreadModel, long classNameId, long classPK,
1705                    int maxMessageCount) {
1706    
1707                    List<MBMessageModel> mbMessageModels = new ArrayList<MBMessageModel>(
1708                            maxMessageCount);
1709    
1710                    for (int i = 1; i <= maxMessageCount; i++) {
1711                            mbMessageModels.add(
1712                                    newMBMessageModel(mbThreadModel, classNameId, classPK, i));
1713                    }
1714    
1715                    return mbMessageModels;
1716            }
1717    
1718            public MBStatsUserModel newMBStatsUserModel(long groupId) {
1719                    MBStatsUserModel mbStatsUserModel = new MBStatsUserModelImpl();
1720    
1721                    mbStatsUserModel.setStatsUserId(_counter.get());
1722                    mbStatsUserModel.setGroupId(groupId);
1723                    mbStatsUserModel.setUserId(_sampleUserId);
1724                    mbStatsUserModel.setMessageCount(
1725                            _maxMBCategoryCount * _maxMBThreadCount * _maxMBMessageCount);
1726                    mbStatsUserModel.setLastPostDate(new Date());
1727    
1728                    return mbStatsUserModel;
1729            }
1730    
1731            public MBThreadFlagModel newMBThreadFlagModel(MBThreadModel mbThreadModel) {
1732                    MBThreadFlagModel mbThreadFlagModel = new MBThreadFlagModelImpl();
1733    
1734                    mbThreadFlagModel.setUuid(SequentialUUID.generate());
1735                    mbThreadFlagModel.setThreadFlagId(_counter.get());
1736                    mbThreadFlagModel.setGroupId(mbThreadModel.getGroupId());
1737                    mbThreadFlagModel.setCompanyId(_companyId);
1738                    mbThreadFlagModel.setUserId(_sampleUserId);
1739                    mbThreadFlagModel.setUserName(_SAMPLE_USER_NAME);
1740                    mbThreadFlagModel.setCreateDate(new Date());
1741                    mbThreadFlagModel.setModifiedDate(new Date());
1742                    mbThreadFlagModel.setThreadId(mbThreadModel.getThreadId());
1743    
1744                    return mbThreadFlagModel;
1745            }
1746    
1747            public MBThreadModel newMBThreadModel(
1748                    long threadId, long groupId, long rootMessageId, int messageCount) {
1749    
1750                    if (messageCount == 0) {
1751                            messageCount = 1;
1752                    }
1753    
1754                    return newMBThreadModel(
1755                            threadId, groupId, MBCategoryConstants.DISCUSSION_CATEGORY_ID,
1756                            rootMessageId, messageCount);
1757            }
1758    
1759            public List<MBThreadModel> newMBThreadModels(
1760                    MBCategoryModel mbCategoryModel) {
1761    
1762                    List<MBThreadModel> mbThreadModels = new ArrayList<MBThreadModel>(
1763                            _maxMBThreadCount);
1764    
1765                    for (int i = 0; i < _maxMBThreadCount; i++) {
1766                            mbThreadModels.add(
1767                                    newMBThreadModel(
1768                                            _counter.get(), mbCategoryModel.getGroupId(),
1769                                            mbCategoryModel.getCategoryId(), _counter.get(),
1770                                            _maxMBMessageCount));
1771                    }
1772    
1773                    return mbThreadModels;
1774            }
1775    
1776            public PortletPreferencesModel newPortletPreferencesModel(
1777                            long plid, long groupId, String portletId, int currentIndex)
1778                    throws Exception {
1779    
1780                    List<AssetCategoryModel> assetCategoryModels =
1781                            _assetCategoryModelsArray[(int)groupId - 1];
1782    
1783                    boolean assetPublisherFilterEnabled = false;
1784    
1785                    if ((_maxAssetPublisherPageCount * _maxAssetPublisherFilterRuleCount) >
1786                                    0) {
1787    
1788                            assetPublisherFilterEnabled = true;
1789                    }
1790    
1791                    if (!assetPublisherFilterEnabled || (currentIndex == 1) ||
1792                            (assetCategoryModels == null) || assetCategoryModels.isEmpty()) {
1793    
1794                            return newPortletPreferencesModel(
1795                                    plid, portletId, PortletConstants.DEFAULT_PREFERENCES);
1796                    }
1797    
1798                    SimpleCounter counter = _assetPublisherRuleCounter.get(groupId);
1799    
1800                    if (counter == null) {
1801                            counter = new SimpleCounter(0);
1802    
1803                            _assetPublisherRuleCounter.put(groupId, counter);
1804                    }
1805    
1806                    javax.portlet.PortletPreferences jxPortletPreferences =
1807                            new com.liferay.portlet.PortletPreferencesImpl();
1808    
1809                    for (int i = 0; i < _maxAssetPublisherFilterRuleCount; i++) {
1810                            int index = (int)counter.get() % assetCategoryModels.size();
1811    
1812                            AssetCategoryModel assetCategoryModel = assetCategoryModels.get(
1813                                    index);
1814    
1815                            jxPortletPreferences.setValue("queryAndOperator" + i, "false");
1816                            jxPortletPreferences.setValue("queryContains" + i, "false");
1817                            jxPortletPreferences.setValue("queryName" + i, "assetCategories");
1818                            jxPortletPreferences.setValue(
1819                                    "queryValues" + i,
1820                                    String.valueOf(assetCategoryModel.getCategoryId()));
1821                    }
1822    
1823                    return newPortletPreferencesModel(
1824                            plid, portletId,
1825                            _portletPreferencesFactory.toXML(jxPortletPreferences));
1826            }
1827    
1828            public PortletPreferencesModel newPortletPreferencesModel(
1829                            long plid, String portletId, DDLRecordSetModel ddlRecordSetModel)
1830                    throws Exception {
1831    
1832                    javax.portlet.PortletPreferences jxPortletPreferences =
1833                            new com.liferay.portlet.PortletPreferencesImpl();
1834    
1835                    jxPortletPreferences.setValue("editable", "true");
1836                    jxPortletPreferences.setValue(
1837                            "recordSetId", String.valueOf(ddlRecordSetModel.getRecordSetId()));
1838                    jxPortletPreferences.setValue("spreadsheet", "false");
1839    
1840                    return newPortletPreferencesModel(
1841                            plid, portletId,
1842                            _portletPreferencesFactory.toXML(jxPortletPreferences));
1843            }
1844    
1845            public PortletPreferencesModel newPortletPreferencesModel(
1846                            long plid, String portletId,
1847                            JournalArticleResourceModel journalArticleResourceModel)
1848                    throws Exception {
1849    
1850                    javax.portlet.PortletPreferences jxPortletPreferences =
1851                            new com.liferay.portlet.PortletPreferencesImpl();
1852    
1853                    jxPortletPreferences.setValue(
1854                            "articleId", journalArticleResourceModel.getArticleId());
1855                    jxPortletPreferences.setValue("enableCommentRatings", "false");
1856                    jxPortletPreferences.setValue("enableComments", "false");
1857                    jxPortletPreferences.setValue("enablePrint", "false");
1858                    jxPortletPreferences.setValue("enableRatings", "false");
1859                    jxPortletPreferences.setValue("enableRelatedAssets", "true");
1860                    jxPortletPreferences.setValue("enableViewCountIncrement", "false");
1861                    jxPortletPreferences.setValue(
1862                            "groupId",
1863                            String.valueOf(journalArticleResourceModel.getGroupId()));
1864                    jxPortletPreferences.setValue("showAvailableLocales", "false");
1865    
1866                    return newPortletPreferencesModel(
1867                            plid, portletId,
1868                            _portletPreferencesFactory.toXML(jxPortletPreferences));
1869            }
1870    
1871            public List<PortletPreferencesModel> newPortletPreferencesModels(
1872                    long plid) {
1873    
1874                    List<PortletPreferencesModel> portletPreferencesModels =
1875                            new ArrayList<PortletPreferencesModel>(2);
1876    
1877                    portletPreferencesModels.add(
1878                            newPortletPreferencesModel(
1879                                    plid, PortletKeys.DOCKBAR,
1880                                    PortletConstants.DEFAULT_PREFERENCES));
1881                    portletPreferencesModels.add(
1882                            newPortletPreferencesModel(
1883                                    plid, PortletKeys.PORTLET_CONFIGURATION,
1884                                    PortletConstants.DEFAULT_PREFERENCES));
1885    
1886                    return portletPreferencesModels;
1887            }
1888    
1889            public List<LayoutModel> newPublicLayoutModels(long groupId) {
1890                    List<LayoutModel> layoutModels = new ArrayList<LayoutModel>();
1891    
1892                    layoutModels.add(newLayoutModel(groupId, "welcome", "58,", "47,"));
1893                    layoutModels.add(newLayoutModel(groupId, "blogs", "", "33,"));
1894                    layoutModels.add(
1895                            newLayoutModel(groupId, "document_library", "", "20,"));
1896                    layoutModels.add(newLayoutModel(groupId, "forums", "", "19,"));
1897                    layoutModels.add(newLayoutModel(groupId, "wiki", "", "36,"));
1898    
1899                    return layoutModels;
1900            }
1901    
1902            public List<ResourcePermissionModel> newResourcePermissionModels(
1903                    AssetCategoryModel assetCategoryModel) {
1904    
1905                    return newResourcePermissionModels(
1906                            AssetCategory.class.getName(),
1907                            String.valueOf(assetCategoryModel.getCategoryId()), _sampleUserId);
1908            }
1909    
1910            public List<ResourcePermissionModel> newResourcePermissionModels(
1911                    AssetTagModel assetTagModel) {
1912    
1913                    return newResourcePermissionModels(
1914                            AssetTag.class.getName(), String.valueOf(assetTagModel.getTagId()),
1915                            _sampleUserId);
1916            }
1917    
1918            public List<ResourcePermissionModel> newResourcePermissionModels(
1919                    AssetVocabularyModel assetVocabularyModel) {
1920    
1921                    if (assetVocabularyModel.getUserId() == _defaultUserId) {
1922                            List<ResourcePermissionModel> resourcePermissionModels =
1923                                    new ArrayList<ResourcePermissionModel>(1);
1924    
1925                            resourcePermissionModels.add(
1926                                    newResourcePermissionModel(
1927                                            AssetVocabulary.class.getName(),
1928                                            String.valueOf(assetVocabularyModel.getVocabularyId()),
1929                                            _ownerRoleModel.getRoleId(), _defaultUserId));
1930    
1931                            return resourcePermissionModels;
1932                    }
1933    
1934                    return newResourcePermissionModels(
1935                            AssetVocabulary.class.getName(),
1936                            String.valueOf(assetVocabularyModel.getVocabularyId()),
1937                            _sampleUserId);
1938            }
1939    
1940            public List<ResourcePermissionModel> newResourcePermissionModels(
1941                    BlogsEntryModel blogsEntryModel) {
1942    
1943                    return newResourcePermissionModels(
1944                            BlogsEntry.class.getName(),
1945                            String.valueOf(blogsEntryModel.getEntryId()), _sampleUserId);
1946            }
1947    
1948            public List<ResourcePermissionModel> newResourcePermissionModels(
1949                    DDLRecordSetModel ddlRecordSetModel) {
1950    
1951                    List<ResourcePermissionModel> resourcePermissionModels =
1952                            new ArrayList<ResourcePermissionModel>(1);
1953    
1954                    resourcePermissionModels.add(
1955                            newResourcePermissionModel(
1956                                    DDLRecordSet.class.getName(),
1957                                    String.valueOf(ddlRecordSetModel.getRecordSetId()),
1958                                    _ownerRoleModel.getRoleId(), _defaultUserId));
1959    
1960                    return resourcePermissionModels;
1961            }
1962    
1963            public List<ResourcePermissionModel> newResourcePermissionModels(
1964                    DDMStructureModel ddmStructureModel) {
1965    
1966                    List<ResourcePermissionModel> resourcePermissionModels =
1967                            new ArrayList<ResourcePermissionModel>(1);
1968    
1969                    resourcePermissionModels.add(
1970                            newResourcePermissionModel(
1971                                    DDMStructure.class.getName(),
1972                                    String.valueOf(ddmStructureModel.getStructureId()),
1973                                    _ownerRoleModel.getRoleId(), _defaultUserId));
1974    
1975                    return resourcePermissionModels;
1976            }
1977    
1978            public List<ResourcePermissionModel> newResourcePermissionModels(
1979                    DLFileEntryModel dlFileEntryModel) {
1980    
1981                    return newResourcePermissionModels(
1982                            DLFileEntry.class.getName(),
1983                            String.valueOf(dlFileEntryModel.getFileEntryId()), _sampleUserId);
1984            }
1985    
1986            public List<ResourcePermissionModel> newResourcePermissionModels(
1987                    DLFolderModel dlFolderModel) {
1988    
1989                    return newResourcePermissionModels(
1990                            DLFolder.class.getName(),
1991                            String.valueOf(dlFolderModel.getFolderId()), _sampleUserId);
1992            }
1993    
1994            public List<ResourcePermissionModel> newResourcePermissionModels(
1995                    JournalArticleResourceModel journalArticleResourceModel) {
1996    
1997                    return newResourcePermissionModels(
1998                            JournalArticle.class.getName(),
1999                            String.valueOf(journalArticleResourceModel.getResourcePrimKey()),
2000                            _sampleUserId);
2001            }
2002    
2003            public List<ResourcePermissionModel> newResourcePermissionModels(
2004                    LayoutModel layoutModel) {
2005    
2006                    return newResourcePermissionModels(
2007                            Layout.class.getName(), String.valueOf(layoutModel.getPlid()),
2008                            _sampleUserId);
2009            }
2010    
2011            public List<ResourcePermissionModel> newResourcePermissionModels(
2012                    MBCategoryModel mbCategoryModel) {
2013    
2014                    return newResourcePermissionModels(
2015                            MBCategory.class.getName(),
2016                            String.valueOf(mbCategoryModel.getCategoryId()), _sampleUserId);
2017            }
2018    
2019            public List<ResourcePermissionModel> newResourcePermissionModels(
2020                    MBMessageModel mbMessageModel) {
2021    
2022                    return newResourcePermissionModels(
2023                            MBMessage.class.getName(),
2024                            String.valueOf(mbMessageModel.getMessageId()), _sampleUserId);
2025            }
2026    
2027            public List<ResourcePermissionModel> newResourcePermissionModels(
2028                    PortletPreferencesModel portletPreferencesModel) {
2029    
2030                    String portletId = portletPreferencesModel.getPortletId();
2031    
2032                    String name = portletId;
2033    
2034                    int index = portletId.indexOf(StringPool.UNDERLINE);
2035    
2036                    if (index > 0) {
2037                            name = portletId.substring(0, index);
2038                    }
2039    
2040                    String primKey = PortletPermissionUtil.getPrimaryKey(
2041                            portletPreferencesModel.getPlid(), portletId);
2042    
2043                    return newResourcePermissionModels(name, primKey, 0);
2044            }
2045    
2046            public List<ResourcePermissionModel> newResourcePermissionModels(
2047                    WikiNodeModel wikiNodeModel) {
2048    
2049                    return newResourcePermissionModels(
2050                            WikiNode.class.getName(), String.valueOf(wikiNodeModel.getNodeId()),
2051                            _sampleUserId);
2052            }
2053    
2054            public List<ResourcePermissionModel> newResourcePermissionModels(
2055                    WikiPageModel wikiPageModel) {
2056    
2057                    return newResourcePermissionModels(
2058                            WikiPage.class.getName(),
2059                            String.valueOf(wikiPageModel.getResourcePrimKey()), _sampleUserId);
2060            }
2061    
2062            public SocialActivityModel newSocialActivityModel(
2063                    BlogsEntryModel blogsEntryModel) {
2064    
2065                    return newSocialActivityModel(
2066                            blogsEntryModel.getGroupId(),
2067                            _classNameModelsMap.get(BlogsEntry.class.getName()),
2068                            blogsEntryModel.getEntryId(), BlogsActivityKeys.ADD_ENTRY,
2069                            "{\"title\":\""+ blogsEntryModel.getTitle() +"\"}");
2070            }
2071    
2072            public SocialActivityModel newSocialActivityModel(
2073                    DLFileEntryModel dlFileEntryModel) {
2074    
2075                    return newSocialActivityModel(
2076                            dlFileEntryModel.getGroupId(), getDLFileEntryClassNameId(),
2077                            dlFileEntryModel.getFileEntryId(), DLActivityKeys.ADD_FILE_ENTRY,
2078                            StringPool.BLANK);
2079            }
2080    
2081            public SocialActivityModel newSocialActivityModel(
2082                    JournalArticleModel journalArticleModel) {
2083    
2084                    int type = JournalActivityKeys.UPDATE_ARTICLE;
2085    
2086                    if (journalArticleModel.getVersion() ==
2087                                    JournalArticleConstants.VERSION_DEFAULT) {
2088    
2089                            type = JournalActivityKeys.ADD_ARTICLE;
2090                    }
2091    
2092                    return newSocialActivityModel(
2093                            journalArticleModel.getGroupId(), getJournalArticleClassNameId(),
2094                            journalArticleModel.getResourcePrimKey(), type,
2095                            "{\"title\":\""+ journalArticleModel.getUrlTitle() +"\"}");
2096            }
2097    
2098            public SocialActivityModel newSocialActivityModel(
2099                    MBMessageModel mbMessageModel) {
2100    
2101                    long classNameId = mbMessageModel.getClassNameId();
2102                    long classPk = mbMessageModel.getClassPK();
2103    
2104                    int type = 0;
2105                    String extraData = null;
2106    
2107                    if (classNameId == _classNameModelsMap.get(WikiPage.class.getName())) {
2108                            extraData = "{\"version\":1}";
2109    
2110                            type = WikiActivityKeys.ADD_PAGE;
2111                    }
2112                    else if (classNameId == 0) {
2113                            extraData = "{\"title\":\"" + mbMessageModel.getSubject() + "\"}";
2114    
2115                            type = MBActivityKeys.ADD_MESSAGE;
2116    
2117                            classNameId = _classNameModelsMap.get(MBMessage.class.getName());
2118                            classPk = mbMessageModel.getMessageId();
2119                    }
2120                    else {
2121                            StringBundler sb = new StringBundler(5);
2122    
2123                            sb.append("{\"messageId\":\"");
2124                            sb.append(mbMessageModel.getMessageId());
2125                            sb.append("\", \"title\":");
2126                            sb.append(mbMessageModel.getSubject());
2127                            sb.append("}");
2128    
2129                            extraData = sb.toString();
2130    
2131                            type = SocialActivityConstants.TYPE_ADD_COMMENT;
2132                    }
2133    
2134                    return newSocialActivityModel(
2135                            mbMessageModel.getGroupId(), classNameId, classPk, type, extraData);
2136            }
2137    
2138            public SubscriptionModel newSubscriptionModel(
2139                    BlogsEntryModel blogsEntryModel) {
2140    
2141                    return newSubscriptionModel(
2142                            _classNameModelsMap.get(BlogsEntry.class.getName()),
2143                            blogsEntryModel.getEntryId());
2144            }
2145    
2146            public SubscriptionModel newSubscriptionModel(MBThreadModel mBThreadModel) {
2147                    return newSubscriptionModel(
2148                            _classNameModelsMap.get(MBThread.class.getName()),
2149                            mBThreadModel.getThreadId());
2150            }
2151    
2152            public SubscriptionModel newSubscriptionModel(WikiPageModel wikiPageModel) {
2153                    return newSubscriptionModel(
2154                            _classNameModelsMap.get(WikiPage.class.getName()),
2155                            wikiPageModel.getResourcePrimKey());
2156            }
2157    
2158            public List<UserModel> newUserModels() {
2159                    List<UserModel> userModels = new ArrayList<UserModel>(_maxUserCount);
2160    
2161                    for (int i = 0; i < _maxUserCount; i++) {
2162                            String[] userName = nextUserName(i);
2163                            userModels.add(
2164                                    newUserModel(
2165                                            _counter.get(), userName[0], userName[1],
2166                                            "test" + _userScreenNameCounter.get(), false));
2167                    }
2168    
2169                    return userModels;
2170            }
2171    
2172            public List<WikiNodeModel> newWikiNodeModels(long groupId) {
2173                    List<WikiNodeModel> wikiNodeModels = new ArrayList<WikiNodeModel>(
2174                            _maxWikiNodeCount);
2175    
2176                    for (int i = 1; i <= _maxWikiNodeCount; i++) {
2177                            wikiNodeModels.add(newWikiNodeModel(groupId, i));
2178                    }
2179    
2180                    return wikiNodeModels;
2181            }
2182    
2183            public List<WikiPageModel> newWikiPageModels(WikiNodeModel wikiNodeModel) {
2184                    List<WikiPageModel> wikiPageModels = new ArrayList<WikiPageModel>(
2185                            _maxWikiPageCount);
2186    
2187                    for (int i = 1; i <= _maxWikiPageCount; i++) {
2188                            wikiPageModels.add(newWikiPageModel(wikiNodeModel, i));
2189                    }
2190    
2191                    return wikiPageModels;
2192            }
2193    
2194            public WikiPageResourceModel newWikiPageResourceModel(
2195                    WikiPageModel wikiPageModel) {
2196    
2197                    WikiPageResourceModel wikiPageResourceModel =
2198                            new WikiPageResourceModelImpl();
2199    
2200                    wikiPageResourceModel.setUuid(SequentialUUID.generate());
2201                    wikiPageResourceModel.setResourcePrimKey(
2202                            wikiPageModel.getResourcePrimKey());
2203                    wikiPageResourceModel.setNodeId(wikiPageModel.getNodeId());
2204                    wikiPageResourceModel.setTitle(wikiPageModel.getTitle());
2205    
2206                    return wikiPageResourceModel;
2207            }
2208    
2209            public String[] nextUserName(long index) {
2210                    String[] userName = new String[2];
2211    
2212                    userName[0] = _firstNames.get(
2213                            (int)(index / _lastNames.size()) % _firstNames.size());
2214                    userName[1] = _lastNames.get((int)(index % _lastNames.size()));
2215    
2216                    return userName;
2217            }
2218    
2219            protected InputStream getResourceInputStream(String resourceName) {
2220                    Class<?> clazz = getClass();
2221    
2222                    ClassLoader classLoader = clazz.getClassLoader();
2223    
2224                    return classLoader.getResourceAsStream(
2225                            _DEPENDENCIES_DIR + resourceName);
2226            }
2227    
2228            protected AssetCategoryModel newAssetCategoryModel(
2229                    long groupId, long lastRightCategoryId, String name,
2230                    long vocabularyId) {
2231    
2232                    AssetCategoryModel assetCategoryModel = new AssetCategoryModelImpl();
2233    
2234                    assetCategoryModel.setUuid(SequentialUUID.generate());
2235                    assetCategoryModel.setCategoryId(_counter.get());
2236                    assetCategoryModel.setGroupId(groupId);
2237                    assetCategoryModel.setCompanyId(_companyId);
2238                    assetCategoryModel.setUserId(_sampleUserId);
2239                    assetCategoryModel.setUserName(_SAMPLE_USER_NAME);
2240                    assetCategoryModel.setCreateDate(new Date());
2241                    assetCategoryModel.setModifiedDate(new Date());
2242                    assetCategoryModel.setParentCategoryId(
2243                            AssetCategoryConstants.DEFAULT_PARENT_CATEGORY_ID);
2244                    assetCategoryModel.setLeftCategoryId(lastRightCategoryId++);
2245                    assetCategoryModel.setRightCategoryId(lastRightCategoryId++);
2246                    assetCategoryModel.setName(name);
2247    
2248                    StringBundler sb = new StringBundler(5);
2249    
2250                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
2251                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
2252                    sb.append("<Title language-id=\"en_US\">");
2253                    sb.append(name);
2254                    sb.append("</Title></root>");
2255    
2256                    assetCategoryModel.setTitle(sb.toString());
2257    
2258                    assetCategoryModel.setVocabularyId(vocabularyId);
2259    
2260                    return assetCategoryModel;
2261            }
2262    
2263            protected AssetEntryModel newAssetEntryModel(
2264                    long groupId, Date createDate, Date modifiedDate, long classNameId,
2265                    long classPK, String uuid, long classTypeId, boolean visible,
2266                    String mimeType, String title) {
2267    
2268                    AssetEntryModel assetEntryModel = new AssetEntryModelImpl();
2269    
2270                    assetEntryModel.setEntryId(_counter.get());
2271                    assetEntryModel.setGroupId(groupId);
2272                    assetEntryModel.setCompanyId(_companyId);
2273                    assetEntryModel.setUserId(_sampleUserId);
2274                    assetEntryModel.setUserName(_SAMPLE_USER_NAME);
2275                    assetEntryModel.setCreateDate(createDate);
2276                    assetEntryModel.setModifiedDate(modifiedDate);
2277                    assetEntryModel.setClassNameId(classNameId);
2278                    assetEntryModel.setClassPK(classPK);
2279                    assetEntryModel.setClassUuid(uuid);
2280                    assetEntryModel.setClassTypeId(classTypeId);
2281                    assetEntryModel.setVisible(visible);
2282                    assetEntryModel.setStartDate(createDate);
2283                    assetEntryModel.setEndDate(nextFutureDate());
2284                    assetEntryModel.setPublishDate(createDate);
2285                    assetEntryModel.setExpirationDate(nextFutureDate());
2286                    assetEntryModel.setMimeType(mimeType);
2287                    assetEntryModel.setTitle(title);
2288    
2289                    return assetEntryModel;
2290            }
2291    
2292            protected AssetTagStatsModel newAssetTagStatsModel(
2293                    long tagId, long classNameId) {
2294    
2295                    AssetTagStatsModel assetTagStatsModel = new AssetTagStatsModelImpl();
2296    
2297                    assetTagStatsModel.setTagStatsId(_counter.get());
2298                    assetTagStatsModel.setTagId(tagId);
2299                    assetTagStatsModel.setClassNameId(classNameId);
2300    
2301                    return assetTagStatsModel;
2302            }
2303    
2304            protected AssetVocabularyModel newAssetVocabularyModel(
2305                    long grouId, long userId, String userName, String name) {
2306    
2307                    AssetVocabularyModel assetVocabularyModel =
2308                            new AssetVocabularyModelImpl();
2309    
2310                    assetVocabularyModel.setUuid(SequentialUUID.generate());
2311                    assetVocabularyModel.setVocabularyId(_counter.get());
2312                    assetVocabularyModel.setGroupId(grouId);
2313                    assetVocabularyModel.setCompanyId(_companyId);
2314                    assetVocabularyModel.setUserId(userId);
2315                    assetVocabularyModel.setUserName(userName);
2316                    assetVocabularyModel.setCreateDate(new Date());
2317                    assetVocabularyModel.setModifiedDate(new Date());
2318                    assetVocabularyModel.setName(name);
2319    
2320                    StringBundler sb = new StringBundler(5);
2321    
2322                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
2323                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
2324                    sb.append("<Title language-id=\"en_US\">");
2325                    sb.append(name);
2326                    sb.append("</Title></root>");
2327    
2328                    assetVocabularyModel.setTitle(sb.toString());
2329    
2330                    assetVocabularyModel.setSettings(
2331                            "multiValued=true\\nselectedClassNameIds=0");
2332    
2333                    return assetVocabularyModel;
2334            }
2335    
2336            protected BlogsEntryModel newBlogsEntryModel(long groupId, int index) {
2337                    BlogsEntryModel blogsEntryModel = new BlogsEntryModelImpl();
2338    
2339                    blogsEntryModel.setUuid(SequentialUUID.generate());
2340                    blogsEntryModel.setEntryId(_counter.get());
2341                    blogsEntryModel.setGroupId(groupId);
2342                    blogsEntryModel.setCompanyId(_companyId);
2343                    blogsEntryModel.setUserId(_sampleUserId);
2344                    blogsEntryModel.setUserName(_SAMPLE_USER_NAME);
2345                    blogsEntryModel.setCreateDate(new Date());
2346                    blogsEntryModel.setModifiedDate(new Date());
2347                    blogsEntryModel.setTitle("Test Blog " + index);
2348                    blogsEntryModel.setUrlTitle("testblog" + index);
2349                    blogsEntryModel.setContent("This is test blog " + index + ".");
2350                    blogsEntryModel.setDisplayDate(new Date());
2351                    blogsEntryModel.setStatusDate(new Date());
2352    
2353                    return blogsEntryModel;
2354            }
2355    
2356            protected DDMContentModel newDDMContentModel(
2357                    long contentId, long groupId, String xml) {
2358    
2359                    DDMContentModel ddmContentModel = new DDMContentModelImpl();
2360    
2361                    ddmContentModel.setUuid(SequentialUUID.generate());
2362                    ddmContentModel.setContentId(contentId);
2363                    ddmContentModel.setGroupId(groupId);
2364                    ddmContentModel.setCompanyId(_companyId);
2365                    ddmContentModel.setUserId(_sampleUserId);
2366                    ddmContentModel.setUserName(_SAMPLE_USER_NAME);
2367                    ddmContentModel.setCreateDate(nextFutureDate());
2368                    ddmContentModel.setModifiedDate(nextFutureDate());
2369                    ddmContentModel.setName(DDMStorageLink.class.getName());
2370                    ddmContentModel.setXml(xml);
2371    
2372                    return ddmContentModel;
2373            }
2374    
2375            protected DDMStructureLinkModel newDDMStructureLinkModel(
2376                    long classNameId, long classPK, long structureId) {
2377    
2378                    DDMStructureLinkModel ddmStructureLinkModel =
2379                            new DDMStructureLinkModelImpl();
2380    
2381                    ddmStructureLinkModel.setStructureLinkId(_counter.get());
2382                    ddmStructureLinkModel.setClassNameId(classNameId);
2383                    ddmStructureLinkModel.setClassPK(classPK);
2384                    ddmStructureLinkModel.setStructureId(structureId);
2385    
2386                    return ddmStructureLinkModel;
2387            }
2388    
2389            protected DDMStructureModel newDDMStructureModel(
2390                    long groupId, long classNameId, String structureKey, String xsd) {
2391    
2392                    DDMStructureModel dDMStructureModel = new DDMStructureModelImpl();
2393    
2394                    dDMStructureModel.setUuid(SequentialUUID.generate());
2395                    dDMStructureModel.setStructureId(_counter.get());
2396                    dDMStructureModel.setGroupId(groupId);
2397                    dDMStructureModel.setCompanyId(_companyId);
2398                    dDMStructureModel.setUserId(_sampleUserId);
2399                    dDMStructureModel.setUserName(_SAMPLE_USER_NAME);
2400                    dDMStructureModel.setCreateDate(nextFutureDate());
2401                    dDMStructureModel.setModifiedDate(nextFutureDate());
2402                    dDMStructureModel.setClassNameId(classNameId);
2403                    dDMStructureModel.setStructureKey(structureKey);
2404    
2405                    StringBundler sb = new StringBundler(5);
2406    
2407                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root ");
2408                    sb.append("available-locales=\"en_US\" default-locale=\"en_US\">");
2409                    sb.append("<name language-id=\"en_US\">");
2410                    sb.append(structureKey);
2411                    sb.append("</name></root>");
2412    
2413                    dDMStructureModel.setName(sb.toString());
2414    
2415                    dDMStructureModel.setXsd(xsd);
2416                    dDMStructureModel.setStorageType("xml");
2417    
2418                    return dDMStructureModel;
2419            }
2420    
2421            protected DLFileEntryModel newDlFileEntryModel(
2422                    DLFolderModel dlFolerModel, int index) {
2423    
2424                    DLFileEntryModel dlFileEntryModel = new DLFileEntryModelImpl();
2425    
2426                    dlFileEntryModel.setUuid(SequentialUUID.generate());
2427                    dlFileEntryModel.setFileEntryId(_counter.get());
2428                    dlFileEntryModel.setGroupId(dlFolerModel.getGroupId());
2429                    dlFileEntryModel.setCompanyId(_companyId);
2430                    dlFileEntryModel.setUserId(_sampleUserId);
2431                    dlFileEntryModel.setUserName(_SAMPLE_USER_NAME);
2432                    dlFileEntryModel.setCreateDate(nextFutureDate());
2433                    dlFileEntryModel.setModifiedDate(nextFutureDate());
2434                    dlFileEntryModel.setRepositoryId(dlFolerModel.getRepositoryId());
2435                    dlFileEntryModel.setFolderId(dlFolerModel.getFolderId());
2436                    dlFileEntryModel.setName("TestFile" + index);
2437                    dlFileEntryModel.setExtension("txt");
2438                    dlFileEntryModel.setMimeType(ContentTypes.TEXT_PLAIN);
2439                    dlFileEntryModel.setTitle("TestFile" + index + ".txt");
2440                    dlFileEntryModel.setFileEntryTypeId(
2441                            DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT);
2442                    dlFileEntryModel.setVersion(DLFileEntryConstants.VERSION_DEFAULT);
2443                    dlFileEntryModel.setSize(_maxDLFileEntrySize);
2444    
2445                    return dlFileEntryModel;
2446            }
2447    
2448            protected DLFolderModel newDLFolderModel(
2449                    long groupId, long parentFolderId, int index) {
2450    
2451                    DLFolderModel dlFolderModel = new DLFolderModelImpl();
2452    
2453                    dlFolderModel.setUuid(SequentialUUID.generate());
2454                    dlFolderModel.setFolderId(_counter.get());
2455                    dlFolderModel.setGroupId(groupId);
2456                    dlFolderModel.setCompanyId(_companyId);
2457                    dlFolderModel.setUserId(_sampleUserId);
2458                    dlFolderModel.setUserName(_SAMPLE_USER_NAME);
2459                    dlFolderModel.setCreateDate(nextFutureDate());
2460                    dlFolderModel.setModifiedDate(nextFutureDate());
2461                    dlFolderModel.setRepositoryId(groupId);
2462                    dlFolderModel.setParentFolderId(parentFolderId);
2463                    dlFolderModel.setName("Test Folder " + index);
2464                    dlFolderModel.setLastPostDate(nextFutureDate());
2465                    dlFolderModel.setDefaultFileEntryTypeId(
2466                            _defaultDLFileEntryTypeModel.getFileEntryTypeId());
2467                    dlFolderModel.setStatusDate(nextFutureDate());
2468    
2469                    return dlFolderModel;
2470            }
2471    
2472            protected GroupModel newGroupModel(
2473                            long groupId, long classNameId, long classPK, String name,
2474                            boolean site)
2475                    throws Exception {
2476    
2477                    GroupModel groupModel = new GroupModelImpl();
2478    
2479                    groupModel.setUuid(SequentialUUID.generate());
2480                    groupModel.setGroupId(groupId);
2481                    groupModel.setCompanyId(_companyId);
2482                    groupModel.setCreatorUserId(_sampleUserId);
2483                    groupModel.setClassNameId(classNameId);
2484                    groupModel.setClassPK(classPK);
2485                    groupModel.setTreePath(
2486                            StringPool.SLASH + groupModel.getGroupId() + StringPool.SLASH);
2487                    groupModel.setName(name);
2488                    groupModel.setManualMembership(true);
2489                    groupModel.setMembershipRestriction(
2490                            GroupConstants.DEFAULT_MEMBERSHIP_RESTRICTION);
2491                    groupModel.setFriendlyURL(
2492                            StringPool.FORWARD_SLASH +
2493                                    FriendlyURLNormalizerUtil.normalize(name));
2494                    groupModel.setSite(site);
2495                    groupModel.setActive(true);
2496    
2497                    return groupModel;
2498            }
2499    
2500            protected LayoutSetModel newLayoutSetModel(
2501                    long groupId, boolean privateLayout, int pageCount) {
2502    
2503                    LayoutSetModel layoutSetModel = new LayoutSetModelImpl();
2504    
2505                    layoutSetModel.setLayoutSetId(_counter.get());
2506                    layoutSetModel.setGroupId(groupId);
2507                    layoutSetModel.setCompanyId(_companyId);
2508                    layoutSetModel.setCreateDate(new Date());
2509                    layoutSetModel.setModifiedDate(new Date());
2510                    layoutSetModel.setPrivateLayout(privateLayout);
2511                    layoutSetModel.setThemeId("classic");
2512                    layoutSetModel.setColorSchemeId("01");
2513                    layoutSetModel.setWapThemeId("mobile");
2514                    layoutSetModel.setWapColorSchemeId("01");
2515                    layoutSetModel.setPageCount(pageCount);
2516    
2517                    return layoutSetModel;
2518            }
2519    
2520            protected MBCategoryModel newMBCategoryModel(long groupId, int index) {
2521                    MBCategoryModel mbCategoryModel = new MBCategoryModelImpl();
2522    
2523                    mbCategoryModel.setUuid(SequentialUUID.generate());
2524                    mbCategoryModel.setCategoryId(_counter.get());
2525                    mbCategoryModel.setGroupId(groupId);
2526                    mbCategoryModel.setCompanyId(_companyId);
2527                    mbCategoryModel.setUserId(_sampleUserId);
2528                    mbCategoryModel.setUserName(_SAMPLE_USER_NAME);
2529                    mbCategoryModel.setCreateDate(new Date());
2530                    mbCategoryModel.setModifiedDate(new Date());
2531                    mbCategoryModel.setParentCategoryId(
2532                            MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID);
2533                    mbCategoryModel.setName("Test Category " + index);
2534                    mbCategoryModel.setDisplayStyle(
2535                            MBCategoryConstants.DEFAULT_DISPLAY_STYLE);
2536                    mbCategoryModel.setThreadCount(_maxMBThreadCount);
2537                    mbCategoryModel.setMessageCount(_maxMBThreadCount * _maxMBMessageCount);
2538                    mbCategoryModel.setLastPostDate(new Date());
2539                    mbCategoryModel.setStatusDate(new Date());
2540    
2541                    return mbCategoryModel;
2542            }
2543    
2544            protected MBMessageModel newMBMessageModel(
2545                    long groupId, long classNameId, long classPK, long categoryId,
2546                    long threadId, long messageId, long rootMessageId, long parentMessageId,
2547                    String subject, String body) {
2548    
2549                    MBMessageModel mBMessageModel = new MBMessageModelImpl();
2550    
2551                    mBMessageModel.setUuid(SequentialUUID.generate());
2552                    mBMessageModel.setMessageId(messageId);
2553                    mBMessageModel.setGroupId(groupId);
2554                    mBMessageModel.setCompanyId(_companyId);
2555                    mBMessageModel.setUserId(_sampleUserId);
2556                    mBMessageModel.setUserName(_SAMPLE_USER_NAME);
2557                    mBMessageModel.setCreateDate(new Date());
2558                    mBMessageModel.setModifiedDate(new Date());
2559                    mBMessageModel.setClassNameId(classNameId);
2560                    mBMessageModel.setClassPK(classPK);
2561                    mBMessageModel.setCategoryId(categoryId);
2562                    mBMessageModel.setThreadId(threadId);
2563                    mBMessageModel.setRootMessageId(rootMessageId);
2564                    mBMessageModel.setParentMessageId(parentMessageId);
2565                    mBMessageModel.setSubject(subject);
2566                    mBMessageModel.setBody(body);
2567                    mBMessageModel.setFormat(MBMessageConstants.DEFAULT_FORMAT);
2568                    mBMessageModel.setStatusDate(new Date());
2569    
2570                    return mBMessageModel;
2571            }
2572    
2573            protected MBThreadModel newMBThreadModel(
2574                    long threadId, long groupId, long categoryId, long rootMessageId,
2575                    int messageCount) {
2576    
2577                    MBThreadModel mbThreadModel = new MBThreadModelImpl();
2578    
2579                    mbThreadModel.setUuid(SequentialUUID.generate());
2580                    mbThreadModel.setThreadId(threadId);
2581                    mbThreadModel.setGroupId(groupId);
2582                    mbThreadModel.setCompanyId(_companyId);
2583                    mbThreadModel.setUserId(_sampleUserId);
2584                    mbThreadModel.setUserName(_SAMPLE_USER_NAME);
2585                    mbThreadModel.setCreateDate(new Date());
2586                    mbThreadModel.setModifiedDate(new Date());
2587                    mbThreadModel.setCategoryId(categoryId);
2588                    mbThreadModel.setRootMessageId(rootMessageId);
2589                    mbThreadModel.setRootMessageUserId(_sampleUserId);
2590                    mbThreadModel.setMessageCount(messageCount);
2591                    mbThreadModel.setLastPostByUserId(_sampleUserId);
2592                    mbThreadModel.setLastPostDate(new Date());
2593                    mbThreadModel.setStatusDate(new Date());
2594    
2595                    return mbThreadModel;
2596            }
2597    
2598            protected PortletPreferencesModel newPortletPreferencesModel(
2599                    long plid, String portletId, String preferences) {
2600    
2601                    PortletPreferencesModel portletPreferencesModel =
2602                            new PortletPreferencesModelImpl();
2603    
2604                    portletPreferencesModel.setPortletPreferencesId(_counter.get());
2605                    portletPreferencesModel.setOwnerId(PortletKeys.PREFS_OWNER_ID_DEFAULT);
2606                    portletPreferencesModel.setOwnerType(
2607                            PortletKeys.PREFS_OWNER_TYPE_LAYOUT);
2608                    portletPreferencesModel.setPlid(plid);
2609                    portletPreferencesModel.setPortletId(portletId);
2610                    portletPreferencesModel.setPreferences(preferences);
2611    
2612                    return portletPreferencesModel;
2613            }
2614    
2615            protected ResourcePermissionModel newResourcePermissionModel(
2616                    String name, String primKey, long roleId, long ownerId) {
2617    
2618                    ResourcePermissionModel resourcePermissionModel =
2619                            new ResourcePermissionModelImpl();
2620    
2621                    resourcePermissionModel.setResourcePermissionId(
2622                            _resourcePermissionCounter.get());
2623                    resourcePermissionModel.setCompanyId(_companyId);
2624                    resourcePermissionModel.setName(name);
2625                    resourcePermissionModel.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
2626                    resourcePermissionModel.setPrimKey(primKey);
2627                    resourcePermissionModel.setRoleId(roleId);
2628                    resourcePermissionModel.setOwnerId(ownerId);
2629                    resourcePermissionModel.setActionIds(1);
2630    
2631                    return resourcePermissionModel;
2632            }
2633    
2634            protected List<ResourcePermissionModel> newResourcePermissionModels(
2635                    String name, String primKey, long ownerId) {
2636    
2637                    List<ResourcePermissionModel> resourcePermissionModels =
2638                            new ArrayList<ResourcePermissionModel>(3);
2639    
2640                    resourcePermissionModels.add(
2641                            newResourcePermissionModel(
2642                                    name, primKey, _guestRoleModel.getRoleId(), 0));
2643                    resourcePermissionModels.add(
2644                            newResourcePermissionModel(
2645                                    name, primKey, _ownerRoleModel.getRoleId(), ownerId));
2646                    resourcePermissionModels.add(
2647                            newResourcePermissionModel(
2648                                    name, primKey, _siteMemberRoleModel.getRoleId(), 0));
2649    
2650                    return resourcePermissionModels;
2651            }
2652    
2653            protected RoleModel newRoleModel(String name, int type) {
2654                    RoleModel roleModel = new RoleModelImpl();
2655    
2656                    roleModel.setUuid(SequentialUUID.generate());
2657                    roleModel.setRoleId(_counter.get());
2658                    roleModel.setCompanyId(_companyId);
2659                    roleModel.setUserId(_sampleUserId);
2660                    roleModel.setUserName(_SAMPLE_USER_NAME);
2661                    roleModel.setCreateDate(new Date());
2662                    roleModel.setModifiedDate(new Date());
2663                    roleModel.setClassNameId(_classNameModelsMap.get(Role.class.getName()));
2664                    roleModel.setClassPK(roleModel.getRoleId());
2665                    roleModel.setName(name);
2666                    roleModel.setType(type);
2667    
2668                    return roleModel;
2669            }
2670    
2671            protected SocialActivityModel newSocialActivityModel(
2672                    long groupId, long classNameId, long classPK, int type,
2673                    String extraData) {
2674    
2675                    SocialActivityModel socialActivityModel = new SocialActivityModelImpl();
2676    
2677                    socialActivityModel.setActivityId(_socialActivityCounter.get());
2678                    socialActivityModel.setGroupId(groupId);
2679                    socialActivityModel.setCompanyId(_companyId);
2680                    socialActivityModel.setUserId(_sampleUserId);
2681                    socialActivityModel.setCreateDate(_CURRENT_TIME + _timeCounter.get());
2682                    socialActivityModel.setClassNameId(classNameId);
2683                    socialActivityModel.setClassPK(classPK);
2684                    socialActivityModel.setType(type);
2685                    socialActivityModel.setExtraData(extraData);
2686    
2687                    return socialActivityModel;
2688            }
2689    
2690            protected SubscriptionModel newSubscriptionModel(
2691                    long classNameId, long classPK) {
2692    
2693                    SubscriptionModel subscriptionModel = new SubscriptionModelImpl();
2694    
2695                    subscriptionModel.setSubscriptionId(_counter.get());
2696                    subscriptionModel.setCompanyId(_companyId);
2697                    subscriptionModel.setUserId(_sampleUserId);
2698                    subscriptionModel.setUserName(_SAMPLE_USER_NAME);
2699                    subscriptionModel.setCreateDate(new Date());
2700                    subscriptionModel.setModifiedDate(new Date());
2701                    subscriptionModel.setClassNameId(classNameId);
2702                    subscriptionModel.setClassPK(classPK);
2703                    subscriptionModel.setFrequency(SubscriptionConstants.FREQUENCY_INSTANT);
2704    
2705                    return subscriptionModel;
2706            }
2707    
2708            protected UserModel newUserModel(
2709                    long userId, String firstName, String lastName, String screenName,
2710                    boolean defaultUser) {
2711    
2712                    if (Validator.isNull(screenName)) {
2713                            screenName = String.valueOf(userId);
2714                    }
2715    
2716                    UserModel userModel = new UserModelImpl();
2717    
2718                    userModel.setUuid(SequentialUUID.generate());
2719                    userModel.setUserId(userId);
2720                    userModel.setCompanyId(_companyId);
2721                    userModel.setCreateDate(new Date());
2722                    userModel.setModifiedDate(new Date());
2723                    userModel.setDefaultUser(defaultUser);
2724                    userModel.setContactId(_counter.get());
2725                    userModel.setPassword("test");
2726                    userModel.setPasswordModifiedDate(new Date());
2727                    userModel.setReminderQueryQuestion("What is your screen name?");
2728                    userModel.setReminderQueryAnswer(screenName);
2729                    userModel.setEmailAddress(screenName + "@liferay.com");
2730                    userModel.setScreenName(screenName);
2731                    userModel.setLanguageId("en_US");
2732                    userModel.setGreeting("Welcome " + screenName + StringPool.EXCLAMATION);
2733                    userModel.setFirstName(firstName);
2734                    userModel.setLastName(lastName);
2735                    userModel.setLoginDate(new Date());
2736                    userModel.setLastLoginDate(new Date());
2737                    userModel.setLastFailedLoginDate(new Date());
2738                    userModel.setLockoutDate(new Date());
2739                    userModel.setAgreedToTermsOfUse(true);
2740                    userModel.setEmailAddressVerified(true);
2741    
2742                    return userModel;
2743            }
2744    
2745            protected WikiNodeModel newWikiNodeModel(long groupId, int index) {
2746                    WikiNodeModel wikiNodeModel = new WikiNodeModelImpl();
2747    
2748                    wikiNodeModel.setUuid(SequentialUUID.generate());
2749                    wikiNodeModel.setNodeId(_counter.get());
2750                    wikiNodeModel.setGroupId(groupId);
2751                    wikiNodeModel.setCompanyId(_companyId);
2752                    wikiNodeModel.setUserId(_sampleUserId);
2753                    wikiNodeModel.setUserName(_SAMPLE_USER_NAME);
2754                    wikiNodeModel.setCreateDate(new Date());
2755                    wikiNodeModel.setModifiedDate(new Date());
2756                    wikiNodeModel.setName("Test Node " + index);
2757                    wikiNodeModel.setLastPostDate(new Date());
2758                    wikiNodeModel.setStatusDate(new Date());
2759    
2760                    return wikiNodeModel;
2761            }
2762    
2763            protected WikiPageModel newWikiPageModel(
2764                    WikiNodeModel wikiNodeModel, int index) {
2765    
2766                    WikiPageModel wikiPageModel = new WikiPageModelImpl();
2767    
2768                    wikiPageModel.setUuid(SequentialUUID.generate());
2769                    wikiPageModel.setPageId(_counter.get());
2770                    wikiPageModel.setResourcePrimKey(_counter.get());
2771                    wikiPageModel.setGroupId(wikiNodeModel.getGroupId());
2772                    wikiPageModel.setCompanyId(_companyId);
2773                    wikiPageModel.setUserId(_sampleUserId);
2774                    wikiPageModel.setUserName(_SAMPLE_USER_NAME);
2775                    wikiPageModel.setCreateDate(new Date());
2776                    wikiPageModel.setModifiedDate(new Date());
2777                    wikiPageModel.setNodeId(wikiNodeModel.getNodeId());
2778                    wikiPageModel.setTitle("Test Page " + index);
2779                    wikiPageModel.setVersion(WikiPageConstants.VERSION_DEFAULT);
2780                    wikiPageModel.setContent("This is test page " + index + ".");
2781                    wikiPageModel.setFormat(WikiPageConstants.DEFAULT_FORMAT);
2782                    wikiPageModel.setHead(true);
2783    
2784                    return wikiPageModel;
2785            }
2786    
2787            protected String nextDDLCustomFieldName(
2788                    long groupId, int customFieldIndex) {
2789    
2790                    StringBundler sb = new StringBundler(4);
2791    
2792                    sb.append("costom_field_text_");
2793                    sb.append(groupId);
2794                    sb.append("_");
2795                    sb.append(customFieldIndex);
2796    
2797                    return sb.toString();
2798            }
2799    
2800            protected Date nextFutureDate() {
2801                    return new Date(
2802                            _FUTURE_TIME + (_futureDateCounter.get() * Time.SECOND));
2803            }
2804    
2805            private static final long _CURRENT_TIME = System.currentTimeMillis();
2806    
2807            private static final String _DEPENDENCIES_DIR =
2808                    "com/liferay/portal/tools/samplesqlbuilder/dependencies/";
2809    
2810            private static final long _FUTURE_TIME =
2811                    System.currentTimeMillis() + Time.YEAR;
2812    
2813            private static final String _SAMPLE_USER_NAME = "Sample";
2814    
2815            private static PortletPreferencesFactory _portletPreferencesFactory =
2816                    new PortletPreferencesFactoryImpl();
2817    
2818            private long _accountId;
2819            private AccountModel _accountModel;
2820            private RoleModel _administratorRoleModel;
2821            private Map<Long, SimpleCounter> _assetCategoryCounters =
2822                    new HashMap<Long, SimpleCounter>();
2823            private List<AssetCategoryModel>[] _assetCategoryModelsArray;
2824            private Map<Long, SimpleCounter> _assetPublisherRuleCounter =
2825                    new HashMap<Long, SimpleCounter>();
2826            private Map<Long, SimpleCounter> _assetTagCounters =
2827                    new HashMap<Long, SimpleCounter>();
2828            private List<AssetTagModel>[] _assetTagModelsArray;
2829            private List<AssetTagStatsModel>[] _assetTagStatsModelsArray;
2830            private List<AssetVocabularyModel>[] _assetVocabularyModelsArray;
2831            private List<ClassNameModel> _classNameModels;
2832            private Map<String, Long> _classNameModelsMap = new HashMap<String, Long>();
2833            private long _companyId;
2834            private CompanyModel _companyModel;
2835            private SimpleCounter _counter;
2836            private AssetVocabularyModel _defaultAssetVocabularyModel;
2837            private DDMStructureModel _defaultDLDDMStructureModel;
2838            private DLFileEntryTypeModel _defaultDLFileEntryTypeModel;
2839            private long _defaultUserId;
2840            private UserModel _defaultUserModel;
2841            private String _dlDDMStructureContent;
2842            private List<String> _firstNames;
2843            private SimpleCounter _futureDateCounter;
2844            private long _globalGroupId;
2845            private GroupModel _globalGroupModel;
2846            private List<GroupModel> _groupModels;
2847            private long _guestGroupId;
2848            private GroupModel _guestGroupModel;
2849            private RoleModel _guestRoleModel;
2850            private UserModel _guestUserModel;
2851            private String _journalArticleContent;
2852            private List<String> _lastNames;
2853            private Map<Long, SimpleCounter> _layoutCounters =
2854                    new HashMap<Long, SimpleCounter>();
2855            private int _maxAssetCategoryCount;
2856            private int _maxAssetEntryToAssetCategoryCount;
2857            private int _maxAssetEntryToAssetTagCount;
2858            private int _maxAssetPublisherFilterRuleCount;
2859            private int _maxAssetPublisherPageCount;
2860            private int _maxAssetTagCount;
2861            private int _maxAssetVocabularyCount;
2862            private int _maxBlogsEntryCommentCount;
2863            private int _maxBlogsEntryCount;
2864            private int _maxDDLCustomFieldCount;
2865            private int _maxDDLRecordCount;
2866            private int _maxDDLRecordSetCount;
2867            private int _maxDLFileEntryCount;
2868            private int _maxDLFileEntrySize;
2869            private int _maxDLFolderCount;
2870            private int _maxDLFolderDepth;
2871            private int _maxGroupsCount;
2872            private int _maxJournalArticleCount;
2873            private int _maxJournalArticlePageCount;
2874            private int _maxJournalArticleVersionCount;
2875            private int _maxMBCategoryCount;
2876            private int _maxMBMessageCount;
2877            private int _maxMBThreadCount;
2878            private int _maxUserCount;
2879            private int _maxUserToGroupCount;
2880            private int _maxWikiNodeCount;
2881            private int _maxWikiPageCommentCount;
2882            private int _maxWikiPageCount;
2883            private RoleModel _ownerRoleModel;
2884            private RoleModel _powerUserRoleModel;
2885            private SimpleCounter _resourcePermissionCounter;
2886            private List<RoleModel> _roleModels;
2887            private long _sampleUserId;
2888            private UserModel _sampleUserModel;
2889            private Format _simpleDateFormat =
2890                    FastDateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2891            private RoleModel _siteMemberRoleModel;
2892            private SimpleCounter _socialActivityCounter;
2893            private SimpleCounter _timeCounter;
2894            private RoleModel _userRoleModel;
2895            private SimpleCounter _userScreenNameCounter;
2896            private VirtualHostModel _virtualHostModel;
2897    
2898    }