001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
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.security.auth.CompanyThreadLocal;
020    import com.liferay.portal.util.PortalUtil;
021    import com.liferay.portlet.expando.model.ExpandoColumn;
022    import com.liferay.portlet.expando.model.ExpandoColumnConstants;
023    import com.liferay.portlet.expando.model.ExpandoRow;
024    import com.liferay.portlet.expando.model.ExpandoTable;
025    import com.liferay.portlet.expando.model.ExpandoTableConstants;
026    import com.liferay.portlet.expando.model.ExpandoValue;
027    import com.liferay.portlet.expando.model.impl.ExpandoValueImpl;
028    import com.liferay.portlet.expando.service.base.ExpandoValueLocalServiceBaseImpl;
029    
030    import java.io.Serializable;
031    
032    import java.util.Collections;
033    import java.util.Date;
034    import java.util.List;
035    import java.util.Map;
036    
037    /**
038     * @author Raymond Augé
039     * @author Brian Wing Shun Chan
040     */
041    public class ExpandoValueLocalServiceImpl
042            extends ExpandoValueLocalServiceBaseImpl {
043    
044            public ExpandoValue addValue(
045                            long classNameId, long tableId, long columnId, long classPK,
046                            String data)
047                    throws PortalException, SystemException {
048    
049                    ExpandoTable table = expandoTablePersistence.findByPrimaryKey(tableId);
050    
051                    ExpandoRow row = expandoRowPersistence.fetchByT_C(tableId, classPK);
052    
053                    if (row == null) {
054                            long rowId = counterLocalService.increment();
055    
056                            row = expandoRowPersistence.create(rowId);
057    
058                            row.setCompanyId(table.getCompanyId());
059                            row.setTableId(tableId);
060                            row.setClassPK(classPK);
061    
062                            expandoRowPersistence.update(row, false);
063                    }
064    
065                    ExpandoValue value = expandoValuePersistence.fetchByC_R(
066                            columnId, row.getRowId());
067    
068                    if (value == null) {
069                            long valueId = counterLocalService.increment();
070    
071                            value = expandoValuePersistence.create(valueId);
072    
073                            value.setCompanyId(table.getCompanyId());
074                            value.setTableId(tableId);
075                            value.setColumnId(columnId);
076                            value.setRowId(row.getRowId());
077                            value.setClassNameId(classNameId);
078                            value.setClassPK(classPK);
079                    }
080    
081                    value.setData(data);
082    
083                    expandoValuePersistence.update(value, false);
084    
085                    return value;
086            }
087    
088            public ExpandoValue addValue(
089                            long companyId, String className, String tableName,
090                            String columnName, long classPK, boolean data)
091                    throws PortalException, SystemException {
092    
093                    ExpandoTable table = expandoTableLocalService.getTable(
094                            companyId, className, tableName);
095    
096                    ExpandoColumn column = expandoColumnLocalService.getColumn(
097                            table.getTableId(), columnName);
098    
099                    ExpandoValue value = new ExpandoValueImpl();
100    
101                    value.setCompanyId(table.getCompanyId());
102                    value.setColumnId(column.getColumnId());
103                    value.setBoolean(data);
104    
105                    return addValue(
106                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
107                            classPK, value.getData());
108            }
109    
110            public ExpandoValue addValue(
111                            long companyId, String className, String tableName,
112                            String columnName, long classPK, boolean[] data)
113                    throws PortalException, SystemException {
114    
115                    ExpandoTable table = expandoTableLocalService.getTable(
116                            companyId, className, tableName);
117    
118                    ExpandoColumn column = expandoColumnLocalService.getColumn(
119                            table.getTableId(), columnName);
120    
121                    ExpandoValue value = new ExpandoValueImpl();
122    
123                    value.setCompanyId(table.getCompanyId());
124                    value.setColumnId(column.getColumnId());
125                    value.setBooleanArray(data);
126    
127                    return addValue(
128                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
129                            classPK, value.getData());
130            }
131    
132            public ExpandoValue addValue(
133                            long companyId, String className, String tableName,
134                            String columnName, long classPK, Date data)
135                    throws PortalException, SystemException {
136    
137                    ExpandoTable table = expandoTableLocalService.getTable(
138                            companyId, className, tableName);
139    
140                    ExpandoColumn column = expandoColumnLocalService.getColumn(
141                            table.getTableId(), columnName);
142    
143                    ExpandoValue value = new ExpandoValueImpl();
144    
145                    value.setCompanyId(table.getCompanyId());
146                    value.setColumnId(column.getColumnId());
147                    value.setDate(data);
148    
149                    return addValue(
150                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
151                            classPK, value.getData());
152            }
153    
154            public ExpandoValue addValue(
155                            long companyId, String className, String tableName,
156                            String columnName, long classPK, Date[] data)
157                    throws PortalException, SystemException {
158    
159                    ExpandoTable table = expandoTableLocalService.getTable(
160                            companyId, className, tableName);
161    
162                    ExpandoColumn column = expandoColumnLocalService.getColumn(
163                            table.getTableId(), columnName);
164    
165                    ExpandoValue value = new ExpandoValueImpl();
166    
167                    value.setCompanyId(table.getCompanyId());
168                    value.setColumnId(column.getColumnId());
169                    value.setDateArray(data);
170    
171                    return addValue(
172                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
173                            classPK, value.getData());
174            }
175    
176            public ExpandoValue addValue(
177                            long companyId, String className, String tableName,
178                            String columnName, long classPK, double data)
179                    throws PortalException, SystemException {
180    
181                    ExpandoTable table = expandoTableLocalService.getTable(
182                            companyId, className, tableName);
183    
184                    ExpandoColumn column = expandoColumnLocalService.getColumn(
185                            table.getTableId(), columnName);
186    
187                    ExpandoValue value = new ExpandoValueImpl();
188    
189                    value.setCompanyId(table.getCompanyId());
190                    value.setColumnId(column.getColumnId());
191                    value.setDouble(data);
192    
193                    return addValue(
194                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
195                            classPK, value.getData());
196            }
197    
198            public ExpandoValue addValue(
199                            long companyId, String className, String tableName,
200                            String columnName, long classPK, double[] data)
201                    throws PortalException, SystemException {
202    
203                    ExpandoTable table = expandoTableLocalService.getTable(
204                            companyId, className, tableName);
205    
206                    ExpandoColumn column = expandoColumnLocalService.getColumn(
207                            table.getTableId(), columnName);
208    
209                    ExpandoValue value = new ExpandoValueImpl();
210    
211                    value.setCompanyId(table.getCompanyId());
212                    value.setColumnId(column.getColumnId());
213                    value.setDoubleArray(data);
214    
215                    return addValue(
216                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
217                            classPK, value.getData());
218            }
219    
220            public ExpandoValue addValue(
221                            long companyId, String className, String tableName,
222                            String columnName, long classPK, float data)
223                    throws PortalException, SystemException {
224    
225                    ExpandoTable table = expandoTableLocalService.getTable(
226                            companyId, className, tableName);
227    
228                    ExpandoColumn column = expandoColumnLocalService.getColumn(
229                            table.getTableId(), columnName);
230    
231                    ExpandoValue value = new ExpandoValueImpl();
232    
233                    value.setCompanyId(table.getCompanyId());
234                    value.setColumnId(column.getColumnId());
235                    value.setFloat(data);
236    
237                    return addValue(
238                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
239                            classPK, value.getData());
240            }
241    
242            public ExpandoValue addValue(
243                            long companyId, String className, String tableName,
244                            String columnName, long classPK, float[] data)
245                    throws PortalException, SystemException {
246    
247                    ExpandoTable table = expandoTableLocalService.getTable(
248                            companyId, className, tableName);
249    
250                    ExpandoColumn column = expandoColumnLocalService.getColumn(
251                            table.getTableId(), columnName);
252    
253                    ExpandoValue value = new ExpandoValueImpl();
254    
255                    value.setCompanyId(table.getCompanyId());
256                    value.setColumnId(column.getColumnId());
257                    value.setFloatArray(data);
258    
259                    return addValue(
260                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
261                            classPK, value.getData());
262            }
263    
264            public ExpandoValue addValue(
265                            long companyId, String className, String tableName,
266                            String columnName, long classPK, int data)
267                    throws PortalException, SystemException {
268    
269                    ExpandoTable table = expandoTableLocalService.getTable(
270                            companyId, className, tableName);
271    
272                    ExpandoColumn column = expandoColumnLocalService.getColumn(
273                            table.getTableId(), columnName);
274    
275                    ExpandoValue value = new ExpandoValueImpl();
276    
277                    value.setCompanyId(table.getCompanyId());
278                    value.setColumnId(column.getColumnId());
279                    value.setInteger(data);
280    
281                    return addValue(
282                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
283                            classPK, value.getData());
284            }
285    
286            public ExpandoValue addValue(
287                            long companyId, String className, String tableName,
288                            String columnName, long classPK, int[] data)
289                    throws PortalException, SystemException {
290    
291                    ExpandoTable table = expandoTableLocalService.getTable(
292                            companyId, className, tableName);
293    
294                    ExpandoColumn column = expandoColumnLocalService.getColumn(
295                            table.getTableId(), columnName);
296    
297                    ExpandoValue value = new ExpandoValueImpl();
298    
299                    value.setCompanyId(table.getCompanyId());
300                    value.setColumnId(column.getColumnId());
301                    value.setIntegerArray(data);
302    
303                    return addValue(
304                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
305                            classPK, value.getData());
306            }
307    
308            public ExpandoValue addValue(
309                            long companyId, String className, String tableName,
310                            String columnName, long classPK, long data)
311                    throws PortalException, SystemException {
312    
313                    ExpandoTable table = expandoTableLocalService.getTable(
314                            companyId, className, tableName);
315    
316                    ExpandoColumn column = expandoColumnLocalService.getColumn(
317                            table.getTableId(), columnName);
318    
319                    ExpandoValue value = new ExpandoValueImpl();
320    
321                    value.setCompanyId(table.getCompanyId());
322                    value.setColumnId(column.getColumnId());
323                    value.setLong(data);
324    
325                    return addValue(
326                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
327                            classPK, value.getData());
328            }
329    
330            public ExpandoValue addValue(
331                            long companyId, String className, String tableName,
332                            String columnName, long classPK, long[] data)
333                    throws PortalException, SystemException {
334    
335                    ExpandoTable table = expandoTableLocalService.getTable(
336                            companyId, className, tableName);
337    
338                    ExpandoColumn column = expandoColumnLocalService.getColumn(
339                            table.getTableId(), columnName);
340    
341                    ExpandoValue value = new ExpandoValueImpl();
342    
343                    value.setCompanyId(table.getCompanyId());
344                    value.setColumnId(column.getColumnId());
345                    value.setLongArray(data);
346    
347                    return addValue(
348                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
349                            classPK, value.getData());
350            }
351    
352            public ExpandoValue addValue(
353                            long companyId, String className, String tableName,
354                            String columnName, long classPK, Object data)
355                    throws PortalException, SystemException {
356    
357                    ExpandoColumn column = expandoColumnLocalService.getColumn(
358                            companyId, className, tableName, columnName);
359    
360                    int type = column.getType();
361    
362                    if (type == ExpandoColumnConstants.BOOLEAN) {
363                            return addValue(
364                                    companyId, className, tableName, columnName, classPK,
365                                    ((Boolean)data).booleanValue());
366                    }
367                    else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
368                            return addValue(
369                                    companyId, className, tableName, columnName, classPK,
370                                    (boolean[])data);
371                    }
372                    else if (type == ExpandoColumnConstants.DATE) {
373                            return addValue(
374                                    companyId, className, tableName, columnName, classPK,
375                                    (Date)data);
376                    }
377                    else if (type == ExpandoColumnConstants.DATE_ARRAY) {
378                            return addValue(
379                                    companyId, className, tableName, columnName, classPK,
380                                    (Date[])data);
381                    }
382                    else if (type == ExpandoColumnConstants.DOUBLE) {
383                            return addValue(
384                                    companyId, className, tableName, columnName, classPK,
385                                    ((Double)data).doubleValue());
386                    }
387                    else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
388                            return addValue(
389                                    companyId, className, tableName, columnName, classPK,
390                                    (double[])data);
391                    }
392                    else if (type == ExpandoColumnConstants.FLOAT) {
393                            return addValue(
394                                    companyId, className, tableName, columnName, classPK,
395                                    ((Float)data).floatValue());
396                    }
397                    else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
398                            return addValue(
399                                    companyId, className, tableName, columnName, classPK,
400                                    (float[])data);
401                    }
402                    else if (type == ExpandoColumnConstants.INTEGER) {
403                            return addValue(
404                                    companyId, className, tableName, columnName, classPK,
405                                    ((Integer)data).intValue());
406                    }
407                    else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
408                            return addValue(
409                                    companyId, className, tableName, columnName, classPK,
410                                    (int[])data);
411                    }
412                    else if (type == ExpandoColumnConstants.LONG) {
413                            return addValue(
414                                    companyId, className, tableName, columnName, classPK,
415                                    ((Long)data).longValue());
416                    }
417                    else if (type == ExpandoColumnConstants.LONG_ARRAY) {
418                            return addValue(
419                                    companyId, className, tableName, columnName, classPK,
420                                    (long[])data);
421                    }
422                    else if (type == ExpandoColumnConstants.SHORT) {
423                            return addValue(
424                                    companyId, className, tableName, columnName, classPK,
425                                    ((Short)data).shortValue());
426                    }
427                    else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
428                            return addValue(
429                                    companyId, className, tableName, columnName, classPK,
430                                    (short[])data);
431                    }
432                    else if (type == ExpandoColumnConstants.STRING_ARRAY) {
433                            return addValue(
434                                    companyId, className, tableName, columnName, classPK,
435                                    (String[])data);
436                    }
437                    else {
438                            return addValue(
439                                    companyId, className, tableName, columnName, classPK,
440                                    (String)data);
441                    }
442            }
443    
444            public ExpandoValue addValue(
445                            long companyId, String className, String tableName,
446                            String columnName, long classPK, short data)
447                    throws PortalException, SystemException {
448    
449                    ExpandoTable table = expandoTableLocalService.getTable(
450                            companyId, className, tableName);
451    
452                    ExpandoColumn column = expandoColumnLocalService.getColumn(
453                            table.getTableId(), columnName);
454    
455                    ExpandoValue value = new ExpandoValueImpl();
456    
457                    value.setCompanyId(table.getCompanyId());
458                    value.setColumnId(column.getColumnId());
459                    value.setShort(data);
460    
461                    return addValue(
462                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
463                            classPK, value.getData());
464            }
465    
466            public ExpandoValue addValue(
467                            long companyId, String className, String tableName,
468                            String columnName, long classPK, short[] data)
469                    throws PortalException, SystemException {
470    
471                    ExpandoTable table = expandoTableLocalService.getTable(
472                            companyId, className, tableName);
473    
474                    ExpandoColumn column = expandoColumnLocalService.getColumn(
475                            table.getTableId(), columnName);
476    
477                    ExpandoValue value = new ExpandoValueImpl();
478    
479                    value.setCompanyId(table.getCompanyId());
480                    value.setColumnId(column.getColumnId());
481                    value.setShortArray(data);
482    
483                    return addValue(
484                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
485                            classPK, value.getData());
486            }
487    
488            public ExpandoValue addValue(
489                            long companyId, String className, String tableName,
490                            String columnName, long classPK, String data)
491                    throws PortalException, SystemException {
492    
493                    ExpandoTable table = expandoTableLocalService.getTable(
494                            companyId, className, tableName);
495    
496                    ExpandoColumn column = expandoColumnLocalService.getColumn(
497                            table.getTableId(), columnName);
498    
499                    ExpandoValue value = new ExpandoValueImpl();
500    
501                    value.setCompanyId(table.getCompanyId());
502                    value.setColumnId(column.getColumnId());
503                    value.setString(data);
504    
505                    return addValue(
506                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
507                            classPK, value.getData());
508            }
509    
510            public ExpandoValue addValue(
511                            long companyId, String className, String tableName,
512                            String columnName, long classPK, String[] data)
513                    throws PortalException, SystemException {
514    
515                    ExpandoTable table = expandoTableLocalService.getTable(
516                            companyId, className, tableName);
517    
518                    ExpandoColumn column = expandoColumnLocalService.getColumn(
519                            table.getTableId(), columnName);
520    
521                    ExpandoValue value = new ExpandoValueImpl();
522    
523                    value.setCompanyId(table.getCompanyId());
524                    value.setColumnId(column.getColumnId());
525                    value.setStringArray(data);
526    
527                    return addValue(
528                            table.getClassNameId(), table.getTableId(), column.getColumnId(),
529                            classPK, value.getData());
530            }
531    
532            /**
533             * @deprecated {@link #addValue(long, String, String, String, long,
534             *                         boolean[])}
535             */
536            public ExpandoValue addValue(
537                            String className, String tableName, String columnName, long classPK,
538                            boolean data)
539                    throws PortalException, SystemException {
540    
541                    long companyId = CompanyThreadLocal.getCompanyId();
542    
543                    return addValue(
544                            companyId, className, tableName, columnName, classPK, data);
545            }
546    
547            /**
548             * @deprecated {@link #addValue(long, String, String, String, long,
549             *                         boolean[])}
550             */
551            public ExpandoValue addValue(
552                            String className, String tableName, String columnName, long classPK,
553                            boolean[] data)
554                    throws PortalException, SystemException {
555    
556                    long companyId = CompanyThreadLocal.getCompanyId();
557    
558                    return addValue(
559                            companyId, className, tableName, columnName, classPK, data);
560            }
561    
562            /**
563             * @deprecated {@link #addValue(long, String, String, String, long, Date[])}
564             */
565            public ExpandoValue addValue(
566                            String className, String tableName, String columnName, long classPK,
567                            Date data)
568                    throws PortalException, SystemException {
569    
570                    long companyId = CompanyThreadLocal.getCompanyId();
571    
572                    return addValue(
573                            companyId, className, tableName, columnName, classPK, data);
574            }
575    
576            /**
577             * @deprecated {@link #addValue(long, String, String, String, long, Date[])}
578             */
579            public ExpandoValue addValue(
580                            String className, String tableName, String columnName, long classPK,
581                            Date[] data)
582                    throws PortalException, SystemException {
583    
584                    long companyId = CompanyThreadLocal.getCompanyId();
585    
586                    return addValue(
587                            companyId, className, tableName, columnName, classPK, data);
588            }
589    
590            /**
591             * @deprecated {@link #addValue(long, String, String, String, long,
592             *                         double[])}
593             */
594            public ExpandoValue addValue(
595                            String className, String tableName, String columnName, long classPK,
596                            double data)
597                    throws PortalException, SystemException {
598    
599                    long companyId = CompanyThreadLocal.getCompanyId();
600    
601                    return addValue(
602                            companyId, className, tableName, columnName, classPK, data);
603            }
604    
605            /**
606             * @deprecated {@link #addValue(long, String, String, String, long,
607             *                         double[])}
608             */
609            public ExpandoValue addValue(
610                            String className, String tableName, String columnName, long classPK,
611                            double[] data)
612                    throws PortalException, SystemException {
613    
614                    long companyId = CompanyThreadLocal.getCompanyId();
615    
616                    return addValue(
617                            companyId, className, tableName, columnName, classPK, data);
618            }
619    
620            /**
621             * @deprecated {@link #addValue(long, String, String, String, long,
622             *                         float[])}
623             */
624            public ExpandoValue addValue(
625                            String className, String tableName, String columnName, long classPK,
626                            float data)
627                    throws PortalException, SystemException {
628    
629                    long companyId = CompanyThreadLocal.getCompanyId();
630    
631                    return addValue(
632                            companyId, className, tableName, columnName, classPK, data);
633            }
634    
635            /**
636             * @deprecated {@link #addValue(long, String, String, String, long,
637             *                         float[])}
638             */
639            public ExpandoValue addValue(
640                            String className, String tableName, String columnName, long classPK,
641                            float[] data)
642                    throws PortalException, SystemException {
643    
644                    long companyId = CompanyThreadLocal.getCompanyId();
645    
646                    return addValue(
647                            companyId, className, tableName, columnName, classPK, data);
648            }
649    
650            /**
651             * @deprecated {@link #addValue(long, String, String, String, long, int[])}
652             */
653            public ExpandoValue addValue(
654                            String className, String tableName, String columnName, long classPK,
655                            int data)
656                    throws PortalException, SystemException {
657    
658                    long companyId = CompanyThreadLocal.getCompanyId();
659    
660                    return addValue(
661                            companyId, className, tableName, columnName, classPK, data);
662            }
663    
664            /**
665             * @deprecated {@link #addValue(long, String, String, String, long, int[])}
666             */
667            public ExpandoValue addValue(
668                            String className, String tableName, String columnName, long classPK,
669                            int[] data)
670                    throws PortalException, SystemException {
671    
672                    long companyId = CompanyThreadLocal.getCompanyId();
673    
674                    return addValue(
675                            companyId, className, tableName, columnName, classPK, data);
676            }
677    
678            /**
679             * @deprecated {@link #addValue(long, String, String, String, long, long[])}
680             */
681            public ExpandoValue addValue(
682                            String className, String tableName, String columnName, long classPK,
683                            long data)
684                    throws PortalException, SystemException {
685    
686                    long companyId = CompanyThreadLocal.getCompanyId();
687    
688                    return addValue(
689                            companyId, className, tableName, columnName, classPK, data);
690            }
691    
692            /**
693             * @deprecated {@link #addValue(long, String, String, String, long, long[])}
694             */
695            public ExpandoValue addValue(
696                            String className, String tableName, String columnName, long classPK,
697                            long[] data)
698                    throws PortalException, SystemException {
699    
700                    long companyId = CompanyThreadLocal.getCompanyId();
701    
702                    return addValue(
703                            companyId, className, tableName, columnName, classPK, data);
704            }
705    
706            /**
707             * @deprecated {@link #addValue(long, String, String, String, long, Object)}
708             */
709            public ExpandoValue addValue(
710                            String className, String tableName, String columnName, long classPK,
711                            Object data)
712                    throws PortalException, SystemException {
713    
714                    long companyId = CompanyThreadLocal.getCompanyId();
715    
716                    return addValue(
717                            companyId, className, tableName, columnName, classPK, data);
718            }
719    
720            /**
721             * @deprecated {@link #addValue(long, String, String, String, long,
722             *                         short[])}
723             */
724            public ExpandoValue addValue(
725                            String className, String tableName, String columnName, long classPK,
726                            short data)
727                    throws PortalException, SystemException {
728    
729                    long companyId = CompanyThreadLocal.getCompanyId();
730    
731                    return addValue(
732                            companyId, className, tableName, columnName, classPK, data);
733            }
734    
735            /**
736             * @deprecated {@link #addValue(long, String, String, String, long,
737             *                         short[])}
738             */
739            public ExpandoValue addValue(
740                            String className, String tableName, String columnName, long classPK,
741                            short[] data)
742                    throws PortalException, SystemException {
743    
744                    long companyId = CompanyThreadLocal.getCompanyId();
745    
746                    return addValue(
747                            companyId, className, tableName, columnName, classPK, data);
748            }
749    
750            /**
751             * @deprecated {@link #addValue(long, String, String, String, long,
752             *                         String[])}
753             */
754            public ExpandoValue addValue(
755                            String className, String tableName, String columnName, long classPK,
756                            String data)
757                    throws PortalException, SystemException {
758    
759                    long companyId = CompanyThreadLocal.getCompanyId();
760    
761                    return addValue(
762                            companyId, className, tableName, columnName, classPK, data);
763            }
764    
765            /**
766             * @deprecated {@link #addValue(long, String, String, String, long,
767             *                         String[])}
768             */
769            public ExpandoValue addValue(
770                            String className, String tableName, String columnName, long classPK,
771                            String[] data)
772                    throws PortalException, SystemException {
773    
774                    long companyId = CompanyThreadLocal.getCompanyId();
775    
776                    return addValue(
777                            companyId, className, tableName, columnName, classPK, data);
778            }
779    
780            public void addValues(
781                            long classNameId, long tableId, List<ExpandoColumn> columns,
782                            long classPK, Map<String, String> data)
783                    throws PortalException, SystemException {
784    
785                    ExpandoTable table = expandoTablePersistence.findByPrimaryKey(tableId);
786    
787                    ExpandoRow row = expandoRowPersistence.fetchByT_C(tableId, classPK);
788    
789                    if (row == null) {
790                            long rowId = counterLocalService.increment();
791    
792                            row = expandoRowPersistence.create(rowId);
793    
794                            row.setCompanyId(table.getCompanyId());
795                            row.setTableId(tableId);
796                            row.setClassPK(classPK);
797    
798                            expandoRowPersistence.update(row, false);
799                    }
800    
801                    for (ExpandoColumn column : columns) {
802                            String dataString = data.get(column.getName());
803    
804                            if (dataString != null) {
805                                    ExpandoValue value = expandoValuePersistence.fetchByC_R(
806                                            column.getColumnId(), row.getRowId());
807    
808                                    if (value == null) {
809                                            long valueId = counterLocalService.increment();
810    
811                                            value = expandoValuePersistence.create(valueId);
812    
813                                            value.setCompanyId(table.getCompanyId());
814                                            value.setTableId(tableId);
815                                            value.setColumnId(column.getColumnId());
816                                            value.setRowId(row.getRowId());
817                                            value.setClassNameId(classNameId);
818                                            value.setClassPK(classPK);
819                                    }
820    
821                                    value.setData(dataString);
822    
823                                    expandoValuePersistence.update(value, false);
824                            }
825                    }
826            }
827    
828            public void deleteColumnValues(long columnId) throws SystemException {
829                    expandoValuePersistence.removeByColumnId(columnId);
830            }
831    
832            public void deleteRowValues(long rowId) throws SystemException {
833                    expandoValuePersistence.removeByRowId(rowId);
834            }
835    
836            public void deleteTableValues(long tableId) throws SystemException {
837                    expandoValuePersistence.removeByTableId(tableId);
838            }
839    
840            public void deleteValue(long valueId)
841                    throws PortalException, SystemException {
842    
843                    expandoValuePersistence.remove(valueId);
844            }
845    
846            public void deleteValue(long columnId, long rowId)
847                    throws PortalException, SystemException {
848    
849                    expandoValuePersistence.removeByC_R(columnId, rowId);
850            }
851    
852            public void deleteValue(
853                            long companyId, long classNameId, String tableName,
854                            String columnName, long classPK)
855                    throws PortalException, SystemException {
856    
857                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
858                            companyId, classNameId, tableName);
859    
860                    if (table == null) {
861                            return;
862                    }
863    
864                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
865                            table.getTableId(), columnName);
866    
867                    if (column == null) {
868                            return;
869                    }
870    
871                    ExpandoValue value = expandoValuePersistence.fetchByT_C_C(
872                            table.getTableId(), column.getColumnId(), classPK);
873    
874                    if (value != null) {
875                            deleteValue(value.getValueId());
876                    }
877            }
878    
879            public void deleteValue(
880                            long companyId, String className, String tableName,
881                            String columnName, long classPK)
882                    throws PortalException, SystemException {
883    
884                    long classNameId = PortalUtil.getClassNameId(className);
885    
886                    deleteValue(companyId, classNameId, tableName, columnName, classPK);
887            }
888    
889            public void deleteValues(long classNameId, long classPK)
890                    throws SystemException {
891    
892                    expandoValuePersistence.removeByC_C(classNameId, classPK);
893            }
894    
895            public void deleteValues(String className, long classPK)
896                    throws SystemException {
897    
898                    long classNameId = PortalUtil.getClassNameId(className);
899    
900                    deleteValues(classNameId, classPK);
901            }
902    
903            public List<ExpandoValue> getColumnValues(long columnId, int start, int end)
904                    throws SystemException {
905    
906                    return expandoValuePersistence.findByColumnId(columnId, start, end);
907            }
908    
909            public List<ExpandoValue> getColumnValues(
910                            long companyId, long classNameId, String tableName,
911                            String columnName, int start, int end)
912                    throws SystemException {
913    
914                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
915                            companyId, classNameId, tableName);
916    
917                    if (table == null) {
918                            return Collections.EMPTY_LIST;
919                    }
920    
921                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
922                            table.getTableId(), columnName);
923    
924                    if (column == null) {
925                            return Collections.EMPTY_LIST;
926                    }
927    
928                    return expandoValuePersistence.findByT_C(
929                            table.getTableId(), column.getColumnId(), start, end);
930            }
931    
932            public List<ExpandoValue> getColumnValues(
933                            long companyId, long classNameId, String tableName,
934                            String columnName, String data, int start, int end)
935                    throws SystemException {
936    
937                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
938                            companyId, classNameId, tableName);
939    
940                    if (table == null) {
941                            return Collections.EMPTY_LIST;
942                    }
943    
944                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
945                            table.getTableId(), columnName);
946    
947                    if (column == null) {
948                            return Collections.EMPTY_LIST;
949                    }
950    
951                    return expandoValuePersistence.findByT_C_D(
952                            table.getTableId(), column.getColumnId(), data, start, end);
953            }
954    
955            public List<ExpandoValue> getColumnValues(
956                            long companyId, String className, String tableName,
957                            String columnName, int start, int end)
958                    throws SystemException {
959    
960                    long classNameId = PortalUtil.getClassNameId(className);
961    
962                    return getColumnValues(
963                            companyId, classNameId, tableName, columnName, start, end);
964            }
965    
966            public List<ExpandoValue> getColumnValues(
967                            String className, String tableName, String columnName, String data,
968                            int start, int end)
969                    throws SystemException {
970    
971                    long classNameId = PortalUtil.getClassNameId(className);
972    
973                    return getColumnValues(
974                            classNameId, tableName, columnName, data, start, end);
975            }
976    
977            public int getColumnValuesCount(long columnId) throws SystemException {
978                    return expandoValuePersistence.countByColumnId(columnId);
979            }
980    
981            public int getColumnValuesCount(
982                            long companyId, long classNameId, String tableName,
983                            String columnName)
984                    throws SystemException {
985    
986                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
987                            companyId, classNameId, tableName);
988    
989                    if (table == null) {
990                            return 0;
991                    }
992    
993                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
994                            table.getTableId(), columnName);
995    
996                    if (column == null) {
997                            return 0;
998                    }
999    
1000                    return expandoValuePersistence.countByT_C(
1001                            table.getTableId(), column.getColumnId());
1002            }
1003    
1004            public int getColumnValuesCount(
1005                            long companyId, long classNameId, String tableName,
1006                            String columnName, String data)
1007                    throws SystemException {
1008    
1009                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1010                            companyId, classNameId, tableName);
1011    
1012                    if (table == null) {
1013                            return 0;
1014                    }
1015    
1016                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
1017                            table.getTableId(), columnName);
1018    
1019                    if (column == null) {
1020                            return 0;
1021                    }
1022    
1023                    return expandoValuePersistence.countByT_C_D(
1024                            table.getTableId(), column.getColumnId(), data);
1025            }
1026    
1027            public int getColumnValuesCount(
1028                            long companyId, String className, String tableName,
1029                            String columnName)
1030                    throws SystemException {
1031    
1032                    long classNameId = PortalUtil.getClassNameId(className);
1033    
1034                    return getColumnValuesCount(
1035                            companyId, classNameId, tableName, columnName);
1036            }
1037    
1038            public int getColumnValuesCount(
1039                            String className, String tableName, String columnName, String data)
1040                    throws SystemException {
1041    
1042                    long classNameId = PortalUtil.getClassNameId(className);
1043    
1044                    return getColumnValuesCount(classNameId, tableName, columnName, data);
1045            }
1046    
1047            public Serializable getData(
1048                            long companyId, String className, String tableName,
1049                            String columnName, long classPK)
1050                    throws PortalException, SystemException {
1051    
1052                    ExpandoColumn column = expandoColumnLocalService.getColumn(
1053                            companyId, className, tableName, columnName);
1054    
1055                    ExpandoValue value = new ExpandoValueImpl();
1056    
1057                    value.setColumnId(column.getColumnId());
1058                    value.setData(column.getDefaultData());
1059    
1060                    int type = column.getType();
1061    
1062                    if (type == ExpandoColumnConstants.BOOLEAN) {
1063                            return getData(
1064                                    companyId, className, tableName, columnName, classPK,
1065                                    value.getBoolean());
1066                    }
1067                    else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
1068                            return getData(
1069                                    companyId, className, tableName, columnName, classPK,
1070                                    value.getBooleanArray());
1071                    }
1072                    else if (type == ExpandoColumnConstants.DATE) {
1073                            return getData(
1074                                    companyId, className, tableName, columnName, classPK,
1075                                    value.getDate());
1076                    }
1077                    else if (type == ExpandoColumnConstants.DATE_ARRAY) {
1078                            return getData(
1079                                    companyId, className, tableName, columnName, classPK,
1080                                    value.getDateArray());
1081                    }
1082                    else if (type == ExpandoColumnConstants.DOUBLE) {
1083                            return getData(
1084                                    companyId, className, tableName, columnName, classPK,
1085                                    value.getDouble());
1086                    }
1087                    else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
1088                            return getData(
1089                                    companyId, className, tableName, columnName, classPK,
1090                                    value.getDoubleArray());
1091                    }
1092                    else if (type == ExpandoColumnConstants.FLOAT) {
1093                            return getData(
1094                                    companyId, className, tableName, columnName, classPK,
1095                                    value.getFloat());
1096                    }
1097                    else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
1098                            return getData(
1099                                    companyId, className, tableName, columnName, classPK,
1100                                    value.getFloatArray());
1101                    }
1102                    else if (type == ExpandoColumnConstants.INTEGER) {
1103                            return getData(
1104                                    companyId, className, tableName, columnName, classPK,
1105                                    value.getInteger());
1106                    }
1107                    else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
1108                            return getData(
1109                                    companyId, className, tableName, columnName, classPK,
1110                                    value.getIntegerArray());
1111                    }
1112                    else if (type == ExpandoColumnConstants.LONG) {
1113                            return getData(
1114                                    companyId, className, tableName, columnName, classPK,
1115                                    value.getLong());
1116                    }
1117                    else if (type == ExpandoColumnConstants.LONG_ARRAY) {
1118                            return getData(
1119                                    companyId, className, tableName, columnName, classPK,
1120                                    value.getLongArray());
1121                    }
1122                    else if (type == ExpandoColumnConstants.SHORT) {
1123                            return getData(
1124                                    companyId, className, tableName, columnName, classPK,
1125                                    value.getShort());
1126                    }
1127                    else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
1128                            return getData(
1129                                    companyId, className, tableName, columnName, classPK,
1130                                    value.getShortArray());
1131                    }
1132                    else if (type == ExpandoColumnConstants.STRING_ARRAY) {
1133                            return getData(
1134                                    companyId, className, tableName, columnName, classPK,
1135                                    value.getStringArray());
1136                    }
1137                    else {
1138                            return getData(
1139                                    companyId, className, tableName, columnName, classPK,
1140                                    value.getString());
1141                    }
1142            }
1143    
1144            public boolean getData(
1145                            long companyId, String className, String tableName,
1146                            String columnName, long classPK, boolean defaultData)
1147                    throws PortalException, SystemException {
1148    
1149                    ExpandoValue value = getValue(
1150                            companyId, className, tableName, columnName, classPK);
1151    
1152                    if (value == null) {
1153                            return defaultData;
1154                    }
1155                    else {
1156                            return value.getBoolean();
1157                    }
1158            }
1159    
1160            public boolean[] getData(
1161                            long companyId, String className, String tableName,
1162                            String columnName, long classPK, boolean[] defaultData)
1163                    throws PortalException, SystemException {
1164    
1165                    ExpandoValue value = getValue(
1166                            companyId, className, tableName, columnName, classPK);
1167    
1168                    if (value == null) {
1169                            return defaultData;
1170                    }
1171                    else {
1172                            return value.getBooleanArray();
1173                    }
1174            }
1175    
1176            public Date getData(
1177                            long companyId, String className, String tableName,
1178                            String columnName, long classPK, Date defaultData)
1179                    throws PortalException, SystemException {
1180    
1181                    ExpandoValue value = getValue(
1182                            companyId, className, tableName, columnName, classPK);
1183    
1184                    if (value == null) {
1185                            return defaultData;
1186                    }
1187                    else {
1188                            return value.getDate();
1189                    }
1190            }
1191    
1192            public Date[] getData(
1193                            long companyId, String className, String tableName,
1194                            String columnName, long classPK, Date[] defaultData)
1195                    throws PortalException, SystemException {
1196    
1197                    ExpandoValue value = getValue(
1198                            companyId, className, tableName, columnName, classPK);
1199    
1200                    if (value == null) {
1201                            return defaultData;
1202                    }
1203                    else {
1204                            return value.getDateArray();
1205                    }
1206            }
1207    
1208            public double getData(
1209                            long companyId, String className, String tableName,
1210                            String columnName, long classPK, double defaultData)
1211                    throws PortalException, SystemException {
1212    
1213                    ExpandoValue value = getValue(
1214                            companyId, className, tableName, columnName, classPK);
1215    
1216                    if (value == null) {
1217                            return defaultData;
1218                    }
1219                    else {
1220                            return value.getDouble();
1221                    }
1222            }
1223    
1224            public double[] getData(
1225                            long companyId, String className, String tableName,
1226                            String columnName, long classPK, double[] defaultData)
1227                    throws PortalException, SystemException {
1228    
1229                    ExpandoValue value = getValue(
1230                            companyId, className, tableName, columnName, classPK);
1231    
1232                    if (value == null) {
1233                            return defaultData;
1234                    }
1235                    else {
1236                            return value.getDoubleArray();
1237                    }
1238            }
1239    
1240            public float getData(
1241                            long companyId, String className, String tableName,
1242                            String columnName, long classPK, float defaultData)
1243                    throws PortalException, SystemException {
1244    
1245                    ExpandoValue value = getValue(
1246                            companyId, className, tableName, columnName, classPK);
1247    
1248                    if (value == null) {
1249                            return defaultData;
1250                    }
1251                    else {
1252                            return value.getFloat();
1253                    }
1254            }
1255    
1256            public float[] getData(
1257                            long companyId, String className, String tableName,
1258                            String columnName, long classPK, float[] defaultData)
1259                    throws PortalException, SystemException {
1260    
1261                    ExpandoValue value = getValue(
1262                            companyId, className, tableName, columnName, classPK);
1263    
1264                    if (value == null) {
1265                            return defaultData;
1266                    }
1267                    else {
1268                            return value.getFloatArray();
1269                    }
1270            }
1271    
1272            public int getData(
1273                            long companyId, String className, String tableName,
1274                            String columnName, long classPK, int defaultData)
1275                    throws PortalException, SystemException {
1276    
1277                    ExpandoValue value = getValue(
1278                            companyId, className, tableName, columnName, classPK);
1279    
1280                    if (value == null) {
1281                            return defaultData;
1282                    }
1283                    else {
1284                            return value.getInteger();
1285                    }
1286            }
1287    
1288            public int[] getData(
1289                            long companyId, String className, String tableName,
1290                            String columnName, long classPK, int[] defaultData)
1291                    throws PortalException, SystemException {
1292    
1293                    ExpandoValue value = getValue(
1294                            companyId, className, tableName, columnName, classPK);
1295    
1296                    if (value == null) {
1297                            return defaultData;
1298                    }
1299                    else {
1300                            return value.getIntegerArray();
1301                    }
1302            }
1303    
1304            public long getData(
1305                            long companyId, String className, String tableName,
1306                            String columnName, long classPK, long defaultData)
1307                    throws PortalException, SystemException {
1308    
1309                    ExpandoValue value = getValue(
1310                            companyId, className, tableName, columnName, classPK);
1311    
1312                    if (value == null) {
1313                            return defaultData;
1314                    }
1315                    else {
1316                            return value.getLong();
1317                    }
1318            }
1319    
1320            public long[] getData(
1321                            long companyId, String className, String tableName,
1322                            String columnName, long classPK, long[] defaultData)
1323                    throws PortalException, SystemException {
1324    
1325                    ExpandoValue value = getValue(
1326                            companyId, className, tableName, columnName, classPK);
1327    
1328                    if (value == null) {
1329                            return defaultData;
1330                    }
1331                    else {
1332                            return value.getLongArray();
1333                    }
1334            }
1335    
1336            public short getData(
1337                            long companyId, String className, String tableName,
1338                            String columnName, long classPK, short defaultData)
1339                    throws PortalException, SystemException {
1340    
1341                    ExpandoValue value = getValue(
1342                            companyId, className, tableName, columnName, classPK);
1343    
1344                    if (value == null) {
1345                            return defaultData;
1346                    }
1347                    else {
1348                            return value.getShort();
1349                    }
1350            }
1351    
1352            public short[] getData(
1353                            long companyId, String className, String tableName,
1354                            String columnName, long classPK, short[] defaultData)
1355                    throws PortalException, SystemException {
1356    
1357                    ExpandoValue value = getValue(
1358                            companyId, className, tableName, columnName, classPK);
1359    
1360                    if (value == null) {
1361                            return defaultData;
1362                    }
1363                    else {
1364                            return value.getShortArray();
1365                    }
1366            }
1367    
1368            public String getData(
1369                            long companyId, String className, String tableName,
1370                            String columnName, long classPK, String defaultData)
1371                    throws PortalException, SystemException {
1372    
1373                    ExpandoValue value = getValue(
1374                            companyId, className, tableName, columnName, classPK);
1375    
1376                    if (value == null) {
1377                            return defaultData;
1378                    }
1379                    else {
1380                            return value.getString();
1381                    }
1382            }
1383    
1384            public String[] getData(
1385                            long companyId, String className, String tableName,
1386                            String columnName, long classPK, String[] defaultData)
1387                    throws PortalException, SystemException {
1388    
1389                    ExpandoValue value = getValue(
1390                            companyId, className, tableName, columnName, classPK);
1391    
1392                    if (value == null) {
1393                            return defaultData;
1394                    }
1395                    else {
1396                            return value.getStringArray();
1397                    }
1398            }
1399    
1400            /**
1401             * @deprecated {@link #getData(long, String, String, String, long)}
1402             */
1403            public Serializable getData(
1404                            String className, String tableName, String columnName, long classPK)
1405                    throws PortalException, SystemException {
1406    
1407                    long companyId = CompanyThreadLocal.getCompanyId();
1408    
1409                    return getData(companyId, className, tableName, columnName, classPK);
1410            }
1411    
1412            /**
1413             * @deprecated {@link #getData(long, String, String, String, long,
1414             *                         boolean[])}
1415             */
1416            public boolean getData(
1417                            String className, String tableName, String columnName, long classPK,
1418                            boolean defaultData)
1419                    throws PortalException, SystemException {
1420    
1421                    long companyId = CompanyThreadLocal.getCompanyId();
1422    
1423                    return getData(
1424                            companyId, className, tableName, columnName, classPK, defaultData);
1425            }
1426    
1427            /**
1428             * @deprecated {@link #getData(long, String, String, String, long,
1429             *                         boolean[])}
1430             */
1431            public boolean[] getData(
1432                            String className, String tableName, String columnName, long classPK,
1433                            boolean[] defaultData)
1434                    throws PortalException, SystemException {
1435    
1436                    long companyId = CompanyThreadLocal.getCompanyId();
1437    
1438                    return getData(
1439                            companyId, className, tableName, columnName, classPK, defaultData);
1440            }
1441    
1442            /**
1443             * @deprecated {@link #getData(long, String, String, String, long, Date[])}
1444             */
1445            public Date getData(
1446                            String className, String tableName, String columnName, long classPK,
1447                            Date defaultData)
1448                    throws PortalException, SystemException {
1449    
1450                    long companyId = CompanyThreadLocal.getCompanyId();
1451    
1452                    return getData(
1453                            companyId, className, tableName, columnName, classPK, defaultData);
1454            }
1455    
1456            /**
1457             * @deprecated {@link #getData(long, String, String, String, long, Date[])}
1458             */
1459            public Date[] getData(
1460                            String className, String tableName, String columnName, long classPK,
1461                            Date[] defaultData)
1462                    throws PortalException, SystemException {
1463    
1464                    long companyId = CompanyThreadLocal.getCompanyId();
1465    
1466                    return getData(
1467                            companyId, className, tableName, columnName, classPK, defaultData);
1468            }
1469    
1470            /**
1471             * @deprecated {@link #getData(long, String, String, String, long,
1472             *                         double[])}
1473             */
1474            public double getData(
1475                            String className, String tableName, String columnName, long classPK,
1476                            double defaultData)
1477                    throws PortalException, SystemException {
1478    
1479                    long companyId = CompanyThreadLocal.getCompanyId();
1480    
1481                    return getData(
1482                            companyId, className, tableName, columnName, classPK, defaultData);
1483            }
1484    
1485            /**
1486             * @deprecated {@link #getData(long, String, String, String, long,
1487             *                         double[])}
1488             */
1489            public double[] getData(
1490                            String className, String tableName, String columnName, long classPK,
1491                            double[] defaultData)
1492                    throws PortalException, SystemException {
1493    
1494                    long companyId = CompanyThreadLocal.getCompanyId();
1495    
1496                    return getData(
1497                            companyId, className, tableName, columnName, classPK, defaultData);
1498            }
1499    
1500            /**
1501             * @deprecated {@link #getData(long, String, String, String, long, float[])}
1502             */
1503            public float getData(
1504                            String className, String tableName, String columnName, long classPK,
1505                            float defaultData)
1506                    throws PortalException, SystemException {
1507    
1508                    long companyId = CompanyThreadLocal.getCompanyId();
1509    
1510                    return getData(
1511                            companyId, className, tableName, columnName, classPK, defaultData);
1512            }
1513    
1514            /**
1515             * @deprecated {@link #getData(long, String, String, String, long, float[])}
1516             */
1517            public float[] getData(
1518                            String className, String tableName, String columnName, long classPK,
1519                            float[] defaultData)
1520                    throws PortalException, SystemException {
1521    
1522                    long companyId = CompanyThreadLocal.getCompanyId();
1523    
1524                    return getData(
1525                            companyId, className, tableName, columnName, classPK, defaultData);
1526            }
1527    
1528            /**
1529             * @deprecated {@link #getData(long, String, String, String, long, int[])}
1530             */
1531            public int getData(
1532                            String className, String tableName, String columnName, long classPK,
1533                            int defaultData)
1534                    throws PortalException, SystemException {
1535    
1536                    long companyId = CompanyThreadLocal.getCompanyId();
1537    
1538                    return getData(
1539                            companyId, className, tableName, columnName, classPK, defaultData);
1540            }
1541    
1542            /**
1543             * @deprecated {@link #getData(long, String, String, String, long, int[])}
1544             */
1545            public int[] getData(
1546                            String className, String tableName, String columnName, long classPK,
1547                            int[] defaultData)
1548                    throws PortalException, SystemException {
1549    
1550                    long companyId = CompanyThreadLocal.getCompanyId();
1551    
1552                    return getData(
1553                            companyId, className, tableName, columnName, classPK, defaultData);
1554            }
1555    
1556            /**
1557             * @deprecated {@link #getData(long, String, String, String, long, long[])}
1558             */
1559            public long getData(
1560                            String className, String tableName, String columnName, long classPK,
1561                            long defaultData)
1562                    throws PortalException, SystemException {
1563    
1564                    long companyId = CompanyThreadLocal.getCompanyId();
1565    
1566                    return getData(
1567                            companyId, className, tableName, columnName, classPK, defaultData);
1568            }
1569    
1570            /**
1571             * @deprecated {@link #getData(long, String, String, String, long, long[])}
1572             */
1573            public long[] getData(
1574                            String className, String tableName, String columnName, long classPK,
1575                            long[] defaultData)
1576                    throws PortalException, SystemException {
1577    
1578                    long companyId = CompanyThreadLocal.getCompanyId();
1579    
1580                    return getData(
1581                            companyId, className, tableName, columnName, classPK, defaultData);
1582            }
1583    
1584            /**
1585             * @deprecated {@link #getData(long, String, String, String, long, short[])}
1586             */
1587            public short getData(
1588                            String className, String tableName, String columnName, long classPK,
1589                            short defaultData)
1590                    throws PortalException, SystemException {
1591    
1592                    long companyId = CompanyThreadLocal.getCompanyId();
1593    
1594                    return getData(
1595                            companyId, className, tableName, columnName, classPK, defaultData);
1596            }
1597    
1598            /**
1599             * @deprecated {@link #getData(long, String, String, String, long, short[])}
1600             */
1601            public short[] getData(
1602                            String className, String tableName, String columnName, long classPK,
1603                            short[] defaultData)
1604                    throws PortalException, SystemException {
1605    
1606                    long companyId = CompanyThreadLocal.getCompanyId();
1607    
1608                    return getData(
1609                            companyId, className, tableName, columnName, classPK, defaultData);
1610            }
1611    
1612            /**
1613             * @deprecated {@link #getData(long, String, String, String, long,
1614             *                         String[])}
1615             */
1616            public String getData(
1617                            String className, String tableName, String columnName, long classPK,
1618                            String defaultData)
1619                    throws PortalException, SystemException {
1620    
1621                    long companyId = CompanyThreadLocal.getCompanyId();
1622    
1623                    return getData(
1624                            companyId, className, tableName, columnName, classPK, defaultData);
1625            }
1626    
1627            /**
1628             * @deprecated {@link #getData(long, String, String, String, long,
1629             *                         String[])}
1630             */
1631            public String[] getData(
1632                            String className, String tableName, String columnName, long classPK,
1633                            String[] defaultData)
1634                    throws PortalException, SystemException {
1635    
1636                    long companyId = CompanyThreadLocal.getCompanyId();
1637    
1638                    return getData(
1639                            companyId, className, tableName, columnName, classPK, defaultData);
1640            }
1641    
1642            public List<ExpandoValue> getDefaultTableColumnValues(
1643                            long companyId, long classNameId, String columnName, int start,
1644                            int end)
1645                    throws SystemException {
1646    
1647                    return getColumnValues(
1648                            companyId, classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME,
1649                            columnName, start, end);
1650            }
1651    
1652            public List<ExpandoValue> getDefaultTableColumnValues(
1653                            long companyId, String className, String columnName, int start,
1654                            int end)
1655                    throws SystemException {
1656    
1657                    long classNameId = PortalUtil.getClassNameId(className);
1658    
1659                    return getDefaultTableColumnValues(
1660                            companyId, classNameId, columnName, start, end);
1661            }
1662    
1663            public int getDefaultTableColumnValuesCount(
1664                            long companyId, long classNameId, String columnName)
1665                    throws SystemException {
1666    
1667                    return getColumnValuesCount(
1668                            companyId, classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME,
1669                            columnName);
1670            }
1671    
1672            public int getDefaultTableColumnValuesCount(
1673                            long companyId, String className, String columnName)
1674                    throws SystemException {
1675    
1676                    long classNameId = PortalUtil.getClassNameId(className);
1677    
1678                    return getDefaultTableColumnValuesCount(
1679                            companyId, classNameId, columnName);
1680            }
1681    
1682            public List<ExpandoValue> getRowValues(long rowId) throws SystemException {
1683                    return expandoValuePersistence.findByRowId(rowId);
1684            }
1685    
1686            public List<ExpandoValue> getRowValues(long rowId, int start, int end)
1687                    throws SystemException {
1688    
1689                    return expandoValuePersistence.findByRowId(rowId, start, end);
1690            }
1691    
1692            public List<ExpandoValue> getRowValues(
1693                            long companyId, long classNameId, String tableName, long classPK,
1694                            int start, int end)
1695                    throws SystemException {
1696    
1697                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1698                            companyId, classNameId, tableName);
1699    
1700                    if (table == null) {
1701                            return Collections.EMPTY_LIST;
1702                    }
1703    
1704                    return expandoValuePersistence.findByT_CPK(
1705                            table.getTableId(), classPK, start, end);
1706            }
1707    
1708            public List<ExpandoValue> getRowValues(
1709                            long companyId, String className, String tableName, long classPK,
1710                            int start, int end)
1711                    throws SystemException {
1712    
1713                    long classNameId = PortalUtil.getClassNameId(className);
1714    
1715                    return getRowValues(
1716                            companyId, classNameId, tableName, classPK, start, end);
1717            }
1718    
1719            public int getRowValuesCount(long rowId) throws SystemException {
1720                    return expandoValuePersistence.countByRowId(rowId);
1721            }
1722    
1723            public int getRowValuesCount(
1724                            long companyId, long classNameId, String tableName, long classPK)
1725                    throws SystemException {
1726    
1727                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1728                            companyId, classNameId, tableName);
1729    
1730                    if (table == null) {
1731                            return 0;
1732                    }
1733    
1734                    return expandoValuePersistence.countByT_CPK(
1735                            table.getTableId(), classPK);
1736            }
1737    
1738            public int getRowValuesCount(
1739                            long companyId, String className, String tableName, long classPK)
1740                    throws SystemException {
1741    
1742                    long classNameId = PortalUtil.getClassNameId(className);
1743    
1744                    return getRowValuesCount(companyId, classNameId, tableName, classPK);
1745            }
1746    
1747            public ExpandoValue getValue(long valueId)
1748                    throws PortalException, SystemException {
1749    
1750                    return expandoValuePersistence.findByPrimaryKey(valueId);
1751            }
1752    
1753            public ExpandoValue getValue(long columnId, long rowId)
1754                    throws PortalException, SystemException {
1755    
1756                    return expandoValuePersistence.findByC_R(columnId, rowId);
1757            }
1758    
1759            public ExpandoValue getValue(long tableId, long columnId, long classPK)
1760                    throws SystemException {
1761    
1762                    return expandoValuePersistence.fetchByT_C_C(
1763                            tableId, columnId, classPK);
1764            }
1765    
1766            public ExpandoValue getValue(
1767                            long companyId, long classNameId, String tableName,
1768                            String columnName, long classPK)
1769                    throws SystemException {
1770    
1771                    ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1772                            companyId, classNameId, tableName);
1773    
1774                    if (table == null) {
1775                            return null;
1776                    }
1777    
1778                    ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
1779                            table.getTableId(), columnName);
1780    
1781                    if (column == null) {
1782                            return null;
1783                    }
1784    
1785                    return expandoValuePersistence.fetchByT_C_C(
1786                            table.getTableId(), column.getColumnId(), classPK);
1787            }
1788    
1789            /**
1790             * @deprecated {@link getValue(long, long, String, String, long)}
1791             */
1792            public ExpandoValue getValue(
1793                            long classNameId, String tableName, String columnName, long classPK)
1794                    throws SystemException {
1795    
1796                    long companyId = CompanyThreadLocal.getCompanyId();
1797    
1798                    return getValue(companyId, classNameId, tableName, columnName, classPK);
1799            }
1800    
1801            public ExpandoValue getValue(
1802                            long companyId, String className, String tableName,
1803                            String columnName, long classPK)
1804                    throws SystemException {
1805    
1806                    long classNameId = PortalUtil.getClassNameId(className);
1807    
1808                    return getValue(companyId, classNameId, tableName, columnName, classPK);
1809            }
1810    
1811            /**
1812             * @deprecated {@link getValue(long, String, String, String, long)}
1813             */
1814            public ExpandoValue getValue(
1815                            String className, String tableName, String columnName, long classPK)
1816                    throws SystemException {
1817    
1818                    long companyId = CompanyThreadLocal.getCompanyId();
1819    
1820                    return getValue(companyId, className, tableName, columnName, classPK);
1821            }
1822    
1823    }