001
014
015 package com.liferay.portal.tools.samplesqlbuilder;
016
017 import com.liferay.counter.model.Counter;
018 import com.liferay.counter.model.impl.CounterModelImpl;
019 import com.liferay.portal.kernel.util.CharPool;
020 import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil;
021 import com.liferay.portal.kernel.util.IntegerWrapper;
022 import com.liferay.portal.kernel.util.ListUtil;
023 import com.liferay.portal.kernel.util.StringUtil;
024 import com.liferay.portal.kernel.util.Time;
025 import com.liferay.portal.kernel.util.UnicodeProperties;
026 import com.liferay.portal.kernel.util.Validator;
027 import com.liferay.portal.model.ClassName;
028 import com.liferay.portal.model.Company;
029 import com.liferay.portal.model.Contact;
030 import com.liferay.portal.model.Group;
031 import com.liferay.portal.model.GroupConstants;
032 import com.liferay.portal.model.Layout;
033 import com.liferay.portal.model.LayoutTypePortletConstants;
034 import com.liferay.portal.model.ModelHintsUtil;
035 import com.liferay.portal.model.PortletPreferences;
036 import com.liferay.portal.model.ResourceConstants;
037 import com.liferay.portal.model.ResourcePermission;
038 import com.liferay.portal.model.Role;
039 import com.liferay.portal.model.RoleConstants;
040 import com.liferay.portal.model.User;
041 import com.liferay.portal.model.impl.ClassNameImpl;
042 import com.liferay.portal.model.impl.CompanyImpl;
043 import com.liferay.portal.model.impl.ContactImpl;
044 import com.liferay.portal.model.impl.GroupImpl;
045 import com.liferay.portal.model.impl.LayoutImpl;
046 import com.liferay.portal.model.impl.PortletPreferencesImpl;
047 import com.liferay.portal.model.impl.ResourcePermissionImpl;
048 import com.liferay.portal.model.impl.RoleImpl;
049 import com.liferay.portal.model.impl.UserImpl;
050 import com.liferay.portal.util.PortletKeys;
051 import com.liferay.portlet.asset.model.AssetEntry;
052 import com.liferay.portlet.asset.model.impl.AssetEntryImpl;
053 import com.liferay.portlet.blogs.model.BlogsEntry;
054 import com.liferay.portlet.blogs.model.BlogsStatsUser;
055 import com.liferay.portlet.blogs.model.impl.BlogsEntryImpl;
056 import com.liferay.portlet.blogs.model.impl.BlogsStatsUserImpl;
057 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
058 import com.liferay.portlet.documentlibrary.model.DLFileEntryMetadata;
059 import com.liferay.portlet.documentlibrary.model.DLFileEntryType;
060 import com.liferay.portlet.documentlibrary.model.DLFileEntryTypeConstants;
061 import com.liferay.portlet.documentlibrary.model.DLFileVersion;
062 import com.liferay.portlet.documentlibrary.model.DLFolder;
063 import com.liferay.portlet.documentlibrary.model.DLSync;
064 import com.liferay.portlet.documentlibrary.model.DLSyncConstants;
065 import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryImpl;
066 import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryMetadataImpl;
067 import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryTypeImpl;
068 import com.liferay.portlet.documentlibrary.model.impl.DLFileVersionImpl;
069 import com.liferay.portlet.documentlibrary.model.impl.DLFolderImpl;
070 import com.liferay.portlet.documentlibrary.model.impl.DLSyncImpl;
071 import com.liferay.portlet.dynamicdatalists.model.DDLRecord;
072 import com.liferay.portlet.dynamicdatalists.model.DDLRecordSet;
073 import com.liferay.portlet.dynamicdatalists.model.DDLRecordVersion;
074 import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordImpl;
075 import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordSetImpl;
076 import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordVersionImpl;
077 import com.liferay.portlet.dynamicdatamapping.model.DDMContent;
078 import com.liferay.portlet.dynamicdatamapping.model.DDMStorageLink;
079 import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
080 import com.liferay.portlet.dynamicdatamapping.model.DDMStructureLink;
081 import com.liferay.portlet.dynamicdatamapping.model.impl.DDMContentImpl;
082 import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStorageLinkImpl;
083 import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureImpl;
084 import com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureLinkImpl;
085 import com.liferay.portlet.journal.model.JournalArticle;
086 import com.liferay.portlet.journal.model.JournalArticleResource;
087 import com.liferay.portlet.journal.model.impl.JournalArticleImpl;
088 import com.liferay.portlet.journal.model.impl.JournalArticleResourceImpl;
089 import com.liferay.portlet.messageboards.model.MBCategory;
090 import com.liferay.portlet.messageboards.model.MBCategoryConstants;
091 import com.liferay.portlet.messageboards.model.MBDiscussion;
092 import com.liferay.portlet.messageboards.model.MBMessage;
093 import com.liferay.portlet.messageboards.model.MBStatsUser;
094 import com.liferay.portlet.messageboards.model.MBThread;
095 import com.liferay.portlet.messageboards.model.impl.MBCategoryImpl;
096 import com.liferay.portlet.messageboards.model.impl.MBDiscussionImpl;
097 import com.liferay.portlet.messageboards.model.impl.MBMessageImpl;
098 import com.liferay.portlet.messageboards.model.impl.MBStatsUserImpl;
099 import com.liferay.portlet.messageboards.model.impl.MBThreadImpl;
100 import com.liferay.portlet.social.model.SocialActivity;
101 import com.liferay.portlet.social.model.impl.SocialActivityImpl;
102 import com.liferay.portlet.wiki.model.WikiNode;
103 import com.liferay.portlet.wiki.model.WikiPage;
104 import com.liferay.portlet.wiki.model.impl.WikiNodeImpl;
105 import com.liferay.portlet.wiki.model.impl.WikiPageImpl;
106 import com.liferay.util.SimpleCounter;
107
108 import java.io.File;
109
110 import java.text.Format;
111
112 import java.util.ArrayList;
113 import java.util.Date;
114 import java.util.List;
115
116
119 public class DataFactory {
120
121 public DataFactory(
122 String baseDir, int maxGroupsCount, int maxJournalArticleSize,
123 int maxMBCategoryCount, int maxMBThreadCount, int maxMBMessageCount,
124 int maxUserToGroupCount) {
125
126 try {
127 _baseDir = baseDir;
128 _maxGroupsCount = maxGroupsCount;
129 _maxUserToGroupCount = maxUserToGroupCount;
130 _maxMBCategoryCount = maxMBCategoryCount;
131 _maxMBThreadCount = maxMBThreadCount;
132 _maxMBMessageCount = maxMBMessageCount;
133
134 initSimpleCounters();
135
136 initClassNames();
137 initCompany();
138 initDefaultUser();
139 initDLFileEntryType();
140 initGuestGroup();
141 initJournalArticle(maxJournalArticleSize);
142 initRoles();
143 initUserNames();
144 }
145 catch (Exception e) {
146 e.printStackTrace();
147 }
148 }
149
150 public AssetEntry addAssetEntry(
151 long groupId, long userId, long classNameId, long classPK,
152 boolean visible, String mimeType, String title) {
153
154 AssetEntry assetEntry = new AssetEntryImpl();
155
156 assetEntry.setGroupId(groupId);
157 assetEntry.setUserId(userId);
158 assetEntry.setClassNameId(classNameId);
159 assetEntry.setClassPK(classPK);
160 assetEntry.setVisible(visible);
161 assetEntry.setMimeType(mimeType);
162 assetEntry.setTitle(title);
163
164 return assetEntry;
165 }
166
167 public BlogsEntry addBlogsEntry(
168 long groupId, long userId, String title, String urlTitle,
169 String content) {
170
171 BlogsEntry blogsEntry = new BlogsEntryImpl();
172
173 blogsEntry.setEntryId(_counter.get());
174 blogsEntry.setGroupId(groupId);
175 blogsEntry.setUserId(userId);
176 blogsEntry.setTitle(title);
177 blogsEntry.setUrlTitle(urlTitle);
178 blogsEntry.setContent(content);
179
180 return blogsEntry;
181 }
182
183 public BlogsStatsUser addBlogsStatsUser(long groupId, long userId) {
184 BlogsStatsUser blogsStatsUser = new BlogsStatsUserImpl();
185
186 blogsStatsUser.setGroupId(groupId);
187 blogsStatsUser.setUserId(userId);
188
189 return blogsStatsUser;
190 }
191
192 public Contact addContact(String firstName, String lastName) {
193 Contact contact = new ContactImpl();
194
195 contact.setContactId(_counter.get());
196 contact.setAccountId(_company.getAccountId());
197 contact.setFirstName(firstName);
198 contact.setLastName(lastName);
199
200 return contact;
201 }
202
203 public DDLRecord addDDLRecord(
204 long groupId, long companyId, long userId, long ddlRecordSetId) {
205
206 DDLRecord ddlRecord = new DDLRecordImpl();
207
208 ddlRecord.setRecordId(_counter.get());
209 ddlRecord.setGroupId(groupId);
210 ddlRecord.setCompanyId(companyId);
211 ddlRecord.setUserId(userId);
212 ddlRecord.setCreateDate(newCreateDate());
213 ddlRecord.setRecordSetId(ddlRecordSetId);
214
215 return ddlRecord;
216 }
217
218 public DDLRecordSet addDDLRecordSet(
219 long groupId, long companyId, long userId, long ddmStructureId) {
220
221 DDLRecordSet ddlRecordSet = new DDLRecordSetImpl();
222
223 ddlRecordSet.setRecordSetId(_counter.get());
224 ddlRecordSet.setGroupId(groupId);
225 ddlRecordSet.setCompanyId(companyId);
226 ddlRecordSet.setUserId(userId);
227 ddlRecordSet.setDDMStructureId(ddmStructureId);
228
229 return ddlRecordSet;
230 }
231
232 public DDLRecordVersion addDDLRecordVersion(DDLRecord ddlRecord) {
233 DDLRecordVersion ddlRecordVersion = new DDLRecordVersionImpl();
234
235 ddlRecordVersion.setRecordVersionId(_counter.get());
236 ddlRecordVersion.setGroupId(ddlRecord.getGroupId());
237 ddlRecordVersion.setCompanyId(ddlRecord.getCompanyId());
238 ddlRecordVersion.setUserId(ddlRecord.getUserId());
239 ddlRecordVersion.setRecordSetId(ddlRecord.getRecordSetId());
240 ddlRecordVersion.setRecordId(ddlRecord.getRecordId());
241
242 return ddlRecordVersion;
243 }
244
245 public DDMContent addDDMContent(long groupId, long companyId, long userId) {
246 DDMContent ddmContent = new DDMContentImpl();
247
248 ddmContent.setContentId(_counter.get());
249 ddmContent.setGroupId(groupId);
250 ddmContent.setCompanyId(companyId);
251 ddmContent.setUserId(userId);
252
253 return ddmContent;
254 }
255
256 public DDMStorageLink addDDMStorageLink(
257 long classNameId, long classPK, long structureId) {
258
259 DDMStorageLink ddmStorageLink = new DDMStorageLinkImpl();
260
261 ddmStorageLink.setStorageLinkId(_counter.get());
262 ddmStorageLink.setClassNameId(classNameId);
263 ddmStorageLink.setClassPK(classPK);
264 ddmStorageLink.setStructureId(structureId);
265
266 return ddmStorageLink;
267 }
268
269 public DDMStructure addDDMStructure(
270 long groupId, long companyId, long userId, long classNameId) {
271
272 DDMStructure ddmStructure = new DDMStructureImpl();
273
274 ddmStructure.setStructureId(_counter.get());
275 ddmStructure.setGroupId(groupId);
276 ddmStructure.setCompanyId(companyId);
277 ddmStructure.setUserId(userId);
278 ddmStructure.setCreateDate(newCreateDate());
279 ddmStructure.setClassNameId(classNameId);
280
281 return ddmStructure;
282 }
283
284 public DDMStructureLink addDDMStructureLink(
285 long classPK, long structureId) {
286
287 DDMStructureLink ddmStructureLink = new DDMStructureLinkImpl();
288
289 ddmStructureLink.setStructureLinkId(_counter.get());
290 ddmStructureLink.setClassNameId(_dlFileEntryClassNameId);
291 ddmStructureLink.setClassPK(classPK);
292 ddmStructureLink.setStructureId(structureId);
293
294 return ddmStructureLink;
295 }
296
297 public DLFileEntry addDlFileEntry(
298 long groupId, long companyId, long userId, long folderId,
299 String extension, String mimeType, String name, String title,
300 String description) {
301
302 DLFileEntry dlFileEntry = new DLFileEntryImpl();
303
304 dlFileEntry.setFileEntryId(_counter.get());
305 dlFileEntry.setGroupId(groupId);
306 dlFileEntry.setCompanyId(companyId);
307 dlFileEntry.setUserId(userId);
308 dlFileEntry.setCreateDate(newCreateDate());
309 dlFileEntry.setRepositoryId(groupId);
310 dlFileEntry.setFolderId(folderId);
311 dlFileEntry.setName(name);
312 dlFileEntry.setExtension(extension);
313 dlFileEntry.setMimeType(mimeType);
314 dlFileEntry.setTitle(title);
315 dlFileEntry.setDescription(description);
316 dlFileEntry.setSmallImageId(_counter.get());
317 dlFileEntry.setLargeImageId(_counter.get());
318
319 return dlFileEntry;
320 }
321
322 public DLFileEntryMetadata addDLFileEntryMetadata(
323 long ddmStorageId, long ddmStructureId, long fileEntryId,
324 long fileVersionId) {
325
326 DLFileEntryMetadata dlFileEntryMetadata = new DLFileEntryMetadataImpl();
327
328 dlFileEntryMetadata.setFileEntryMetadataId(_counter.get());
329 dlFileEntryMetadata.setDDMStorageId(ddmStorageId);
330 dlFileEntryMetadata.setDDMStructureId(ddmStructureId);
331 dlFileEntryMetadata.setFileEntryId(fileEntryId);
332 dlFileEntryMetadata.setFileVersionId(fileVersionId);
333
334 return dlFileEntryMetadata;
335 }
336
337 public DLFileVersion addDLFileVersion(DLFileEntry dlFileEntry) {
338 DLFileVersion dlFileVersion = new DLFileVersionImpl();
339
340 dlFileVersion.setFileVersionId(_counter.get());
341 dlFileVersion.setGroupId(dlFileEntry.getGroupId());
342 dlFileVersion.setCompanyId(dlFileEntry.getCompanyId());
343 dlFileVersion.setUserId(dlFileEntry.getUserId());
344 dlFileVersion.setRepositoryId(dlFileEntry.getRepositoryId());
345 dlFileVersion.setFileEntryId(dlFileEntry.getFileEntryId());
346 dlFileVersion.setExtension(dlFileEntry.getExtension());
347 dlFileVersion.setMimeType(dlFileEntry.getMimeType());
348 dlFileVersion.setTitle(dlFileEntry.getTitle());
349 dlFileVersion.setDescription(dlFileEntry.getDescription());
350 dlFileVersion.setSize(dlFileEntry.getSize());
351
352 return dlFileVersion;
353 }
354
355 public DLFolder addDLFolder(
356 long groupId, long companyId, long userId, long parentFolderId,
357 String name, String description) {
358
359 DLFolder dlFolder = new DLFolderImpl();
360
361 dlFolder.setFolderId(_counter.get());
362 dlFolder.setGroupId(groupId);
363 dlFolder.setCompanyId(companyId);
364 dlFolder.setUserId(userId);
365 dlFolder.setCreateDate(newCreateDate());
366 dlFolder.setRepositoryId(groupId);
367 dlFolder.setParentFolderId(parentFolderId);
368 dlFolder.setName(name);
369 dlFolder.setDescription(description);
370
371 return dlFolder;
372 }
373
374 public DLSync addDLSync(
375 long companyId, long fileId, long repositoryId, long parentFolderId,
376 boolean typeFolder) {
377
378 DLSync dlSync = new DLSyncImpl();
379
380 dlSync.setSyncId(_counter.get());
381 dlSync.setCompanyId(companyId);
382 dlSync.setFileId(fileId);
383 dlSync.setRepositoryId(repositoryId);
384 dlSync.setParentFolderId(parentFolderId);
385 dlSync.setEvent(DLSyncConstants.EVENT_ADD);
386
387 if (typeFolder) {
388 dlSync.setType(DLSyncConstants.TYPE_FOLDER);
389 }
390 else {
391 dlSync.setType(DLSyncConstants.TYPE_FILE);
392 }
393
394 return dlSync;
395 }
396
397 public Group addGroup(
398 long groupId, long classNameId, long classPK, String name,
399 String friendlyURL, boolean site) {
400
401 Group group = new GroupImpl();
402
403 group.setGroupId(groupId);
404 group.setClassNameId(classNameId);
405 group.setClassPK(classPK);
406 group.setName(name);
407 group.setFriendlyURL(friendlyURL);
408 group.setSite(site);
409
410 return group;
411 }
412
413 public JournalArticle addJournalArticle(
414 long resourcePrimKey, long groupId, long companyId, String articleId) {
415
416 JournalArticle journalArticle = new JournalArticleImpl();
417
418 journalArticle.setId(_counter.get());
419 journalArticle.setResourcePrimKey(resourcePrimKey);
420 journalArticle.setGroupId(groupId);
421 journalArticle.setCompanyId(companyId);
422 journalArticle.setArticleId(articleId);
423 journalArticle.setContent(_journalArticleContent);
424
425 return journalArticle;
426 }
427
428 public JournalArticleResource addJournalArticleResource(long groupId) {
429 JournalArticleResource journalArticleResource =
430 new JournalArticleResourceImpl();
431
432 journalArticleResource.setResourcePrimKey(_counter.get());
433 journalArticleResource.setGroupId(groupId);
434 journalArticleResource.setArticleId(String.valueOf(_counter.get()));
435
436 return journalArticleResource;
437 }
438
439 public Layout addLayout(
440 int layoutId, String name, String friendlyURL, String column1,
441 String column2) {
442
443 Layout layout = new LayoutImpl();
444
445 layout.setPlid(_counter.get());
446 layout.setPrivateLayout(false);
447 layout.setLayoutId(layoutId);
448 layout.setName(name);
449 layout.setFriendlyURL(friendlyURL);
450
451 UnicodeProperties typeSettingsProperties = new UnicodeProperties(true);
452
453 typeSettingsProperties.setProperty(
454 LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID, "2_columns_ii");
455 typeSettingsProperties.setProperty("column-1", column1);
456 typeSettingsProperties.setProperty("column-2", column2);
457
458 String typeSettings = StringUtil.replace(
459 typeSettingsProperties.toString(), "\n", "\\n");
460
461 layout.setTypeSettings(typeSettings);
462
463 return layout;
464 }
465
466 public MBCategory addMBCategory(
467 long categoryId, long groupId, long companyId, long userId, String name,
468 String description, int threadCount, int messageCount) {
469
470 MBCategory mbCategory = new MBCategoryImpl();
471
472 mbCategory.setCategoryId(categoryId);
473 mbCategory.setGroupId(groupId);
474 mbCategory.setCompanyId(companyId);
475 mbCategory.setUserId(userId);
476 mbCategory.setName(name);
477 mbCategory.setDescription(description);
478 mbCategory.setDisplayStyle(MBCategoryConstants.DEFAULT_DISPLAY_STYLE);
479 mbCategory.setThreadCount(threadCount);
480 mbCategory.setMessageCount(messageCount);
481
482 return mbCategory;
483 }
484
485 public MBDiscussion addMBDiscussion(
486 long classNameId, long classPK, long threadId) {
487
488 MBDiscussion mbDiscussion = new MBDiscussionImpl();
489
490 mbDiscussion.setDiscussionId(_counter.get());
491 mbDiscussion.setClassNameId(classNameId);
492 mbDiscussion.setClassPK(classPK);
493 mbDiscussion.setThreadId(threadId);
494
495 return mbDiscussion;
496 }
497
498 public MBMessage addMBMessage(
499 long messageId, long groupId, long userId, long classNameId,
500 long classPK, long categoryId, long threadId, long rootMessageId,
501 long parentMessageId, String subject, String body) {
502
503 MBMessage mbMessage = new MBMessageImpl();
504
505 mbMessage.setMessageId(messageId);
506 mbMessage.setGroupId(groupId);
507 mbMessage.setUserId(userId);
508 mbMessage.setClassNameId(classNameId);
509 mbMessage.setClassPK(classPK);
510 mbMessage.setCategoryId(categoryId);
511 mbMessage.setThreadId(threadId);
512 mbMessage.setRootMessageId(rootMessageId);
513 mbMessage.setParentMessageId(parentMessageId);
514 mbMessage.setSubject(subject);
515 mbMessage.setBody(body);
516
517 return mbMessage;
518 }
519
520 public MBStatsUser addMBStatsUser(long groupId, long userId) {
521 MBStatsUser mbStatsUser = new MBStatsUserImpl();
522
523 mbStatsUser.setGroupId(groupId);
524 mbStatsUser.setUserId(userId);
525
526 return mbStatsUser;
527 }
528
529 public MBThread addMBThread(
530 long threadId, long groupId, long companyId, long categoryId,
531 long rootMessageId, int messageCount, long lastPostByUserId) {
532
533 MBThread mbThread = new MBThreadImpl();
534
535 mbThread.setThreadId(threadId);
536 mbThread.setGroupId(groupId);
537 mbThread.setCompanyId(companyId);
538 mbThread.setCategoryId(categoryId);
539 mbThread.setRootMessageId(rootMessageId);
540 mbThread.setRootMessageUserId(lastPostByUserId);
541 mbThread.setMessageCount(messageCount);
542 mbThread.setLastPostByUserId(lastPostByUserId);
543
544 return mbThread;
545 }
546
547 public PortletPreferences addPortletPreferences(
548 long ownerId, long plid, String portletId, String preferences) {
549
550 PortletPreferences portletPreferences = new PortletPreferencesImpl();
551
552 portletPreferences.setPortletPreferencesId(_counter.get());
553 portletPreferences.setOwnerId(ownerId);
554 portletPreferences.setOwnerType(PortletKeys.PREFS_OWNER_TYPE_LAYOUT);
555 portletPreferences.setPlid(plid);
556 portletPreferences.setPortletId(portletId);
557 portletPreferences.setPreferences(preferences);
558
559 return portletPreferences;
560 }
561
562 public List<ResourcePermission> addResourcePermission(
563 long companyId, String name, String primKey) {
564
565 List<ResourcePermission> resourcePermissions =
566 new ArrayList<ResourcePermission>(2);
567
568 ResourcePermission resourcePermission = new ResourcePermissionImpl();
569
570 resourcePermission.setResourcePermissionId(
571 _resourcePermissionCounter.get());
572 resourcePermission.setCompanyId(companyId);
573 resourcePermission.setName(name);
574 resourcePermission.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
575 resourcePermission.setPrimKey(primKey);
576 resourcePermission.setRoleId(_ownerRole.getRoleId());
577 resourcePermission.setOwnerId(_defaultUser.getUserId());
578 resourcePermission.setActionIds(1);
579
580 resourcePermissions.add(resourcePermission);
581
582 resourcePermission = new ResourcePermissionImpl();
583
584 resourcePermission.setResourcePermissionId(
585 _resourcePermissionCounter.get());
586 resourcePermission.setCompanyId(companyId);
587 resourcePermission.setName(name);
588 resourcePermission.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
589 resourcePermission.setPrimKey(primKey);
590 resourcePermission.setRoleId(_guestRole.getRoleId());
591 resourcePermission.setOwnerId(0);
592 resourcePermission.setActionIds(1);
593
594 resourcePermissions.add(resourcePermission);
595
596 return resourcePermissions;
597 }
598
599 public SocialActivity addSocialActivity(
600 long groupId, long companyId, long userId, long classNameId,
601 long classPK) {
602
603 SocialActivity socialActivity = new SocialActivityImpl();
604
605 socialActivity.setActivityId(_socialActivityCounter.get());
606 socialActivity.setGroupId(groupId);
607 socialActivity.setCompanyId(companyId);
608 socialActivity.setUserId(userId);
609 socialActivity.setClassNameId(classNameId);
610 socialActivity.setClassPK(classPK);
611
612 return socialActivity;
613 }
614
615 public User addUser(boolean defaultUser, String screenName) {
616 User user = new UserImpl();
617
618 user.setUserId(_counter.get());
619 user.setDefaultUser(defaultUser);
620
621 if (Validator.isNull(screenName)) {
622 screenName = String.valueOf(user.getUserId());
623 }
624
625 user.setScreenName(screenName);
626
627 String emailAddress = screenName + "@liferay.com";
628
629 user.setEmailAddress(emailAddress);
630
631 return user;
632 }
633
634 public List<Long> addUserToGroupIds(long groupId) {
635 List<Long> groupIds = new ArrayList<Long>(_maxUserToGroupCount + 1);
636
637 groupIds.add(_guestGroup.getGroupId());
638
639 if ((groupId + _maxUserToGroupCount) > _maxGroupsCount) {
640 groupId = groupId - _maxUserToGroupCount + 1;
641 }
642
643 for (int i = 0; i < _maxUserToGroupCount; i++) {
644 groupIds.add(groupId + i);
645 }
646
647 return groupIds;
648 }
649
650 public WikiNode addWikiNode(
651 long groupId, long userId, String name, String description) {
652
653 WikiNode wikiNode = new WikiNodeImpl();
654
655 wikiNode.setNodeId(_counter.get());
656 wikiNode.setGroupId(groupId);
657 wikiNode.setUserId(userId);
658 wikiNode.setName(name);
659 wikiNode.setDescription(description);
660
661 return wikiNode;
662 }
663
664 public WikiPage addWikiPage(
665 long groupId, long userId, long nodeId, String title, double version,
666 String content, boolean head) {
667
668 WikiPage wikiPage = new WikiPageImpl();
669
670 wikiPage.setPageId(_counter.get());
671 wikiPage.setResourcePrimKey(_counter.get());
672 wikiPage.setGroupId(groupId);
673 wikiPage.setUserId(userId);
674 wikiPage.setNodeId(nodeId);
675 wikiPage.setTitle(title);
676 wikiPage.setVersion(version);
677 wikiPage.setContent(content);
678 wikiPage.setHead(head);
679
680 return wikiPage;
681 }
682
683 public Role getAdministratorRole() {
684 return _administratorRole;
685 }
686
687 public long getBlogsEntryClassNameId() {
688 return _blogsEntryClassNameId;
689 }
690
691 public List<ClassName> getClassNames() {
692 return _classNames;
693 }
694
695 public Company getCompany() {
696 return _company;
697 }
698
699 public long getCompanyId() {
700 return _company.getCompanyId();
701 }
702
703 public SimpleCounter getCounter() {
704 return _counter;
705 }
706
707 public List<CounterModelImpl> getCounters() {
708 return _counters;
709 }
710
711 public String getDateLong(Date date) {
712 return String.valueOf(date.getTime());
713 }
714
715 public String getDateString(Date date) {
716 if (date == null) {
717 return null;
718 }
719
720 return _simpleDateFormat.format(date);
721 }
722
723 public long getDDLRecordSetClassNameId() {
724 return _ddlRecordSetClassNameId;
725 }
726
727 public long getDDMContentClassNameId() {
728 return _ddmContentClassNameId;
729 }
730
731 public DLFileEntryType getDefaultDLFileEntryType() {
732 return _defaultDLFileEntryType;
733 }
734
735 public User getDefaultUser() {
736 return _defaultUser;
737 }
738
739 public long getDefaultUserId() {
740 return _defaultUser.getUserId();
741 }
742
743 public long getDLFileEntryClassNameId() {
744 return _dlFileEntryClassNameId;
745 }
746
747 public long getGroupClassNameId() {
748 return _groupClassNameId;
749 }
750
751 public Group getGuestGroup() {
752 return _guestGroup;
753 }
754
755 public Role getGuestRole() {
756 return _guestRole;
757 }
758
759 public long getJournalArticleClassNameId() {
760 return _journalArticleClassNameId;
761 }
762
763 public long getMBMessageClassNameId() {
764 return _mbMessageClassNameId;
765 }
766
767 public Role getOrganizationAdministratorRole() {
768 return _organizationAdministratorRole;
769 }
770
771 public Role getOrganizationOwnerRole() {
772 return _organizationOwnerRole;
773 }
774
775 public Role getOrganizationUserRole() {
776 return _organizationUserRole;
777 }
778
779 public Role getPowerUserRole() {
780 return _powerUserRole;
781 }
782
783 public long getRoleClassNameId() {
784 return _roleClassNameId;
785 }
786
787 public List<Role> getRoles() {
788 return _roles;
789 }
790
791 public Role getSiteAdministratorRole() {
792 return _siteAdministratorRole;
793 }
794
795 public Role getSiteMemberRole() {
796 return _siteMemberRole;
797 }
798
799 public Role getSiteOwnerRole() {
800 return _siteOwnerRole;
801 }
802
803 public long getUserClassNameId() {
804 return _userClassNameId;
805 }
806
807 public Role getUserRole() {
808 return _userRole;
809 }
810
811 public SimpleCounter getUserScreenNameCounter() {
812 return _userScreenNameCounter;
813 }
814
815 public long getWikiPageClassNameId() {
816 return _wikiPageClassNameId;
817 }
818
819 public void initClassNames() {
820 _classNames = new ArrayList<ClassName>();
821
822 List<String> models = ModelHintsUtil.getModels();
823
824 for (String model : models) {
825 ClassName className = new ClassNameImpl();
826
827 long classNameId = _counter.get();
828
829 className.setClassNameId(classNameId);
830
831 className.setValue(model);
832
833 _classNames.add(className);
834
835 if (model.equals(BlogsEntry.class.getName())) {
836 _blogsEntryClassNameId = classNameId;
837 }
838 else if (model.equals(DDLRecordSet.class.getName())) {
839 _ddlRecordSetClassNameId = classNameId;
840 }
841 else if (model.equals(DDMContent.class.getName())) {
842 _ddmContentClassNameId = classNameId;
843 }
844 else if (model.equals(DLFileEntry.class.getName())) {
845 _dlFileEntryClassNameId = classNameId;
846 }
847 else if (model.equals(Group.class.getName())) {
848 _groupClassNameId = classNameId;
849 }
850 else if (model.equals(JournalArticle.class.getName())) {
851 _journalArticleClassNameId = classNameId;
852 }
853 else if (model.equals(MBMessage.class.getName())) {
854 _mbMessageClassNameId = classNameId;
855 }
856 else if (model.equals(Role.class.getName())) {
857 _roleClassNameId = classNameId;
858 }
859 else if (model.equals(User.class.getName())) {
860 _userClassNameId = classNameId;
861 }
862 else if (model.equals(WikiPage.class.getName())) {
863 _wikiPageClassNameId = classNameId;
864 }
865 }
866 }
867
868 public void initCompany() {
869 _company = new CompanyImpl();
870
871 _company.setCompanyId(_counter.get());
872 _company.setAccountId(_counter.get());
873 }
874
875 public void initCounters() {
876 if (_counters != null) {
877 return;
878 }
879
880 _counters = new ArrayList<CounterModelImpl>();
881
882
883
884 CounterModelImpl counter = new CounterModelImpl();
885
886 counter.setName(Counter.class.getName());
887 counter.setCurrentId(_counter.get());
888
889 _counters.add(counter);
890
891
892
893 counter = new CounterModelImpl();
894
895 counter.setName(ResourcePermission.class.getName());
896 counter.setCurrentId(_resourcePermissionCounter.get());
897
898 _counters.add(counter);
899
900
901
902 counter = new CounterModelImpl();
903
904 counter.setName(SocialActivity.class.getName());
905 counter.setCurrentId(_socialActivityCounter.get());
906
907 _counters.add(counter);
908 }
909
910 public void initDefaultUser() {
911 _defaultUser = new UserImpl();
912
913 _defaultUser.setUserId(_counter.get());
914 }
915
916 public void initDLFileEntryType() {
917 _defaultDLFileEntryType = new DLFileEntryTypeImpl();
918
919 _defaultDLFileEntryType.setUuid(SequentialUUID.generate());
920 _defaultDLFileEntryType.setFileEntryTypeId(
921 DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT);
922 _defaultDLFileEntryType.setCreateDate(newCreateDate());
923 _defaultDLFileEntryType.setModifiedDate(newCreateDate());
924 _defaultDLFileEntryType.setName(
925 DLFileEntryTypeConstants.NAME_BASIC_DOCUMENT);
926 }
927
928 public void initGuestGroup() {
929 _guestGroup = new GroupImpl();
930
931 _guestGroup.setGroupId(_counter.get());
932 _guestGroup.setClassNameId(_groupClassNameId);
933 _guestGroup.setClassPK(_guestGroup.getGroupId());
934 _guestGroup.setName(GroupConstants.GUEST);
935 _guestGroup.setFriendlyURL("/guest");
936 _guestGroup.setSite(true);
937 }
938
939 public void initJournalArticle(int maxJournalArticleSize) throws Exception {
940 if (maxJournalArticleSize <= 0) {
941 maxJournalArticleSize = 1;
942 }
943
944 char[] chars = new char[maxJournalArticleSize];
945
946 for (int i = 0; i < maxJournalArticleSize; i++) {
947 chars[i] = (char)(CharPool.LOWER_CASE_A + (i % 26));
948 }
949
950 _journalArticleContent = new String(chars);
951 }
952
953 public void initRoles() {
954 if (_roles != null) {
955 return;
956 }
957
958 _roles = new ArrayList<Role>();
959
960
961
962 Role role = newRole();
963
964 role.setName(RoleConstants.ADMINISTRATOR);
965 role.setType(RoleConstants.TYPE_REGULAR);
966
967 _roles.add(role);
968
969 _administratorRole = role;
970
971
972
973 role = newRole();
974
975 role.setName(RoleConstants.GUEST);
976 role.setType(RoleConstants.TYPE_REGULAR);
977
978 _roles.add(role);
979
980 _guestRole = role;
981
982
983
984 role = newRole();
985
986 role.setName(RoleConstants.ORGANIZATION_ADMINISTRATOR);
987 role.setType(RoleConstants.TYPE_ORGANIZATION);
988
989 _roles.add(role);
990
991 _organizationAdministratorRole = role;
992
993
994
995 role = newRole();
996
997 role.setName(RoleConstants.ORGANIZATION_OWNER);
998 role.setType(RoleConstants.TYPE_ORGANIZATION);
999
1000 _roles.add(role);
1001
1002 _organizationOwnerRole = role;
1003
1004
1005
1006 role = newRole();
1007
1008 role.setName(RoleConstants.ORGANIZATION_USER);
1009 role.setType(RoleConstants.TYPE_ORGANIZATION);
1010
1011 _roles.add(role);
1012
1013 _organizationUserRole = role;
1014
1015
1016
1017 role = newRole();
1018
1019 role.setName(RoleConstants.OWNER);
1020 role.setType(RoleConstants.TYPE_REGULAR);
1021
1022 _roles.add(role);
1023
1024 _ownerRole = role;
1025
1026
1027
1028 role = newRole();
1029
1030 role.setName(RoleConstants.POWER_USER);
1031 role.setType(RoleConstants.TYPE_REGULAR);
1032
1033 _roles.add(role);
1034
1035 _powerUserRole = role;
1036
1037
1038
1039 role = newRole();
1040
1041 role.setName(RoleConstants.SITE_ADMINISTRATOR);
1042 role.setType(RoleConstants.TYPE_SITE);
1043
1044 _roles.add(role);
1045
1046 _siteAdministratorRole = role;
1047
1048
1049
1050 role = newRole();
1051
1052 role.setName(RoleConstants.SITE_MEMBER);
1053 role.setType(RoleConstants.TYPE_SITE);
1054
1055 _roles.add(role);
1056
1057 _siteMemberRole = role;
1058
1059
1060
1061 role = newRole();
1062
1063 role.setName(RoleConstants.SITE_OWNER);
1064 role.setType(RoleConstants.TYPE_SITE);
1065
1066 _roles.add(role);
1067
1068 _siteOwnerRole = role;
1069
1070
1071
1072 role = newRole();
1073
1074 role.setName(RoleConstants.USER);
1075 role.setType(RoleConstants.TYPE_REGULAR);
1076
1077 _roles.add(role);
1078
1079 _userRole = role;
1080 }
1081
1082 public void initSimpleCounters() {
1083 int totalMThreadCount = _maxMBCategoryCount * _maxMBThreadCount;
1084 int totalMBMessageCount = totalMThreadCount * _maxMBMessageCount;
1085
1086 int counterOffset =
1087 _maxMBCategoryCount + totalMThreadCount + totalMBMessageCount;
1088
1089 counterOffset = _maxGroupsCount * counterOffset;
1090 counterOffset = _maxGroupsCount + counterOffset + 1;
1091
1092 _counter = new SimpleCounter(counterOffset);
1093 _dlDateCounter = new SimpleCounter();
1094 _resourcePermissionCounter = new SimpleCounter();
1095 _socialActivityCounter = new SimpleCounter();
1096 _userScreenNameCounter = new SimpleCounter();
1097 }
1098
1099 public void initUserNames() throws Exception {
1100 String dependenciesDir =
1101 "../portal-impl/src/com/liferay/portal/tools/samplesqlbuilder/" +
1102 "dependencies/";
1103
1104 _firstNames = ListUtil.fromFile(
1105 new File(_baseDir, dependenciesDir + "first_names.txt"));
1106 _lastNames = ListUtil.fromFile(
1107 new File(_baseDir, dependenciesDir + "last_names.txt"));
1108 }
1109
1110 public IntegerWrapper newInteger() {
1111 return new IntegerWrapper();
1112 }
1113
1114 public String[] nextUserName(long index) {
1115 String[] userName = new String[2];
1116
1117 userName[0] = _firstNames.get(
1118 (int)(index / _lastNames.size()) % _firstNames.size());
1119 userName[1] = _lastNames.get((int)(index % _lastNames.size()));
1120
1121 return userName;
1122 }
1123
1124 protected Date newCreateDate() {
1125 return new Date(_baseCreateTime + (_dlDateCounter.get() * Time.SECOND));
1126 }
1127
1128 protected Role newRole() {
1129 Role role = new RoleImpl();
1130
1131 role.setRoleId(_counter.get());
1132 role.setClassNameId(_roleClassNameId);
1133 role.setClassPK(role.getRoleId());
1134
1135 return role;
1136 }
1137
1138 private Role _administratorRole;
1139 private long _baseCreateTime = System.currentTimeMillis() + Time.YEAR;
1140 private String _baseDir;
1141 private long _blogsEntryClassNameId;
1142 private List<ClassName> _classNames;
1143 private Company _company;
1144 private SimpleCounter _counter;
1145 private List<CounterModelImpl> _counters;
1146 private long _ddlRecordSetClassNameId;
1147 private long _ddmContentClassNameId;
1148 private DLFileEntryType _defaultDLFileEntryType;
1149 private User _defaultUser;
1150 private SimpleCounter _dlDateCounter;
1151 private long _dlFileEntryClassNameId;
1152 private List<String> _firstNames;
1153 private long _groupClassNameId;
1154 private Group _guestGroup;
1155 private Role _guestRole;
1156 private long _journalArticleClassNameId;
1157 private String _journalArticleContent;
1158 private List<String> _lastNames;
1159 private int _maxGroupsCount;
1160 private int _maxMBCategoryCount;
1161 private int _maxMBMessageCount;
1162 private int _maxMBThreadCount;
1163 private int _maxUserToGroupCount;
1164 private long _mbMessageClassNameId;
1165 private Role _organizationAdministratorRole;
1166 private Role _organizationOwnerRole;
1167 private Role _organizationUserRole;
1168 private Role _ownerRole;
1169 private Role _powerUserRole;
1170 private SimpleCounter _resourcePermissionCounter;
1171 private long _roleClassNameId;
1172 private List<Role> _roles;
1173 private Format _simpleDateFormat =
1174 FastDateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1175 private Role _siteAdministratorRole;
1176 private Role _siteMemberRole;
1177 private Role _siteOwnerRole;
1178 private SimpleCounter _socialActivityCounter;
1179 private long _userClassNameId;
1180 private Role _userRole;
1181 private SimpleCounter _userScreenNameCounter;
1182 private long _wikiPageClassNameId;
1183
1184 }