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