/**
* 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.portlet.asset.model.adapter.impl;
import com.liferay.asset.kernel.model.AssetEntry;
import com.liferay.asset.kernel.model.AssetLink;
import com.liferay.asset.kernel.model.adapter.StagedAssetLink;
import com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil;
import com.liferay.expando.kernel.model.ExpandoBridge;
import com.liferay.exportimport.kernel.lar.StagedModelType;
import com.liferay.portal.kernel.model.BaseModel;
import com.liferay.portal.kernel.model.CacheModel;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.kernel.util.Validator;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
/**
* @author Mate Thurzo
*/
public class StagedAssetLinkImpl implements StagedAssetLink {
public StagedAssetLinkImpl() {
}
public StagedAssetLinkImpl(AssetLink assetLink) {
_assetLink = assetLink;
populateEntry1Attributes();
populateEntry2Attributes();
populateUuid();
}
@Override
public Object clone() {
return new StagedAssetLinkImpl(_assetLink);
}
@Override
public int compareTo(AssetLink assetLink) {
return _assetLink.compareTo(assetLink);
}
@Override
public long getCompanyId() {
return _assetLink.getCompanyId();
}
@Override
public Date getCreateDate() {
return _assetLink.getCreateDate();
}
@Override
public String getEntry1ClassName() {
if (Validator.isNotNull(_entry1ClassName)) {
return _entry1ClassName;
}
populateEntry1Attributes();
return _entry1ClassName;
}
@Override
public String getEntry1Uuid() {
if (Validator.isNotNull(_entry1Uuid)) {
return _entry1Uuid;
}
populateEntry1Attributes();
return _entry1Uuid;
}
@Override
public String getEntry2ClassName() {
if (Validator.isNotNull(_entry2ClassName)) {
return _entry2ClassName;
}
populateEntry2Attributes();
return _entry2ClassName;
}
@Override
public String getEntry2Uuid() {
if (Validator.isNotNull(_entry2Uuid)) {
return _entry2Uuid;
}
populateEntry2Attributes();
return _entry2Uuid;
}
@Override
public long getEntryId1() {
return _assetLink.getEntryId1();
}
@Override
public long getEntryId2() {
return _assetLink.getEntryId2();
}
@Override
public ExpandoBridge getExpandoBridge() {
return _assetLink.getExpandoBridge();
}
@Override
public long getLinkId() {
return _assetLink.getLinkId();
}
@Override
public Map<String, Object> getModelAttributes() {
return _assetLink.getModelAttributes();
}
@Override
public Class<?> getModelClass() {
return StagedAssetLink.class;
}
@Override
public String getModelClassName() {
return StagedAssetLink.class.getName();
}
@Override
public Date getModifiedDate() {
return _assetLink.getCreateDate();
}
@Override
public long getPrimaryKey() {
return _assetLink.getPrimaryKey();
}
@Override
public Serializable getPrimaryKeyObj() {
return _assetLink.getPrimaryKeyObj();
}
@Override
public StagedModelType getStagedModelType() {
return new StagedModelType(StagedAssetLink.class);
}
@Override
public int getType() {
return _assetLink.getType();
}
@Override
public long getUserId() {
return _assetLink.getUserId();
}
@Override
public String getUserName() {
return _assetLink.getUserName();
}
@Override
public String getUserUuid() {
return _assetLink.getUserUuid();
}
@Override
public String getUuid() {
if (Validator.isNotNull(_uuid)) {
return _uuid;
}
populateUuid();
return _uuid;
}
@Override
public int getWeight() {
return _assetLink.getWeight();
}
@Override
public boolean isCachedModel() {
return false;
}
@Override
public boolean isEntityCacheEnabled() {
return false;
}
@Override
public boolean isEscapedModel() {
return false;
}
@Override
public boolean isFinderCacheEnabled() {
return false;
}
@Override
public boolean isNew() {
return false;
}
@Override
public void persist() {
throw new UnsupportedOperationException();
}
@Override
public void resetOriginalValues() {
throw new UnsupportedOperationException();
}
public void setAssetLink(AssetLink assetLink) {
_assetLink = assetLink;
}
@Override
public void setCachedModel(boolean cachedModel) {
throw new UnsupportedOperationException();
}
@Override
public void setCompanyId(long companyId) {
throw new UnsupportedOperationException();
}
@Override
public void setCreateDate(Date createDate) {
throw new UnsupportedOperationException();
}
@Override
public void setEntryId1(long entryId1) {
throw new UnsupportedOperationException();
}
@Override
public void setEntryId2(long entryId2) {
throw new UnsupportedOperationException();
}
@Override
public void setExpandoBridgeAttributes(BaseModel<?> baseModel) {
throw new UnsupportedOperationException();
}
@Override
public void setExpandoBridgeAttributes(ExpandoBridge expandoBridge) {
throw new UnsupportedOperationException();
}
@Override
public void setExpandoBridgeAttributes(ServiceContext serviceContext) {
throw new UnsupportedOperationException();
}
@Override
public void setLinkId(long linkId) {
throw new UnsupportedOperationException();
}
@Override
public void setModelAttributes(Map<String, Object> attributes) {
throw new UnsupportedOperationException();
}
@Override
public void setModifiedDate(Date date) {
throw new UnsupportedOperationException();
}
@Override
public void setNew(boolean n) {
throw new UnsupportedOperationException();
}
@Override
public void setPrimaryKey(long primaryKey) {
throw new UnsupportedOperationException();
}
@Override
public void setPrimaryKeyObj(Serializable primaryKeyObj) {
throw new UnsupportedOperationException();
}
@Override
public void setType(int type) {
throw new UnsupportedOperationException();
}
@Override
public void setUserId(long userId) {
throw new UnsupportedOperationException();
}
@Override
public void setUserName(String userName) {
throw new UnsupportedOperationException();
}
@Override
public void setUserUuid(String userUuid) {
throw new UnsupportedOperationException();
}
@Override
public void setUuid(String uuid) {
throw new UnsupportedOperationException();
}
@Override
public void setWeight(int weight) {
throw new UnsupportedOperationException();
}
@Override
public CacheModel<AssetLink> toCacheModel() {
return null;
}
@Override
public AssetLink toEscapedModel() {
return null;
}
@Override
public AssetLink toUnescapedModel() {
return null;
}
@Override
public String toXmlString() {
return null;
}
protected void populateEntry1Attributes() {
if (Validator.isNotNull(_entry1ClassName) &&
Validator.isNotNull(_entry1Uuid)) {
return;
}
AssetEntry entry1 = AssetEntryLocalServiceUtil.fetchAssetEntry(
_assetLink.getEntryId1());
if (entry1 == null) {
return;
}
_entry1ClassName = entry1.getClassName();
_entry1Uuid = entry1.getClassUuid();
}
protected void populateEntry2Attributes() {
if (Validator.isNotNull(_entry2ClassName) &&
Validator.isNotNull(_entry2Uuid)) {
return;
}
AssetEntry entry2 = AssetEntryLocalServiceUtil.fetchAssetEntry(
_assetLink.getEntryId2());
if (entry2 == null) {
return;
}
_entry2ClassName = entry2.getClassName();
_entry2Uuid = entry2.getClassUuid();
}
protected void populateUuid() {
if (Validator.isNotNull(_uuid)) {
return;
}
String entry1Uuid = getEntry1Uuid();
String entry2Uuid = getEntry2Uuid();
if (Validator.isNotNull(entry1Uuid) &&
Validator.isNotNull(entry2Uuid)) {
_uuid = entry1Uuid + StringPool.POUND + entry2Uuid;
}
}
private AssetLink _assetLink;
private String _entry1ClassName;
private String _entry1Uuid;
private String _entry2ClassName;
private String _entry2Uuid;
private String _uuid;
}