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