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