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.portal.kernel.util.Validator;
33 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
34 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
35 import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil;
36
37 import javax.portlet.PortletRequest;
38 import javax.portlet.PortletURL;
39 import javax.portlet.WindowStateException;
40
41
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, String snippet, 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 = snippet;
76
77 if (Validator.isNull(snippet)) {
78 content = StringUtil.shorten(doc.get(Field.CONTENT), 200);
79 }
80
81
83 portletURL.setParameter("struts_action", "/document_library/get_file");
84 portletURL.setParameter("folderId", repositoryId);
85 portletURL.setParameter("name", fileName);
86
87 return new DocumentSummary(title, content, portletURL);
88 }
89
90 public void reIndex(String className, long classPK) throws SearchException {
91 try {
92 DLFileEntryLocalServiceUtil.reIndex(classPK);
93 }
94 catch (Exception e) {
95 throw new SearchException(e);
96 }
97 }
98
99 public void reIndex(String[] ids) throws SearchException {
100 try {
101 DLFolderLocalServiceUtil.reIndex(ids);
102 }
103 catch (Exception e) {
104 throw new SearchException(e);
105 }
106 }
107
108 private static final String[] _CLASS_NAMES = new String[] {
109 DLFileEntry.class.getName()
110 };
111
112 }