/**
* 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.portal.workflow.kaleo.runtime.integration.impl.internal;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.workflow.WorkflowException;
import com.liferay.portal.kernel.workflow.WorkflowLog;
import com.liferay.portal.kernel.workflow.WorkflowLogManager;
import com.liferay.portal.workflow.kaleo.KaleoWorkflowModelConverter;
import com.liferay.portal.workflow.kaleo.model.KaleoLog;
import com.liferay.portal.workflow.kaleo.runtime.util.comparator.KaleoLogOrderByComparator;
import com.liferay.portal.workflow.kaleo.service.KaleoLogLocalService;
import java.util.ArrayList;
import java.util.List;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Michael C. Han
*/
@Component(
immediate = true, property = {"proxy.bean=false"},
service = WorkflowLogManager.class
)
public class WorkflowLogManagerImpl implements WorkflowLogManager {
@Override
public int getWorkflowLogCountByWorkflowInstance(
long companyId, long workflowInstanceId, List<Integer> logTypes)
throws WorkflowException {
try {
return _kaleoLogLocalService.getKaleoInstanceKaleoLogsCount(
workflowInstanceId, logTypes);
}
catch (Exception e) {
throw new WorkflowException(e);
}
}
@Override
public int getWorkflowLogCountByWorkflowTask(
long companyId, long workflowTaskId, List<Integer> logTypes)
throws WorkflowException {
try {
return _kaleoLogLocalService.
getKaleoTaskInstanceTokenKaleoLogsCount(
workflowTaskId, logTypes);
}
catch (Exception e) {
throw new WorkflowException(e);
}
}
@Override
public List<WorkflowLog> getWorkflowLogsByWorkflowInstance(
long companyId, long workflowInstanceId, List<Integer> logTypes,
int start, int end,
OrderByComparator<WorkflowLog> orderByComparator)
throws WorkflowException {
try {
List<KaleoLog> kaleoLogs =
_kaleoLogLocalService.getKaleoInstanceKaleoLogs(
workflowInstanceId, logTypes, start, end,
KaleoLogOrderByComparator.getOrderByComparator(
orderByComparator, _kaleoWorkflowModelConverter));
return toWorkflowLogs(kaleoLogs);
}
catch (Exception e) {
throw new WorkflowException(e);
}
}
@Override
public List<WorkflowLog> getWorkflowLogsByWorkflowTask(
long companyId, long workflowTaskId, List<Integer> logTypes,
int start, int end,
OrderByComparator<WorkflowLog> orderByComparator)
throws WorkflowException {
try {
List<KaleoLog> kaleoLogs =
_kaleoLogLocalService.getKaleoTaskInstanceTokenKaleoLogs(
workflowTaskId, logTypes, start, end,
KaleoLogOrderByComparator.getOrderByComparator(
orderByComparator, _kaleoWorkflowModelConverter));
return toWorkflowLogs(kaleoLogs);
}
catch (Exception e) {
throw new WorkflowException(e);
}
}
protected List<WorkflowLog> toWorkflowLogs(List<KaleoLog> kaleoLogs) {
List<WorkflowLog> workflowLogs = new ArrayList<>(kaleoLogs.size());
for (KaleoLog kaleoLog : kaleoLogs) {
WorkflowLog workflowLog =
_kaleoWorkflowModelConverter.toWorkflowLog(kaleoLog);
workflowLogs.add(workflowLog);
}
return workflowLogs;
}
@Reference
private KaleoLogLocalService _kaleoLogLocalService;
@Reference
private KaleoWorkflowModelConverter _kaleoWorkflowModelConverter;
}