Package org.huihoo.workflow.impl.store.util

Source Code of org.huihoo.workflow.impl.store.util.ContexManager

//----------------------------BEGIN LICENSE----------------------------
/*
* Willow : the Open Source WorkFlow Project
* Distributable under GNU LGPL license by gun.org
*
* Copyright (C) 2004-2010 huihoo.org
* Copyright (C) 2004-2010  ZosaTapo <dertyang@hotmail.com>
*
* ====================================================================
* Project Homepage : http://www.huihoo.org/willow
* Source Forge     : http://sourceforge.net/projects/huihoo
* Mailing list     : willow@lists.sourceforge.net
*/
//----------------------------END  LICENSE-----------------------------
package org.huihoo.workflow.impl.store.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.huihoo.workflow.store.SchemaContext;
import org.huihoo.workflow.runtime.WorkflowCaseContext;
import org.huihoo.workflow.runtime.WorkflowCase;
import org.huihoo.workflow.xpdl.WorkflowParameter;
import org.huihoo.workflow.xpdl.WorkflowProcess;
import org.huihoo.workflow.xpdl.util.TypeDefinition;

import com.zosatapo.commons.store.ConnUtils;
import com.zosatapo.commons.store.Store;
import org.huihoo.workflow.impl.runtime.CaseContextImpl;


public class ContexManager
{
  private static Log log = LogFactory.getLog(ContexManager.class);

  public static WorkflowCaseContext fetchContext(
    Store storeConfig,
    SchemaContext schemaContext,
    WorkflowCase workflowCase)
    throws SQLException
  {
    WorkflowProcess workflowProcess = workflowCase.getWorkflowProcess();
    String processId = workflowProcess.getUUID();
    String packageId = workflowProcess.getWorkflowPackage().getUUID();
    String caseId = workflowCase.getUUID();

    List paramList = new ArrayList();
    WorkflowParameter parameter = null;

    String strSQL =
      "SELECT vc_uuid,vc_type,vc_value FROM "
        + schemaContext.getTableName(SchemaContext.SCHEMA_CASE_DATAFIELD)
        + " "
        + "WHERE  vc_packageId=?"
        + " "
        + "AND    vc_processid=?"
        + " "
        + "AND    vc_caseId=?";

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet jrs = null;

    try
    {
      conn = ConnUtils.getConnection(storeConfig);
      pstmt = conn.prepareStatement(strSQL);
      pstmt.setString(1, packageId);
      pstmt.setString(2, processId);
      pstmt.setString(3, caseId);

      jrs = pstmt.executeQuery();

      String vc_uuid = null;
      String vc_type = null;
      String vc_value = null;

      while (jrs.next())
      {
        vc_uuid = jrs.getString("vc_uuid");
        vc_type = jrs.getString("vc_type");
        vc_value = jrs.getString("vc_value");

        parameter = new WorkflowParameter(vc_uuid, vc_uuid, TypeDefinition.XPDLToJava(vc_type));
        parameter.setValue(ConvertUtils.convert(vc_value, parameter.getType()));
        paramList.add(parameter);
      }

    }
    finally
    {
      ConnUtils.cleanupNoThrow(conn, pstmt);
    }

    return new CaseContextImpl(workflowCase, paramList);
  }
}
TOP

Related Classes of org.huihoo.workflow.impl.store.util.ContexManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.