001    /**
002     * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
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                            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                    // Counter
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                    // Permission
1000    
1001                    counter = new CounterModelImpl();
1002    
1003                    counter.setName(Permission.class.getName());
1004                    counter.setCurrentId(_permissionCounter.get());
1005    
1006                    _counters.add(counter);
1007    
1008                    // Resource
1009    
1010                    counter = new CounterModelImpl();
1011    
1012                    counter.setName(Resource.class.getName());
1013                    counter.setCurrentId(_resourceCounter.get());
1014    
1015                    _counters.add(counter);
1016    
1017                    // ResourceCode
1018    
1019                    counter = new CounterModelImpl();
1020    
1021                    counter.setName(ResourceCode.class.getName());
1022                    counter.setCurrentId(_resourceCodeCounter.get());
1023    
1024                    _counters.add(counter);
1025    
1026                    // ResourcePermission
1027    
1028                    counter = new CounterModelImpl();
1029    
1030                    counter.setName(ResourcePermission.class.getName());
1031                    counter.setCurrentId(_resourcePermissionCounter.get());
1032    
1033                    _counters.add(counter);
1034    
1035                    // SocialActivity
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                    // Guest
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                    // Company
1123    
1124                    ResourceCode resourceCode = newResourceCode();
1125    
1126                    resourceCode.setName(name);
1127                    resourceCode.setScope(ResourceConstants.SCOPE_COMPANY);
1128    
1129                    _resourceCodes.add(resourceCode);
1130    
1131                    // Group
1132    
1133                    resourceCode = newResourceCode();
1134    
1135                    resourceCode.setName(name);
1136                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP);
1137    
1138                    _resourceCodes.add(resourceCode);
1139    
1140                    // Group template
1141    
1142                    resourceCode = newResourceCode();
1143    
1144                    resourceCode.setName(name);
1145                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP_TEMPLATE);
1146    
1147                    _resourceCodes.add(resourceCode);
1148    
1149                    // Individual
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                    // Administrator
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                    // Guest
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                    // Organization Administrator
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                    // Organization Owner
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                    // Organization User
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                    // Owner
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                    // Power User
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                    // Site Administrator
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                    // Site Member
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                    // Site Owner
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                    // User
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    }