001
014
015 package com.liferay.portlet.expando.model.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.util.GetterUtil;
020 import com.liferay.portal.kernel.util.StringBundler;
021 import com.liferay.portal.kernel.util.StringUtil;
022 import com.liferay.portlet.expando.ValueDataException;
023 import com.liferay.portlet.expando.model.ExpandoColumn;
024 import com.liferay.portlet.expando.model.ExpandoColumnConstants;
025 import com.liferay.portlet.expando.model.ExpandoValue;
026 import com.liferay.portlet.expando.service.ExpandoColumnLocalServiceUtil;
027
028 import java.util.Date;
029
030
034 public class ExpandoValueImpl
035 extends ExpandoValueModelImpl implements ExpandoValue {
036
037 public ExpandoValueImpl() {
038 }
039
040 public boolean getBoolean() throws PortalException, SystemException {
041 validate(ExpandoColumnConstants.BOOLEAN);
042
043 return GetterUtil.getBoolean(getData());
044 }
045
046 public boolean[] getBooleanArray() throws PortalException, SystemException {
047 validate(ExpandoColumnConstants.BOOLEAN_ARRAY);
048
049 return GetterUtil.getBooleanValues(StringUtil.split(getData()));
050 }
051
052 public Date getDate() throws PortalException, SystemException {
053 validate(ExpandoColumnConstants.DATE);
054
055 return new Date(GetterUtil.getLong(getData()));
056 }
057
058 public Date[] getDateArray() throws PortalException, SystemException {
059 validate(ExpandoColumnConstants.DATE_ARRAY);
060
061 String[] data = StringUtil.split(getData());
062
063 Date[] dateArray = new Date[data.length];
064
065 for (int i = 0; i < data.length; i++) {
066 dateArray[i] = new Date(GetterUtil.getLong(data[i]));
067 }
068
069 return dateArray;
070 }
071
072 public double getDouble() throws PortalException, SystemException {
073 validate(ExpandoColumnConstants.DOUBLE);
074
075 return GetterUtil.getDouble(getData());
076 }
077
078 public double[] getDoubleArray() throws PortalException, SystemException {
079 validate(ExpandoColumnConstants.DOUBLE_ARRAY);
080
081 return GetterUtil.getDoubleValues(StringUtil.split(getData()));
082 }
083
084 public float getFloat() throws PortalException, SystemException {
085 validate(ExpandoColumnConstants.FLOAT);
086
087 return GetterUtil.getFloat(getData());
088 }
089
090 public float[] getFloatArray() throws PortalException, SystemException {
091 validate(ExpandoColumnConstants.FLOAT_ARRAY);
092
093 return GetterUtil.getFloatValues(StringUtil.split(getData()));
094 }
095
096 public int getInteger() throws PortalException, SystemException {
097 validate(ExpandoColumnConstants.INTEGER);
098
099 return GetterUtil.getInteger(getData());
100 }
101
102 public int[] getIntegerArray() throws PortalException, SystemException {
103 validate(ExpandoColumnConstants.INTEGER_ARRAY);
104
105 return GetterUtil.getIntegerValues(StringUtil.split(getData()));
106 }
107
108 public long getLong() throws PortalException, SystemException {
109 validate(ExpandoColumnConstants.LONG);
110
111 return GetterUtil.getLong(getData());
112 }
113
114 public long[] getLongArray() throws PortalException, SystemException {
115 validate(ExpandoColumnConstants.LONG_ARRAY);
116
117 return GetterUtil.getLongValues(StringUtil.split(getData()));
118 }
119
120 public short getShort() throws PortalException, SystemException {
121 validate(ExpandoColumnConstants.SHORT);
122
123 return GetterUtil.getShort(getData());
124 }
125
126 public short[] getShortArray() throws PortalException, SystemException {
127 validate(ExpandoColumnConstants.SHORT_ARRAY);
128
129 return GetterUtil.getShortValues(StringUtil.split(getData()));
130 }
131
132 public String getString() throws PortalException, SystemException {
133 validate(ExpandoColumnConstants.STRING);
134
135 return getData();
136 }
137
138 public String[] getStringArray() throws PortalException, SystemException {
139 validate(ExpandoColumnConstants.STRING_ARRAY);
140
141 return StringUtil.split(getData());
142 }
143
144 public void setBoolean(boolean data)
145 throws PortalException, SystemException {
146
147 validate(ExpandoColumnConstants.BOOLEAN);
148
149 setData(String.valueOf(data));
150 }
151
152 public void setBooleanArray(boolean[] data)
153 throws PortalException, SystemException {
154
155 validate(ExpandoColumnConstants.BOOLEAN_ARRAY);
156
157 setData(StringUtil.merge(data));
158 }
159
160 public void setDate(Date data) throws PortalException, SystemException {
161 validate(ExpandoColumnConstants.DATE);
162
163 setData(String.valueOf(data.getTime()));
164 }
165
166 public void setDateArray(Date[] data)
167 throws PortalException, SystemException {
168
169 validate(ExpandoColumnConstants.DATE_ARRAY);
170
171 setData(StringUtil.merge(data));
172 }
173
174 public void setDouble(double data) throws PortalException, SystemException {
175 validate(ExpandoColumnConstants.DOUBLE);
176
177 setData(String.valueOf(data));
178 }
179
180 public void setDoubleArray(double[] data)
181 throws PortalException, SystemException {
182
183 validate(ExpandoColumnConstants.DOUBLE_ARRAY);
184
185 setData(StringUtil.merge(data));
186 }
187
188 public void setFloat(float data) throws PortalException, SystemException {
189 validate(ExpandoColumnConstants.FLOAT);
190
191 setData(String.valueOf(data));
192 }
193
194 public void setFloatArray(float[] data)
195 throws PortalException, SystemException {
196
197 validate(ExpandoColumnConstants.FLOAT_ARRAY);
198
199 setData(StringUtil.merge(data));
200 }
201
202 public void setInteger(int data) throws PortalException, SystemException {
203 validate(ExpandoColumnConstants.INTEGER);
204
205 setData(String.valueOf(data));
206 }
207
208 public void setIntegerArray(int[] data)
209 throws PortalException, SystemException {
210
211 validate(ExpandoColumnConstants.INTEGER_ARRAY);
212
213 setData(StringUtil.merge(data));
214 }
215
216 public void setLong(long data) throws PortalException, SystemException {
217 validate(ExpandoColumnConstants.LONG);
218
219 setData(String.valueOf(data));
220 }
221
222 public void setLongArray(long[] data)
223 throws PortalException, SystemException {
224
225 validate(ExpandoColumnConstants.LONG_ARRAY);
226
227 setData(StringUtil.merge(data));
228 }
229
230 public void setShort(short data) throws PortalException, SystemException {
231 validate(ExpandoColumnConstants.SHORT);
232
233 setData(String.valueOf(data));
234 }
235
236 public void setShortArray(short[] data)
237 throws PortalException, SystemException {
238
239 validate(ExpandoColumnConstants.SHORT_ARRAY);
240
241 setData(StringUtil.merge(data));
242 }
243
244 public void setString(String data) throws PortalException, SystemException {
245 validate(ExpandoColumnConstants.STRING);
246
247 setData(data);
248 }
249
250 public void setStringArray(String[] data)
251 throws PortalException, SystemException {
252
253 validate(ExpandoColumnConstants.STRING_ARRAY);
254
255 setData(StringUtil.merge(data));
256 }
257
258 protected void validate(int type) throws PortalException, SystemException {
259 long columnId = getColumnId();
260
261 if (columnId <= 0) {
262 return;
263 }
264
265 ExpandoColumn column = ExpandoColumnLocalServiceUtil.getColumn(
266 columnId);
267
268 if (column.getType() == type) {
269 return;
270 }
271
272 StringBundler sb = new StringBundler(6);
273
274 sb.append("Column ");
275 sb.append(columnId);
276 sb.append(" has type ");
277 sb.append(ExpandoColumnConstants.getTypeLabel(column.getType()));
278 sb.append(" and is not compatible with type ");
279 sb.append(ExpandoColumnConstants.getTypeLabel(type));
280
281 throw new ValueDataException(sb.toString());
282 }
283
284 }