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 String dataString = data.get(column.getName());
548
549 if (dataString != null) {
550 ExpandoValue value = expandoValuePersistence.fetchByC_R(
551 column.getColumnId(), row.getRowId());
552
553 if (value == null) {
554 long valueId = counterLocalService.increment();
555
556 value = expandoValuePersistence.create(valueId);
557
558 value.setCompanyId(companyId);
559 value.setTableId(tableId);
560 value.setColumnId(column.getColumnId());
561 value.setRowId(row.getRowId());
562 value.setClassNameId(classNameId);
563 value.setClassPK(classPK);
564 }
565
566 value.setData(dataString);
567
568 expandoValuePersistence.update(value, false);
569 }
570 }
571 }
572
573 public void deleteColumnValues(long columnId) throws SystemException {
574 expandoValuePersistence.removeByColumnId(columnId);
575 }
576
577 public void deleteRowValues(long rowId) throws SystemException {
578 expandoValuePersistence.removeByRowId(rowId);
579 }
580
581 public void deleteTableValues(long tableId) throws SystemException {
582 expandoValuePersistence.removeByTableId(tableId);
583 }
584
585 public void deleteValue(long valueId)
586 throws PortalException, SystemException {
587
588 expandoValuePersistence.remove(valueId);
589 }
590
591 public void deleteValue(long columnId, long rowId)
592 throws PortalException, SystemException {
593
594 expandoValuePersistence.removeByC_R(columnId, rowId);
595 }
596
597 public void deleteValue(
598 long classNameId, String tableName, String columnName, long classPK)
599 throws PortalException, SystemException {
600
601 long companyId = CompanyThreadLocal.getCompanyId();
602
603 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
604 companyId, classNameId, tableName);
605
606 if (table == null) {
607 return;
608 }
609
610 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
611 table.getTableId(), columnName);
612
613 if (column == null) {
614 return;
615 }
616
617 ExpandoValue value = expandoValuePersistence.fetchByT_C_C(
618 table.getTableId(), column.getColumnId(), classPK);
619
620 if (value != null) {
621 deleteValue(value.getValueId());
622 }
623 }
624
625 public void deleteValue(
626 String className, String tableName, String columnName, long classPK)
627 throws PortalException, SystemException {
628
629 long classNameId = PortalUtil.getClassNameId(className);
630
631 deleteValue(classNameId, tableName, columnName, classPK);
632 }
633
634 public void deleteValues(long classNameId, long classPK)
635 throws SystemException {
636
637 expandoValuePersistence.removeByC_C(classNameId, classPK);
638 }
639
640 public void deleteValues(String className, long classPK)
641 throws SystemException {
642
643 long classNameId = PortalUtil.getClassNameId(className);
644
645 deleteValues(classNameId, classPK);
646 }
647
648 public List<ExpandoValue> getColumnValues(long columnId, int start, int end)
649 throws SystemException {
650
651 return expandoValuePersistence.findByColumnId(columnId, start, end);
652 }
653
654 public List<ExpandoValue> getColumnValues(
655 long classNameId, String tableName, String columnName, int start,
656 int end)
657 throws SystemException {
658
659 long companyId = CompanyThreadLocal.getCompanyId();
660
661 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
662 companyId, classNameId, tableName);
663
664 if (table == null) {
665 return Collections.EMPTY_LIST;
666 }
667
668 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
669 table.getTableId(), columnName);
670
671 if (column == null) {
672 return Collections.EMPTY_LIST;
673 }
674
675 return expandoValuePersistence.findByT_C(
676 table.getTableId(), column.getColumnId(), start, end);
677 }
678
679 public List<ExpandoValue> getColumnValues(
680 long classNameId, String tableName, String columnName, String data,
681 int start, int end)
682 throws SystemException {
683
684 long companyId = CompanyThreadLocal.getCompanyId();
685
686 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
687 companyId, classNameId, tableName);
688
689 if (table == null) {
690 return Collections.EMPTY_LIST;
691 }
692
693 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
694 table.getTableId(), columnName);
695
696 if (column == null) {
697 return Collections.EMPTY_LIST;
698 }
699
700 return expandoValuePersistence.findByT_C_D(
701 table.getTableId(), column.getColumnId(), data, start, end);
702 }
703
704 public List<ExpandoValue> getColumnValues(
705 String className, String tableName, String columnName, int start,
706 int end)
707 throws SystemException {
708
709 long classNameId = PortalUtil.getClassNameId(className);
710
711 return getColumnValues(classNameId, tableName, columnName, start, end);
712 }
713
714 public List<ExpandoValue> getColumnValues(
715 String className, String tableName, String columnName, String data,
716 int start, int end)
717 throws SystemException {
718
719 long classNameId = PortalUtil.getClassNameId(className);
720
721 return getColumnValues(
722 classNameId, tableName, columnName, data, start, end);
723 }
724
725 public int getColumnValuesCount(long columnId) throws SystemException {
726 return expandoValuePersistence.countByColumnId(columnId);
727 }
728
729 public int getColumnValuesCount(
730 long classNameId, String tableName, String columnName)
731 throws SystemException {
732
733 long companyId = CompanyThreadLocal.getCompanyId();
734
735 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
736 companyId, classNameId, tableName);
737
738 if (table == null) {
739 return 0;
740 }
741
742 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
743 table.getTableId(), columnName);
744
745 if (column == null) {
746 return 0;
747 }
748
749 return expandoValuePersistence.countByT_C(
750 table.getTableId(), column.getColumnId());
751 }
752
753 public int getColumnValuesCount(
754 long classNameId, String tableName, String columnName, String data)
755 throws SystemException {
756
757 long companyId = CompanyThreadLocal.getCompanyId();
758
759 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
760 companyId, classNameId, tableName);
761
762 if (table == null) {
763 return 0;
764 }
765
766 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
767 table.getTableId(), columnName);
768
769 if (column == null) {
770 return 0;
771 }
772
773 return expandoValuePersistence.countByT_C_D(
774 table.getTableId(), column.getColumnId(), data);
775 }
776
777 public int getColumnValuesCount(
778 String className, String tableName, String columnName)
779 throws SystemException {
780
781 long classNameId = PortalUtil.getClassNameId(className);
782
783 return getColumnValuesCount(classNameId, tableName, columnName);
784 }
785
786 public int getColumnValuesCount(
787 String className, String tableName, String columnName, String data)
788 throws SystemException {
789
790 long classNameId = PortalUtil.getClassNameId(className);
791
792 return getColumnValuesCount(classNameId, tableName, columnName, data);
793 }
794
795 public Serializable getData(
796 String className, String tableName, String columnName, long classPK)
797 throws PortalException, SystemException {
798
799 ExpandoColumn column = expandoColumnLocalService.getColumn(
800 className, tableName, columnName);
801
802 ExpandoValue value = new ExpandoValueImpl();
803
804 value.setColumnId(column.getColumnId());
805 value.setData(column.getDefaultData());
806
807 int type = column.getType();
808
809 if (type == ExpandoColumnConstants.BOOLEAN) {
810 return getData(
811 className, tableName, columnName, classPK, value.getBoolean());
812 }
813 else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
814 return getData(
815 className, tableName, columnName, classPK,
816 value.getBooleanArray());
817 }
818 else if (type == ExpandoColumnConstants.DATE) {
819 return getData(
820 className, tableName, columnName, classPK, value.getDate());
821 }
822 else if (type == ExpandoColumnConstants.DATE_ARRAY) {
823 return getData(
824 className, tableName, columnName, classPK,
825 value.getDateArray());
826 }
827 else if (type == ExpandoColumnConstants.DOUBLE) {
828 return getData(
829 className, tableName, columnName, classPK, value.getDouble());
830 }
831 else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
832 return getData(
833 className, tableName, columnName, classPK,
834 value.getDoubleArray());
835 }
836 else if (type == ExpandoColumnConstants.FLOAT) {
837 return getData(
838 className, tableName, columnName, classPK, value.getFloat());
839 }
840 else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
841 return getData(
842 className, tableName, columnName, classPK,
843 value.getFloatArray());
844 }
845 else if (type == ExpandoColumnConstants.INTEGER) {
846 return getData(
847 className, tableName, columnName, classPK, value.getInteger());
848 }
849 else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
850 return getData(
851 className, tableName, columnName, classPK,
852 value.getIntegerArray());
853 }
854 else if (type == ExpandoColumnConstants.LONG) {
855 return getData(
856 className, tableName, columnName, classPK, value.getLong());
857 }
858 else if (type == ExpandoColumnConstants.LONG_ARRAY) {
859 return getData(
860 className, tableName, columnName, classPK,
861 value.getLongArray());
862 }
863 else if (type == ExpandoColumnConstants.SHORT) {
864 return getData(
865 className, tableName, columnName, classPK, value.getShort());
866 }
867 else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
868 return getData(
869 className, tableName, columnName, classPK,
870 value.getShortArray());
871 }
872 else if (type == ExpandoColumnConstants.STRING_ARRAY) {
873 return getData(
874 className, tableName, columnName, classPK,
875 value.getStringArray());
876 }
877 else {
878 return getData(
879 className, tableName, columnName, classPK, value.getString());
880 }
881 }
882
883 public boolean getData(
884 String className, String tableName, String columnName, long classPK,
885 boolean defaultData)
886 throws PortalException, SystemException {
887
888 ExpandoValue value = getValue(
889 className, tableName, columnName, classPK);
890
891 if (value == null) {
892 return defaultData;
893 }
894 else {
895 return value.getBoolean();
896 }
897 }
898
899 public boolean[] getData(
900 String className, String tableName, String columnName, long classPK,
901 boolean[] defaultData)
902 throws PortalException, SystemException {
903
904 ExpandoValue value = getValue(
905 className, tableName, columnName, classPK);
906
907 if (value == null) {
908 return defaultData;
909 }
910 else {
911 return value.getBooleanArray();
912 }
913 }
914
915 public Date getData(
916 String className, String tableName, String columnName, long classPK,
917 Date defaultData)
918 throws PortalException, SystemException {
919
920 ExpandoValue value = getValue(
921 className, tableName, columnName, classPK);
922
923 if (value == null) {
924 return defaultData;
925 }
926 else {
927 return value.getDate();
928 }
929 }
930
931 public Date[] getData(
932 String className, String tableName, String columnName, long classPK,
933 Date[] defaultData)
934 throws PortalException, SystemException {
935
936 ExpandoValue value = getValue(
937 className, tableName, columnName, classPK);
938
939 if (value == null) {
940 return defaultData;
941 }
942 else {
943 return value.getDateArray();
944 }
945 }
946
947 public double getData(
948 String className, String tableName, String columnName, long classPK,
949 double defaultData)
950 throws PortalException, SystemException {
951
952 ExpandoValue value = getValue(
953 className, tableName, columnName, classPK);
954
955 if (value == null) {
956 return defaultData;
957 }
958 else {
959 return value.getDouble();
960 }
961 }
962
963 public double[] getData(
964 String className, String tableName, String columnName, long classPK,
965 double[] defaultData)
966 throws PortalException, SystemException {
967
968 ExpandoValue value = getValue(
969 className, tableName, columnName, classPK);
970
971 if (value == null) {
972 return defaultData;
973 }
974 else {
975 return value.getDoubleArray();
976 }
977 }
978
979 public float getData(
980 String className, String tableName, String columnName, long classPK,
981 float defaultData)
982 throws PortalException, SystemException {
983
984 ExpandoValue value = getValue(
985 className, tableName, columnName, classPK);
986
987 if (value == null) {
988 return defaultData;
989 }
990 else {
991 return value.getFloat();
992 }
993 }
994
995 public float[] getData(
996 String className, String tableName, String columnName, long classPK,
997 float[] defaultData)
998 throws PortalException, SystemException {
999
1000 ExpandoValue value = getValue(
1001 className, tableName, columnName, classPK);
1002
1003 if (value == null) {
1004 return defaultData;
1005 }
1006 else {
1007 return value.getFloatArray();
1008 }
1009 }
1010
1011 public int getData(
1012 String className, String tableName, String columnName, long classPK,
1013 int defaultData)
1014 throws PortalException, SystemException {
1015
1016 ExpandoValue value = getValue(
1017 className, tableName, columnName, classPK);
1018
1019 if (value == null) {
1020 return defaultData;
1021 }
1022 else {
1023 return value.getInteger();
1024 }
1025 }
1026
1027 public int[] getData(
1028 String className, String tableName, String columnName, long classPK,
1029 int[] defaultData)
1030 throws PortalException, SystemException {
1031
1032 ExpandoValue value = getValue(
1033 className, tableName, columnName, classPK);
1034
1035 if (value == null) {
1036 return defaultData;
1037 }
1038 else {
1039 return value.getIntegerArray();
1040 }
1041 }
1042
1043 public long getData(
1044 String className, String tableName, String columnName, long classPK,
1045 long defaultData)
1046 throws PortalException, SystemException {
1047
1048 ExpandoValue value = getValue(
1049 className, tableName, columnName, classPK);
1050
1051 if (value == null) {
1052 return defaultData;
1053 }
1054 else {
1055 return value.getLong();
1056 }
1057 }
1058
1059 public long[] getData(
1060 String className, String tableName, String columnName, long classPK,
1061 long[] defaultData)
1062 throws PortalException, SystemException {
1063
1064 ExpandoValue value = getValue(
1065 className, tableName, columnName, classPK);
1066
1067 if (value == null) {
1068 return defaultData;
1069 }
1070 else {
1071 return value.getLongArray();
1072 }
1073 }
1074
1075 public short getData(
1076 String className, String tableName, String columnName, long classPK,
1077 short defaultData)
1078 throws PortalException, SystemException {
1079
1080 ExpandoValue value = getValue(
1081 className, tableName, columnName, classPK);
1082
1083 if (value == null) {
1084 return defaultData;
1085 }
1086 else {
1087 return value.getShort();
1088 }
1089 }
1090
1091 public short[] getData(
1092 String className, String tableName, String columnName, long classPK,
1093 short[] defaultData)
1094 throws PortalException, SystemException {
1095
1096 ExpandoValue value = getValue(
1097 className, tableName, columnName, classPK);
1098
1099 if (value == null) {
1100 return defaultData;
1101 }
1102 else {
1103 return value.getShortArray();
1104 }
1105 }
1106
1107 public String getData(
1108 String className, String tableName, String columnName, long classPK,
1109 String defaultData)
1110 throws PortalException, SystemException {
1111
1112 ExpandoValue value = getValue(
1113 className, tableName, columnName, classPK);
1114
1115 if (value == null) {
1116 return defaultData;
1117 }
1118 else {
1119 return value.getString();
1120 }
1121 }
1122
1123 public String[] getData(
1124 String className, String tableName, String columnName, long classPK,
1125 String[] defaultData)
1126 throws PortalException, SystemException {
1127
1128 ExpandoValue value = getValue(
1129 className, tableName, columnName, classPK);
1130
1131 if (value == null) {
1132 return defaultData;
1133 }
1134 else {
1135 return value.getStringArray();
1136 }
1137 }
1138
1139 public List<ExpandoValue> getDefaultTableColumnValues(
1140 long classNameId, String columnName, int start, int end)
1141 throws SystemException {
1142
1143 return getColumnValues(
1144 classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME, columnName,
1145 start, end);
1146 }
1147
1148 public List<ExpandoValue> getDefaultTableColumnValues(
1149 String className, String columnName, int start, int end)
1150 throws SystemException {
1151
1152 long classNameId = PortalUtil.getClassNameId(className);
1153
1154 return getDefaultTableColumnValues(classNameId, columnName, start, end);
1155 }
1156
1157 public int getDefaultTableColumnValuesCount(
1158 long classNameId, String columnName)
1159 throws SystemException {
1160
1161 return getColumnValuesCount(
1162 classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME, columnName);
1163 }
1164
1165 public int getDefaultTableColumnValuesCount(
1166 String className, String columnName)
1167 throws SystemException {
1168
1169 long classNameId = PortalUtil.getClassNameId(className);
1170
1171 return getDefaultTableColumnValuesCount(classNameId, columnName);
1172 }
1173
1174 public List<ExpandoValue> getRowValues(long rowId) throws SystemException {
1175 return expandoValuePersistence.findByRowId(rowId);
1176 }
1177
1178 public List<ExpandoValue> getRowValues(long rowId, int start, int end)
1179 throws SystemException {
1180
1181 return expandoValuePersistence.findByRowId(rowId, start, end);
1182 }
1183
1184 public List<ExpandoValue> getRowValues(
1185 long classNameId, String tableName, long classPK, int start,
1186 int end)
1187 throws SystemException {
1188
1189 long companyId = CompanyThreadLocal.getCompanyId();
1190
1191 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1192 companyId, classNameId, tableName);
1193
1194 if (table == null) {
1195 return Collections.EMPTY_LIST;
1196 }
1197
1198 return expandoValuePersistence.findByT_CPK(
1199 table.getTableId(), classPK, start, end);
1200 }
1201
1202 public List<ExpandoValue> getRowValues(
1203 String className, String tableName, long classPK, int start,
1204 int end)
1205 throws SystemException {
1206
1207 long classNameId = PortalUtil.getClassNameId(className);
1208
1209 return getRowValues(classNameId, tableName, classPK, start, end);
1210 }
1211
1212 public int getRowValuesCount(long rowId) throws SystemException {
1213 return expandoValuePersistence.countByRowId(rowId);
1214 }
1215
1216 public int getRowValuesCount(
1217 long classNameId, String tableName, long classPK)
1218 throws SystemException {
1219
1220 long companyId = CompanyThreadLocal.getCompanyId();
1221
1222 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1223 companyId, classNameId, tableName);
1224
1225 if (table == null) {
1226 return 0;
1227 }
1228
1229 return expandoValuePersistence.countByT_CPK(
1230 table.getTableId(), classPK);
1231 }
1232
1233 public int getRowValuesCount(
1234 String className, String tableName, long classPK)
1235 throws SystemException {
1236
1237 long classNameId = PortalUtil.getClassNameId(className);
1238
1239 return getRowValuesCount(classNameId, tableName, classPK);
1240 }
1241
1242 public ExpandoValue getValue(long valueId)
1243 throws PortalException, SystemException {
1244
1245 return expandoValuePersistence.findByPrimaryKey(valueId);
1246 }
1247
1248 public ExpandoValue getValue(long columnId, long rowId)
1249 throws PortalException, SystemException {
1250
1251 return expandoValuePersistence.findByC_R(columnId, rowId);
1252 }
1253
1254 public ExpandoValue getValue(long tableId, long columnId, long classPK)
1255 throws SystemException {
1256
1257 return expandoValuePersistence.fetchByT_C_C(
1258 tableId, columnId, classPK);
1259 }
1260
1261 public ExpandoValue getValue(
1262 long classNameId, String tableName, String columnName, long classPK)
1263 throws SystemException {
1264
1265 long companyId = CompanyThreadLocal.getCompanyId();
1266
1267 ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
1268 companyId, classNameId, tableName);
1269
1270 if (table == null) {
1271 return null;
1272 }
1273
1274 ExpandoColumn column = expandoColumnPersistence.fetchByT_N(
1275 table.getTableId(), columnName);
1276
1277 if (column == null) {
1278 return null;
1279 }
1280
1281 return expandoValuePersistence.fetchByT_C_C(
1282 table.getTableId(), column.getColumnId(), classPK);
1283 }
1284
1285 public ExpandoValue getValue(
1286 String className, String tableName, String columnName, long classPK)
1287 throws SystemException {
1288
1289 long classNameId = PortalUtil.getClassNameId(className);
1290
1291 return getValue(classNameId, tableName, columnName, classPK);
1292 }
1293
1294}