001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
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    /**
129     * @author Brian Wing Shun Chan
130     */
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                    // Counter
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                    // Permission
996    
997                    counter = new CounterModelImpl();
998    
999                    counter.setName(Permission.class.getName());
1000                    counter.setCurrentId(_permissionCounter.get());
1001    
1002                    _counters.add(counter);
1003    
1004                    // Resource
1005    
1006                    counter = new CounterModelImpl();
1007    
1008                    counter.setName(Resource.class.getName());
1009                    counter.setCurrentId(_resourceCounter.get());
1010    
1011                    _counters.add(counter);
1012    
1013                    // ResourceCode
1014    
1015                    counter = new CounterModelImpl();
1016    
1017                    counter.setName(ResourceCode.class.getName());
1018                    counter.setCurrentId(_resourceCodeCounter.get());
1019    
1020                    _counters.add(counter);
1021    
1022                    // ResourcePermission
1023    
1024                    counter = new CounterModelImpl();
1025    
1026                    counter.setName(ResourcePermission.class.getName());
1027                    counter.setCurrentId(_resourcePermissionCounter.get());
1028    
1029                    _counters.add(counter);
1030    
1031                    // SocialActivity
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                    // Company
1107    
1108                    ResourceCode resourceCode = newResourceCode();
1109    
1110                    resourceCode.setName(name);
1111                    resourceCode.setScope(ResourceConstants.SCOPE_COMPANY);
1112    
1113                    _resourceCodes.add(resourceCode);
1114    
1115                    // Group
1116    
1117                    resourceCode = newResourceCode();
1118    
1119                    resourceCode.setName(name);
1120                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP);
1121    
1122                    _resourceCodes.add(resourceCode);
1123    
1124                    // Group template
1125    
1126                    resourceCode = newResourceCode();
1127    
1128                    resourceCode.setName(name);
1129                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP_TEMPLATE);
1130    
1131                    _resourceCodes.add(resourceCode);
1132    
1133                    // Individual
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                    // Administrator
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                    // Guest
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                    // Organization Administrator
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                    // Organization Owner
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                    // Organization User
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                    // Owner
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                    // Power User
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                    // Site Administrator
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                    // Site Member
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                    // Site Owner
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                    // User
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    }