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