| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * 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.apache.oodt.cas.workflow.util; |
| |
| //OODT imports |
| import org.apache.oodt.cas.workflow.structs.Priority; |
| import org.apache.oodt.cas.workflow.structs.Workflow; |
| import org.apache.oodt.cas.workflow.structs.WorkflowInstance; |
| import org.apache.oodt.cas.workflow.structs.WorkflowTask; |
| import org.apache.oodt.cas.workflow.structs.WorkflowCondition; |
| |
| //JDK imports |
| import java.sql.ResultSet; |
| import java.sql.SQLException; |
| import java.util.logging.Logger; |
| |
| /** |
| * @author mattmann |
| * @version $Revision$ |
| * |
| * <p> |
| * A Factory for creating Workflow Manager objects from {@link ResultSet}s. |
| * </p> |
| * |
| */ |
| public final class DbStructFactory { |
| |
| /* our log stream */ |
| private static Logger LOG = Logger.getLogger(DbStructFactory.class |
| .getName()); |
| |
| private DbStructFactory() throws InstantiationException { |
| throw new InstantiationException("Don't construct DbStructFactories!"); |
| } |
| |
| public static String getEvent(ResultSet rs) throws SQLException { |
| String eventName = rs.getString("event_name"); |
| return eventName; |
| } |
| |
| public static WorkflowInstance getWorkflowInstance(ResultSet rs) |
| throws SQLException { |
| WorkflowInstance workflowInst = new WorkflowInstance(); |
| workflowInst.setTimesBlocked(rs.getInt("times_blocked")); |
| workflowInst.setStatus(rs.getString("workflow_instance_status")); |
| workflowInst.setId(rs.getString("workflow_instance_id")); |
| workflowInst.setCurrentTaskId(rs.getString("current_task_id")); |
| workflowInst.setStartDateTimeIsoStr(rs.getString("start_date_time")); |
| workflowInst.setEndDateTimeIsoStr(rs.getString("end_date_time")); |
| workflowInst.setCurrentTaskStartDateTimeIsoStr(rs |
| .getString("current_task_start_date_time")); |
| workflowInst.setCurrentTaskEndDateTimeIsoStr(rs |
| .getString("current_task_end_date_time")); |
| workflowInst.setPriority(Priority.getPriority(rs.getDouble("priority"))); |
| Workflow workflow = new Workflow(); |
| workflow.setId(rs.getString("workflow_id")); |
| workflowInst.setWorkflow(workflow); |
| return workflowInst; |
| } |
| |
| public static Workflow getWorkflow(ResultSet rs) throws SQLException { |
| Workflow workflow = new Workflow(); |
| workflow.setName(rs.getString("workflow_name")); |
| workflow.setId(String.valueOf(rs.getInt("workflow_id"))); |
| |
| return workflow; |
| } |
| |
| public static WorkflowTask getWorkflowTask(ResultSet rs, boolean setOrder) |
| throws SQLException { |
| String taskClassName = rs.getString("workflow_task_class"); |
| |
| if (taskClassName != null) { |
| WorkflowTask task = new WorkflowTask(); |
| task.setTaskInstanceClassName(taskClassName); |
| task.setTaskId(String.valueOf(rs.getInt("workflow_task_id"))); |
| task.setTaskName(rs.getString("workflow_task_name")); |
| if (setOrder) { |
| task.setOrder(rs.getInt("task_order")); |
| } |
| return task; |
| } else |
| return null; |
| } |
| |
| public static WorkflowCondition getWorkflowCondition(ResultSet rs, |
| boolean setOrder) throws SQLException { |
| |
| String conditionClassName = rs.getString("workflow_condition_class"); |
| |
| if (conditionClassName != null) { |
| WorkflowCondition condition = new WorkflowCondition(); |
| condition.setConditionInstanceClassName(conditionClassName); |
| condition.setConditionId(String.valueOf(rs |
| .getInt("workflow_condition_id"))); |
| condition.setConditionName(rs.getString("workflow_condition_name")); |
| condition.setTimeoutSeconds(rs.getLong("workflow_condition_timeout")); |
| condition.setOptional(rs.getBoolean("workflow_condition_optional")); |
| if (setOrder) { |
| condition.setOrder(rs.getInt("condition_order")); |
| } |
| return condition; |
| } else |
| return null; |
| } |
| |
| } |