/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.layout.set.internal.model.adapter;
import com.liferay.expando.kernel.model.ExpandoBridge;
import com.liferay.exportimport.kernel.lar.StagedModelType;
import com.liferay.layout.set.model.adapter.StagedLayoutSet;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.model.BaseModel;
import com.liferay.portal.kernel.model.CacheModel;
import com.liferay.portal.kernel.model.ColorScheme;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.model.LayoutSet;
import com.liferay.portal.kernel.model.LayoutSetPrototype;
import com.liferay.portal.kernel.model.Theme;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.LayoutSetPrototypeLocalServiceUtil;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.service.UserLocalServiceUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.UnicodeProperties;
import com.liferay.portal.kernel.util.Validator;
import java.io.Serializable;
import java.time.Instant;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* @author Mate Thurzo
*/
public class StagedLayoutSetImpl implements StagedLayoutSet {
public StagedLayoutSetImpl() {
}
public StagedLayoutSetImpl(LayoutSet layoutSet) {
Objects.requireNonNull(
layoutSet,
"Unable to create a new staged layout set for a null layout set");
_layoutSet = layoutSet;
// Last publish date
UnicodeProperties settingsProperties =
_layoutSet.getSettingsProperties();
String lastPublishDateString = settingsProperties.getProperty(
"last-publish-date");
Instant instant = Instant.ofEpochMilli(
GetterUtil.getLong(lastPublishDateString));
_lastPublishDate = Date.from(instant);
// Layout set prototype
if (Validator.isNotNull(_layoutSet.getLayoutSetPrototypeUuid())) {
LayoutSetPrototype layoutSetPrototype =
LayoutSetPrototypeLocalServiceUtil.
fetchLayoutSetPrototypeByUuidAndCompanyId(
_layoutSet.getLayoutSetPrototypeUuid(),
_layoutSet.getCompanyId());
if (layoutSetPrototype != null) {
_layoutSetPrototypeName = layoutSetPrototype.getName(
LocaleUtil.getDefault());
}
}
try {
_userId = _layoutSet.getGroup().getCreatorUserId();
User user = UserLocalServiceUtil.getUser(_userId);
_userName = user.getFullName();
_userUuid = user.getUuid();
}
catch (PortalException pe) {
// LPS-52675
if (_log.isDebugEnabled()) {
_log.debug(pe, pe);
}
}
}
@Override
public Object clone() {
return new StagedLayoutSetImpl((LayoutSet)_layoutSet.clone());
}
@Override
public int compareTo(LayoutSet layoutSet) {
return _layoutSet.compareTo(layoutSet);
}
@Override
public ColorScheme getColorScheme() {
return _layoutSet.getColorScheme();
}
@Override
public String getColorSchemeId() {
return _layoutSet.getColorSchemeId();
}
@Override
public String getCompanyFallbackVirtualHostname() {
return _layoutSet.getCompanyFallbackVirtualHostname();
}
@Override
public long getCompanyId() {
return _layoutSet.getCompanyId();
}
@Override
public Date getCreateDate() {
return _layoutSet.getCreateDate();
}
@Override
public String getCss() {
return _layoutSet.getCss();
}
@Override
public ExpandoBridge getExpandoBridge() {
return _layoutSet.getExpandoBridge();
}
@Override
public Group getGroup() throws PortalException {
return _layoutSet.getGroup();
}
@Override
public long getGroupId() {
return _layoutSet.getGroupId();
}
@Override
public Date getLastPublishDate() {
return _lastPublishDate;
}
@Override
public long getLayoutSetId() {
return _layoutSet.getLayoutSetId();
}
@Override
public long getLayoutSetPrototypeId() throws PortalException {
return _layoutSet.getLayoutSetPrototypeId();
}
@Override
public boolean getLayoutSetPrototypeLinkEnabled() {
return _layoutSet.getLayoutSetPrototypeLinkEnabled();
}
@Override
public Optional<String> getLayoutSetPrototypeName() {
return Optional.ofNullable(_layoutSetPrototypeName);
}
@Override
public String getLayoutSetPrototypeUuid() {
return _layoutSet.getLayoutSetPrototypeUuid();
}
@Override
public long getLiveLogoId() {
return _layoutSet.getLiveLogoId();
}
@Override
public boolean getLogo() {
return _layoutSet.getLogo();
}
@Override
public long getLogoId() {
return _layoutSet.getLogoId();
}
@Override
public Map<String, Object> getModelAttributes() {
return _layoutSet.getModelAttributes();
}
@Override
public Class<?> getModelClass() {
return _layoutSet.getModelClass();
}
@Override
public String getModelClassName() {
return _layoutSet.getModelClassName();
}
@Override
public Date getModifiedDate() {
return _layoutSet.getModifiedDate();
}
@Override
public long getMvccVersion() {
return _layoutSet.getMvccVersion();
}
@Override
public int getPageCount() {
return _layoutSet.getPageCount();
}
@Override
public long getPrimaryKey() {
return _layoutSet.getPrimaryKey();
}
@Override
public Serializable getPrimaryKeyObj() {
return _layoutSet.getPrimaryKeyObj();
}
@Override
public boolean getPrivateLayout() {
return _layoutSet.getPrivateLayout();
}
@Override
public String getSettings() {
return _layoutSet.getSettings();
}
@Override
public UnicodeProperties getSettingsProperties() {
return _layoutSet.getSettingsProperties();
}
@Override
public String getSettingsProperty(String key) {
return _layoutSet.getSettingsProperty(key);
}
@Override
public StagedModelType getStagedModelType() {
return new StagedModelType(StagedLayoutSet.class);
}
@Override
public Theme getTheme() {
return _layoutSet.getTheme();
}
@Override
public String getThemeId() {
return _layoutSet.getThemeId();
}
@Override
public String getThemeSetting(String key, String device) {
return _layoutSet.getThemeSetting(key, device);
}
@Override
public long getUserId() {
return _userId;
}
@Override
public String getUserName() {
return _userName;
}
@Override
public String getUserUuid() {
return _userUuid;
}
@Override
public String getUuid() {
return String.valueOf(_layoutSet.isPrivateLayout());
}
@Override
public String getVirtualHostname() {
return _layoutSet.getVirtualHostname();
}
@Override
public boolean hasSetModifiedDate() {
return _layoutSet.hasSetModifiedDate();
}
@Override
public boolean isCachedModel() {
return _layoutSet.isCachedModel();
}
@Override
public boolean isEntityCacheEnabled() {
return _layoutSet.isEntityCacheEnabled();
}
@Override
public boolean isEscapedModel() {
return _layoutSet.isEscapedModel();
}
@Override
public boolean isFinderCacheEnabled() {
return _layoutSet.isFinderCacheEnabled();
}
@Override
public boolean isLayoutSetPrototypeLinkActive() {
return _layoutSet.isLayoutSetPrototypeLinkActive();
}
@Override
public boolean isLayoutSetPrototypeLinkEnabled() {
return _layoutSet.isLayoutSetPrototypeLinkEnabled();
}
@Override
public boolean isLogo() {
return _layoutSet.isLogo();
}
@Override
public boolean isNew() {
return _layoutSet.isNew();
}
@Override
public boolean isPrivateLayout() {
return _layoutSet.isPrivateLayout();
}
@Override
public void persist() {
_layoutSet.persist();
}
@Override
public void resetOriginalValues() {
_layoutSet.resetOriginalValues();
}
@Override
public void setCachedModel(boolean cachedModel) {
_layoutSet.setCachedModel(cachedModel);
}
@Override
public void setColorSchemeId(String colorSchemeId) {
_layoutSet.setColorSchemeId(colorSchemeId);
}
@Override
public void setCompanyFallbackVirtualHostname(
String companyFallbackVirtualHostname) {
_layoutSet.setCompanyFallbackVirtualHostname(
companyFallbackVirtualHostname);
}
@Override
public void setCompanyId(long companyId) {
_layoutSet.setCompanyId(companyId);
}
@Override
public void setCreateDate(Date createDate) {
_layoutSet.setCreateDate(createDate);
}
@Override
public void setCss(String css) {
_layoutSet.setCss(css);
}
@Override
public void setExpandoBridgeAttributes(BaseModel<?> baseModel) {
_layoutSet.setExpandoBridgeAttributes(baseModel);
}
@Override
public void setExpandoBridgeAttributes(ExpandoBridge expandoBridge) {
_layoutSet.setExpandoBridgeAttributes(expandoBridge);
}
@Override
public void setExpandoBridgeAttributes(ServiceContext serviceContext) {
_layoutSet.setExpandoBridgeAttributes(serviceContext);
}
@Override
public void setGroupId(long groupId) {
_layoutSet.setGroupId(groupId);
}
@Override
public void setLastPublishDate(Date lastPublishDate) {
_lastPublishDate = lastPublishDate;
UnicodeProperties settingsProperties = getSettingsProperties();
settingsProperties.setProperty(
"last-publish-date", String.valueOf(_lastPublishDate.getTime()));
}
public void setLayoutSet(LayoutSet layoutSet) {
_layoutSet = layoutSet;
}
@Override
public void setLayoutSetId(long layoutSetId) {
_layoutSet.setLayoutSetId(layoutSetId);
}
@Override
public void setLayoutSetPrototypeLinkEnabled(
boolean layoutSetPrototypeLinkEnabled) {
_layoutSet.setLayoutSetPrototypeLinkEnabled(
layoutSetPrototypeLinkEnabled);
}
public void setLayoutSetPrototypeName(String layoutSetPrototypeName) {
_layoutSetPrototypeName = layoutSetPrototypeName;
}
@Override
public void setLayoutSetPrototypeUuid(String layoutSetPrototypeUuid) {
_layoutSet.setLayoutSetPrototypeUuid(layoutSetPrototypeUuid);
}
@Override
public void setLogoId(long logoId) {
_layoutSet.setLogoId(logoId);
}
@Override
public void setModelAttributes(Map<String, Object> attributes) {
_layoutSet.setModelAttributes(attributes);
}
@Override
public void setModifiedDate(Date modifiedDate) {
_layoutSet.setModifiedDate(modifiedDate);
}
@Override
public void setMvccVersion(long mvccVersion) {
_layoutSet.setMvccVersion(mvccVersion);
}
@Override
public void setNew(boolean n) {
_layoutSet.setNew(n);
}
@Override
public void setPageCount(int pageCount) {
_layoutSet.setPageCount(pageCount);
}
@Override
public void setPrimaryKey(long primaryKey) {
_layoutSet.setPrimaryKey(primaryKey);
}
@Override
public void setPrimaryKeyObj(Serializable primaryKeyObj) {
_layoutSet.setPrimaryKeyObj(primaryKeyObj);
}
@Override
public void setPrivateLayout(boolean privateLayout) {
_layoutSet.setPrivateLayout(privateLayout);
}
@Override
public void setSettings(String settings) {
_layoutSet.setSettings(settings);
}
@Override
public void setSettingsProperties(UnicodeProperties settingsProperties) {
_layoutSet.setSettingsProperties(settingsProperties);
}
@Override
public void setThemeId(String themeId) {
_layoutSet.setThemeId(themeId);
}
@Override
public void setUserId(long userId) {
_userId = userId;
}
@Override
public void setUserName(String userName) {
_userName = userName;
}
@Override
public void setUserUuid(String userUuid) {
_userUuid = userUuid;
}
@Override
public void setUuid(String uuid) {
throw new UnsupportedOperationException();
}
@Override
public void setVirtualHostname(String virtualHostname) {
_layoutSet.setVirtualHostname(virtualHostname);
}
@Override
public CacheModel<LayoutSet> toCacheModel() {
return _layoutSet.toCacheModel();
}
@Override
public LayoutSet toEscapedModel() {
return _layoutSet.toEscapedModel();
}
@Override
public LayoutSet toUnescapedModel() {
return _layoutSet.toUnescapedModel();
}
@Override
public String toXmlString() {
return _layoutSet.toXmlString();
}
private static final Log _log = LogFactoryUtil.getLog(
StagedLayoutSetImpl.class);
private Date _lastPublishDate;
private LayoutSet _layoutSet;
private String _layoutSetPrototypeName;
private long _userId;
private String _userName;
private String _userUuid;
}