001    /**
002     * Copyright (c) 2000-2010 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.IntegerWrapper;
020    import com.liferay.portal.kernel.util.KeyValuePair;
021    import com.liferay.portal.kernel.util.ListUtil;
022    import com.liferay.portal.kernel.util.StringUtil;
023    import com.liferay.portal.kernel.util.UnicodeProperties;
024    import com.liferay.portal.kernel.util.Validator;
025    import com.liferay.portal.kernel.xml.Document;
026    import com.liferay.portal.kernel.xml.Element;
027    import com.liferay.portal.kernel.xml.SAXReaderUtil;
028    import com.liferay.portal.model.ClassName;
029    import com.liferay.portal.model.Company;
030    import com.liferay.portal.model.Contact;
031    import com.liferay.portal.model.Group;
032    import com.liferay.portal.model.GroupConstants;
033    import com.liferay.portal.model.Layout;
034    import com.liferay.portal.model.LayoutTypePortletConstants;
035    import com.liferay.portal.model.ModelHintsUtil;
036    import com.liferay.portal.model.Permission;
037    import com.liferay.portal.model.Resource;
038    import com.liferay.portal.model.ResourceCode;
039    import com.liferay.portal.model.ResourceConstants;
040    import com.liferay.portal.model.Role;
041    import com.liferay.portal.model.RoleConstants;
042    import com.liferay.portal.model.User;
043    import com.liferay.portal.model.impl.ClassNameImpl;
044    import com.liferay.portal.model.impl.CompanyImpl;
045    import com.liferay.portal.model.impl.ContactImpl;
046    import com.liferay.portal.model.impl.GroupImpl;
047    import com.liferay.portal.model.impl.LayoutImpl;
048    import com.liferay.portal.model.impl.PermissionImpl;
049    import com.liferay.portal.model.impl.ResourceCodeImpl;
050    import com.liferay.portal.model.impl.ResourceImpl;
051    import com.liferay.portal.model.impl.RoleImpl;
052    import com.liferay.portal.model.impl.UserImpl;
053    import com.liferay.portal.security.permission.ResourceActionsUtil;
054    import com.liferay.portlet.asset.model.AssetEntry;
055    import com.liferay.portlet.asset.model.impl.AssetEntryImpl;
056    import com.liferay.portlet.blogs.model.BlogsEntry;
057    import com.liferay.portlet.blogs.model.BlogsStatsUser;
058    import com.liferay.portlet.blogs.model.impl.BlogsEntryImpl;
059    import com.liferay.portlet.blogs.model.impl.BlogsStatsUserImpl;
060    import com.liferay.portlet.messageboards.model.MBCategory;
061    import com.liferay.portlet.messageboards.model.MBDiscussion;
062    import com.liferay.portlet.messageboards.model.MBMessage;
063    import com.liferay.portlet.messageboards.model.MBStatsUser;
064    import com.liferay.portlet.messageboards.model.MBThread;
065    import com.liferay.portlet.messageboards.model.impl.MBCategoryImpl;
066    import com.liferay.portlet.messageboards.model.impl.MBDiscussionImpl;
067    import com.liferay.portlet.messageboards.model.impl.MBMessageImpl;
068    import com.liferay.portlet.messageboards.model.impl.MBStatsUserImpl;
069    import com.liferay.portlet.messageboards.model.impl.MBThreadImpl;
070    import com.liferay.portlet.wiki.model.WikiNode;
071    import com.liferay.portlet.wiki.model.WikiPage;
072    import com.liferay.portlet.wiki.model.impl.WikiNodeImpl;
073    import com.liferay.portlet.wiki.model.impl.WikiPageImpl;
074    import com.liferay.util.SimpleCounter;
075    
076    import java.io.File;
077    
078    import java.util.ArrayList;
079    import java.util.HashMap;
080    import java.util.Iterator;
081    import java.util.List;
082    import java.util.Map;
083    
084    /**
085     * @author Brian Wing Shun Chan
086     */
087    public class DataFactory {
088    
089            public DataFactory(
090                    int maxGroupsCount, int maxUserToGroupCount, SimpleCounter counter,
091                    SimpleCounter permissionCounter, SimpleCounter resourceCounter,
092                    SimpleCounter resourceCodeCounter) {
093    
094                    try {
095                            _maxGroupsCount = maxGroupsCount;
096                            _maxUserToGroupCount = maxUserToGroupCount;
097    
098                            _counter = counter;
099                            _permissionCounter = permissionCounter;
100                            _resourceCounter = resourceCounter;
101                            _resourceCodeCounter = resourceCodeCounter;
102    
103                            initClassNames();
104                            initCompany();
105                            initDefaultUser();
106                            initGroups();
107                            initResourceCodes();
108                            initRoles();
109                            initUserNames();
110                    }
111                    catch (Exception e) {
112                            e.printStackTrace();
113                    }
114            }
115    
116            public AssetEntry addAssetEntry(
117                            long groupId, long userId, long classNameId, long classPK,
118                            String mimeType, String title)
119                    throws Exception {
120    
121                    AssetEntry assetEntry = new AssetEntryImpl();
122    
123                    assetEntry.setGroupId(groupId);
124                    assetEntry.setUserId(userId);
125                    assetEntry.setClassNameId(classNameId);
126                    assetEntry.setClassPK(classPK);
127                    assetEntry.setMimeType(mimeType);
128                    assetEntry.setTitle(title);
129    
130                    return assetEntry;
131            }
132    
133            public BlogsEntry addBlogsEntry(
134                            long groupId, long userId, String title, String urlTitle,
135                            String content)
136                    throws Exception {
137    
138                    BlogsEntry blogsEntry = new BlogsEntryImpl();
139    
140                    blogsEntry.setEntryId(_counter.get());
141                    blogsEntry.setGroupId(groupId);
142                    blogsEntry.setUserId(userId);
143                    blogsEntry.setTitle(title);
144                    blogsEntry.setUrlTitle(urlTitle);
145                    blogsEntry.setContent(content);
146    
147                    return blogsEntry;
148            }
149    
150            public BlogsStatsUser addBlogsStatsUser(long groupId, long userId)
151                    throws Exception {
152    
153                    BlogsStatsUser blogsStatsUser = new BlogsStatsUserImpl();
154    
155                    blogsStatsUser.setGroupId(groupId);
156                    blogsStatsUser.setUserId(userId);
157    
158                    return blogsStatsUser;
159            }
160    
161            public Contact addContact(String firstName, String lastName)
162                    throws Exception {
163    
164                    Contact contact = new ContactImpl();
165    
166                    contact.setContactId(_counter.get());
167                    contact.setAccountId(_company.getAccountId());
168                    contact.setFirstName(firstName);
169                    contact.setLastName(lastName);
170    
171                    return contact;
172            }
173    
174            public Group addGroup(
175                            long groupId, long classNameId, long classPK, String name,
176                            String friendlyURL)
177                    throws Exception {
178    
179                    Group group = new GroupImpl();
180    
181                    group.setGroupId(groupId);
182                    group.setClassNameId(classNameId);
183                    group.setClassPK(classPK);
184                    group.setName(name);
185                    group.setFriendlyURL(friendlyURL);
186    
187                    return group;
188            }
189    
190            public Layout addLayout(
191                            int layoutId, String name, String friendlyURL, String column1,
192                            String column2)
193                    throws Exception {
194    
195                    Layout layout = new LayoutImpl();
196    
197                    layout.setPlid(_counter.get());
198                    layout.setPrivateLayout(false);
199                    layout.setLayoutId(layoutId);
200                    layout.setName(name);
201                    layout.setFriendlyURL(friendlyURL);
202    
203                    UnicodeProperties typeSettingsProperties = new UnicodeProperties(true);
204    
205                    typeSettingsProperties.setProperty(
206                            LayoutTypePortletConstants.LAYOUT_TEMPLATE_ID, "2_columns_ii");
207                    typeSettingsProperties.setProperty("column-1", column1);
208                    typeSettingsProperties.setProperty("column-2", column2);
209    
210                    String typeSettings = StringUtil.replace(
211                            typeSettingsProperties.toString(), "\n", "\\n");
212    
213                    layout.setTypeSettings(typeSettings);
214    
215                    return layout;
216            }
217    
218            public MBCategory addMBCategory(
219                            long categoryId, long groupId, long companyId, long userId,
220                            String name, String description, int threadCount, int messageCount)
221                    throws Exception {
222    
223                    MBCategory mbCategory = new MBCategoryImpl();
224    
225                    mbCategory.setCategoryId(categoryId);
226                    mbCategory.setGroupId(groupId);
227                    mbCategory.setCompanyId(companyId);
228                    mbCategory.setUserId(userId);
229                    mbCategory.setName(name);
230                    mbCategory.setDescription(description);
231                    mbCategory.setThreadCount(threadCount);
232                    mbCategory.setMessageCount(messageCount);
233    
234                    return mbCategory;
235            }
236    
237            public MBDiscussion addMBDiscussion(
238                            long classNameId, long classPK, long threadId)
239                    throws Exception {
240    
241                    MBDiscussion mbDiscussion = new MBDiscussionImpl();
242    
243                    mbDiscussion.setDiscussionId(_counter.get());
244                    mbDiscussion.setClassNameId(classNameId);
245                    mbDiscussion.setClassPK(classPK);
246                    mbDiscussion.setThreadId(threadId);
247    
248                    return mbDiscussion;
249            }
250    
251            public MBMessage addMBMessage(
252                            long messageId, long groupId, long userId, long classNameId,
253                            long classPK, long categoryId, long threadId, long parentMessageId,
254                            String subject, String body)
255                    throws Exception {
256    
257                    MBMessage mbMessage = new MBMessageImpl();
258    
259                    mbMessage.setMessageId(messageId);
260                    mbMessage.setGroupId(groupId);
261                    mbMessage.setUserId(userId);
262                    mbMessage.setClassNameId(classNameId);
263                    mbMessage.setClassPK(classPK);
264                    mbMessage.setCategoryId(categoryId);
265                    mbMessage.setThreadId(threadId);
266                    mbMessage.setParentMessageId(parentMessageId);
267                    mbMessage.setSubject(subject);
268                    mbMessage.setBody(body);
269    
270                    return mbMessage;
271            }
272    
273            public MBStatsUser addMBStatsUser(long groupId, long userId)
274                    throws Exception {
275    
276                    MBStatsUser mbStatsUser = new MBStatsUserImpl();
277    
278                    mbStatsUser.setGroupId(groupId);
279                    mbStatsUser.setUserId(userId);
280    
281                    return mbStatsUser;
282            }
283    
284            public MBThread addMBThread(
285                            long threadId, long groupId, long categoryId, long rootMessageId,
286                            int messageCount, long lastPostByUserId)
287                    throws Exception {
288    
289                    MBThread mbThread = new MBThreadImpl();
290    
291                    mbThread.setThreadId(threadId);
292                    mbThread.setGroupId(groupId);
293                    mbThread.setCategoryId(categoryId);
294                    mbThread.setRootMessageId(rootMessageId);
295                    mbThread.setMessageCount(messageCount);
296                    mbThread.setLastPostByUserId(lastPostByUserId);
297    
298                    return mbThread;
299            }
300    
301            public List<Permission> addPermissions(Resource resource) throws Exception {
302                    List<Permission> permissions = new ArrayList<Permission>();
303    
304                    String name = _individualResourceNames.get(resource.getCodeId());
305    
306                    List<String> actions = ResourceActionsUtil.getModelResourceActions(
307                            name);
308    
309                    for (String action : actions) {
310                            Permission permission = new PermissionImpl();
311    
312                            permission.setPermissionId(_permissionCounter.get());
313                            permission.setCompanyId(_company.getCompanyId());
314                            permission.setActionId(action);
315                            permission.setResourceId(resource.getResourceId());
316    
317                            permissions.add(permission);
318                    }
319    
320                    return permissions;
321            }
322    
323            public Resource addResource(String name, String primKey) throws Exception {
324                    Long codeId = _individualResourceCodeIds.get(name);
325    
326                    Resource resource = new ResourceImpl();
327    
328                    resource.setResourceId(_resourceCounter.get());
329                    resource.setCodeId(codeId);
330                    resource.setPrimKey(primKey);
331    
332                    return resource;
333            }
334    
335            public List<KeyValuePair> addRolesPermissions(
336                            Resource resource, List<Permission> permissions, Role memberRole)
337                    throws Exception {
338    
339                    List<KeyValuePair> rolesPermissions = new ArrayList<KeyValuePair>();
340    
341                    for (Permission permission : permissions) {
342                            KeyValuePair kvp = new KeyValuePair();
343    
344                            kvp.setKey(String.valueOf(_ownerRole.getRoleId()));
345                            kvp.setValue(String.valueOf(permission.getPermissionId()));
346    
347                            rolesPermissions.add(kvp);
348                    }
349    
350                    String name = _individualResourceNames.get(resource.getCodeId());
351    
352                    if (memberRole != null) {
353                            List<String> communityDefaultactions =
354                                    ResourceActionsUtil.getModelResourceCommunityDefaultActions(
355                                            name);
356    
357                            for (Permission permission : permissions) {
358                                    if (!communityDefaultactions.contains(
359                                                    permission.getActionId())) {
360    
361                                            continue;
362                                    }
363    
364                                    KeyValuePair kvp = new KeyValuePair();
365    
366                                    kvp.setKey(String.valueOf(memberRole.getRoleId()));
367                                    kvp.setValue(String.valueOf(permission.getPermissionId()));
368    
369                                    rolesPermissions.add(kvp);
370                            }
371                    }
372    
373                    List<String> guestDefaultactions =
374                            ResourceActionsUtil.getModelResourceGuestDefaultActions(name);
375    
376                    for (Permission permission : permissions) {
377                            if (!guestDefaultactions.contains(permission.getActionId())) {
378                                    continue;
379                            }
380    
381                            KeyValuePair kvp = new KeyValuePair();
382    
383                            kvp.setKey(String.valueOf(_guestRole.getRoleId()));
384                            kvp.setValue(String.valueOf(permission.getPermissionId()));
385    
386                            rolesPermissions.add(kvp);
387                    }
388    
389                    return rolesPermissions;
390            }
391    
392            public User addUser(boolean defaultUser, String screenName)
393                    throws Exception {
394    
395                    User user = new UserImpl();
396    
397                    user.setUserId(_counter.get());
398                    user.setDefaultUser(defaultUser);
399    
400                    if (Validator.isNull(screenName)) {
401                            screenName = String.valueOf(user.getUserId());
402                    }
403    
404                    user.setScreenName(screenName);
405    
406                    String emailAddress = screenName + "@liferay.com";
407    
408                    user.setEmailAddress(emailAddress);
409    
410                    return user;
411            }
412    
413            public List<Long> addUserToGroupIds(long groupId) {
414                    List<Long> groupIds = new ArrayList<Long>(_maxUserToGroupCount + 1);
415    
416                    groupIds.add(_guestGroup.getGroupId());
417    
418                    if ((groupId + _maxUserToGroupCount) > _maxGroupsCount) {
419                            groupId = groupId - _maxUserToGroupCount + 1;
420                    }
421    
422                    for (int i = 0; i < _maxUserToGroupCount; i++) {
423                            groupIds.add(groupId + i);
424                    }
425    
426                    return groupIds;
427            }
428    
429            public WikiNode addWikiNode(
430                            long groupId, long userId, String name, String description)
431                    throws Exception {
432    
433                    WikiNode wikiNode = new WikiNodeImpl();
434    
435                    wikiNode.setNodeId(_counter.get());
436                    wikiNode.setGroupId(groupId);
437                    wikiNode.setUserId(userId);
438                    wikiNode.setName(name);
439                    wikiNode.setDescription(description);
440    
441                    return wikiNode;
442            }
443    
444            public WikiPage addWikiPage(
445                            long groupId, long userId, long nodeId, String title,
446                            double version, String content, boolean head)
447                    throws Exception {
448    
449                    WikiPage wikiPage = new WikiPageImpl();
450    
451                    wikiPage.setPageId(_counter.get());
452                    wikiPage.setResourcePrimKey(_counter.get());
453                    wikiPage.setGroupId(groupId);
454                    wikiPage.setUserId(userId);
455                    wikiPage.setNodeId(nodeId);
456                    wikiPage.setTitle(title);
457                    wikiPage.setVersion(version);
458                    wikiPage.setContent(content);
459                    wikiPage.setHead(head);
460    
461                    return wikiPage;
462            }
463    
464            public Role getAdministratorRole() {
465                    return _administratorRole;
466            }
467    
468            public ClassName getBlogsEntryClassName() {
469                    return _blogsEntryClassName;
470            }
471    
472            public List<ClassName> getClassNames() {
473                    return _classNames;
474            }
475    
476            public Role getCommunityAdministratorRole() {
477                    return _communityAdministratorRole;
478            }
479    
480            public Role getCommunityMemberRole() {
481                    return _communityMemberRole;
482            }
483    
484            public Role getCommunityOwnerRole() {
485                    return _communityOwnerRole;
486            }
487    
488            public Company getCompany() {
489                    return _company;
490            }
491    
492            public List<CounterModelImpl> getCounters() {
493                    return _counters;
494            }
495    
496            public User getDefaultUser() {
497                    return _defaultUser;
498            }
499    
500            public ClassName getGroupClassName() {
501                    return _groupClassName;
502            }
503    
504            public List<Group> getGroups() {
505                    return _groups;
506            }
507    
508            public Group getGuestGroup() {
509                    return _guestGroup;
510            }
511    
512            public Role getGuestRole() {
513                    return _guestRole;
514            }
515    
516            public Role getOrganizationAdministratorRole() {
517                    return _organizationAdministratorRole;
518            }
519    
520            public Role getOrganizationMemberRole() {
521                    return _organizationMemberRole;
522            }
523    
524            public Role getOrganizationOwnerRole() {
525                    return _organizationOwnerRole;
526            }
527    
528            public Role getPowerUserRole() {
529                    return _powerUserRole;
530            }
531    
532            public List<ResourceCode> getResourceCodes() {
533                    return _resourceCodes;
534            }
535    
536            public ClassName getRoleClassName() {
537                    return _roleClassName;
538            }
539    
540            public List<Role> getRoles() {
541                    return _roles;
542            }
543    
544            public ClassName getUserClassName() {
545                    return _userClassName;
546            }
547    
548            public Object[] getUserNames() {
549                    return _userNames;
550            }
551    
552            public Role getUserRole() {
553                    return _userRole;
554            }
555    
556            public ClassName getWikiPageClassName() {
557                    return _wikiPageClassName;
558            }
559    
560            public void initClassNames() throws Exception {
561                    if (_classNames != null) {
562                            return;
563                    }
564    
565                    _classNames = new ArrayList<ClassName>();
566    
567                    List<String> models = ModelHintsUtil.getModels();
568    
569                    for (String model : models) {
570                            ClassName className = new ClassNameImpl();
571    
572                            className.setClassNameId(_counter.get());
573                            className.setValue(model);
574    
575                            _classNames.add(className);
576    
577                            if (model.equals(BlogsEntry.class.getName())) {
578                                    _blogsEntryClassName = className;
579                            }
580                            if (model.equals(Group.class.getName())) {
581                                    _groupClassName = className;
582                            }
583                            else if (model.equals(Role.class.getName())) {
584                                    _roleClassName = className;
585                            }
586                            else if (model.equals(User.class.getName())) {
587                                    _userClassName = className;
588                            }
589                            else if (model.equals(WikiPage.class.getName())) {
590                                    _wikiPageClassName = className;
591                            }
592                    }
593            }
594    
595            public void initCompany() throws Exception {
596                    _company = new CompanyImpl();
597    
598                    _company.setCompanyId(_counter.get());
599                    _company.setAccountId(_counter.get());
600            }
601    
602            public void initCounters() throws Exception {
603                    if (_counters != null) {
604                            return;
605                    }
606    
607                    _counters = new ArrayList<CounterModelImpl>();
608    
609                    // Counter
610    
611                    CounterModelImpl counter = new CounterModelImpl();
612    
613                    counter.setName(Counter.class.getName());
614                    counter.setCurrentId(_counter.get());
615    
616                    _counters.add(counter);
617    
618                    // Permission
619    
620                    counter = new CounterModelImpl();
621    
622                    counter.setName(Permission.class.getName());
623                    counter.setCurrentId(_permissionCounter.get());
624    
625                    _counters.add(counter);
626    
627                    // Resource
628    
629                    counter = new CounterModelImpl();
630    
631                    counter.setName(Resource.class.getName());
632                    counter.setCurrentId(_resourceCounter.get());
633    
634                    _counters.add(counter);
635    
636                    // ResourceCode
637    
638                    counter = new CounterModelImpl();
639    
640                    counter.setName(ResourceCode.class.getName());
641                    counter.setCurrentId(_resourceCodeCounter.get());
642    
643                    _counters.add(counter);
644            }
645    
646            public void initDefaultUser() throws Exception {
647                    _defaultUser = new UserImpl();
648    
649                    _defaultUser.setUserId(_counter.get());
650            }
651    
652            public void initGroups() throws Exception {
653                    if (_groups != null) {
654                            return;
655                    }
656    
657                    _groups = new ArrayList<Group>();
658    
659                    // Guest
660    
661                    Group group = new GroupImpl();
662    
663                    group.setGroupId(_counter.get());
664                    group.setClassNameId(_groupClassName.getClassNameId());
665                    group.setClassPK(group.getGroupId());
666                    group.setName(GroupConstants.GUEST);
667                    group.setFriendlyURL("/guest");
668    
669                    _groups.add(group);
670    
671                    _guestGroup = group;
672            }
673    
674            public void initResourceCodes() throws Exception {
675                    if (_resourceCodes != null) {
676                            return;
677                    }
678    
679                    _resourceCodes = new ArrayList<ResourceCode>();
680    
681                    _individualResourceCodeIds = new HashMap<String, Long>();
682                    _individualResourceNames = new HashMap<Long, String>();
683    
684                    List<String> models = ModelHintsUtil.getModels();
685    
686                    for (String model : models) {
687                            initResourceCodes(model);
688                    }
689    
690                    Document doc = SAXReaderUtil.read(
691                            new File("../portal-web/docroot/WEB-INF/portlet-custom.xml"),
692                            false);
693    
694                    Element root = doc.getRootElement();
695    
696                    Iterator<Element> itr = root.elements("portlet").iterator();
697    
698                    while (itr.hasNext()) {
699                            Element portlet = itr.next();
700    
701                            String portletName = portlet.elementText("portlet-name");
702    
703                            initResourceCodes(portletName);
704                    }
705            }
706    
707            public void initResourceCodes(String name) throws Exception {
708    
709                    // Company
710    
711                    ResourceCode resourceCode = newResourceCode();
712    
713                    resourceCode.setName(name);
714                    resourceCode.setScope(ResourceConstants.SCOPE_COMPANY);
715    
716                    _resourceCodes.add(resourceCode);
717    
718                    // Group
719    
720                    resourceCode = newResourceCode();
721    
722                    resourceCode.setName(name);
723                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP);
724    
725                    _resourceCodes.add(resourceCode);
726    
727                    // Group template
728    
729                    resourceCode = newResourceCode();
730    
731                    resourceCode.setName(name);
732                    resourceCode.setScope(ResourceConstants.SCOPE_GROUP_TEMPLATE);
733    
734                    _resourceCodes.add(resourceCode);
735    
736                    // Individual
737    
738                    resourceCode = newResourceCode();
739    
740                    resourceCode.setName(name);
741                    resourceCode.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
742    
743                    _resourceCodes.add(resourceCode);
744    
745                    _individualResourceCodeIds.put(name, resourceCode.getCodeId());
746                    _individualResourceNames.put(resourceCode.getCodeId(), name);
747            }
748    
749            public void initRoles() throws Exception {
750                    if (_roles != null) {
751                            return;
752                    }
753    
754                    _roles = new ArrayList<Role>();
755    
756                    // Administrator
757    
758                    Role role = newRole();
759    
760                    role.setName(RoleConstants.ADMINISTRATOR);
761                    role.setType(RoleConstants.TYPE_REGULAR);
762    
763                    _roles.add(role);
764    
765                    _administratorRole = role;
766    
767                    // Community Administrator
768    
769                    role = newRole();
770    
771                    role.setName(RoleConstants.COMMUNITY_ADMINISTRATOR);
772                    role.setType(RoleConstants.TYPE_COMMUNITY);
773    
774                    _roles.add(role);
775    
776                    _communityAdministratorRole = role;
777    
778                    // Community Member
779    
780                    role = newRole();
781    
782                    role.setName(RoleConstants.COMMUNITY_MEMBER);
783                    role.setType(RoleConstants.TYPE_COMMUNITY);
784    
785                    _roles.add(role);
786    
787                    _communityMemberRole = role;
788    
789                    // Community Owner
790    
791                    role = newRole();
792    
793                    role.setName(RoleConstants.COMMUNITY_OWNER);
794                    role.setType(RoleConstants.TYPE_COMMUNITY);
795    
796                    _roles.add(role);
797    
798                    _communityOwnerRole = role;
799    
800                    // Guest
801    
802                    role = newRole();
803    
804                    role.setName(RoleConstants.GUEST);
805                    role.setType(RoleConstants.TYPE_REGULAR);
806    
807                    _roles.add(role);
808    
809                    _guestRole = role;
810    
811                    // Organization Administrator
812    
813                    role = newRole();
814    
815                    role.setName(RoleConstants.ORGANIZATION_ADMINISTRATOR);
816                    role.setType(RoleConstants.TYPE_ORGANIZATION);
817    
818                    _roles.add(role);
819    
820                    _communityAdministratorRole = role;
821    
822                    // Organization Member
823    
824                    role = newRole();
825    
826                    role.setName(RoleConstants.ORGANIZATION_MEMBER);
827                    role.setType(RoleConstants.TYPE_ORGANIZATION);
828    
829                    _roles.add(role);
830    
831                    _communityMemberRole = role;
832    
833                    // Organization Owner
834    
835                    role = newRole();
836    
837                    role.setName(RoleConstants.ORGANIZATION_OWNER);
838                    role.setType(RoleConstants.TYPE_ORGANIZATION);
839    
840                    _roles.add(role);
841    
842                    _communityOwnerRole = role;
843    
844                    // Owner
845    
846                    role = newRole();
847    
848                    role.setName(RoleConstants.OWNER);
849                    role.setType(RoleConstants.TYPE_REGULAR);
850    
851                    _roles.add(role);
852    
853                    _ownerRole = role;
854    
855                    // Power User
856    
857                    role = newRole();
858    
859                    role.setName(RoleConstants.POWER_USER);
860                    role.setType(RoleConstants.TYPE_REGULAR);
861    
862                    _roles.add(role);
863    
864                    _powerUserRole = role;
865    
866                    // User
867    
868                    role = newRole();
869    
870                    role.setName(RoleConstants.USER);
871                    role.setType(RoleConstants.TYPE_REGULAR);
872    
873                    _roles.add(role);
874    
875                    _userRole = role;
876            }
877    
878            public void initUserNames() throws Exception {
879                    if (_userNames != null) {
880                            return;
881                    }
882    
883                    _userNames = new Object[2];
884    
885                    String dependenciesDir =
886                            "../portal-impl/src/com/liferay/portal/tools/samplesqlbuilder/" +
887                                    "dependencies/";
888    
889                    List<String> firstNames = ListUtil.fromFile(
890                            dependenciesDir + "first_names.txt");
891                    List<String> lastNames = ListUtil.fromFile(
892                            dependenciesDir + "last_names.txt");
893    
894                    _userNames[0] = firstNames;
895                    _userNames[1] = lastNames;
896            }
897    
898            public IntegerWrapper newInteger() {
899                    return new IntegerWrapper();
900            }
901    
902            protected ResourceCode newResourceCode() {
903                    ResourceCode resourceCode = new ResourceCodeImpl();
904    
905                    resourceCode.setCodeId(_resourceCodeCounter.get());
906    
907                    return resourceCode;
908            }
909    
910            protected Role newRole() {
911                    Role role = new RoleImpl();
912    
913                    role.setRoleId(_counter.get());
914                    role.setClassNameId(_roleClassName.getClassNameId());
915                    role.setClassPK(role.getRoleId());
916    
917                    return role;
918            }
919    
920            private Role _administratorRole;
921            private ClassName _blogsEntryClassName;
922            private List<ClassName> _classNames;
923            private Role _communityAdministratorRole;
924            private Role _communityMemberRole;
925            private Role _communityOwnerRole;
926            private Company _company;
927            private SimpleCounter _counter;
928            private List<CounterModelImpl> _counters;
929            private User _defaultUser;
930            private ClassName _groupClassName;
931            private List<Group> _groups;
932            private Group _guestGroup;
933            private Role _guestRole;
934            private Map<String, Long> _individualResourceCodeIds;
935            private Map<Long, String> _individualResourceNames;
936            private int _maxGroupsCount;
937            private int _maxUserToGroupCount;
938            private Role _organizationAdministratorRole;
939            private Role _organizationMemberRole;
940            private Role _organizationOwnerRole;
941            private Role _ownerRole;
942            private SimpleCounter _permissionCounter;
943            private Role _powerUserRole;
944            private SimpleCounter _resourceCodeCounter;
945            private List<ResourceCode> _resourceCodes;
946            private SimpleCounter _resourceCounter;
947            private ClassName _roleClassName;
948            private List<Role> _roles;
949            private ClassName _userClassName;
950            private Object[] _userNames;
951            private Role _userRole;
952            private ClassName _wikiPageClassName;
953    
954    }