1
14
15 package com.liferay.portlet.expando.service.impl;
16
17 import com.liferay.portal.PortalException;
18 import com.liferay.portal.SystemException;
19 import com.liferay.portal.security.auth.CompanyThreadLocal;
20 import com.liferay.portal.util.PortalUtil;
21 import com.liferay.portlet.expando.model.ExpandoColumn;
22 import com.liferay.portlet.expando.model.ExpandoColumnConstants;
23 import com.liferay.portlet.expando.model.ExpandoRow;
24 import com.liferay.portlet.expando.model.ExpandoTable;
25 import com.liferay.portlet.expando.model.ExpandoTableConstants;
26 import com.liferay.portlet.expando.model.ExpandoValue;
27 import com.liferay.portlet.expando.model.impl.ExpandoValueImpl;
28 import com.liferay.portlet.expando.service.base.ExpandoValueLocalServiceBaseImpl;
29
30 import java.io.Serializable;
31
32 import java.util.Collections;
33 import java.util.Date;
34 import java.util.List;
35 import java.util.Map;
36
37
44 public class ExpandoValueLocalServiceImpl
45 extends ExpandoValueLocalServiceBaseImpl {
46
47 public ExpandoValue addValue(
48 long classNameId, long tableId, long columnId, long classPK,
49 String data)
50 throws SystemException {
51
52 long companyId = CompanyThreadLocal.getCompanyId();
53
54 ExpandoRow row = expandoRowPersistence.fetchByT_C(tableId, classPK);
55
56 if (row == null) {
57 long rowId = counterLocalService.increment();
58
59 row = expandoRowPersistence.create(rowId);
60
61 row.setCompanyId(companyId);
62 row.setTableId(tableId);
63 row.setClassPK(classPK);
64
65 expandoRowPersistence.update(row, false);
66 }
67
68 ExpandoValue value = expandoValuePersistence.fetchByC_R(
69 columnId, row.getRowId());
70
71 if (value == null) {
72 long valueId = counterLocalService.increment();
73
74 value = expandoValuePersistence.create(valueId);
75
76 value.setCompanyId(companyId);
77 value.setTableId(tableId);
78 value.setColumnId(columnId);
79 value.setRowId(row.getRowId());
80 value.setClassNameId(classNameId);
81 value.setClassPK(classPK);
82 }
83
84 value.setData(data);
85
86 expandoValuePersistence.update(value, false);
87
88 return value;
89 }
90
91 public ExpandoValue addValue(
92 String className, String tableName, String columnName, long classPK,
93 boolean data)
94 throws PortalException, SystemException {
95
96 ExpandoTable table = expandoTableLocalService.getTable(
97 className, tableName);
98
99 ExpandoColumn column = expandoColumnLocalService.getColumn(
100 table.getTableId(), columnName);
101
102 ExpandoValue value = new ExpandoValueImpl();
103
104 value.setCompanyId(table.getCompanyId());
105 value.setColumnId(column.getColumnId());
106 value.setBoolean(data);
107
108 return addValue(
109 table.getClassNameId(), table.getTableId(), column.getColumnId(),
110 classPK, value.getData());
111 }
112
113 public ExpandoValue addValue(
114 String className, String tableName, String columnName, long classPK,
115 boolean[] data)
116 throws PortalException, SystemException {
117
118 ExpandoTable table = expandoTableLocalService.getTable(
119 className, tableName);
120
121 ExpandoColumn column = expandoColumnLocalService.getColumn(
122 table.getTableId(), columnName);
123
124 ExpandoValue value = new ExpandoValueImpl();
125
126 value.setCompanyId(table.getCompanyId());
127 value.setColumnId(column.getColumnId());
128 value.setBooleanArray(data);
129
130 return addValue(
131 table.getClassNameId(), table.getTableId(), column.getColumnId(),
132 classPK, value.getData());
133 }
134
135 public ExpandoValue addValue(
136 String className, String tableName, String columnName, long classPK,
137 Date data)
138 throws PortalException, SystemException {
139
140 ExpandoTable table = expandoTableLocalService.getTable(
141 className, tableName);
142
143 ExpandoColumn column = expandoColumnLocalService.getColumn(
144 table.getTableId(), columnName);
145
146 ExpandoValue value = new ExpandoValueImpl();
147
148 value.setCompanyId(table.getCompanyId());
149 value.setColumnId(column.getColumnId());
150 value.setDate(data);
151
152 return addValue(
153 table.getClassNameId(), table.getTableId(), column.getColumnId(),
154 classPK, value.getData());
155 }
156
157 public ExpandoValue addValue(
158 String className, String tableName, String columnName, long classPK,
159 Date[] data)
160 throws PortalException, SystemException {
161
162 ExpandoTable table = expandoTableLocalService.getTable(
163 className, tableName);
164
165 ExpandoColumn column = expandoColumnLocalService.getColumn(
166 table.getTableId(), columnName);
167
168 ExpandoValue value = new ExpandoValueImpl();
169
170 value.setCompanyId(table.getCompanyId());
171 value.setColumnId(column.getColumnId());
172 value.setDateArray(data);
173
174 return addValue(
175 table.getClassNameId(), table.getTableId(), column.getColumnId(),
176 classPK, value.getData());
177 }
178
179 public ExpandoValue addValue(
180 String className, String tableName, String columnName, long classPK,
181 double data)
182 throws PortalException, SystemException {
183
184 ExpandoTable table = expandoTableLocalService.getTable(
185 className, tableName);
186
187 ExpandoColumn column = expandoColumnLocalService.getColumn(
188 table.getTableId(), columnName);
189
190 ExpandoValue value = new ExpandoValueImpl();
191
192 value.setCompanyId(table.getCompanyId());
193 value.setColumnId(column.getColumnId());
194 value.setDouble(data);
195
196 return addValue(
197 table.getClassNameId(), table.getTableId(), column.getColumnId(),
198 classPK, value.getData());
199 }
200
201 public ExpandoValue addValue(
202 String className, String tableName, String columnName, long classPK,
203 double[] data)
204 throws PortalException, SystemException {
205
206 ExpandoTable table = expandoTableLocalService.getTable(
207 className, tableName);
208
209 ExpandoColumn column = expandoColumnLocalService.getColumn(
210 table.getTableId(), columnName);
211
212 ExpandoValue value = new ExpandoValueImpl();
213
214 value.setCompanyId(table.getCompanyId());
215 value.setColumnId(column.getColumnId());
216 value.setDoubleArray(data);
217
218 return addValue(
219 table.getClassNameId(), table.getTableId(), column.getColumnId(),
220 classPK, value.getData());
221 }
222
223 public ExpandoValue addValue(
224 String className, String tableName, String columnName, long classPK,
225 float data)
226 throws PortalException, SystemException {
227
228 ExpandoTable table = expandoTableLocalService.getTable(
229 className, tableName);
230
231 ExpandoColumn column = expandoColumnLocalService.getColumn(
232 table.getTableId(), columnName);
233
234 ExpandoValue value = new ExpandoValueImpl();
235
236 value.setCompanyId(table.getCompanyId());
237 value.setColumnId(column.getColumnId());
238 value.setFloat(data);
239
240 return addValue(
241 table.getClassNameId(), table.getTableId(), column.getColumnId(),
242 classPK, value.getData());
243 }
244
245 public ExpandoValue addValue(
246 String className, String tableName, String columnName, long classPK,
247 float[] data)
248 throws PortalException, SystemException {
249
250 ExpandoTable table = expandoTableLocalService.getTable(
251 className, tableName);
252
253 ExpandoColumn column = expandoColumnLocalService.getColumn(
254 table.getTableId(), columnName);
255
256 ExpandoValue value = new ExpandoValueImpl();
257
258 value.setCompanyId(table.getCompanyId());
259 value.setColumnId(column.getColumnId());
260 value.setFloatArray(data);
261
262 return addValue(
263 table.getClassNameId(), table.getTableId(), column.getColumnId(),
264 classPK, value.getData());
265 }
266
267 public ExpandoValue addValue(
268 String className, String tableName, String columnName, long classPK,
269 int data)
270 throws PortalException, SystemException {
271
272 ExpandoTable table = expandoTableLocalService.getTable(
273 className, tableName);
274
275 ExpandoColumn column = expandoColumnLocalService.getColumn(
276 table.getTableId(), columnName);
277
278 ExpandoValue value = new ExpandoValueImpl();
279
280 value.setCompanyId(table.getCompanyId());
281 value.setColumnId(column.getColumnId());
282 value.setInteger(data);
283
284 return addValue(
285 table.getClassNameId(), table.getTableId(), column.getColumnId(),
286 classPK, value.getData());
287 }
288
289 public ExpandoValue addValue(
290 String className, String tableName, String columnName, long classPK,
291 int[] data)
292 throws PortalException, SystemException {
293
294 ExpandoTable table = expandoTableLocalService.getTable(
295 className, tableName);
296
297 ExpandoColumn column = expandoColumnLocalService.getColumn(
298 table.getTableId(), columnName);
299
300 ExpandoValue value = new ExpandoValueImpl();
301
302 value.setCompanyId(table.getCompanyId());
303 value.setColumnId(column.getColumnId());
304 value.setIntegerArray(data);
305
306 return addValue(
307 table.getClassNameId(), table.getTableId(), column.getColumnId(),
308 classPK, value.getData());
309 }
310
311 public ExpandoValue addValue(
312 String className, String tableName, String columnName, long classPK,
313 long data)
314 throws PortalException, SystemException {
315
316 ExpandoTable table = expandoTableLocalService.getTable(
317 className, tableName);
318
319 ExpandoColumn column = expandoColumnLocalService.getColumn(
320 table.getTableId(), columnName);
321
322 ExpandoValue value = new ExpandoValueImpl();
323
324 value.setCompanyId(table.getCompanyId());
325 value.setColumnId(column.getColumnId());
326 value.setLong(data);
327
328 return addValue(
329 table.getClassNameId(), table.getTableId(), column.getColumnId(),
330 classPK, value.getData());
331 }
332
333 public ExpandoValue addValue(
334 String className, String tableName, String columnName, long classPK,
335 long[] data)
336 throws PortalException, SystemException {
337
338 ExpandoTable table = expandoTableLocalService.getTable(
339 className, tableName);
340
341 ExpandoColumn column = expandoColumnLocalService.getColumn(
342 table.getTableId(), columnName);
343
344 ExpandoValue value = new ExpandoValueImpl();
345
346 value.setCompanyId(table.getCompanyId());
347 value.setColumnId(column.getColumnId());
348 value.setLongArray(data);
349
350 return addValue(
351 table.getClassNameId(), table.getTableId(), column.getColumnId(),
352 classPK, value.getData());
353 }
354
355 public ExpandoValue addValue(
356 String className, String tableName, String columnName, long classPK,
357 Object data)
358 throws PortalException, SystemException {
359
360 ExpandoColumn column = expandoColumnLocalService.getColumn(
361 className, tableName, columnName);
362
363 int type = column.getType();
364
365 if (type == ExpandoColumnConstants.BOOLEAN) {
366 return addValue(
367 className, tableName, columnName, classPK,
368 ((Boolean)data).booleanValue());
369 }
370 else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
371 return addValue(
372 className, tableName, columnName, classPK, (boolean[])data);
373 }
374 else if (type == ExpandoColumnConstants.DATE) {
375 return addValue(
376 className, tableName, columnName, classPK, (Date)data);
377 }
378 else if (type == ExpandoColumnConstants.DATE_ARRAY) {
379 return addValue(
380 className, tableName, columnName, classPK, (Date[])data);
381 }
382 else if (type == ExpandoColumnConstants.DOUBLE) {
383 return addValue(
384 className, tableName, columnName, classPK,
385 ((Double)data).doubleValue());
386 }
387 else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
388 return addValue(
389 className, tableName, columnName, classPK, (double[])data);
390 }
391 else if (type == ExpandoColumnConstants.FLOAT) {
392 return addValue(
393 className, tableName, columnName, classPK,
394 ((Float)data).floatValue());
395 }
396 else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
397 return addValue(
398 className, tableName, columnName, classPK, (float[])data);
399 }
400 else if (type == ExpandoColumnConstants.INTEGER) {
401 return addValue(
402 className, tableName, columnName, classPK,
403 ((Integer)data).intValue());
404 }
405 else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
406 return addValue(
407 className, tableName, columnName, classPK, (int[])data);
408 }
409 else if (type == ExpandoColumnConstants.LONG) {
410 return addValue(
411 className, tableName, columnName, classPK,
412 ((Long)data).longValue());
413 }
414 else if (type == ExpandoColumnConstants.LONG_ARRAY) {
415 return addValue(
416 className, tableName, columnName, classPK, (long[])data);
417 }
418 else if (type == ExpandoColumnConstants.SHORT) {
419 return addValue(
420 className, tableName, columnName, classPK,
421 ((Short)data).shortValue());
422 }
423 else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
424 return addValue(
425 className, tableName, columnName, classPK, (short[])data);
426 }
427 else if (type == ExpandoColumnConstants.STRING_ARRAY) {
428 return addValue(
429 className, tableName, columnName, classPK, (String[])data);
430 }
431 else {
432 return addValue(
433 className, tableName, columnName, classPK, (String)data);
434 }
435 }
436
437 public ExpandoValue addValue(
438 String className, String tableName, String columnName, long classPK,
439 short data)
440 throws PortalException, SystemException {
441
442 ExpandoTable table = expandoTableLocalService.getTable(
443 className, tableName);
444
445 ExpandoColumn column = expandoColumnLocalService.getColumn(
446 table.getTableId(), columnName);
447
448 ExpandoValue value = new ExpandoValueImpl();
449
450 value.setCompanyId(table.getCompanyId());
451 value.setColumnId(column.getColumnId());
452 value.setShort(data);
453
454 return addValue(
455 table.getClassNameId(), table.getTableId(), column.getColumnId(),
456 classPK, value.getData());
457 }
458
459 public ExpandoValue addValue(
460 String className, String tableName, String columnName, long classPK,
461 short[] data)
462 throws PortalException, SystemException {
463
464 ExpandoTable table = expandoTableLocalService.getTable(
465 className, tableName);
466
467 ExpandoColumn column = expandoColumnLocalService.getColumn(
468 table.getTableId(), columnName);
469
470 ExpandoValue value = new ExpandoValueImpl();
471
472 value.setCompanyId(table.getCompanyId());
473 value.setColumnId(column.getColumnId());
474 value.setShortArray(data);
475
476 return addValue(
477 table.getClassNameId(), table.getTableId(), column.getColumnId(),
478 classPK, value.getData());
479 }
480
481 public ExpandoValue addValue(
482 String className, String tableName, String columnName, long classPK,
483 String data)
484 throws PortalException, SystemException {
485
486 ExpandoTable table = expandoTableLocalService.getTable(
487 className, tableName);
488
489 ExpandoColumn column = expandoColumnLocalService.getColumn(
490 table.getTableId(), columnName);
491
492 ExpandoValue value = new ExpandoValueImpl();
493
494 value.setCompanyId(table.getCompanyId());
495 value.setColumnId(column.getColumnId());
496 value.setString(data);
497
498 return addValue(
499 table.getClassNameId(), table.getTableId(), column.getColumnId(),
500 classPK, value.getData());
501 }
502
503 public ExpandoValue addValue(
504 String className, String tableName, String columnName, long classPK,
505 String[] data)
506 throws PortalException, SystemException {
507
508 ExpandoTable table = expandoTableLocalService.getTable(
509 className, tableName);
510
511 ExpandoColumn column = expandoColumnLocalService.getColumn(
512 table.getTableId(), columnName);
513
514 ExpandoValue value = new ExpandoValueImpl();
515
516 value.setCompanyId(table.getCompanyId());
517 value.setColumnId(column.getColumnId());
518 value.setStringArray(data);
519
520 return addValue(
521 table.getClassNameId(), table.getTableId(), column.getColumnId(),
522 classPK, value.getData());
523 }
524
525 public void addValues(
526 long classNameId, long tableId, List<ExpandoColumn> columns,
527 long classPK, Map<String, String> data)
528 throws SystemException {
529
530 long companyId = CompanyThreadLocal.getCompanyId();
531
532 ExpandoRow row = expandoRowPersistence.fetchByT_C(tableId, classPK);
533
534 if (row == null) {
535 long rowId = counterLocalService.increment();
536
537 row = expandoRowPersistence.create(rowId);
538
539 row.setCompanyId(companyId);
540 row.setTableId(tableId);
541 row.setClassPK(classPK);
542
543 expandoRowPersistence.update(row, false);
544 }
545
546 for (ExpandoColumn column : columns) {
547 if (data.containsKey(column.getName())) {
548 ExpandoValue value = expandoValuePersistence.fetchByC_R(
549 column.getColumnId(), row.getRowId());
550
551 if (value == null) {
552 long valueId = counterLocalService.increment();
553
554 value = expandoValuePersistence.create(valueId);
555
556 value.setCompanyId(companyId);
557 value.setTableId(tableId);
558 value.setColumnId(column.getColumnId());
559 value.setRowId(row.getRowId());
560 value.setClassNameId(classNameId);
561 value.setClassPK(classPK);
562 }
563
564 value.setData(data.get(column.getName()));
565
566 expandoValuePersistence.update(value, false);
567 }
568 }
569 }
570
571 public void deleteColumnValues(long columnId) throws SystemException {
572 expandoValuePersistence.removeByColumnId(columnId);
573 }
574
575 public void deleteRowValues(long rowId) throws SystemException {
576 expandoValuePersistence.removeByRowId(rowId);
577 }
578
579 public void deleteTableValues(long tableId) throws SystemException {
580 expandoValuePersistence.removeByTableId(tableId);
581 }
582
583 public void deleteValue(long valueId)
584 throws PortalException, SystemException {
585
586 expandoValuePersistence.remove(valueId);
587 }
588
589 public void deleteValue(long columnId, long rowId)
590 throws PortalException, SystemException {
591
592 expandoValuePersistence.removeByC_R(columnId, rowId);
593 }
594
595 public void deleteValue(
596 long classNameId, String tableName, String columnName, long classPK)
597 throws PortalException, SystemException {
598
599 long companyId = CompanyThreadLocal.getCompanyId();
600
601 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
602 companyId, classNameId, tableName);
603
604 if (table == null) {
605 return;
606 }
607
608 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
609 table.getTableId(), columnName);
610
611 if (column == null) {
612 return;
613 }
614
615 ExpandoValue value = expandoValuePersistence.fetchByT_C_C(
616 table.getTableId(), column.getColumnId(), classPK);
617
618 if (value != null) {
619 deleteValue(value.getValueId());
620 }
621 }
622
623 public void deleteValue(
624 String className, String tableName, String columnName, long classPK)
625 throws PortalException, SystemException {
626
627 long classNameId = PortalUtil.getClassNameId(className);
628
629 deleteValue(classNameId, tableName, columnName, classPK);
630 }
631
632 public void deleteValues(long classNameId, long classPK)
633 throws SystemException {
634
635 expandoValuePersistence.removeByC_C(classNameId, classPK);
636 }
637
638 public void deleteValues(String className, long classPK)
639 throws SystemException {
640
641 long classNameId = PortalUtil.getClassNameId(className);
642
643 deleteValues(classNameId, classPK);
644 }
645
646 public List<ExpandoValue> getColumnValues(long columnId, int start, int end)
647 throws SystemException {
648
649 return expandoValuePersistence.findByColumnId(columnId, start, end);
650 }
651
652 public List<ExpandoValue> getColumnValues(
653 long classNameId, String tableName, String columnName, int start,
654 int end)
655 throws SystemException {
656
657 long companyId = CompanyThreadLocal.getCompanyId();
658
659 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
660 companyId, classNameId, tableName);
661
662 if (table == null) {
663 return Collections.EMPTY_LIST;
664 }
665
666 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
667 table.getTableId(), columnName);
668
669 if (column == null) {
670 return Collections.EMPTY_LIST;
671 }
672
673 return expandoValuePersistence.findByT_C(
674 table.getTableId(), column.getColumnId(), start, end);
675 }
676
677 public List<ExpandoValue> getColumnValues(
678 long classNameId, String tableName, String columnName, String data,
679 int start, int end)
680 throws SystemException {
681
682 long companyId = CompanyThreadLocal.getCompanyId();
683
684 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
685 companyId, classNameId, tableName);
686
687 if (table == null) {
688 return Collections.EMPTY_LIST;
689 }
690
691 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
692 table.getTableId(), columnName);
693
694 if (column == null) {
695 return Collections.EMPTY_LIST;
696 }
697
698 return expandoValuePersistence.findByT_C_D(
699 table.getTableId(), column.getColumnId(), data, start, end);
700 }
701
702 public List<ExpandoValue> getColumnValues(
703 String className, String tableName, String columnName, int start,
704 int end)
705 throws SystemException {
706
707 long classNameId = PortalUtil.getClassNameId(className);
708
709 return getColumnValues(classNameId, tableName, columnName, start, end);
710 }
711
712 public List<ExpandoValue> getColumnValues(
713 String className, String tableName, String columnName, String data,
714 int start, int end)
715 throws SystemException {
716
717 long classNameId = PortalUtil.getClassNameId(className);
718
719 return getColumnValues(
720 classNameId, tableName, columnName, data, start, end);
721 }
722
723 public int getColumnValuesCount(long columnId) throws SystemException {
724 return expandoValuePersistence.countByColumnId(columnId);
725 }
726
727 public int getColumnValuesCount(
728 long classNameId, String tableName, String columnName)
729 throws SystemException {
730
731 long companyId = CompanyThreadLocal.getCompanyId();
732
733 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
734 companyId, classNameId, tableName);
735
736 if (table == null) {
737 return 0;
738 }
739
740 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
741 table.getTableId(), columnName);
742
743 if (column == null) {
744 return 0;
745 }
746
747 return expandoValuePersistence.countByT_C(
748 table.getTableId(), column.getColumnId());
749 }
750
751 public int getColumnValuesCount(
752 long classNameId, String tableName, String columnName, String data)
753 throws SystemException {
754
755 long companyId = CompanyThreadLocal.getCompanyId();
756
757 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
758 companyId, classNameId, tableName);
759
760 if (table == null) {
761 return 0;
762 }
763
764 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
765 table.getTableId(), columnName);
766
767 if (column == null) {
768 return 0;
769 }
770
771 return expandoValuePersistence.countByT_C_D(
772 table.getTableId(), column.getColumnId(), data);
773 }
774
775 public int getColumnValuesCount(
776 String className, String tableName, String columnName)
777 throws SystemException {
778
779 long classNameId = PortalUtil.getClassNameId(className);
780
781 return getColumnValuesCount(classNameId, tableName, columnName);
782 }
783
784 public int getColumnValuesCount(
785 String className, String tableName, String columnName, String data)
786 throws SystemException {
787
788 long classNameId = PortalUtil.getClassNameId(className);
789
790 return getColumnValuesCount(classNameId, tableName, columnName, data);
791 }
792
793 public Serializable getData(
794 String className, String tableName, String columnName, long classPK)
795 throws PortalException, SystemException {
796
797 ExpandoColumn column = expandoColumnLocalService.getColumn(
798 className, tableName, columnName);
799
800 ExpandoValue value = new ExpandoValueImpl();
801
802 value.setColumnId(column.getColumnId());
803 value.setData(column.getDefaultData());
804
805 int type = column.getType();
806
807 if (type == ExpandoColumnConstants.BOOLEAN) {
808 return getData(
809 className, tableName, columnName, classPK, value.getBoolean());
810 }
811 else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
812 return getData(
813 className, tableName, columnName, classPK,
814 value.getBooleanArray());
815 }
816 else if (type == ExpandoColumnConstants.DATE) {
817 return getData(
818 className, tableName, columnName, classPK, value.getDate());
819 }
820 else if (type == ExpandoColumnConstants.DATE_ARRAY) {
821 return getData(
822 className, tableName, columnName, classPK,
823 value.getDateArray());
824 }
825 else if (type == ExpandoColumnConstants.DOUBLE) {
826 return getData(
827 className, tableName, columnName, classPK, value.getDouble());
828 }
829 else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
830 return getData(
831 className, tableName, columnName, classPK,
832 value.getDoubleArray());
833 }
834 else if (type == ExpandoColumnConstants.FLOAT) {
835 return getData(
836 className, tableName, columnName, classPK, value.getFloat());
837 }
838 else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
839 return getData(
840 className, tableName, columnName, classPK,
841 value.getFloatArray());
842 }
843 else if (type == ExpandoColumnConstants.INTEGER) {
844 return getData(
845 className, tableName, columnName, classPK, value.getInteger());
846 }
847 else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
848 return getData(
849 className, tableName, columnName, classPK,
850 value.getIntegerArray());
851 }
852 else if (type == ExpandoColumnConstants.LONG) {
853 return getData(
854 className, tableName, columnName, classPK, value.getLong());
855 }
856 else if (type == ExpandoColumnConstants.LONG_ARRAY) {
857 return getData(
858 className, tableName, columnName, classPK,
859 value.getLongArray());
860 }
861 else if (type == ExpandoColumnConstants.SHORT) {
862 return getData(
863 className, tableName, columnName, classPK, value.getShort());
864 }
865 else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
866 return getData(
867 className, tableName, columnName, classPK,
868 value.getShortArray());
869 }
870 else if (type == ExpandoColumnConstants.STRING_ARRAY) {
871 return getData(
872 className, tableName, columnName, classPK,
873 value.getStringArray());
874 }
875 else {
876 return getData(
877 className, tableName, columnName, classPK, value.getString());
878 }
879 }
880
881 public boolean getData(
882 String className, String tableName, String columnName, long classPK,
883 boolean defaultData)
884 throws PortalException, SystemException {
885
886 ExpandoValue value = getValue(
887 className, tableName, columnName, classPK);
888
889 if (value == null) {
890 return defaultData;
891 }
892 else {
893 return value.getBoolean();
894 }
895 }
896
897 public boolean[] getData(
898 String className, String tableName, String columnName, long classPK,
899 boolean[] defaultData)
900 throws PortalException, SystemException {
901
902 ExpandoValue value = getValue(
903 className, tableName, columnName, classPK);
904
905 if (value == null) {
906 return defaultData;
907 }
908 else {
909 return value.getBooleanArray();
910 }
911 }
912
913 public Date getData(
914 String className, String tableName, String columnName, long classPK,
915 Date defaultData)
916 throws PortalException, SystemException {
917
918 ExpandoValue value = getValue(
919 className, tableName, columnName, classPK);
920
921 if (value == null) {
922 return defaultData;
923 }
924 else {
925 return value.getDate();
926 }
927 }
928
929 public Date[] getData(
930 String className, String tableName, String columnName, long classPK,
931 Date[] defaultData)
932 throws PortalException, SystemException {
933
934 ExpandoValue value = getValue(
935 className, tableName, columnName, classPK);
936
937 if (value == null) {
938 return defaultData;
939 }
940 else {
941 return value.getDateArray();
942 }
943 }
944
945 public double getData(
946 String className, String tableName, String columnName, long classPK,
947 double defaultData)
948 throws PortalException, SystemException {
949
950 ExpandoValue value = getValue(
951 className, tableName, columnName, classPK);
952
953 if (value == null) {
954 return defaultData;
955 }
956 else {
957 return value.getDouble();
958 }
959 }
960
961 public double[] getData(
962 String className, String tableName, String columnName, long classPK,
963 double[] defaultData)
964 throws PortalException, SystemException {
965
966 ExpandoValue value = getValue(
967 className, tableName, columnName, classPK);
968
969 if (value == null) {
970 return defaultData;
971 }
972 else {
973 return value.getDoubleArray();
974 }
975 }
976
977 public float getData(
978 String className, String tableName, String columnName, long classPK,
979 float defaultData)
980 throws PortalException, SystemException {
981
982 ExpandoValue value = getValue(
983 className, tableName, columnName, classPK);
984
985 if (value == null) {
986 return defaultData;
987 }
988 else {
989 return value.getFloat();
990 }
991 }
992
993 public float[] getData(
994 String className, String tableName, String columnName, long classPK,
995 float[] defaultData)
996 throws PortalException, SystemException {
997
998 ExpandoValue value = getValue(
999 className, tableName, columnName, classPK);
1000
1001 if (value == null) {
1002 return defaultData;
1003 }
1004 else {
1005 return value.getFloatArray();
1006 }
1007 }
1008
1009 public int getData(
1010 String className, String tableName, String columnName, long classPK,
1011 int defaultData)
1012 throws PortalException, SystemException {
1013
1014 ExpandoValue value = getValue(
1015 className, tableName, columnName, classPK);
1016
1017 if (value == null) {
1018 return defaultData;
1019 }
1020 else {
1021 return value.getInteger();
1022 }
1023 }
1024
1025 public int[] getData(
1026 String className, String tableName, String columnName, long classPK,
1027 int[] defaultData)
1028 throws PortalException, SystemException {
1029
1030 ExpandoValue value = getValue(
1031 className, tableName, columnName, classPK);
1032
1033 if (value == null) {
1034 return defaultData;
1035 }
1036 else {
1037 return value.getIntegerArray();
1038 }
1039 }
1040
1041 public long getData(
1042 String className, String tableName, String columnName, long classPK,
1043 long defaultData)
1044 throws PortalException, SystemException {
1045
1046 ExpandoValue value = getValue(
1047 className, tableName, columnName, classPK);
1048
1049 if (value == null) {
1050 return defaultData;
1051 }
1052 else {
1053 return value.getLong();
1054 }
1055 }
1056
1057 public long[] getData(
1058 String className, String tableName, String columnName, long classPK,
1059 long[] defaultData)
1060 throws PortalException, SystemException {
1061
1062 ExpandoValue value = getValue(
1063 className, tableName, columnName, classPK);
1064
1065 if (value == null) {
1066 return defaultData;
1067 }
1068 else {
1069 return value.getLongArray();
1070 }
1071 }
1072
1073 public short getData(
1074 String className, String tableName, String columnName, long classPK,
1075 short defaultData)
1076 throws PortalException, SystemException {
1077
1078 ExpandoValue value = getValue(
1079 className, tableName, columnName, classPK);
1080
1081 if (value == null) {
1082 return defaultData;
1083 }
1084 else {
1085 return value.getShort();
1086 }
1087 }
1088
1089 public short[] getData(
1090 String className, String tableName, String columnName, long classPK,
1091 short[] defaultData)
1092 throws PortalException, SystemException {
1093
1094 ExpandoValue value = getValue(
1095 className, tableName, columnName, classPK);
1096
1097 if (value == null) {
1098 return defaultData;
1099 }
1100 else {
1101 return value.getShortArray();
1102 }
1103 }
1104
1105 public String getData(
1106 String className, String tableName, String columnName, long classPK,
1107 String defaultData)
1108 throws PortalException, SystemException {
1109
1110 ExpandoValue value = getValue(
1111 className, tableName, columnName, classPK);
1112
1113 if (value == null) {
1114 return defaultData;
1115 }
1116 else {
1117 return value.getString();
1118 }
1119 }
1120
1121 public String[] getData(
1122 String className, String tableName, String columnName, long classPK,
1123 String[] defaultData)
1124 throws PortalException, SystemException {
1125
1126 ExpandoValue value = getValue(
1127 className, tableName, columnName, classPK);
1128
1129 if (value == null) {
1130 return defaultData;
1131 }
1132 else {
1133 return value.getStringArray();
1134 }
1135 }
1136
1137 public List<ExpandoValue> getDefaultTableColumnValues(
1138 long classNameId, String columnName, int start, int end)
1139 throws SystemException {
1140
1141 return getColumnValues(
1142 classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME, columnName,
1143 start, end);
1144 }
1145
1146 public List<ExpandoValue> getDefaultTableColumnValues(
1147 String className, String columnName, int start, int end)
1148 throws SystemException {
1149
1150 long classNameId = PortalUtil.getClassNameId(className);
1151
1152 return getDefaultTableColumnValues(classNameId, columnName, start, end);
1153 }
1154
1155 public int getDefaultTableColumnValuesCount(
1156 long classNameId, String columnName)
1157 throws SystemException {
1158
1159 return getColumnValuesCount(
1160 classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME, columnName);
1161 }
1162
1163 public int getDefaultTableColumnValuesCount(
1164 String className, String columnName)
1165 throws SystemException {
1166
1167 long classNameId = PortalUtil.getClassNameId(className);
1168
1169 return getDefaultTableColumnValuesCount(classNameId, columnName);
1170 }
1171
1172 public List<ExpandoValue> getRowValues(long rowId) throws SystemException {
1173 return expandoValuePersistence.findByRowId(rowId);
1174 }
1175
1176 public List<ExpandoValue> getRowValues(long rowId, int start, int end)
1177 throws SystemException {
1178
1179 return expandoValuePersistence.findByRowId(rowId, start, end);
1180 }
1181
1182 public List<ExpandoValue> getRowValues(
1183 long classNameId, String tableName, long classPK, int start,
1184 int end)
1185 throws SystemException {
1186
1187 long companyId = CompanyThreadLocal.getCompanyId();
1188
1189 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1190 companyId, classNameId, tableName);
1191
1192 if (table == null) {
1193 return Collections.EMPTY_LIST;
1194 }
1195
1196 return expandoValuePersistence.findByT_CPK(
1197 table.getTableId(), classPK, start, end);
1198 }
1199
1200 public List<ExpandoValue> getRowValues(
1201 String className, String tableName, long classPK, int start,
1202 int end)
1203 throws SystemException {
1204
1205 long classNameId = PortalUtil.getClassNameId(className);
1206
1207 return getRowValues(classNameId, tableName, classPK, start, end);
1208 }
1209
1210 public int getRowValuesCount(long rowId) throws SystemException {
1211 return expandoValuePersistence.countByRowId(rowId);
1212 }
1213
1214 public int getRowValuesCount(
1215 long classNameId, String tableName, long classPK)
1216 throws SystemException {
1217
1218 long companyId = CompanyThreadLocal.getCompanyId();
1219
1220 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1221 companyId, classNameId, tableName);
1222
1223 if (table == null) {
1224 return 0;
1225 }
1226
1227 return expandoValuePersistence.countByT_CPK(
1228 table.getTableId(), classPK);
1229 }
1230
1231 public int getRowValuesCount(
1232 String className, String tableName, long classPK)
1233 throws SystemException {
1234
1235 long classNameId = PortalUtil.getClassNameId(className);
1236
1237 return getRowValuesCount(classNameId, tableName, classPK);
1238 }
1239
1240 public ExpandoValue getValue(long valueId)
1241 throws PortalException, SystemException {
1242
1243 return expandoValuePersistence.findByPrimaryKey(valueId);
1244 }
1245
1246 public ExpandoValue getValue(long columnId, long rowId)
1247 throws PortalException, SystemException {
1248
1249 return expandoValuePersistence.findByC_R(columnId, rowId);
1250 }
1251
1252 public ExpandoValue getValue(long tableId, long columnId, long classPK)
1253 throws SystemException {
1254
1255 return expandoValuePersistence.fetchByT_C_C(
1256 tableId, columnId, classPK);
1257 }
1258
1259 public ExpandoValue getValue(
1260 long classNameId, String tableName, String columnName, long classPK)
1261 throws SystemException {
1262
1263 long companyId = CompanyThreadLocal.getCompanyId();
1264
1265 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1266 companyId, classNameId, tableName);
1267
1268 if (table == null) {
1269 return null;
1270 }
1271
1272 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
1273 table.getTableId(), columnName);
1274
1275 if (column == null) {
1276 return null;
1277 }
1278
1279 return expandoValuePersistence.fetchByT_C_C(
1280 table.getTableId(), column.getColumnId(), classPK);
1281 }
1282
1283 public ExpandoValue getValue(
1284 String className, String tableName, String columnName, long classPK)
1285 throws SystemException {
1286
1287 long classNameId = PortalUtil.getClassNameId(className);
1288
1289 return getValue(classNameId, tableName, columnName, classPK);
1290 }
1291
1292}