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