1
22
23 package com.liferay.portlet.tags.util;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.kernel.util.StringUtil;
28 import com.liferay.portal.kernel.util.Validator;
29 import com.liferay.portal.util.PortletKeys;
30 import com.liferay.portlet.blogs.model.BlogsEntry;
31 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
32 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
33 import com.liferay.portlet.imagegallery.model.IGImage;
34 import com.liferay.portlet.journal.model.JournalArticle;
35 import com.liferay.portlet.messageboards.model.MBMessage;
36 import com.liferay.portlet.tags.NoSuchEntryException;
37 import com.liferay.portlet.tags.model.TagsEntry;
38 import com.liferay.portlet.tags.model.TagsProperty;
39 import com.liferay.portlet.tags.service.TagsEntryLocalServiceUtil;
40 import com.liferay.portlet.tags.service.TagsPropertyLocalServiceUtil;
41 import com.liferay.portlet.wiki.model.WikiPage;
42
43 import java.util.Iterator;
44 import java.util.List;
45
46
52 public class TagsUtil {
53
54 public static final String[] ASSET_TYPE_CLASS_NAMES = {
55 BlogsEntry.class.getName(), BookmarksEntry.class.getName(),
56 DLFileEntry.class.getName(), IGImage.class.getName(),
57 JournalArticle.class.getName(), MBMessage.class.getName(),
58 WikiPage.class.getName()
59 };
60
61 public static final String[] ASSET_TYPE_PORTLET_IDS = {
62 PortletKeys.BLOGS, PortletKeys.BOOKMARKS, PortletKeys.DOCUMENT_LIBRARY,
63 PortletKeys.IMAGE_GALLERY, PortletKeys.JOURNAL,
64 PortletKeys.MESSAGE_BOARDS, PortletKeys.WIKI
65 };
66
67 public static boolean isValidWord(String word) {
68 if (Validator.isNull(word)) {
69 return false;
70 }
71 else {
72 char[] c = word.toCharArray();
73
74 for (int i = 0; i < c.length; i++) {
75 if (!Validator.isChar(c[i]) && !Validator.isDigit(c[i]) &&
76 (c[i] != ' ') && (c[i] != '.') && (c[i] != '-') &&
77 (c[i] != '_') && (c[i] != '(') && (c[i] != ')')) {
78
79 return false;
80 }
81 }
82 }
83
84 return true;
85 }
86
87 public static String substitutePropertyVariables(
88 long companyId, String entryName, String s)
89 throws PortalException, SystemException {
90
91 String result = s;
92
93 TagsEntry entry = null;
94
95 if (entryName != null) {
96 try {
97 entry = TagsEntryLocalServiceUtil.getEntry(
98 companyId, entryName);
99 }
100 catch (NoSuchEntryException nsee) {
101 }
102 }
103
104 if (entry != null) {
105 List properties = TagsPropertyLocalServiceUtil.getProperties(
106 entry.getEntryId());
107
108 Iterator it = properties.iterator();
109
110 while (it.hasNext()) {
111 TagsProperty property = (TagsProperty) it.next();
112
113 result = StringUtil.replace(
114 result, "[$" + property.getKey() + "$]",
115 property.getValue());
116 }
117 }
118
119 return StringUtil.stripBetween(result, "[$", "$]");
120 }
121
122 }