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