001
014
015 package com.liferay.portlet.expando.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.json.JSONFactoryUtil;
020 import com.liferay.portal.kernel.json.JSONObject;
021 import com.liferay.portal.kernel.jsonwebservice.JSONWebService;
022 import com.liferay.portal.kernel.jsonwebservice.JSONWebServiceMode;
023 import com.liferay.portal.kernel.util.StringPool;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.security.permission.ActionKeys;
026 import com.liferay.portlet.expando.model.ExpandoColumn;
027 import com.liferay.portlet.expando.model.ExpandoValue;
028 import com.liferay.portlet.expando.service.base.ExpandoValueServiceBaseImpl;
029 import com.liferay.portlet.expando.service.permission.ExpandoColumnPermissionUtil;
030
031 import java.io.Serializable;
032
033 import java.util.Collection;
034 import java.util.Map;
035
036
039 public class ExpandoValueServiceImpl extends ExpandoValueServiceBaseImpl {
040
041 @JSONWebService(mode = JSONWebServiceMode.IGNORE)
042 @Override
043 public ExpandoValue addValue(
044 long companyId, String className, String tableName,
045 String columnName, long classPK, Object data)
046 throws PortalException, SystemException {
047
048 ExpandoColumn column = expandoColumnLocalService.getColumn(
049 companyId, className, tableName, columnName);
050
051 ExpandoColumnPermissionUtil.check(
052 getPermissionChecker(), column, ActionKeys.UPDATE);
053
054 return expandoValueLocalService.addValue(
055 companyId, className, tableName, columnName, classPK, data);
056 }
057
058 @Override
059 public ExpandoValue addValue(
060 long companyId, String className, String tableName,
061 String columnName, long classPK, String data)
062 throws PortalException, SystemException {
063
064 ExpandoColumn column = expandoColumnLocalService.getColumn(
065 companyId, className, tableName, columnName);
066
067 ExpandoColumnPermissionUtil.check(
068 getPermissionChecker(), column, ActionKeys.UPDATE);
069
070 return expandoValueLocalService.addValue(
071 companyId, className, tableName, columnName, classPK, data);
072 }
073
074 @Override
075 public void addValues(
076 long companyId, String className, String tableName, long classPK,
077 Map<String, Serializable> attributeValues)
078 throws PortalException, SystemException {
079
080 for (Map.Entry<String, Serializable> entry :
081 attributeValues.entrySet()) {
082
083 addValue(
084 companyId, className, tableName, entry.getKey(), classPK,
085 entry.getValue());
086 }
087 }
088
089 @Override
090 public Map<String, Serializable> getData(
091 long companyId, String className, String tableName,
092 Collection<String> columnNames, long classPK)
093 throws PortalException, SystemException {
094
095 Map<String, Serializable> attributeValues =
096 expandoValueLocalService.getData(
097 companyId, className, tableName, columnNames, classPK);
098
099 for (String columnName : columnNames) {
100 ExpandoColumn column = expandoColumnLocalService.getColumn(
101 companyId, className, tableName, columnName);
102
103 if (!ExpandoColumnPermissionUtil.contains(
104 getPermissionChecker(), column, ActionKeys.VIEW)) {
105
106 attributeValues.remove(columnName);
107 }
108 }
109
110 return attributeValues;
111 }
112
113 @Override
114 public Serializable getData(
115 long companyId, String className, String tableName,
116 String columnName, long classPK)
117 throws PortalException, SystemException {
118
119 ExpandoColumn column = expandoColumnLocalService.getColumn(
120 companyId, className, tableName, columnName);
121
122 if (ExpandoColumnPermissionUtil.contains(
123 getPermissionChecker(), column, ActionKeys.VIEW)) {
124
125 return expandoValueLocalService.getData(
126 companyId, className, tableName, columnName, classPK);
127 }
128 else {
129 return null;
130 }
131 }
132
133 @Override
134 public JSONObject getJSONData(
135 long companyId, String className, String tableName,
136 String columnName, long classPK)
137 throws PortalException, SystemException {
138
139 ExpandoColumn column = expandoColumnLocalService.getColumn(
140 companyId, className, tableName, columnName);
141
142 if (ExpandoColumnPermissionUtil.contains(
143 getPermissionChecker(), column, ActionKeys.VIEW)) {
144
145 Serializable dataSerializable = expandoValueLocalService.getData(
146 companyId, className, tableName, columnName, classPK);
147
148 String data = dataSerializable.toString();
149
150 if (Validator.isNotNull(data)) {
151 if (!data.startsWith(StringPool.OPEN_CURLY_BRACE)) {
152 data = "{data:".concat(data).concat("}");
153 }
154
155 return JSONFactoryUtil.createJSONObject(data);
156 }
157 else {
158 return null;
159 }
160 }
161 else {
162 return null;
163 }
164 }
165
166 }