/**
* 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.portal.repository.liferayrepository.model;
import com.liferay.document.library.kernel.model.DLFileVersion;
import com.liferay.document.library.kernel.service.DLAppHelperLocalServiceUtil;
import com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil;
import com.liferay.expando.kernel.model.ExpandoBridge;
import com.liferay.exportimport.kernel.lar.StagedModelType;
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.repository.model.FileEntry;
import com.liferay.portal.kernel.repository.model.FileVersion;
import com.liferay.portal.kernel.repository.model.RepositoryModelOperation;
import com.liferay.portal.kernel.security.auth.PrincipalThreadLocal;
import java.io.File;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
/**
* @author Alexander Chow
*/
public class LiferayFileVersion extends LiferayModel implements FileVersion {
public LiferayFileVersion(DLFileVersion dlFileVersion) {
this(dlFileVersion, dlFileVersion.isEscapedModel());
}
public LiferayFileVersion(
DLFileVersion dlFileVersion, boolean escapedModel) {
_dlFileVersion = dlFileVersion;
_escapedModel = escapedModel;
}
@Override
public Object clone() {
return new LiferayFileVersion(_dlFileVersion);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof LiferayFileVersion)) {
return false;
}
LiferayFileVersion liferayFileVersion = (LiferayFileVersion)obj;
if (Objects.equals(_dlFileVersion, liferayFileVersion._dlFileVersion)) {
return true;
}
return false;
}
@Override
public void execute(RepositoryModelOperation repositoryModelOperation)
throws PortalException {
repositoryModelOperation.execute(this);
}
@Override
public Map<String, Serializable> getAttributes() {
ExpandoBridge expandoBridge = _dlFileVersion.getExpandoBridge();
return expandoBridge.getAttributes();
}
@Override
public String getChangeLog() {
return _dlFileVersion.getChangeLog();
}
@Override
public long getCompanyId() {
return _dlFileVersion.getCompanyId();
}
@Override
public InputStream getContentStream(boolean incrementCounter)
throws PortalException {
InputStream inputStream = _dlFileVersion.getContentStream(
incrementCounter);
try {
DLAppHelperLocalServiceUtil.getFileAsStream(
PrincipalThreadLocal.getUserId(), getFileEntry(),
incrementCounter);
}
catch (Exception e) {
_log.error(e, e);
}
return inputStream;
}
@Override
public Date getCreateDate() {
return _dlFileVersion.getCreateDate();
}
@Override
public String getDescription() {
return _dlFileVersion.getDescription();
}
@Override
public ExpandoBridge getExpandoBridge() {
return _dlFileVersion.getExpandoBridge();
}
@Override
public String getExtension() {
return _dlFileVersion.getExtension();
}
@Override
public String getExtraSettings() {
return _dlFileVersion.getExtraSettings();
}
public File getFile(boolean incrementCounter) throws PortalException {
return DLFileEntryLocalServiceUtil.getFile(
_dlFileVersion.getFileEntryId(), _dlFileVersion.getVersion(),
incrementCounter);
}
@Override
public FileEntry getFileEntry() throws PortalException {
return new LiferayFileEntry(_dlFileVersion.getFileEntry());
}
@Override
public long getFileEntryId() {
return _dlFileVersion.getFileEntryId();
}
@Override
public String getFileName() {
return _dlFileVersion.getFileName();
}
@Override
public long getFileVersionId() {
return _dlFileVersion.getFileVersionId();
}
@Override
public long getGroupId() {
return _dlFileVersion.getGroupId();
}
@Override
public String getIcon() {
return _dlFileVersion.getIcon();
}
@Override
public Date getLastPublishDate() {
return _dlFileVersion.getLastPublishDate();
}
@Override
public String getMimeType() {
return _dlFileVersion.getMimeType();
}
@Override
public Object getModel() {
return _dlFileVersion;
}
@Override
public Class<?> getModelClass() {
return LiferayFileVersion.class;
}
@Override
public String getModelClassName() {
return LiferayFileVersion.class.getName();
}
@Override
public Date getModifiedDate() {
return _dlFileVersion.getModifiedDate();
}
@Override
public long getPrimaryKey() {
return _dlFileVersion.getPrimaryKey();
}
@Override
public Serializable getPrimaryKeyObj() {
return getPrimaryKey();
}
@Override
public long getRepositoryId() {
return _dlFileVersion.getRepositoryId();
}
@Override
public long getSize() {
return _dlFileVersion.getSize();
}
@Override
public StagedModelType getStagedModelType() {
return new StagedModelType(FileVersion.class);
}
@Override
public int getStatus() {
return _dlFileVersion.getStatus();
}
@Override
public long getStatusByUserId() {
return _dlFileVersion.getStatusByUserId();
}
@Override
public String getStatusByUserName() {
return _dlFileVersion.getStatusByUserName();
}
@Override
public String getStatusByUserUuid() {
return _dlFileVersion.getStatusByUserUuid();
}
@Override
public Date getStatusDate() {
return _dlFileVersion.getStatusDate();
}
@Override
public String getTitle() {
return _dlFileVersion.getTitle();
}
@Override
public long getUserId() {
return _dlFileVersion.getUserId();
}
@Override
public String getUserName() {
return _dlFileVersion.getUserName();
}
@Override
public String getUserUuid() {
return _dlFileVersion.getUserUuid();
}
@Override
public String getUuid() {
return _dlFileVersion.getUuid();
}
@Override
public String getVersion() {
return _dlFileVersion.getVersion();
}
@Override
public int hashCode() {
return _dlFileVersion.hashCode();
}
@Override
public boolean isApproved() {
return _dlFileVersion.isApproved();
}
@Override
public boolean isDefaultRepository() {
if (_dlFileVersion.getGroupId() == _dlFileVersion.getRepositoryId()) {
return true;
}
else {
return false;
}
}
@Override
public boolean isDraft() {
return _dlFileVersion.isDraft();
}
@Override
public boolean isEscapedModel() {
return _escapedModel;
}
@Override
public boolean isExpired() {
return _dlFileVersion.isExpired();
}
@Override
public boolean isPending() {
return _dlFileVersion.isPending();
}
@Override
public void setCompanyId(long companyId) {
_dlFileVersion.setCompanyId(companyId);
}
@Override
public void setCreateDate(Date createDate) {
_dlFileVersion.setCreateDate(createDate);
}
@Override
public void setGroupId(long groupId) {
_dlFileVersion.setGroupId(groupId);
}
@Override
public void setLastPublishDate(Date lastPublishDate) {
_dlFileVersion.setLastPublishDate(lastPublishDate);
}
@Override
public void setModifiedDate(Date modifiedDate) {
}
public void setPrimaryKey(long primaryKey) {
_dlFileVersion.setPrimaryKey(primaryKey);
}
@Override
public void setPrimaryKeyObj(Serializable primaryKeyObj) {
setPrimaryKey(((Long)primaryKeyObj).longValue());
}
@Override
public void setUserId(long userId) {
_dlFileVersion.setUserId(userId);
}
@Override
public void setUserName(String userName) {
_dlFileVersion.setUserName(userName);
}
@Override
public void setUserUuid(String userUuid) {
_dlFileVersion.setUserUuid(userUuid);
}
@Override
public void setUuid(String uuid) {
_dlFileVersion.setUuid(uuid);
}
@Override
public FileVersion toEscapedModel() {
if (isEscapedModel()) {
return this;
}
else {
return new LiferayFileVersion(
_dlFileVersion.toEscapedModel(), true);
}
}
@Override
public String toString() {
return _dlFileVersion.toString();
}
@Override
public FileVersion toUnescapedModel() {
if (isEscapedModel()) {
return new LiferayFileVersion(
_dlFileVersion.toUnescapedModel(), true);
}
else {
return this;
}
}
private static final Log _log = LogFactoryUtil.getLog(
LiferayFileVersion.class);
private final DLFileVersion _dlFileVersion;
private final boolean _escapedModel;
}