001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.Base64;
020 import com.liferay.portal.kernel.util.FileUtil;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
023 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
024 import com.liferay.portlet.documentlibrary.store.DLStoreUtil;
025
026 import java.io.InputStream;
027
028
031 public class ImageImpl extends ImageBaseImpl {
032
033 public ImageImpl() {
034 }
035
036 public byte[] getTextObj() {
037 if (_textObj != null) {
038 return _textObj;
039 }
040
041 long imageId = getImageId();
042
043 try {
044 DLFileEntry dlFileEntry =
045 DLFileEntryLocalServiceUtil.fetchFileEntryByAnyImageId(imageId);
046
047 InputStream is = null;
048
049 if ((dlFileEntry != null) &&
050 (dlFileEntry.getLargeImageId() == imageId)) {
051
052 is = DLStoreUtil.getFileAsStream(
053 dlFileEntry.getCompanyId(),
054 dlFileEntry.getDataRepositoryId(), dlFileEntry.getName());
055 }
056 else {
057 is = DLStoreUtil.getFileAsStream(
058 _DEFAULT_COMPANY_ID, _DEFAULT_REPOSITORY_ID,
059 getFileName());
060 }
061
062 byte[] bytes = FileUtil.getBytes(is);
063
064 _textObj = bytes;
065 }
066 catch (Exception e) {
067 _log.error("Error reading image " + imageId, e);
068 }
069
070 return _textObj;
071 }
072
073 public void setTextObj(byte[] textObj) {
074 _textObj = textObj;
075
076 super.setText(Base64.objectToString(textObj));
077 }
078
079 private String getFileName() {
080 return getImageId() + StringPool.PERIOD + getType();
081 }
082
083 private byte[] _textObj;
084
085 private final long _DEFAULT_COMPANY_ID = 0;
086
087 private final long _DEFAULT_REPOSITORY_ID = 0;
088
089 private static Log _log = LogFactoryUtil.getLog(ImageImpl.class);
090
091 }