
org.ow2.bonita.services.impl.DbWebService Maven / Gradle / Ivy
The newest version!
/**
* Copyright (C) 2006 Bull S. A. S.
* Bull, Rue Jean Jaures, B.P.68, 78340, Les Clayes-sous-Bois
* 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
* version 2.1 of the License.
* 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.
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301, USA.
*
* Modified by Charles Souillard - BonitaSoft S.A.
* Modified by Matthieu Chaffotte - BonitaSoft S.A.
**/
package org.ow2.bonita.services.impl;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.ow2.bonita.facade.runtime.Category;
import org.ow2.bonita.facade.runtime.impl.CaseImpl;
import org.ow2.bonita.facade.runtime.impl.LabelImpl;
import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
import org.ow2.bonita.persistence.WebDbSession;
import org.ow2.bonita.services.WebService;
import org.ow2.bonita.util.EnvTool;
public class DbWebService implements WebService {
private String persistenceServiceName;
protected DbWebService() {
}
public DbWebService(final String persistenceServiceName) {
super();
this.persistenceServiceName = persistenceServiceName;
}
protected WebDbSession getDbSession() {
return EnvTool.getWebServiceDbSession(persistenceServiceName);
}
@Override
public Set getAllCases() {
return getDbSession().getAllCases();
}
@Override
public void deleteAllCases() {
getDbSession().deleteAllCases();
}
@Override
public void addLabel(final LabelImpl label) {
getDbSession().save(label);
}
@Override
public void addCase(final CaseImpl caseImpl) {
getDbSession().save(caseImpl);
}
@Override
public void removeCase(final CaseImpl caseImpl) {
getDbSession().delete(caseImpl);
}
@Override
public void removeCase(final ProcessInstanceUUID caseUUID, final String ownerName, final String labelName) {
final WebDbSession webSession = getDbSession();
final Set caseList = new HashSet();
caseList.add(caseUUID);
final Set cases = webSession.getCases(ownerName, labelName, caseList);
if (cases != null) {
for (final CaseImpl caseImpl : cases) {
webSession.delete(caseImpl);
}
}
}
@Override
public List getLabelsCaseUUIDs(final String ownerName, final Set labelNames,
final int fromIndex, final int pageSize) {
return getDbSession().getLabelsCaseUUIDs(ownerName, labelNames, fromIndex, pageSize);
}
@Override
public Set getLabelCases(final String labelName, final Set caseUUIDs) {
return getDbSession().getLabelCases(labelName, caseUUIDs);
}
@Override
public Set getLabelCases(final String ownerName, final Set labelNames,
final Set caseUUIDs) {
return getDbSession().getLabelCases(ownerName, labelNames, caseUUIDs);
}
@Override
public void removeLabel(final String ownerName, final String labelName) {
final WebDbSession webSession = getDbSession();
final LabelImpl label = webSession.getLabel(ownerName, labelName);
if (label != null) {
webSession.delete(label);
for (final CaseImpl caseImpl : webSession.getCases(ownerName, labelName)) {
webSession.delete(caseImpl);
}
}
}
@Override
public void removeCategories(final Set categories) {
final WebDbSession webSession = getDbSession();
for (final Category category : categories) {
webSession.delete(category);
}
}
@Override
public LabelImpl getLabel(final String ownerName, final String labelName) {
return getDbSession().getLabel(ownerName, labelName);
}
@Override
public Set getCases(final Set caseUUIDs) {
return getDbSession().getCases(caseUUIDs);
}
@Override
public Set getCases(final String ownerName, final Set theLabelsName) {
return getDbSession().getCases(ownerName, theLabelsName);
}
@Override
public Set getLabels(final String ownerName) {
return getDbSession().getLabels(ownerName);
}
@Override
public List getSystemLabels(final String ownerName) {
return getDbSession().getSystemLabels(ownerName);
}
@Override
public List getUserCustomLabels(final String ownerName) {
return getDbSession().getUserCustomLabels(ownerName);
}
@Override
public Set getCaseLabels(final String ownerName, final ProcessInstanceUUID instanceUUID) {
return getDbSession().getCaseLabels(ownerName, instanceUUID);
}
@Override
public CaseImpl getCase(final ProcessInstanceUUID caseUUID, final String ownerName, final String labelName) {
return getDbSession().getCase(caseUUID, ownerName, labelName);
}
@Override
public void removeCase(final ProcessInstanceUUID instanceUUID) {
final WebDbSession webSession = getDbSession();
final Set cases = webSession.getCases(instanceUUID);
if (cases != null) {
for (final CaseImpl caseImpl : cases) {
webSession.delete(caseImpl);
}
}
}
@Override
public void deleteCases(final Set webCases) {
getDbSession().deleteCases(webCases);
}
@Override
public void removeCasesFromLabel(final String ownerName, final String labelName,
final Set caseList) {
if (caseList == null || caseList.isEmpty()) {
return;
}
final WebDbSession webSession = getDbSession();
final Set cases = webSession.getCases(ownerName, labelName, caseList);
if (cases != null) {
for (final CaseImpl caseImpl : cases) {
webSession.delete(caseImpl);
}
}
}
@Override
public Set getLabels(final String ownerName, final Set labelsName) {
return getDbSession().getLabels(ownerName, labelsName);
}
@Override
public int getCasesNumber(final String ownerName, final String labelName) {
return getDbSession().getCasesNumber(ownerName, labelName);
}
@Override
public int getCasesNumber(final String ownerName, final String label1Name, final String label2Name) {
return getDbSession().getCasesNumberWithTwoLabels(ownerName, label1Name, label2Name);
}
@Override
public Set getCases(final String ownerName, final String labelName, final int limit) {
return getDbSession().getCases(ownerName, labelName, limit);
}
@Override
public Set getCases(final String ownerName, final String label1Name, final String label2Name,
final int limit) {
return getDbSession().getCasesWithTwoLabels(ownerName, label1Name, label2Name, limit);
}
@Override
public void updateLabelName(final String ownerName, final String labelName, final String newName) {
final LabelImpl label = EnvTool.getWebService().getLabel(ownerName, labelName);
label.setName(newName);
final Set cases = getDbSession().getCases(ownerName, labelName);
if (cases != null && !cases.isEmpty()) {
for (final CaseImpl case1 : cases) {
case1.setLabelName(newName);
}
}
}
@Override
public Set getLabelsByName(final Set labelNames) {
return getDbSession().getLabels(labelNames);
}
@Override
public Set getLabelsByNameExcept(final Set labelNames) {
return getDbSession().getLabelsByNameExcept(labelNames);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy