001
014
015 package com.liferay.portlet.documentlibrary.webdav;
016
017 import com.liferay.portal.kernel.lock.Lock;
018 import com.liferay.portal.kernel.repository.model.FileEntry;
019 import com.liferay.portal.kernel.repository.model.FileVersion;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portal.kernel.webdav.BaseResourceImpl;
022 import com.liferay.portal.kernel.webdav.WebDAVException;
023 import com.liferay.portal.kernel.webdav.WebDAVRequest;
024 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
025
026 import java.io.InputStream;
027
028
031 public class DLFileEntryResourceImpl extends BaseResourceImpl {
032
033 public DLFileEntryResourceImpl(
034 WebDAVRequest webDAVRequest, FileEntry fileEntry, boolean appendPath) {
035
036 super(
037 webDAVRequest.getRootPath() + webDAVRequest.getPath(),
038 _getName(fileEntry, appendPath), _getName(fileEntry, true),
039 fileEntry.getCreateDate(), fileEntry.getModifiedDate(),
040 fileEntry.getSize());
041
042 setModel(fileEntry);
043 setClassName(DLFileEntry.class.getName());
044 setPrimaryKey(fileEntry.getPrimaryKey());
045 }
046
047 @Override
048 public InputStream getContentAsStream() throws WebDAVException {
049 FileEntry fileEntry = getModel();
050
051 try {
052 FileVersion fileVersion = fileEntry.getLatestFileVersion();
053
054 return fileVersion.getContentStream(true);
055 }
056 catch (Exception e) {
057 throw new WebDAVException(e);
058 }
059 }
060
061 @Override
062 public String getContentType() {
063 FileEntry fileEntry = getModel();
064
065 try {
066 FileVersion fileVersion = fileEntry.getLatestFileVersion();
067
068 return fileVersion.getMimeType();
069 }
070 catch (Exception e) {
071 return fileEntry.getMimeType();
072 }
073 }
074
075 @Override
076 public Lock getLock() {
077 FileEntry fileEntry = getModel();
078
079 try {
080 return fileEntry.getLock();
081 }
082 catch (Exception e) {
083 }
084
085 return null;
086 }
087
088 @Override
089 public FileEntry getModel() {
090 return (FileEntry)super.getModel();
091 }
092
093 @Override
094 public long getSize() {
095 FileEntry fileEntry = getModel();
096
097 try {
098 FileVersion fileVersion = fileEntry.getLatestFileVersion();
099
100 return fileVersion.getSize();
101 }
102 catch (Exception e) {
103 return fileEntry.getSize();
104 }
105 }
106
107 @Override
108 public boolean isCollection() {
109 return false;
110 }
111
112 @Override
113 public boolean isLocked() {
114 FileEntry fileEntry = getModel();
115
116 try {
117 return fileEntry.hasLock();
118 }
119 catch (Exception e) {
120 }
121
122 return false;
123 }
124
125 private static String _getName(FileEntry fileEntry, boolean appendPath) {
126 if (appendPath) {
127 String name = fileEntry.getTitle();
128
129 name = DLWebDAVUtil.escapeRawTitle(name);
130
131 return name;
132 }
133
134 return StringPool.BLANK;
135 }
136
137 }