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