001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.portal.kernel.workflow;
016    
017    import com.liferay.portal.model.User;
018    
019    import java.io.Serializable;
020    
021    import java.util.ArrayList;
022    import java.util.Collection;
023    import java.util.Collections;
024    import java.util.Date;
025    import java.util.List;
026    import java.util.Map;
027    
028    /**
029     * @author Michael C. Han
030     * @author Brian Wing Shun Chan
031     * @author Marcellus Tavares
032     */
033    public class DefaultWorkflowTask implements Serializable, WorkflowTask {
034    
035            public long getAssigneeUserId() {
036                    if (!isAssignedToSingleUser()) {
037                            return -1;
038                    }
039    
040                    WorkflowTaskAssignee workflowTaskAssignee = _workflowTaskAssignees.get(
041                            0);
042    
043                    return workflowTaskAssignee.getAssigneeClassPK();
044            }
045    
046            public Date getCompletionDate() {
047                    return _completionDate;
048            }
049    
050            public Date getCreateDate() {
051                    return _createDate;
052            }
053    
054            public String getDescription() {
055                    return _description;
056            }
057    
058            public Date getDueDate() {
059                    return _dueDate;
060            }
061    
062            public String getName() {
063                    return _name;
064            }
065    
066            public Map<String, Serializable> getOptionalAttributes() {
067                    return _optionalAttributes;
068            }
069    
070            public long getWorkflowDefinitionId() {
071                    return _workflowDefinitionId;
072            }
073    
074            public String getWorkflowDefinitionName() {
075                    return _workflowDefinitionName;
076            }
077    
078            public int getWorkflowDefinitionVersion() {
079                    return _workflowDefinitionVersion;
080            }
081    
082            public long getWorkflowInstanceId() {
083                    return _workflowInstanceId;
084            }
085    
086            public List<WorkflowTaskAssignee> getWorkflowTaskAssignees() {
087                    if (_workflowTaskAssignees == null) {
088                            return Collections.EMPTY_LIST;
089                    }
090    
091                    return _workflowTaskAssignees;
092            }
093    
094            public long getWorkflowTaskId() {
095                    return _workflowTaskId;
096            }
097    
098            public boolean isAssignedToSingleUser() {
099                    if (_workflowTaskAssignees == null) {
100                            return false;
101                    }
102    
103                    if (_workflowTaskAssignees.size() != 1) {
104                            return false;
105                    }
106    
107                    WorkflowTaskAssignee workflowTaskAssignee = _workflowTaskAssignees.get(
108                            0);
109    
110                    if (User.class.getName().equals(
111                                    workflowTaskAssignee.getAssigneeClassName())) {
112    
113                            return true;
114                    }
115                    else {
116                            return false;
117                    }
118            }
119    
120            public boolean isAsynchronous() {
121                    return _asynchronous;
122            }
123    
124            public boolean isCompleted() {
125                    if (_completionDate != null) {
126                            return true;
127                    }
128                    else {
129                            return false;
130                    }
131            }
132    
133            public void setAsynchronous(boolean asynchronous) {
134                    _asynchronous = asynchronous;
135            }
136    
137            public void setCompletionDate(Date completionDate) {
138                    _completionDate = completionDate;
139            }
140    
141            public void setCreateDate(Date createDate) {
142                    _createDate = createDate;
143            }
144    
145            public void setDescription(String description) {
146                    _description = description;
147            }
148    
149            public void setDueDate(Date dueDate) {
150                    _dueDate = dueDate;
151            }
152    
153            public void setName(String name) {
154                    _name = name;
155            }
156    
157            public void setOptionalAttributes(
158                    Map<String, Serializable> optionalAttributes) {
159    
160                    _optionalAttributes = optionalAttributes;
161            }
162    
163            public void setWorkflowDefinitionId(long workflowDefinitionId) {
164                    _workflowDefinitionId = workflowDefinitionId;
165            }
166    
167            public void setWorkflowDefinitionName(String workflowDefinitionName) {
168                    _workflowDefinitionName = workflowDefinitionName;
169            }
170    
171            public void setWorkflowDefinitionVersion(int workflowDefinitionVersion) {
172                    _workflowDefinitionVersion = workflowDefinitionVersion;
173            }
174    
175            public void setWorkflowInstanceId(long workflowInstanceId) {
176                    _workflowInstanceId = workflowInstanceId;
177            }
178    
179            public void setWorkflowTaskAssignees(
180                    Collection<WorkflowTaskAssignee> workflowTaskAssignees) {
181    
182                    if (_workflowTaskAssignees == null) {
183                            _workflowTaskAssignees  = new ArrayList<WorkflowTaskAssignee>();
184                    }
185    
186                    _workflowTaskAssignees.addAll(workflowTaskAssignees);
187            }
188    
189            public void setWorkflowTaskId(long workflowTaskId) {
190                    _workflowTaskId = workflowTaskId;
191            }
192    
193            private boolean _asynchronous;
194            private Date _completionDate;
195            private Date _createDate;
196            private String _description;
197            private Date _dueDate;
198            private String _name;
199            private Map<String, Serializable> _optionalAttributes;
200            private long _workflowDefinitionId;
201            private String _workflowDefinitionName;
202            private int _workflowDefinitionVersion;
203            private long _workflowInstanceId;
204            private List<WorkflowTaskAssignee> _workflowTaskAssignees;
205            private long _workflowTaskId;
206    
207    }