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