/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portlet.expando.service.impl;
import com.liferay.expando.kernel.model.ExpandoRow;
import com.liferay.expando.kernel.model.ExpandoTable;
import com.liferay.expando.kernel.model.ExpandoTableConstants;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portlet.expando.service.base.ExpandoRowLocalServiceBaseImpl;
import java.util.Collections;
import java.util.List;
/**
* @author Brian Wing Shun Chan
* @author Wesley Gong
*/
public class ExpandoRowLocalServiceImpl extends ExpandoRowLocalServiceBaseImpl {
@Override
public ExpandoRow addRow(long tableId, long classPK)
throws PortalException {
ExpandoTable table = expandoTablePersistence.findByPrimaryKey(tableId);
long rowId = counterLocalService.increment();
ExpandoRow row = expandoRowPersistence.create(rowId);
row.setCompanyId(table.getCompanyId());
row.setTableId(tableId);
row.setClassPK(classPK);
expandoRowPersistence.update(row);
return row;
}
@Override
public void deleteRow(ExpandoRow row) {
// Row
expandoRowPersistence.remove(row);
// Values
expandoValueLocalService.deleteRowValues(row.getRowId());
}
@Override
public void deleteRow(long rowId) throws PortalException {
ExpandoRow row = expandoRowPersistence.findByPrimaryKey(rowId);
deleteRow(row);
}
@Override
public void deleteRow(long tableId, long classPK) throws PortalException {
ExpandoRow row = expandoRowPersistence.findByT_C(tableId, classPK);
deleteRow(row);
}
@Override
public void deleteRow(
long companyId, long classNameId, String tableName, long classPK)
throws PortalException {
ExpandoTable table = expandoTableLocalService.getTable(
companyId, classNameId, tableName);
expandoRowLocalService.deleteRow(table.getTableId(), classPK);
}
@Override
public void deleteRow(
long companyId, String className, String tableName, long classPK)
throws PortalException {
long classNameId = classNameLocalService.getClassNameId(className);
expandoRowLocalService.deleteRow(
companyId, classNameId, tableName, classPK);
}
@Override
public void deleteRows(long classPK) {
List<ExpandoRow> rows = expandoRowPersistence.findByClassPK(classPK);
for (ExpandoRow row : rows) {
deleteRow(row);
}
}
@Override
public ExpandoRow fetchRow(long tableId, long classPK) {
return expandoRowPersistence.fetchByT_C(tableId, classPK);
}
@Override
public List<ExpandoRow> getDefaultTableRows(
long companyId, long classNameId, int start, int end) {
return expandoRowLocalService.getRows(
companyId, classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME,
start, end);
}
@Override
public List<ExpandoRow> getDefaultTableRows(
long companyId, String className, int start, int end) {
long classNameId = classNameLocalService.getClassNameId(className);
return expandoRowLocalService.getDefaultTableRows(
companyId, classNameId, start, end);
}
@Override
public int getDefaultTableRowsCount(long companyId, long classNameId) {
return expandoRowLocalService.getRowsCount(
companyId, classNameId, ExpandoTableConstants.DEFAULT_TABLE_NAME);
}
@Override
public int getDefaultTableRowsCount(long companyId, String className) {
long classNameId = classNameLocalService.getClassNameId(className);
return expandoRowLocalService.getDefaultTableRowsCount(
companyId, classNameId);
}
@Override
public ExpandoRow getRow(long rowId) throws PortalException {
return expandoRowPersistence.findByPrimaryKey(rowId);
}
@Override
public ExpandoRow getRow(long tableId, long classPK)
throws PortalException {
return expandoRowPersistence.findByT_C(tableId, classPK);
}
@Override
public ExpandoRow getRow(
long companyId, long classNameId, String tableName, long classPK) {
ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
companyId, classNameId, tableName);
if (table == null) {
return null;
}
return expandoRowPersistence.fetchByT_C(table.getTableId(), classPK);
}
@Override
public ExpandoRow getRow(
long companyId, String className, String tableName, long classPK) {
long classNameId = classNameLocalService.getClassNameId(className);
return expandoRowLocalService.getRow(
companyId, classNameId, tableName, classPK);
}
@Override
public List<ExpandoRow> getRows(long tableId, int start, int end) {
return expandoRowPersistence.findByTableId(tableId, start, end);
}
@Override
public List<ExpandoRow> getRows(
long companyId, long classNameId, String tableName, int start,
int end) {
ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
companyId, classNameId, tableName);
if (table == null) {
return Collections.emptyList();
}
return expandoRowPersistence.findByTableId(
table.getTableId(), start, end);
}
@Override
public List<ExpandoRow> getRows(
long companyId, String className, String tableName, int start,
int end) {
long classNameId = classNameLocalService.getClassNameId(className);
return expandoRowLocalService.getRows(
companyId, classNameId, tableName, start, end);
}
@Override
public int getRowsCount(long tableId) {
return expandoRowPersistence.countByTableId(tableId);
}
@Override
public int getRowsCount(
long companyId, long classNameId, String tableName) {
ExpandoTable table = expandoTablePersistence.fetchByC_C_N(
companyId, classNameId, tableName);
if (table == null) {
return 0;
}
return expandoRowPersistence.countByTableId(table.getTableId());
}
@Override
public int getRowsCount(
long companyId, String className, String tableName) {
long classNameId = classNameLocalService.getClassNameId(className);
return expandoRowLocalService.getRowsCount(
companyId, classNameId, tableName);
}
}