001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.model.impl;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.LocaleException;
020    import com.liferay.portal.kernel.bean.AutoEscapeBeanHandler;
021    import com.liferay.portal.kernel.exception.PortalException;
022    import com.liferay.portal.kernel.json.JSON;
023    import com.liferay.portal.kernel.util.GetterUtil;
024    import com.liferay.portal.kernel.util.LocaleUtil;
025    import com.liferay.portal.kernel.util.LocalizationUtil;
026    import com.liferay.portal.kernel.util.ProxyUtil;
027    import com.liferay.portal.kernel.util.StringBundler;
028    import com.liferay.portal.kernel.util.StringPool;
029    import com.liferay.portal.kernel.util.Validator;
030    import com.liferay.portal.model.CacheModel;
031    import com.liferay.portal.model.Role;
032    import com.liferay.portal.model.RoleModel;
033    import com.liferay.portal.model.RoleSoap;
034    import com.liferay.portal.model.User;
035    import com.liferay.portal.service.ServiceContext;
036    import com.liferay.portal.service.UserLocalServiceUtil;
037    import com.liferay.portal.util.PortalUtil;
038    
039    import com.liferay.portlet.expando.model.ExpandoBridge;
040    import com.liferay.portlet.expando.util.ExpandoBridgeFactoryUtil;
041    import com.liferay.portlet.exportimport.lar.StagedModelType;
042    
043    import java.io.Serializable;
044    
045    import java.sql.Types;
046    
047    import java.util.ArrayList;
048    import java.util.Date;
049    import java.util.HashMap;
050    import java.util.List;
051    import java.util.Locale;
052    import java.util.Map;
053    import java.util.Set;
054    import java.util.TreeSet;
055    
056    /**
057     * The base model implementation for the Role service. Represents a row in the "Role_" database table, with each column mapped to a property of this class.
058     *
059     * <p>
060     * This implementation and its corresponding interface {@link RoleModel} exist only as a container for the default property accessors generated by ServiceBuilder. Helper methods and all application logic should be put in {@link RoleImpl}.
061     * </p>
062     *
063     * @author Brian Wing Shun Chan
064     * @see RoleImpl
065     * @see Role
066     * @see RoleModel
067     * @generated
068     */
069    @JSON(strict = true)
070    @ProviderType
071    public class RoleModelImpl extends BaseModelImpl<Role> implements RoleModel {
072            /*
073             * NOTE FOR DEVELOPERS:
074             *
075             * Never modify or reference this class directly. All methods that expect a role model instance should use the {@link Role} interface instead.
076             */
077            public static final String TABLE_NAME = "Role_";
078            public static final Object[][] TABLE_COLUMNS = {
079                            { "mvccVersion", Types.BIGINT },
080                            { "uuid_", Types.VARCHAR },
081                            { "roleId", Types.BIGINT },
082                            { "companyId", Types.BIGINT },
083                            { "userId", Types.BIGINT },
084                            { "userName", Types.VARCHAR },
085                            { "createDate", Types.TIMESTAMP },
086                            { "modifiedDate", Types.TIMESTAMP },
087                            { "classNameId", Types.BIGINT },
088                            { "classPK", Types.BIGINT },
089                            { "name", Types.VARCHAR },
090                            { "title", Types.VARCHAR },
091                            { "description", Types.VARCHAR },
092                            { "type_", Types.INTEGER },
093                            { "subtype", Types.VARCHAR }
094                    };
095            public static final String TABLE_SQL_CREATE = "create table Role_ (mvccVersion LONG default 0,uuid_ VARCHAR(75) null,roleId LONG not null primary key,companyId LONG,userId LONG,userName VARCHAR(75) null,createDate DATE null,modifiedDate DATE null,classNameId LONG,classPK LONG,name VARCHAR(75) null,title STRING null,description STRING null,type_ INTEGER,subtype VARCHAR(75) null)";
096            public static final String TABLE_SQL_DROP = "drop table Role_";
097            public static final String ORDER_BY_JPQL = " ORDER BY role.name ASC";
098            public static final String ORDER_BY_SQL = " ORDER BY Role_.name ASC";
099            public static final String DATA_SOURCE = "liferayDataSource";
100            public static final String SESSION_FACTORY = "liferaySessionFactory";
101            public static final String TX_MANAGER = "liferayTransactionManager";
102            public static final boolean ENTITY_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
103                                    "value.object.entity.cache.enabled.com.liferay.portal.model.Role"),
104                            true);
105            public static final boolean FINDER_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
106                                    "value.object.finder.cache.enabled.com.liferay.portal.model.Role"),
107                            true);
108            public static final boolean COLUMN_BITMASK_ENABLED = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
109                                    "value.object.column.bitmask.enabled.com.liferay.portal.model.Role"),
110                            true);
111            public static final long CLASSNAMEID_COLUMN_BITMASK = 1L;
112            public static final long CLASSPK_COLUMN_BITMASK = 2L;
113            public static final long COMPANYID_COLUMN_BITMASK = 4L;
114            public static final long NAME_COLUMN_BITMASK = 8L;
115            public static final long SUBTYPE_COLUMN_BITMASK = 16L;
116            public static final long TYPE_COLUMN_BITMASK = 32L;
117            public static final long UUID_COLUMN_BITMASK = 64L;
118    
119            /**
120             * Converts the soap model instance into a normal model instance.
121             *
122             * @param soapModel the soap model instance to convert
123             * @return the normal model instance
124             */
125            public static Role toModel(RoleSoap soapModel) {
126                    if (soapModel == null) {
127                            return null;
128                    }
129    
130                    Role model = new RoleImpl();
131    
132                    model.setMvccVersion(soapModel.getMvccVersion());
133                    model.setUuid(soapModel.getUuid());
134                    model.setRoleId(soapModel.getRoleId());
135                    model.setCompanyId(soapModel.getCompanyId());
136                    model.setUserId(soapModel.getUserId());
137                    model.setUserName(soapModel.getUserName());
138                    model.setCreateDate(soapModel.getCreateDate());
139                    model.setModifiedDate(soapModel.getModifiedDate());
140                    model.setClassNameId(soapModel.getClassNameId());
141                    model.setClassPK(soapModel.getClassPK());
142                    model.setName(soapModel.getName());
143                    model.setTitle(soapModel.getTitle());
144                    model.setDescription(soapModel.getDescription());
145                    model.setType(soapModel.getType());
146                    model.setSubtype(soapModel.getSubtype());
147    
148                    return model;
149            }
150    
151            /**
152             * Converts the soap model instances into normal model instances.
153             *
154             * @param soapModels the soap model instances to convert
155             * @return the normal model instances
156             */
157            public static List<Role> toModels(RoleSoap[] soapModels) {
158                    if (soapModels == null) {
159                            return null;
160                    }
161    
162                    List<Role> models = new ArrayList<Role>(soapModels.length);
163    
164                    for (RoleSoap soapModel : soapModels) {
165                            models.add(toModel(soapModel));
166                    }
167    
168                    return models;
169            }
170    
171            public static final String MAPPING_TABLE_GROUPS_ROLES_NAME = "Groups_Roles";
172            public static final Object[][] MAPPING_TABLE_GROUPS_ROLES_COLUMNS = {
173                            { "groupId", Types.BIGINT },
174                            { "roleId", Types.BIGINT }
175                    };
176            public static final String MAPPING_TABLE_GROUPS_ROLES_SQL_CREATE = "create table Groups_Roles (groupId LONG not null,roleId LONG not null,primary key (groupId, roleId))";
177            public static final boolean FINDER_CACHE_ENABLED_GROUPS_ROLES = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
178                                    "value.object.finder.cache.enabled.Groups_Roles"), true);
179            public static final String MAPPING_TABLE_USERS_ROLES_NAME = "Users_Roles";
180            public static final Object[][] MAPPING_TABLE_USERS_ROLES_COLUMNS = {
181                            { "roleId", Types.BIGINT },
182                            { "userId", Types.BIGINT }
183                    };
184            public static final String MAPPING_TABLE_USERS_ROLES_SQL_CREATE = "create table Users_Roles (roleId LONG not null,userId LONG not null,primary key (roleId, userId))";
185            public static final boolean FINDER_CACHE_ENABLED_USERS_ROLES = GetterUtil.getBoolean(com.liferay.portal.util.PropsUtil.get(
186                                    "value.object.finder.cache.enabled.Users_Roles"), true);
187            public static final long LOCK_EXPIRATION_TIME = GetterUtil.getLong(com.liferay.portal.util.PropsUtil.get(
188                                    "lock.expiration.time.com.liferay.portal.model.Role"));
189    
190            public RoleModelImpl() {
191            }
192    
193            @Override
194            public long getPrimaryKey() {
195                    return _roleId;
196            }
197    
198            @Override
199            public void setPrimaryKey(long primaryKey) {
200                    setRoleId(primaryKey);
201            }
202    
203            @Override
204            public Serializable getPrimaryKeyObj() {
205                    return _roleId;
206            }
207    
208            @Override
209            public void setPrimaryKeyObj(Serializable primaryKeyObj) {
210                    setPrimaryKey(((Long)primaryKeyObj).longValue());
211            }
212    
213            @Override
214            public Class<?> getModelClass() {
215                    return Role.class;
216            }
217    
218            @Override
219            public String getModelClassName() {
220                    return Role.class.getName();
221            }
222    
223            @Override
224            public Map<String, Object> getModelAttributes() {
225                    Map<String, Object> attributes = new HashMap<String, Object>();
226    
227                    attributes.put("mvccVersion", getMvccVersion());
228                    attributes.put("uuid", getUuid());
229                    attributes.put("roleId", getRoleId());
230                    attributes.put("companyId", getCompanyId());
231                    attributes.put("userId", getUserId());
232                    attributes.put("userName", getUserName());
233                    attributes.put("createDate", getCreateDate());
234                    attributes.put("modifiedDate", getModifiedDate());
235                    attributes.put("classNameId", getClassNameId());
236                    attributes.put("classPK", getClassPK());
237                    attributes.put("name", getName());
238                    attributes.put("title", getTitle());
239                    attributes.put("description", getDescription());
240                    attributes.put("type", getType());
241                    attributes.put("subtype", getSubtype());
242    
243                    attributes.put("entityCacheEnabled", isEntityCacheEnabled());
244                    attributes.put("finderCacheEnabled", isFinderCacheEnabled());
245    
246                    return attributes;
247            }
248    
249            @Override
250            public void setModelAttributes(Map<String, Object> attributes) {
251                    Long mvccVersion = (Long)attributes.get("mvccVersion");
252    
253                    if (mvccVersion != null) {
254                            setMvccVersion(mvccVersion);
255                    }
256    
257                    String uuid = (String)attributes.get("uuid");
258    
259                    if (uuid != null) {
260                            setUuid(uuid);
261                    }
262    
263                    Long roleId = (Long)attributes.get("roleId");
264    
265                    if (roleId != null) {
266                            setRoleId(roleId);
267                    }
268    
269                    Long companyId = (Long)attributes.get("companyId");
270    
271                    if (companyId != null) {
272                            setCompanyId(companyId);
273                    }
274    
275                    Long userId = (Long)attributes.get("userId");
276    
277                    if (userId != null) {
278                            setUserId(userId);
279                    }
280    
281                    String userName = (String)attributes.get("userName");
282    
283                    if (userName != null) {
284                            setUserName(userName);
285                    }
286    
287                    Date createDate = (Date)attributes.get("createDate");
288    
289                    if (createDate != null) {
290                            setCreateDate(createDate);
291                    }
292    
293                    Date modifiedDate = (Date)attributes.get("modifiedDate");
294    
295                    if (modifiedDate != null) {
296                            setModifiedDate(modifiedDate);
297                    }
298    
299                    Long classNameId = (Long)attributes.get("classNameId");
300    
301                    if (classNameId != null) {
302                            setClassNameId(classNameId);
303                    }
304    
305                    Long classPK = (Long)attributes.get("classPK");
306    
307                    if (classPK != null) {
308                            setClassPK(classPK);
309                    }
310    
311                    String name = (String)attributes.get("name");
312    
313                    if (name != null) {
314                            setName(name);
315                    }
316    
317                    String title = (String)attributes.get("title");
318    
319                    if (title != null) {
320                            setTitle(title);
321                    }
322    
323                    String description = (String)attributes.get("description");
324    
325                    if (description != null) {
326                            setDescription(description);
327                    }
328    
329                    Integer type = (Integer)attributes.get("type");
330    
331                    if (type != null) {
332                            setType(type);
333                    }
334    
335                    String subtype = (String)attributes.get("subtype");
336    
337                    if (subtype != null) {
338                            setSubtype(subtype);
339                    }
340            }
341    
342            @JSON
343            @Override
344            public long getMvccVersion() {
345                    return _mvccVersion;
346            }
347    
348            @Override
349            public void setMvccVersion(long mvccVersion) {
350                    _mvccVersion = mvccVersion;
351            }
352    
353            @JSON
354            @Override
355            public String getUuid() {
356                    if (_uuid == null) {
357                            return StringPool.BLANK;
358                    }
359                    else {
360                            return _uuid;
361                    }
362            }
363    
364            @Override
365            public void setUuid(String uuid) {
366                    if (_originalUuid == null) {
367                            _originalUuid = _uuid;
368                    }
369    
370                    _uuid = uuid;
371            }
372    
373            public String getOriginalUuid() {
374                    return GetterUtil.getString(_originalUuid);
375            }
376    
377            @JSON
378            @Override
379            public long getRoleId() {
380                    return _roleId;
381            }
382    
383            @Override
384            public void setRoleId(long roleId) {
385                    _roleId = roleId;
386            }
387    
388            @JSON
389            @Override
390            public long getCompanyId() {
391                    return _companyId;
392            }
393    
394            @Override
395            public void setCompanyId(long companyId) {
396                    _columnBitmask |= COMPANYID_COLUMN_BITMASK;
397    
398                    if (!_setOriginalCompanyId) {
399                            _setOriginalCompanyId = true;
400    
401                            _originalCompanyId = _companyId;
402                    }
403    
404                    _companyId = companyId;
405            }
406    
407            public long getOriginalCompanyId() {
408                    return _originalCompanyId;
409            }
410    
411            @JSON
412            @Override
413            public long getUserId() {
414                    return _userId;
415            }
416    
417            @Override
418            public void setUserId(long userId) {
419                    _userId = userId;
420            }
421    
422            @Override
423            public String getUserUuid() {
424                    try {
425                            User user = UserLocalServiceUtil.getUserById(getUserId());
426    
427                            return user.getUuid();
428                    }
429                    catch (PortalException pe) {
430                            return StringPool.BLANK;
431                    }
432            }
433    
434            @Override
435            public void setUserUuid(String userUuid) {
436            }
437    
438            @JSON
439            @Override
440            public String getUserName() {
441                    if (_userName == null) {
442                            return StringPool.BLANK;
443                    }
444                    else {
445                            return _userName;
446                    }
447            }
448    
449            @Override
450            public void setUserName(String userName) {
451                    _userName = userName;
452            }
453    
454            @JSON
455            @Override
456            public Date getCreateDate() {
457                    return _createDate;
458            }
459    
460            @Override
461            public void setCreateDate(Date createDate) {
462                    _createDate = createDate;
463            }
464    
465            @JSON
466            @Override
467            public Date getModifiedDate() {
468                    return _modifiedDate;
469            }
470    
471            public boolean hasSetModifiedDate() {
472                    return _setModifiedDate;
473            }
474    
475            @Override
476            public void setModifiedDate(Date modifiedDate) {
477                    _setModifiedDate = true;
478    
479                    _modifiedDate = modifiedDate;
480            }
481    
482            @Override
483            public String getClassName() {
484                    if (getClassNameId() <= 0) {
485                            return StringPool.BLANK;
486                    }
487    
488                    return PortalUtil.getClassName(getClassNameId());
489            }
490    
491            @Override
492            public void setClassName(String className) {
493                    long classNameId = 0;
494    
495                    if (Validator.isNotNull(className)) {
496                            classNameId = PortalUtil.getClassNameId(className);
497                    }
498    
499                    setClassNameId(classNameId);
500            }
501    
502            @JSON
503            @Override
504            public long getClassNameId() {
505                    return _classNameId;
506            }
507    
508            @Override
509            public void setClassNameId(long classNameId) {
510                    _columnBitmask |= CLASSNAMEID_COLUMN_BITMASK;
511    
512                    if (!_setOriginalClassNameId) {
513                            _setOriginalClassNameId = true;
514    
515                            _originalClassNameId = _classNameId;
516                    }
517    
518                    _classNameId = classNameId;
519            }
520    
521            public long getOriginalClassNameId() {
522                    return _originalClassNameId;
523            }
524    
525            @JSON
526            @Override
527            public long getClassPK() {
528                    return _classPK;
529            }
530    
531            @Override
532            public void setClassPK(long classPK) {
533                    _columnBitmask |= CLASSPK_COLUMN_BITMASK;
534    
535                    if (!_setOriginalClassPK) {
536                            _setOriginalClassPK = true;
537    
538                            _originalClassPK = _classPK;
539                    }
540    
541                    _classPK = classPK;
542            }
543    
544            public long getOriginalClassPK() {
545                    return _originalClassPK;
546            }
547    
548            @JSON
549            @Override
550            public String getName() {
551                    if (_name == null) {
552                            return StringPool.BLANK;
553                    }
554                    else {
555                            return _name;
556                    }
557            }
558    
559            @Override
560            public void setName(String name) {
561                    _columnBitmask = -1L;
562    
563                    if (_originalName == null) {
564                            _originalName = _name;
565                    }
566    
567                    _name = name;
568            }
569    
570            public String getOriginalName() {
571                    return GetterUtil.getString(_originalName);
572            }
573    
574            @JSON
575            @Override
576            public String getTitle() {
577                    if (_title == null) {
578                            return StringPool.BLANK;
579                    }
580                    else {
581                            return _title;
582                    }
583            }
584    
585            @Override
586            public String getTitle(Locale locale) {
587                    String languageId = LocaleUtil.toLanguageId(locale);
588    
589                    return getTitle(languageId);
590            }
591    
592            @Override
593            public String getTitle(Locale locale, boolean useDefault) {
594                    String languageId = LocaleUtil.toLanguageId(locale);
595    
596                    return getTitle(languageId, useDefault);
597            }
598    
599            @Override
600            public String getTitle(String languageId) {
601                    return LocalizationUtil.getLocalization(getTitle(), languageId);
602            }
603    
604            @Override
605            public String getTitle(String languageId, boolean useDefault) {
606                    return LocalizationUtil.getLocalization(getTitle(), languageId,
607                            useDefault);
608            }
609    
610            @Override
611            public String getTitleCurrentLanguageId() {
612                    return _titleCurrentLanguageId;
613            }
614    
615            @JSON
616            @Override
617            public String getTitleCurrentValue() {
618                    Locale locale = getLocale(_titleCurrentLanguageId);
619    
620                    return getTitle(locale);
621            }
622    
623            @Override
624            public Map<Locale, String> getTitleMap() {
625                    return LocalizationUtil.getLocalizationMap(getTitle());
626            }
627    
628            @Override
629            public void setTitle(String title) {
630                    _title = title;
631            }
632    
633            @Override
634            public void setTitle(String title, Locale locale) {
635                    setTitle(title, locale, LocaleUtil.getDefault());
636            }
637    
638            @Override
639            public void setTitle(String title, Locale locale, Locale defaultLocale) {
640                    String languageId = LocaleUtil.toLanguageId(locale);
641                    String defaultLanguageId = LocaleUtil.toLanguageId(defaultLocale);
642    
643                    if (Validator.isNotNull(title)) {
644                            setTitle(LocalizationUtil.updateLocalization(getTitle(), "Title",
645                                            title, languageId, defaultLanguageId));
646                    }
647                    else {
648                            setTitle(LocalizationUtil.removeLocalization(getTitle(), "Title",
649                                            languageId));
650                    }
651            }
652    
653            @Override
654            public void setTitleCurrentLanguageId(String languageId) {
655                    _titleCurrentLanguageId = languageId;
656            }
657    
658            @Override
659            public void setTitleMap(Map<Locale, String> titleMap) {
660                    setTitleMap(titleMap, LocaleUtil.getDefault());
661            }
662    
663            @Override
664            public void setTitleMap(Map<Locale, String> titleMap, Locale defaultLocale) {
665                    if (titleMap == null) {
666                            return;
667                    }
668    
669                    setTitle(LocalizationUtil.updateLocalization(titleMap, getTitle(),
670                                    "Title", LocaleUtil.toLanguageId(defaultLocale)));
671            }
672    
673            @JSON
674            @Override
675            public String getDescription() {
676                    if (_description == null) {
677                            return StringPool.BLANK;
678                    }
679                    else {
680                            return _description;
681                    }
682            }
683    
684            @Override
685            public String getDescription(Locale locale) {
686                    String languageId = LocaleUtil.toLanguageId(locale);
687    
688                    return getDescription(languageId);
689            }
690    
691            @Override
692            public String getDescription(Locale locale, boolean useDefault) {
693                    String languageId = LocaleUtil.toLanguageId(locale);
694    
695                    return getDescription(languageId, useDefault);
696            }
697    
698            @Override
699            public String getDescription(String languageId) {
700                    return LocalizationUtil.getLocalization(getDescription(), languageId);
701            }
702    
703            @Override
704            public String getDescription(String languageId, boolean useDefault) {
705                    return LocalizationUtil.getLocalization(getDescription(), languageId,
706                            useDefault);
707            }
708    
709            @Override
710            public String getDescriptionCurrentLanguageId() {
711                    return _descriptionCurrentLanguageId;
712            }
713    
714            @JSON
715            @Override
716            public String getDescriptionCurrentValue() {
717                    Locale locale = getLocale(_descriptionCurrentLanguageId);
718    
719                    return getDescription(locale);
720            }
721    
722            @Override
723            public Map<Locale, String> getDescriptionMap() {
724                    return LocalizationUtil.getLocalizationMap(getDescription());
725            }
726    
727            @Override
728            public void setDescription(String description) {
729                    _description = description;
730            }
731    
732            @Override
733            public void setDescription(String description, Locale locale) {
734                    setDescription(description, locale, LocaleUtil.getDefault());
735            }
736    
737            @Override
738            public void setDescription(String description, Locale locale,
739                    Locale defaultLocale) {
740                    String languageId = LocaleUtil.toLanguageId(locale);
741                    String defaultLanguageId = LocaleUtil.toLanguageId(defaultLocale);
742    
743                    if (Validator.isNotNull(description)) {
744                            setDescription(LocalizationUtil.updateLocalization(
745                                            getDescription(), "Description", description, languageId,
746                                            defaultLanguageId));
747                    }
748                    else {
749                            setDescription(LocalizationUtil.removeLocalization(
750                                            getDescription(), "Description", languageId));
751                    }
752            }
753    
754            @Override
755            public void setDescriptionCurrentLanguageId(String languageId) {
756                    _descriptionCurrentLanguageId = languageId;
757            }
758    
759            @Override
760            public void setDescriptionMap(Map<Locale, String> descriptionMap) {
761                    setDescriptionMap(descriptionMap, LocaleUtil.getDefault());
762            }
763    
764            @Override
765            public void setDescriptionMap(Map<Locale, String> descriptionMap,
766                    Locale defaultLocale) {
767                    if (descriptionMap == null) {
768                            return;
769                    }
770    
771                    setDescription(LocalizationUtil.updateLocalization(descriptionMap,
772                                    getDescription(), "Description",
773                                    LocaleUtil.toLanguageId(defaultLocale)));
774            }
775    
776            @JSON
777            @Override
778            public int getType() {
779                    return _type;
780            }
781    
782            @Override
783            public void setType(int type) {
784                    _columnBitmask |= TYPE_COLUMN_BITMASK;
785    
786                    if (!_setOriginalType) {
787                            _setOriginalType = true;
788    
789                            _originalType = _type;
790                    }
791    
792                    _type = type;
793            }
794    
795            public int getOriginalType() {
796                    return _originalType;
797            }
798    
799            @JSON
800            @Override
801            public String getSubtype() {
802                    if (_subtype == null) {
803                            return StringPool.BLANK;
804                    }
805                    else {
806                            return _subtype;
807                    }
808            }
809    
810            @Override
811            public void setSubtype(String subtype) {
812                    _columnBitmask |= SUBTYPE_COLUMN_BITMASK;
813    
814                    if (_originalSubtype == null) {
815                            _originalSubtype = _subtype;
816                    }
817    
818                    _subtype = subtype;
819            }
820    
821            public String getOriginalSubtype() {
822                    return GetterUtil.getString(_originalSubtype);
823            }
824    
825            @Override
826            public StagedModelType getStagedModelType() {
827                    return new StagedModelType(PortalUtil.getClassNameId(
828                                    Role.class.getName()), getClassNameId());
829            }
830    
831            public long getColumnBitmask() {
832                    return _columnBitmask;
833            }
834    
835            @Override
836            public ExpandoBridge getExpandoBridge() {
837                    return ExpandoBridgeFactoryUtil.getExpandoBridge(getCompanyId(),
838                            Role.class.getName(), getPrimaryKey());
839            }
840    
841            @Override
842            public void setExpandoBridgeAttributes(ServiceContext serviceContext) {
843                    ExpandoBridge expandoBridge = getExpandoBridge();
844    
845                    expandoBridge.setAttributes(serviceContext);
846            }
847    
848            @Override
849            public String[] getAvailableLanguageIds() {
850                    Set<String> availableLanguageIds = new TreeSet<String>();
851    
852                    Map<Locale, String> titleMap = getTitleMap();
853    
854                    for (Map.Entry<Locale, String> entry : titleMap.entrySet()) {
855                            Locale locale = entry.getKey();
856                            String value = entry.getValue();
857    
858                            if (Validator.isNotNull(value)) {
859                                    availableLanguageIds.add(LocaleUtil.toLanguageId(locale));
860                            }
861                    }
862    
863                    Map<Locale, String> descriptionMap = getDescriptionMap();
864    
865                    for (Map.Entry<Locale, String> entry : descriptionMap.entrySet()) {
866                            Locale locale = entry.getKey();
867                            String value = entry.getValue();
868    
869                            if (Validator.isNotNull(value)) {
870                                    availableLanguageIds.add(LocaleUtil.toLanguageId(locale));
871                            }
872                    }
873    
874                    return availableLanguageIds.toArray(new String[availableLanguageIds.size()]);
875            }
876    
877            @Override
878            public String getDefaultLanguageId() {
879                    String xml = getTitle();
880    
881                    if (xml == null) {
882                            return StringPool.BLANK;
883                    }
884    
885                    Locale defaultLocale = LocaleUtil.getDefault();
886    
887                    return LocalizationUtil.getDefaultLanguageId(xml, defaultLocale);
888            }
889    
890            @Override
891            public void prepareLocalizedFieldsForImport() throws LocaleException {
892                    Locale defaultLocale = LocaleUtil.fromLanguageId(getDefaultLanguageId());
893    
894                    Locale[] availableLocales = LocaleUtil.fromLanguageIds(getAvailableLanguageIds());
895    
896                    Locale defaultImportLocale = LocalizationUtil.getDefaultImportLocale(Role.class.getName(),
897                                    getPrimaryKey(), defaultLocale, availableLocales);
898    
899                    prepareLocalizedFieldsForImport(defaultImportLocale);
900            }
901    
902            @Override
903            @SuppressWarnings("unused")
904            public void prepareLocalizedFieldsForImport(Locale defaultImportLocale)
905                    throws LocaleException {
906                    Locale defaultLocale = LocaleUtil.getDefault();
907    
908                    String modelDefaultLanguageId = getDefaultLanguageId();
909    
910                    String title = getTitle(defaultLocale);
911    
912                    if (Validator.isNull(title)) {
913                            setTitle(getTitle(modelDefaultLanguageId), defaultLocale);
914                    }
915                    else {
916                            setTitle(getTitle(defaultLocale), defaultLocale, defaultLocale);
917                    }
918    
919                    String description = getDescription(defaultLocale);
920    
921                    if (Validator.isNull(description)) {
922                            setDescription(getDescription(modelDefaultLanguageId), defaultLocale);
923                    }
924                    else {
925                            setDescription(getDescription(defaultLocale), defaultLocale,
926                                    defaultLocale);
927                    }
928            }
929    
930            @Override
931            public Role toEscapedModel() {
932                    if (_escapedModel == null) {
933                            _escapedModel = (Role)ProxyUtil.newProxyInstance(_classLoader,
934                                            _escapedModelInterfaces, new AutoEscapeBeanHandler(this));
935                    }
936    
937                    return _escapedModel;
938            }
939    
940            @Override
941            public Object clone() {
942                    RoleImpl roleImpl = new RoleImpl();
943    
944                    roleImpl.setMvccVersion(getMvccVersion());
945                    roleImpl.setUuid(getUuid());
946                    roleImpl.setRoleId(getRoleId());
947                    roleImpl.setCompanyId(getCompanyId());
948                    roleImpl.setUserId(getUserId());
949                    roleImpl.setUserName(getUserName());
950                    roleImpl.setCreateDate(getCreateDate());
951                    roleImpl.setModifiedDate(getModifiedDate());
952                    roleImpl.setClassNameId(getClassNameId());
953                    roleImpl.setClassPK(getClassPK());
954                    roleImpl.setName(getName());
955                    roleImpl.setTitle(getTitle());
956                    roleImpl.setDescription(getDescription());
957                    roleImpl.setType(getType());
958                    roleImpl.setSubtype(getSubtype());
959    
960                    roleImpl.resetOriginalValues();
961    
962                    return roleImpl;
963            }
964    
965            @Override
966            public int compareTo(Role role) {
967                    int value = 0;
968    
969                    value = getName().compareTo(role.getName());
970    
971                    if (value != 0) {
972                            return value;
973                    }
974    
975                    return 0;
976            }
977    
978            @Override
979            public boolean equals(Object obj) {
980                    if (this == obj) {
981                            return true;
982                    }
983    
984                    if (!(obj instanceof Role)) {
985                            return false;
986                    }
987    
988                    Role role = (Role)obj;
989    
990                    long primaryKey = role.getPrimaryKey();
991    
992                    if (getPrimaryKey() == primaryKey) {
993                            return true;
994                    }
995                    else {
996                            return false;
997                    }
998            }
999    
1000            @Override
1001            public int hashCode() {
1002                    return (int)getPrimaryKey();
1003            }
1004    
1005            @Override
1006            public boolean isEntityCacheEnabled() {
1007                    return ENTITY_CACHE_ENABLED;
1008            }
1009    
1010            @Override
1011            public boolean isFinderCacheEnabled() {
1012                    return FINDER_CACHE_ENABLED;
1013            }
1014    
1015            @Override
1016            public void resetOriginalValues() {
1017                    RoleModelImpl roleModelImpl = this;
1018    
1019                    roleModelImpl._originalUuid = roleModelImpl._uuid;
1020    
1021                    roleModelImpl._originalCompanyId = roleModelImpl._companyId;
1022    
1023                    roleModelImpl._setOriginalCompanyId = false;
1024    
1025                    roleModelImpl._setModifiedDate = false;
1026    
1027                    roleModelImpl._originalClassNameId = roleModelImpl._classNameId;
1028    
1029                    roleModelImpl._setOriginalClassNameId = false;
1030    
1031                    roleModelImpl._originalClassPK = roleModelImpl._classPK;
1032    
1033                    roleModelImpl._setOriginalClassPK = false;
1034    
1035                    roleModelImpl._originalName = roleModelImpl._name;
1036    
1037                    roleModelImpl._originalType = roleModelImpl._type;
1038    
1039                    roleModelImpl._setOriginalType = false;
1040    
1041                    roleModelImpl._originalSubtype = roleModelImpl._subtype;
1042    
1043                    roleModelImpl._columnBitmask = 0;
1044            }
1045    
1046            @Override
1047            public CacheModel<Role> toCacheModel() {
1048                    RoleCacheModel roleCacheModel = new RoleCacheModel();
1049    
1050                    roleCacheModel.mvccVersion = getMvccVersion();
1051    
1052                    roleCacheModel.uuid = getUuid();
1053    
1054                    String uuid = roleCacheModel.uuid;
1055    
1056                    if ((uuid != null) && (uuid.length() == 0)) {
1057                            roleCacheModel.uuid = null;
1058                    }
1059    
1060                    roleCacheModel.roleId = getRoleId();
1061    
1062                    roleCacheModel.companyId = getCompanyId();
1063    
1064                    roleCacheModel.userId = getUserId();
1065    
1066                    roleCacheModel.userName = getUserName();
1067    
1068                    String userName = roleCacheModel.userName;
1069    
1070                    if ((userName != null) && (userName.length() == 0)) {
1071                            roleCacheModel.userName = null;
1072                    }
1073    
1074                    Date createDate = getCreateDate();
1075    
1076                    if (createDate != null) {
1077                            roleCacheModel.createDate = createDate.getTime();
1078                    }
1079                    else {
1080                            roleCacheModel.createDate = Long.MIN_VALUE;
1081                    }
1082    
1083                    Date modifiedDate = getModifiedDate();
1084    
1085                    if (modifiedDate != null) {
1086                            roleCacheModel.modifiedDate = modifiedDate.getTime();
1087                    }
1088                    else {
1089                            roleCacheModel.modifiedDate = Long.MIN_VALUE;
1090                    }
1091    
1092                    roleCacheModel.classNameId = getClassNameId();
1093    
1094                    roleCacheModel.classPK = getClassPK();
1095    
1096                    roleCacheModel.name = getName();
1097    
1098                    String name = roleCacheModel.name;
1099    
1100                    if ((name != null) && (name.length() == 0)) {
1101                            roleCacheModel.name = null;
1102                    }
1103    
1104                    roleCacheModel.title = getTitle();
1105    
1106                    String title = roleCacheModel.title;
1107    
1108                    if ((title != null) && (title.length() == 0)) {
1109                            roleCacheModel.title = null;
1110                    }
1111    
1112                    roleCacheModel.description = getDescription();
1113    
1114                    String description = roleCacheModel.description;
1115    
1116                    if ((description != null) && (description.length() == 0)) {
1117                            roleCacheModel.description = null;
1118                    }
1119    
1120                    roleCacheModel.type = getType();
1121    
1122                    roleCacheModel.subtype = getSubtype();
1123    
1124                    String subtype = roleCacheModel.subtype;
1125    
1126                    if ((subtype != null) && (subtype.length() == 0)) {
1127                            roleCacheModel.subtype = null;
1128                    }
1129    
1130                    return roleCacheModel;
1131            }
1132    
1133            @Override
1134            public String toString() {
1135                    StringBundler sb = new StringBundler(31);
1136    
1137                    sb.append("{mvccVersion=");
1138                    sb.append(getMvccVersion());
1139                    sb.append(", uuid=");
1140                    sb.append(getUuid());
1141                    sb.append(", roleId=");
1142                    sb.append(getRoleId());
1143                    sb.append(", companyId=");
1144                    sb.append(getCompanyId());
1145                    sb.append(", userId=");
1146                    sb.append(getUserId());
1147                    sb.append(", userName=");
1148                    sb.append(getUserName());
1149                    sb.append(", createDate=");
1150                    sb.append(getCreateDate());
1151                    sb.append(", modifiedDate=");
1152                    sb.append(getModifiedDate());
1153                    sb.append(", classNameId=");
1154                    sb.append(getClassNameId());
1155                    sb.append(", classPK=");
1156                    sb.append(getClassPK());
1157                    sb.append(", name=");
1158                    sb.append(getName());
1159                    sb.append(", title=");
1160                    sb.append(getTitle());
1161                    sb.append(", description=");
1162                    sb.append(getDescription());
1163                    sb.append(", type=");
1164                    sb.append(getType());
1165                    sb.append(", subtype=");
1166                    sb.append(getSubtype());
1167                    sb.append("}");
1168    
1169                    return sb.toString();
1170            }
1171    
1172            @Override
1173            public String toXmlString() {
1174                    StringBundler sb = new StringBundler(49);
1175    
1176                    sb.append("<model><model-name>");
1177                    sb.append("com.liferay.portal.model.Role");
1178                    sb.append("</model-name>");
1179    
1180                    sb.append(
1181                            "<column><column-name>mvccVersion</column-name><column-value><![CDATA[");
1182                    sb.append(getMvccVersion());
1183                    sb.append("]]></column-value></column>");
1184                    sb.append(
1185                            "<column><column-name>uuid</column-name><column-value><![CDATA[");
1186                    sb.append(getUuid());
1187                    sb.append("]]></column-value></column>");
1188                    sb.append(
1189                            "<column><column-name>roleId</column-name><column-value><![CDATA[");
1190                    sb.append(getRoleId());
1191                    sb.append("]]></column-value></column>");
1192                    sb.append(
1193                            "<column><column-name>companyId</column-name><column-value><![CDATA[");
1194                    sb.append(getCompanyId());
1195                    sb.append("]]></column-value></column>");
1196                    sb.append(
1197                            "<column><column-name>userId</column-name><column-value><![CDATA[");
1198                    sb.append(getUserId());
1199                    sb.append("]]></column-value></column>");
1200                    sb.append(
1201                            "<column><column-name>userName</column-name><column-value><![CDATA[");
1202                    sb.append(getUserName());
1203                    sb.append("]]></column-value></column>");
1204                    sb.append(
1205                            "<column><column-name>createDate</column-name><column-value><![CDATA[");
1206                    sb.append(getCreateDate());
1207                    sb.append("]]></column-value></column>");
1208                    sb.append(
1209                            "<column><column-name>modifiedDate</column-name><column-value><![CDATA[");
1210                    sb.append(getModifiedDate());
1211                    sb.append("]]></column-value></column>");
1212                    sb.append(
1213                            "<column><column-name>classNameId</column-name><column-value><![CDATA[");
1214                    sb.append(getClassNameId());
1215                    sb.append("]]></column-value></column>");
1216                    sb.append(
1217                            "<column><column-name>classPK</column-name><column-value><![CDATA[");
1218                    sb.append(getClassPK());
1219                    sb.append("]]></column-value></column>");
1220                    sb.append(
1221                            "<column><column-name>name</column-name><column-value><![CDATA[");
1222                    sb.append(getName());
1223                    sb.append("]]></column-value></column>");
1224                    sb.append(
1225                            "<column><column-name>title</column-name><column-value><![CDATA[");
1226                    sb.append(getTitle());
1227                    sb.append("]]></column-value></column>");
1228                    sb.append(
1229                            "<column><column-name>description</column-name><column-value><![CDATA[");
1230                    sb.append(getDescription());
1231                    sb.append("]]></column-value></column>");
1232                    sb.append(
1233                            "<column><column-name>type</column-name><column-value><![CDATA[");
1234                    sb.append(getType());
1235                    sb.append("]]></column-value></column>");
1236                    sb.append(
1237                            "<column><column-name>subtype</column-name><column-value><![CDATA[");
1238                    sb.append(getSubtype());
1239                    sb.append("]]></column-value></column>");
1240    
1241                    sb.append("</model>");
1242    
1243                    return sb.toString();
1244            }
1245    
1246            private static final ClassLoader _classLoader = Role.class.getClassLoader();
1247            private static final Class<?>[] _escapedModelInterfaces = new Class[] {
1248                            Role.class
1249                    };
1250            private long _mvccVersion;
1251            private String _uuid;
1252            private String _originalUuid;
1253            private long _roleId;
1254            private long _companyId;
1255            private long _originalCompanyId;
1256            private boolean _setOriginalCompanyId;
1257            private long _userId;
1258            private String _userName;
1259            private Date _createDate;
1260            private Date _modifiedDate;
1261            private boolean _setModifiedDate;
1262            private long _classNameId;
1263            private long _originalClassNameId;
1264            private boolean _setOriginalClassNameId;
1265            private long _classPK;
1266            private long _originalClassPK;
1267            private boolean _setOriginalClassPK;
1268            private String _name;
1269            private String _originalName;
1270            private String _title;
1271            private String _titleCurrentLanguageId;
1272            private String _description;
1273            private String _descriptionCurrentLanguageId;
1274            private int _type;
1275            private int _originalType;
1276            private boolean _setOriginalType;
1277            private String _subtype;
1278            private String _originalSubtype;
1279            private long _columnBitmask;
1280            private Role _escapedModel;
1281    }