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