1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
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.ModelHintsUtil;
34  import com.liferay.portal.model.Permission;
35  import com.liferay.portal.model.Resource;
36  import com.liferay.portal.model.ResourceCode;
37  import com.liferay.portal.model.ResourceConstants;
38  import com.liferay.portal.model.Role;
39  import com.liferay.portal.model.RoleConstants;
40  import com.liferay.portal.model.User;
41  import com.liferay.portal.model.impl.ClassNameImpl;
42  import com.liferay.portal.model.impl.CompanyImpl;
43  import com.liferay.portal.model.impl.ContactImpl;
44  import com.liferay.portal.model.impl.GroupImpl;
45  import com.liferay.portal.model.impl.LayoutImpl;
46  import com.liferay.portal.model.impl.LayoutTypePortletImpl;
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.blogs.model.BlogsEntry;
54  import com.liferay.portlet.blogs.model.BlogsStatsUser;
55  import com.liferay.portlet.blogs.model.impl.BlogsEntryImpl;
56  import com.liferay.portlet.blogs.model.impl.BlogsStatsUserImpl;
57  import com.liferay.portlet.messageboards.model.MBCategory;
58  import com.liferay.portlet.messageboards.model.MBDiscussion;
59  import com.liferay.portlet.messageboards.model.MBMessage;
60  import com.liferay.portlet.messageboards.model.MBStatsUser;
61  import com.liferay.portlet.messageboards.model.MBThread;
62  import com.liferay.portlet.messageboards.model.impl.MBCategoryImpl;
63  import com.liferay.portlet.messageboards.model.impl.MBDiscussionImpl;
64  import com.liferay.portlet.messageboards.model.impl.MBMessageImpl;
65  import com.liferay.portlet.messageboards.model.impl.MBStatsUserImpl;
66  import com.liferay.portlet.messageboards.model.impl.MBThreadImpl;
67  import com.liferay.portlet.tags.model.TagsAsset;
68  import com.liferay.portlet.tags.model.impl.TagsAssetImpl;
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 BlogsEntry addBlogsEntry(
118             long groupId, long userId, String title, String urlTitle,
119             String content)
120         throws Exception {
121 
122         BlogsEntry blogsEntry = new BlogsEntryImpl();
123 
124         blogsEntry.setEntryId(_counter.get());
125         blogsEntry.setGroupId(groupId);
126         blogsEntry.setUserId(userId);
127         blogsEntry.setTitle(title);
128         blogsEntry.setUrlTitle(urlTitle);
129         blogsEntry.setContent(content);
130 
131         return blogsEntry;
132     }
133 
134     public BlogsStatsUser addBlogsStatsUser(long groupId, long userId)
135         throws Exception {
136 
137         BlogsStatsUser blogsStatsUser = new BlogsStatsUserImpl();
138 
139         blogsStatsUser.setGroupId(groupId);
140         blogsStatsUser.setUserId(userId);
141 
142         return blogsStatsUser;
143     }
144 
145     public Contact addContact(String firstName, String lastName)
146         throws Exception {
147 
148         Contact contact = new ContactImpl();
149 
150         contact.setContactId(_counter.get());
151         contact.setAccountId(_company.getAccountId());
152         contact.setFirstName(firstName);
153         contact.setLastName(lastName);
154 
155         return contact;
156     }
157 
158     public Group addGroup(
159             long groupId, long classNameId, long classPK, String name,
160             String friendlyURL)
161         throws Exception {
162 
163         Group group = new GroupImpl();
164 
165         group.setGroupId(groupId);
166         group.setClassNameId(classNameId);
167         group.setClassPK(classPK);
168         group.setName(name);
169         group.setFriendlyURL(friendlyURL);
170 
171         return group;
172     }
173 
174     public Layout addLayout(
175             int layoutId, String name, String friendlyURL, String column1,
176             String column2)
177         throws Exception {
178 
179         Layout layout = new LayoutImpl();
180 
181         layout.setPlid(_counter.get());
182         layout.setPrivateLayout(false);
183         layout.setLayoutId(layoutId);
184         layout.setName(name);
185         layout.setFriendlyURL(friendlyURL);
186 
187         UnicodeProperties typeSettingsProperties = new UnicodeProperties(true);
188 
189         typeSettingsProperties.setProperty(
190             LayoutTypePortletImpl.LAYOUT_TEMPLATE_ID, "2_columns_ii");
191         typeSettingsProperties.setProperty("column-1", column1);
192         typeSettingsProperties.setProperty("column-2", column2);
193 
194         String typeSettings = StringUtil.replace(
195             typeSettingsProperties.toString(), "\n", "\\n");
196 
197         layout.setTypeSettings(typeSettings);
198 
199         return layout;
200     }
201 
202     public MBCategory addMBCategory(
203             long categoryId, long groupId, long companyId, long userId,
204             String name, String description, int threadCount, int messageCount)
205         throws Exception {
206 
207         MBCategory mbCategory = new MBCategoryImpl();
208 
209         mbCategory.setCategoryId(categoryId);
210         mbCategory.setGroupId(groupId);
211         mbCategory.setCompanyId(companyId);
212         mbCategory.setUserId(userId);
213         mbCategory.setName(name);
214         mbCategory.setDescription(description);
215         mbCategory.setThreadCount(threadCount);
216         mbCategory.setMessageCount(messageCount);
217 
218         return mbCategory;
219     }
220 
221     public MBDiscussion addMBDiscussion(
222             long classNameId, long classPK, long threadId)
223         throws Exception {
224 
225         MBDiscussion mbDiscussion = new MBDiscussionImpl();
226 
227         mbDiscussion.setDiscussionId(_counter.get());
228         mbDiscussion.setClassNameId(classNameId);
229         mbDiscussion.setClassPK(classPK);
230         mbDiscussion.setThreadId(threadId);
231 
232         return mbDiscussion;
233     }
234 
235     public MBMessage addMBMessage(
236             long messageId, long groupId, long userId, long classNameId,
237             long classPK, long categoryId, long threadId, long parentMessageId,
238             String subject, String body)
239         throws Exception {
240 
241         MBMessage mbMessage = new MBMessageImpl();
242 
243         mbMessage.setMessageId(messageId);
244         mbMessage.setGroupId(groupId);
245         mbMessage.setUserId(userId);
246         mbMessage.setClassNameId(classNameId);
247         mbMessage.setClassPK(classPK);
248         mbMessage.setCategoryId(categoryId);
249         mbMessage.setThreadId(threadId);
250         mbMessage.setParentMessageId(parentMessageId);
251         mbMessage.setSubject(subject);
252         mbMessage.setBody(body);
253 
254         return mbMessage;
255     }
256 
257     public MBStatsUser addMBStatsUser(long groupId, long userId)
258         throws Exception {
259 
260         MBStatsUser mbStatsUser = new MBStatsUserImpl();
261 
262         mbStatsUser.setGroupId(groupId);
263         mbStatsUser.setUserId(userId);
264 
265         return mbStatsUser;
266     }
267 
268     public MBThread addMBThread(
269             long threadId, long groupId, long categoryId, long rootMessageId,
270             int messageCount, long lastPostByUserId)
271         throws Exception {
272 
273         MBThread mbThread = new MBThreadImpl();
274 
275         mbThread.setThreadId(threadId);
276         mbThread.setGroupId(groupId);
277         mbThread.setCategoryId(categoryId);
278         mbThread.setRootMessageId(rootMessageId);
279         mbThread.setMessageCount(messageCount);
280         mbThread.setLastPostByUserId(lastPostByUserId);
281 
282         return mbThread;
283     }
284 
285     public List<Permission> addPermissions(Resource resource) throws Exception {
286         List<Permission> permissions = new ArrayList<Permission>();
287 
288         String name = _individualResourceNames.get(resource.getCodeId());
289 
290         List<String> actions = ResourceActionsUtil.getModelResourceActions(
291             name);
292 
293         for (String action : actions) {
294             Permission permission = new PermissionImpl();
295 
296             permission.setPermissionId(_permissionCounter.get());
297             permission.setCompanyId(_company.getCompanyId());
298             permission.setActionId(action);
299             permission.setResourceId(resource.getResourceId());
300 
301             permissions.add(permission);
302         }
303 
304         return permissions;
305     }
306 
307     public Resource addResource(String name, String primKey) throws Exception {
308         Long codeId = _individualResourceCodeIds.get(name);
309 
310         Resource resource = new ResourceImpl();
311 
312         resource.setResourceId(_resourceCounter.get());
313         resource.setCodeId(codeId);
314         resource.setPrimKey(primKey);
315 
316         return resource;
317     }
318 
319     public List<KeyValuePair> addRolesPermissions(
320             Resource resource, List<Permission> permissions, Role memberRole)
321         throws Exception {
322 
323         List<KeyValuePair> rolesPermissions = new ArrayList<KeyValuePair>();
324 
325         for (Permission permission : permissions) {
326             KeyValuePair kvp = new KeyValuePair();
327 
328             kvp.setKey(String.valueOf(_ownerRole.getRoleId()));
329             kvp.setValue(String.valueOf(permission.getPermissionId()));
330 
331             rolesPermissions.add(kvp);
332         }
333 
334         String name = _individualResourceNames.get(resource.getCodeId());
335 
336         if (memberRole != null) {
337             List<String> communityDefaultactions =
338                 ResourceActionsUtil.getModelResourceCommunityDefaultActions(
339                     name);
340 
341             for (Permission permission : permissions) {
342                 if (!communityDefaultactions.contains(
343                         permission.getActionId())) {
344 
345                     continue;
346                 }
347 
348                 KeyValuePair kvp = new KeyValuePair();
349 
350                 kvp.setKey(String.valueOf(memberRole.getRoleId()));
351                 kvp.setValue(String.valueOf(permission.getPermissionId()));
352 
353                 rolesPermissions.add(kvp);
354             }
355         }
356 
357         List<String> guestDefaultactions =
358             ResourceActionsUtil.getModelResourceGuestDefaultActions(name);
359 
360         for (Permission permission : permissions) {
361             if (!guestDefaultactions.contains(permission.getActionId())) {
362                 continue;
363             }
364 
365             KeyValuePair kvp = new KeyValuePair();
366 
367             kvp.setKey(String.valueOf(_guestRole.getRoleId()));
368             kvp.setValue(String.valueOf(permission.getPermissionId()));
369 
370             rolesPermissions.add(kvp);
371         }
372 
373         return rolesPermissions;
374     }
375 
376     public TagsAsset addTagsAsset(
377             long groupId, long userId, long classNameId, long classPK,
378             String mimeType, String title)
379         throws Exception {
380 
381         TagsAsset tagsAsset = new TagsAssetImpl();
382 
383         tagsAsset.setGroupId(groupId);
384         tagsAsset.setUserId(userId);
385         tagsAsset.setClassNameId(classNameId);
386         tagsAsset.setClassPK(classPK);
387         tagsAsset.setMimeType(mimeType);
388         tagsAsset.setTitle(title);
389 
390         return tagsAsset;
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 }