/** * Copyright (C) 2011, 2014 BonitaSoft S.A. * BonitaSoft, 31 rue Gustave Eiffel - 38000 Grenoble * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2.0 of the License, or * (at your option) any later version. * This program 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 General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.bonitasoft.web.rest.model.bpm.cases; import java.util.Date; import org.bonitasoft.web.rest.model.bpm.process.ProcessItem; import org.bonitasoft.web.rest.model.identity.UserItem; import org.bonitasoft.web.toolkit.client.data.APIID; import org.bonitasoft.web.toolkit.client.data.item.IItem; import org.bonitasoft.web.toolkit.client.data.item.Item; import org.bonitasoft.web.toolkit.client.data.item.ItemDefinition; import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasLastUpdateDate; import org.bonitasoft.web.toolkit.client.data.item.template.ItemHasUniqueId; /** * process instance item * * @author Haojie Yuan * @author Celine Souchet */ public class CaseItem extends Item implements ItemHasLastUpdateDate, ItemHasUniqueId { public static final String ATTRIBUTE_VARIABLES = "variables"; public static final String ATTRIBUTE_STATE = "state"; public static final String ATTRIBUTE_PROCESS_ID = "processDefinitionId"; public static final String ATTRIBUTE_PROCESS_NAME = "name"; public static final String ATTRIBUTE_ROOT_CASE_ID = "rootCaseId"; public static final String ATTRIBUTE_STARTED_BY_USER_ID = "started_by"; public static final String ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID = "startedBySubstitute"; public static final String ATTRIBUTE_START_DATE = "start"; public static final String ATTRIBUTE_END_DATE = "end_date"; public static final String COUNTER_FAILED_FLOW_NODES = "failedFlowNodes"; public static final String COUNTER_ACTIVE_FLOW_NODES = "activeFlowNodes"; // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ATTRIBUTES VALUES // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // see ProcessInstanceState enum public static final String VALUE_STATE_INITIALIZING = "0"; public static final String VALUE_STATE_STARTED = "1"; public static final String VALUE_STATE_SUSPENDED = "2"; public static final String VALUE_STATE_CANCELLED = "3"; public static final String VALUE_STATE_ABORTED = "4"; public static final String VALUE_STATE_COMPLETING = "5"; public static final String VALUE_STATE_COMPLETED = "6"; public static final String VALUE_STATE_ERROR = "7"; public static final String VALUE_STATE_TO_MIGRATE = "8"; public static final String VALUE_STATE_READY_FOR_MIGRATION = "9"; public static final String VALUE_STATE_MIGRATING = "10"; // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // FILTERS // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static final String FILTER_USER_ID = "user_id"; public static final String FILTER_SUPERVISOR_ID = "supervisor_id"; public static final String FILTER_TEAM_MANAGER_ID = "team_manager_id"; public static final String FILTER_CALLER = "caller"; public static final String FILTER_STATE = "state"; public CaseItem() { super(); } public CaseItem(final IItem item) { super(item); } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // GETTERS AND SETTERS // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DEPLOYS public UserItem getStartedByUser() { return new UserItem(getDeploy(ATTRIBUTE_STARTED_BY_USER_ID)); } public UserItem getStartedBySubstituteUser() { return new UserItem(getDeploy(ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID)); } public ProcessItem getProcess() { return new ProcessItem(getDeploy(ATTRIBUTE_PROCESS_ID)); } // GETTERS @Override public Date getLastUpdateDate() { return getAttributeValueAsDate(ATTRIBUTE_LAST_UPDATE_DATE); } public String getState() { return getAttributeValue(ATTRIBUTE_STATE); } public Date getStartDate() { return getAttributeValueAsDate(ATTRIBUTE_START_DATE); } public APIID getStartedByUserId() { return getAttributeValueAsAPIID(ATTRIBUTE_STARTED_BY_USER_ID); } public APIID getStartedBySubstituteUserId() { return getAttributeValueAsAPIID(ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID); } public Date getEndDate() { return getAttributeValueAsDate(ATTRIBUTE_END_DATE); } public APIID getProcessId() { return getAttributeValueAsAPIID(ATTRIBUTE_PROCESS_ID); } public APIID getRootCaseId() { return getAttributeValueAsAPIID(ATTRIBUTE_ROOT_CASE_ID); } // SETTERS @Override public void setId(final Long id) { setAttribute(ATTRIBUTE_ID, id); } @Override public void setId(final String id) { setAttribute(ATTRIBUTE_ID, id); } @Override public void setLastUpdateDate(final String date) { setAttribute(ATTRIBUTE_LAST_UPDATE_DATE, date); } @Override public void setLastUpdateDate(final Date date) { setAttribute(ATTRIBUTE_LAST_UPDATE_DATE, date); } public void setState(final String state) { setAttribute(ATTRIBUTE_STATE, state); } /** * @param date Must be SQL formated date */ public void setStartDate(final String date) { setAttribute(ATTRIBUTE_START_DATE, date); } public void setStartDate(final Date date) { setAttribute(ATTRIBUTE_START_DATE, date); } public void setStartedByUserId(final Long userId) { setAttribute(ATTRIBUTE_STARTED_BY_USER_ID, userId); } public void setStartedByUserId(final APIID userId) { setAttribute(ATTRIBUTE_STARTED_BY_USER_ID, userId); } public void setStartedByUserId(final String userId) { setAttribute(ATTRIBUTE_STARTED_BY_USER_ID, userId); } public void setStartedBySubstituteUserId(final Long userId) { setAttribute(ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID, userId); } public void setStartedBySubstituteUserId(final APIID userId) { setAttribute(ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID, userId); } public void setStartedBySubstituteUserId(final String userId) { setAttribute(ATTRIBUTE_STARTED_BY_SUBSTITUTE_USER_ID, userId); } public void setEndDate(final String date) { setAttribute(ATTRIBUTE_END_DATE, date); } public void setEndDate(final Date date) { setAttribute(ATTRIBUTE_END_DATE, date); } public void setProcessId(final Long processId) { setProcessId(APIID.makeAPIID(processId)); } public void setProcessId(final String processId) { setAttribute(ATTRIBUTE_PROCESS_ID, processId); } public void setProcessId(final APIID processId) { setAttribute(ATTRIBUTE_PROCESS_ID, processId); } public void setRootCaseId(final long rootCaseId) { setAttribute(ATTRIBUTE_ROOT_CASE_ID, rootCaseId); } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // UTILS // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @Override public ItemDefinition getItemDefinition() { return new CaseDefinition(); } }