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 initGroups();
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 List<Group> getGroups() {
851 return _groups;
852 }
853
854 public Group getGuestGroup() {
855 return _guestGroup;
856 }
857
858 public Role getGuestRole() {
859 return _guestRole;
860 }
861
862 public ClassName getJournalArticleClassName() {
863 return _journalArticleClassName;
864 }
865
866 public ClassName getMBMessageClassName() {
867 return _mbMessageClassName;
868 }
869
870 public Role getOrganizationAdministratorRole() {
871 return _organizationAdministratorRole;
872 }
873
874 public Role getOrganizationOwnerRole() {
875 return _organizationOwnerRole;
876 }
877
878 public Role getOrganizationUserRole() {
879 return _organizationUserRole;
880 }
881
882 public Role getPowerUserRole() {
883 return _powerUserRole;
884 }
885
886 public List<ResourceCode> getResourceCodes() {
887 return _resourceCodes;
888 }
889
890 public ClassName getRoleClassName() {
891 return _roleClassName;
892 }
893
894 public List<Role> getRoles() {
895 return _roles;
896 }
897
898 public Role getSiteAdministratorRole() {
899 return _siteAdministratorRole;
900 }
901
902 public Role getSiteMemberRole() {
903 return _siteMemberRole;
904 }
905
906 public Role getSiteOwnerRole() {
907 return _siteOwnerRole;
908 }
909
910 public ClassName getUserClassName() {
911 return _userClassName;
912 }
913
914 public Object[] getUserNames() {
915 return _userNames;
916 }
917
918 public Role getUserRole() {
919 return _userRole;
920 }
921
922 public ClassName getWikiPageClassName() {
923 return _wikiPageClassName;
924 }
925
926 public void initClassNames() {
927 if (_classNames != null) {
928 return;
929 }
930
931 _classNames = new ArrayList<ClassName>();
932
933 List<String> models = ModelHintsUtil.getModels();
934
935 for (String model : models) {
936 ClassName className = new ClassNameImpl();
937
938 className.setClassNameId(_counter.get());
939 className.setValue(model);
940
941 _classNames.add(className);
942
943 if (model.equals(BlogsEntry.class.getName())) {
944 _blogsEntryClassName = className;
945 }
946 else if (model.equals(DDLRecordSet.class.getName())) {
947 _ddlRecordSetClassName = className;
948 }
949 else if (model.equals(DDMContent.class.getName())) {
950 _ddmContentClassName = className;
951 }
952 else if (model.equals(DLFileEntry.class.getName())) {
953 _dlFileEntryClassName = className;
954 }
955 else if (model.equals(Group.class.getName())) {
956 _groupClassName = className;
957 }
958 else if (model.equals(JournalArticle.class.getName())) {
959 _journalArticleClassName = className;
960 }
961 else if (model.equals(MBMessage.class.getName())) {
962 _mbMessageClassName = className;
963 }
964 else if (model.equals(Role.class.getName())) {
965 _roleClassName = className;
966 }
967 else if (model.equals(User.class.getName())) {
968 _userClassName = className;
969 }
970 else if (model.equals(WikiPage.class.getName())) {
971 _wikiPageClassName = className;
972 }
973 }
974 }
975
976 public void initCompany() {
977 _company = new CompanyImpl();
978
979 _company.setCompanyId(_counter.get());
980 _company.setAccountId(_counter.get());
981 }
982
983 public void initCounters() {
984 if (_counters != null) {
985 return;
986 }
987
988 _counters = new ArrayList<CounterModelImpl>();
989
990
991
992 CounterModelImpl counter = new CounterModelImpl();
993
994 counter.setName(Counter.class.getName());
995 counter.setCurrentId(_counter.get());
996
997 _counters.add(counter);
998
999
1000
1001 counter = new CounterModelImpl();
1002
1003 counter.setName(Permission.class.getName());
1004 counter.setCurrentId(_permissionCounter.get());
1005
1006 _counters.add(counter);
1007
1008
1009
1010 counter = new CounterModelImpl();
1011
1012 counter.setName(Resource.class.getName());
1013 counter.setCurrentId(_resourceCounter.get());
1014
1015 _counters.add(counter);
1016
1017
1018
1019 counter = new CounterModelImpl();
1020
1021 counter.setName(ResourceCode.class.getName());
1022 counter.setCurrentId(_resourceCodeCounter.get());
1023
1024 _counters.add(counter);
1025
1026
1027
1028 counter = new CounterModelImpl();
1029
1030 counter.setName(ResourcePermission.class.getName());
1031 counter.setCurrentId(_resourcePermissionCounter.get());
1032
1033 _counters.add(counter);
1034
1035
1036
1037 counter = new CounterModelImpl();
1038
1039 counter.setName(SocialActivity.class.getName());
1040 counter.setCurrentId(_socialActivityCounter.get());
1041
1042 _counters.add(counter);
1043 }
1044
1045 public void initDefaultUser() {
1046 _defaultUser = new UserImpl();
1047
1048 _defaultUser.setUserId(_counter.get());
1049 }
1050
1051 public void initGroups() {
1052 if (_groups != null) {
1053 return;
1054 }
1055
1056 _groups = new ArrayList<Group>();
1057
1058
1059
1060 Group group = new GroupImpl();
1061
1062 group.setGroupId(_counter.get());
1063 group.setClassNameId(_groupClassName.getClassNameId());
1064 group.setClassPK(group.getGroupId());
1065 group.setName(GroupConstants.GUEST);
1066 group.setFriendlyURL("/guest");
1067 group.setSite(true);
1068
1069 _groups.add(group);
1070
1071 _guestGroup = group;
1072 }
1073
1074 public void initJournalArticle(int maxJournalArticleSize) throws Exception {
1075 if (maxJournalArticleSize <= 0) {
1076 maxJournalArticleSize = 1;
1077 }
1078
1079 char[] chars = new char[maxJournalArticleSize];
1080
1081 for (int i = 0; i < maxJournalArticleSize; i++) {
1082 chars[i] = (char)(CharPool.LOWER_CASE_A + (i % 26));
1083 }
1084
1085 _journalArticleContent = new String(chars);
1086 }
1087
1088 public void initResourceCodes() throws Exception {
1089 if (_resourceCodes != null) {
1090 return;
1091 }
1092
1093 _resourceCodes = new ArrayList<ResourceCode>();
1094
1095 _individualResourceCodeIds = new HashMap<String, Long>();
1096 _individualResourceNames = new HashMap<Long, String>();
1097
1098 List<String> models = ModelHintsUtil.getModels();
1099
1100 for (String model : models) {
1101 initResourceCodes(model);
1102 }
1103
1104 Document document = SAXReaderUtil.read(
1105 new File(
1106 _baseDir, "../portal-web/docroot/WEB-INF/portlet-custom.xml"),
1107 false);
1108
1109 Element rootElement = document.getRootElement();
1110
1111 List<Element> portletElements = rootElement.elements("portlet");
1112
1113 for (Element portletElement : portletElements) {
1114 String portletName = portletElement.elementText("portlet-name");
1115
1116 initResourceCodes(portletName);
1117 }
1118 }
1119
1120 public void initResourceCodes(String name) {
1121
1122
1123
1124 ResourceCode resourceCode = newResourceCode();
1125
1126 resourceCode.setName(name);
1127 resourceCode.setScope(ResourceConstants.SCOPE_COMPANY);
1128
1129 _resourceCodes.add(resourceCode);
1130
1131
1132
1133 resourceCode = newResourceCode();
1134
1135 resourceCode.setName(name);
1136 resourceCode.setScope(ResourceConstants.SCOPE_GROUP);
1137
1138 _resourceCodes.add(resourceCode);
1139
1140
1141
1142 resourceCode = newResourceCode();
1143
1144 resourceCode.setName(name);
1145 resourceCode.setScope(ResourceConstants.SCOPE_GROUP_TEMPLATE);
1146
1147 _resourceCodes.add(resourceCode);
1148
1149
1150
1151 resourceCode = newResourceCode();
1152
1153 resourceCode.setName(name);
1154 resourceCode.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
1155
1156 _resourceCodes.add(resourceCode);
1157
1158 _individualResourceCodeIds.put(name, resourceCode.getCodeId());
1159 _individualResourceNames.put(resourceCode.getCodeId(), name);
1160 }
1161
1162 public void initRoles() {
1163 if (_roles != null) {
1164 return;
1165 }
1166
1167 _roles = new ArrayList<Role>();
1168
1169
1170
1171 Role role = newRole();
1172
1173 role.setName(RoleConstants.ADMINISTRATOR);
1174 role.setType(RoleConstants.TYPE_REGULAR);
1175
1176 _roles.add(role);
1177
1178 _administratorRole = role;
1179
1180
1181
1182 role = newRole();
1183
1184 role.setName(RoleConstants.GUEST);
1185 role.setType(RoleConstants.TYPE_REGULAR);
1186
1187 _roles.add(role);
1188
1189 _guestRole = role;
1190
1191
1192
1193 role = newRole();
1194
1195 role.setName(RoleConstants.ORGANIZATION_ADMINISTRATOR);
1196 role.setType(RoleConstants.TYPE_ORGANIZATION);
1197
1198 _roles.add(role);
1199
1200 _organizationAdministratorRole = role;
1201
1202
1203
1204 role = newRole();
1205
1206 role.setName(RoleConstants.ORGANIZATION_OWNER);
1207 role.setType(RoleConstants.TYPE_ORGANIZATION);
1208
1209 _roles.add(role);
1210
1211 _organizationOwnerRole = role;
1212
1213
1214
1215 role = newRole();
1216
1217 role.setName(RoleConstants.ORGANIZATION_USER);
1218 role.setType(RoleConstants.TYPE_ORGANIZATION);
1219
1220 _roles.add(role);
1221
1222 _organizationUserRole = role;
1223
1224
1225
1226 role = newRole();
1227
1228 role.setName(RoleConstants.OWNER);
1229 role.setType(RoleConstants.TYPE_REGULAR);
1230
1231 _roles.add(role);
1232
1233 _ownerRole = role;
1234
1235
1236
1237 role = newRole();
1238
1239 role.setName(RoleConstants.POWER_USER);
1240 role.setType(RoleConstants.TYPE_REGULAR);
1241
1242 _roles.add(role);
1243
1244 _powerUserRole = role;
1245
1246
1247
1248 role = newRole();
1249
1250 role.setName(RoleConstants.SITE_ADMINISTRATOR);
1251 role.setType(RoleConstants.TYPE_SITE);
1252
1253 _roles.add(role);
1254
1255 _siteAdministratorRole = role;
1256
1257
1258
1259 role = newRole();
1260
1261 role.setName(RoleConstants.SITE_MEMBER);
1262 role.setType(RoleConstants.TYPE_SITE);
1263
1264 _roles.add(role);
1265
1266 _siteMemberRole = role;
1267
1268
1269
1270 role = newRole();
1271
1272 role.setName(RoleConstants.SITE_OWNER);
1273 role.setType(RoleConstants.TYPE_SITE);
1274
1275 _roles.add(role);
1276
1277 _siteOwnerRole = role;
1278
1279
1280
1281 role = newRole();
1282
1283 role.setName(RoleConstants.USER);
1284 role.setType(RoleConstants.TYPE_REGULAR);
1285
1286 _roles.add(role);
1287
1288 _userRole = role;
1289 }
1290
1291 public void initUserNames() throws Exception {
1292 if (_userNames != null) {
1293 return;
1294 }
1295
1296 _userNames = new Object[2];
1297
1298 String dependenciesDir =
1299 "../portal-impl/src/com/liferay/portal/tools/samplesqlbuilder/" +
1300 "dependencies/";
1301
1302 List<String> firstNames = ListUtil.fromFile(
1303 new File(_baseDir, dependenciesDir + "first_names.txt"));
1304 List<String> lastNames = ListUtil.fromFile(
1305 new File(_baseDir, dependenciesDir + "last_names.txt"));
1306
1307 _userNames[0] = firstNames;
1308 _userNames[1] = lastNames;
1309 }
1310
1311 public IntegerWrapper newInteger() {
1312 return new IntegerWrapper();
1313 }
1314
1315 protected Date newCreateDate() {
1316 return new Date(_baseCreateTime + (_dlDateCounter.get() * Time.SECOND));
1317 }
1318
1319 protected ResourceCode newResourceCode() {
1320 ResourceCode resourceCode = new ResourceCodeImpl();
1321
1322 resourceCode.setCodeId(_resourceCodeCounter.get());
1323
1324 return resourceCode;
1325 }
1326
1327 protected Role newRole() {
1328 Role role = new RoleImpl();
1329
1330 role.setRoleId(_counter.get());
1331 role.setClassNameId(_roleClassName.getClassNameId());
1332 role.setClassPK(role.getRoleId());
1333
1334 return role;
1335 }
1336
1337 private Role _administratorRole;
1338 private long _baseCreateTime = System.currentTimeMillis() + Time.YEAR;
1339 private String _baseDir;
1340 private ClassName _blogsEntryClassName;
1341 private List<ClassName> _classNames;
1342 private Company _company;
1343 private SimpleCounter _counter;
1344 private List<CounterModelImpl> _counters;
1345 private ClassName _ddlRecordSetClassName;
1346 private ClassName _ddmContentClassName;
1347 private User _defaultUser;
1348 private SimpleCounter _dlDateCounter;
1349 private ClassName _dlFileEntryClassName;
1350 private ClassName _groupClassName;
1351 private List<Group> _groups;
1352 private Group _guestGroup;
1353 private Role _guestRole;
1354 private Map<String, Long> _individualResourceCodeIds;
1355 private Map<Long, String> _individualResourceNames;
1356 private ClassName _journalArticleClassName;
1357 private String _journalArticleContent;
1358 private int _maxGroupsCount;
1359 private int _maxUserToGroupCount;
1360 private ClassName _mbMessageClassName;
1361 private Role _organizationAdministratorRole;
1362 private Role _organizationOwnerRole;
1363 private Role _organizationUserRole;
1364 private Role _ownerRole;
1365 private SimpleCounter _permissionCounter;
1366 private Role _powerUserRole;
1367 private SimpleCounter _resourceCodeCounter;
1368 private List<ResourceCode> _resourceCodes;
1369 private SimpleCounter _resourceCounter;
1370 private SimpleCounter _resourcePermissionCounter;
1371 private ClassName _roleClassName;
1372 private List<Role> _roles;
1373 private Format _simpleDateFormat =
1374 FastDateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1375 private Role _siteAdministratorRole;
1376 private Role _siteMemberRole;
1377 private Role _siteOwnerRole;
1378 private SimpleCounter _socialActivityCounter;
1379 private ClassName _userClassName;
1380 private Object[] _userNames;
1381 private Role _userRole;
1382 private ClassName _wikiPageClassName;
1383
1384 }