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