/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.services.task.audit.service; import static org.kie.internal.query.QueryParameterIdentifiers.CREATED_ON_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.DURATION_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.END_DATE_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.ID_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.START_DATE_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.TASK_ID_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.TASK_NAME_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.TASK_STATUS_LIST; import static org.kie.internal.query.QueryParameterIdentifiers.USER_ID_LIST; import java.util.Date; import org.jbpm.process.audit.JPAAuditLogService; import org.jbpm.process.audit.query.AbstractAuditQueryBuilderImpl; import org.jbpm.services.task.audit.BAMTaskSummaryQueryBuilder; import org.jbpm.services.task.audit.impl.model.BAMTaskSummaryImpl; import org.kie.api.runtime.CommandExecutor; import org.kie.api.task.model.Status; import org.kie.internal.query.QueryParameterIdentifiers; public class BAMTaskSummaryQueryBuilderImpl extends AbstractAuditQueryBuilderImpl<BAMTaskSummaryQueryBuilder, BAMTaskSummaryImpl> implements BAMTaskSummaryQueryBuilder { public BAMTaskSummaryQueryBuilderImpl(CommandExecutor cmdService) { super(cmdService); } public BAMTaskSummaryQueryBuilderImpl(JPAAuditLogService jpaAuditService) { super(jpaAuditService); } @Override public BAMTaskSummaryQueryBuilder taskId(long... taskId) { addLongParameter(TASK_ID_LIST, "task id", taskId); return this; } @Override public BAMTaskSummaryQueryBuilder taskIdRange( Long taskIdMin, Long taskIdMax ) { addRangeParameters(TASK_ID_LIST, "task id", taskIdMin, taskIdMax); return this; } @Override public BAMTaskSummaryQueryBuilder startDate( Date... startDate ) { addObjectParameter(START_DATE_LIST, "start date", startDate); return this; } @Override public BAMTaskSummaryQueryBuilder startDateRange( Date startDateMin, Date startDateMax ) { addRangeParameters(START_DATE_LIST, "start date", startDateMin, startDateMax); return this; } @Override public BAMTaskSummaryQueryBuilder duration( long... duration ) { addLongParameter(DURATION_LIST, "duration", duration); return this; } @Override public BAMTaskSummaryQueryBuilder taskStatus( Status... status ) { String [] stringStatuses = null; if( status != null ) { stringStatuses = new String[status.length]; for( int i = 0; i < status.length; ++i ) { stringStatuses[i] = status[i].toString(); } } addObjectParameter(TASK_STATUS_LIST, "task status", stringStatuses); return this; } @Override public BAMTaskSummaryQueryBuilder userId( String... userId ) { addObjectParameter(USER_ID_LIST, "user id", userId); return this; } @Override public BAMTaskSummaryQueryBuilder endDate( Date... endDate ) { addObjectParameter(END_DATE_LIST, "end date", endDate); return this; } @Override public BAMTaskSummaryQueryBuilder endDateRange( Date endDateMin, Date endDateMax ) { addRangeParameters(END_DATE_LIST, "end date", endDateMin, endDateMax); return this; } @Override public BAMTaskSummaryQueryBuilder createdOn( Date... createdOn ) { addObjectParameter(CREATED_ON_LIST, "created on", createdOn); return this; } @Override public BAMTaskSummaryQueryBuilder createdOnRange( Date createdOnMin, Date createdOnMax ) { addRangeParameters(CREATED_ON_LIST, "created on", createdOnMin, createdOnMax); return this; } @Override public BAMTaskSummaryQueryBuilder taskName(String... name) { addObjectParameter(TASK_NAME_LIST, "task name", name); return this; } @Override public BAMTaskSummaryQueryBuilder id( long... id ) { addLongParameter(ID_LIST, "id", id); return this; } @Override public BAMTaskSummaryQueryBuilder ascending( org.jbpm.services.task.audit.BAMTaskSummaryQueryBuilder.OrderBy field ) { String listId = convertOrderByToListId(field); this.queryWhere.setAscending(listId); return this; } @Override public BAMTaskSummaryQueryBuilder descending( org.jbpm.services.task.audit.BAMTaskSummaryQueryBuilder.OrderBy field ) { String listId = convertOrderByToListId(field); this.queryWhere.setDescending(listId); return this; } private String convertOrderByToListId(org.jbpm.services.task.audit.BAMTaskSummaryQueryBuilder.OrderBy field) { String listId; switch( field ) { case taskId: listId = QueryParameterIdentifiers.TASK_ID_LIST; break; case startDate: listId = QueryParameterIdentifiers.START_DATE_LIST; break; case endDate: listId = QueryParameterIdentifiers.END_DATE_LIST; break; case createdDate: listId = QueryParameterIdentifiers.CREATED_ON_LIST; break; case taskName: listId = QueryParameterIdentifiers.TASK_NAME_LIST; break; case processInstanceId: listId = QueryParameterIdentifiers.PROCESS_INSTANCE_ID_LIST; break; default: throw new IllegalArgumentException("Unknown 'order-by' field: " + field.toString() ); } return listId; } @Override protected Class<BAMTaskSummaryImpl> getResultType() { return BAMTaskSummaryImpl.class; } @Override protected Class<BAMTaskSummaryImpl> getQueryType() { return BAMTaskSummaryImpl.class; } }