1
22
23 package com.liferay.portlet.documentlibrary.util;
24
25 import com.liferay.portal.kernel.portlet.LiferayPortletURL;
26 import com.liferay.portal.kernel.portlet.LiferayWindowState;
27 import com.liferay.portal.kernel.search.Document;
28 import com.liferay.portal.kernel.search.DocumentSummary;
29 import com.liferay.portal.kernel.search.Field;
30 import com.liferay.portal.kernel.search.SearchException;
31 import com.liferay.portal.kernel.util.StringUtil;
32 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
33 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
34 import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil;
35
36 import javax.portlet.PortletRequest;
37 import javax.portlet.PortletURL;
38 import javax.portlet.WindowStateException;
39
40
47 public class Indexer implements com.liferay.portal.kernel.search.Indexer {
48
49 public String[] getClassNames() {
50 return _CLASS_NAMES;
51 }
52
53 public DocumentSummary getDocumentSummary(
54 Document doc, PortletURL portletURL) {
55
56 LiferayPortletURL liferayPortletURL = (LiferayPortletURL)portletURL;
57
58 liferayPortletURL.setLifecycle(PortletRequest.ACTION_PHASE);
59
60 try {
61 liferayPortletURL.setWindowState(LiferayWindowState.EXCLUSIVE);
62 }
63 catch (WindowStateException wse) {
64 }
65
66
68 String repositoryId = doc.get("repositoryId");
69 String fileName = doc.get("path");
70
71 String title = fileName;
72
73
75 String content = doc.get(Field.CONTENT);
76
77 content = StringUtil.shorten(content, 200);
78
79
81 portletURL.setParameter("struts_action", "/document_library/get_file");
82 portletURL.setParameter("folderId", repositoryId);
83 portletURL.setParameter("name", fileName);
84
85 return new DocumentSummary(title, content, portletURL);
86 }
87
88 public void reIndex(String className, long classPK) throws SearchException {
89 try {
90 DLFileEntryLocalServiceUtil.reIndex(classPK);
91 }
92 catch (Exception e) {
93 throw new SearchException(e);
94 }
95 }
96
97 public void reIndex(String[] ids) throws SearchException {
98 try {
99 DLFolderLocalServiceUtil.reIndex(ids);
100 }
101 catch (Exception e) {
102 throw new SearchException(e);
103 }
104 }
105
106 private static final String[] _CLASS_NAMES = new String[] {
107 DLFileEntry.class.getName()
108 };
109
110 }