001
014
015 package com.liferay.portal.sharepoint.methods;
016
017 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
018 import com.liferay.portal.kernel.util.ArrayUtil;
019 import com.liferay.portal.kernel.util.FileUtil;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portal.sharepoint.Property;
022 import com.liferay.portal.sharepoint.ResponseElement;
023 import com.liferay.portal.sharepoint.SharepointRequest;
024 import com.liferay.portal.sharepoint.SharepointStorage;
025 import com.liferay.portal.sharepoint.Tree;
026
027 import java.io.InputStream;
028
029 import java.util.ArrayList;
030 import java.util.List;
031
032
035 public class GetDocumentMethodImpl extends BaseMethodImpl {
036
037 public String getMethodName() {
038 return _METHOD_NAME;
039 }
040
041 @Override
042 public String getRootPath(SharepointRequest sharepointRequest) {
043 return sharepointRequest.getParameterValue("document_name");
044 }
045
046 @Override
047 protected void doProcess(SharepointRequest sharepointRequest)
048 throws Exception {
049
050 SharepointStorage storage = sharepointRequest.getSharepointStorage();
051
052 String html = getResponse(sharepointRequest, true);
053
054 InputStream is = storage.getDocumentInputStream(sharepointRequest);
055
056 byte[] bytes = ArrayUtil.append(html.getBytes(), FileUtil.getBytes(is));
057
058 ServletResponseUtil.write(
059 sharepointRequest.getHttpServletResponse(), bytes);
060 }
061
062 @Override
063 protected List<ResponseElement> getElements(
064 SharepointRequest sharepointRequest)
065 throws Exception {
066
067 List<ResponseElement> elements = new ArrayList<ResponseElement>();
068
069 SharepointStorage storage = sharepointRequest.getSharepointStorage();
070
071 elements.add(new Property("message", StringPool.BLANK));
072
073 Tree documentTree = storage.getDocumentTree(sharepointRequest);
074
075 Property documentProperty = new Property("document", documentTree);
076
077 elements.add(documentProperty);
078
079 return elements;
080 }
081
082 private static final String _METHOD_NAME = "get document";
083
084 }