Package com.founder.fix.fixflow.core.impl.db

Source Code of com.founder.fix.fixflow.core.impl.db.PersistentSession

/**
* Copyright 1996-2013 Founder International Co.,Ltd.
*
* Licensed 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.
*
* @author kenshin
*/
package com.founder.fix.fixflow.core.impl.db;

import java.sql.Connection;
import java.util.List;
import java.util.Map;

import com.founder.fix.fixflow.core.exception.FixFlowDbException;
import com.founder.fix.fixflow.core.exception.FixFlowException;
import com.founder.fix.fixflow.core.factory.ProcessObjectFactory;
import com.founder.fix.fixflow.core.impl.Page;
import com.founder.fix.fixflow.core.impl.ProcessDefinitionQueryImpl;
import com.founder.fix.fixflow.core.impl.bpmn.behavior.ProcessDefinitionBehavior;
import com.founder.fix.fixflow.core.impl.persistence.definition.DeploymentEntity;
import com.founder.fix.fixflow.core.impl.persistence.definition.DeploymentPersistence;
import com.founder.fix.fixflow.core.impl.persistence.definition.ProcessDefinitionPersistence;
import com.founder.fix.fixflow.core.impl.persistence.definition.ResourcePersistence;
import com.founder.fix.fixflow.core.impl.persistence.instance.CommentPersistence;
import com.founder.fix.fixflow.core.impl.persistence.instance.EventSubscriptionPersistence;
import com.founder.fix.fixflow.core.impl.persistence.instance.HistoryPersistence;

import com.founder.fix.fixflow.core.impl.subscription.EventSubscriptionEntity;
import com.founder.fix.fixflow.core.impl.subscription.EventSubscriptionQueryImpl;
import com.founder.fix.fixflow.core.impl.util.StringUtil;


public class PersistentSession {

  protected Connection connection;

  public PersistentSession(Connection connection) {
    this.connection = connection;
  }

  public void update(String updateStatement, PersistentObject persistentObject) {
   
    if (updateStatement.equals("updateDeployment")) {
      DeploymentPersistence resourceManager = ProcessObjectFactory.FACTORYINSTANCE.createDeploymentPersistence(connection);
      resourceManager.updateDeployment((DeploymentEntity)persistentObject);
      return;
    }
   
   
    if (updateStatement.equals("updateResource")) {
      ResourcePersistence resourceManager = ProcessObjectFactory.FACTORYINSTANCE.createResourcePersistence(connection);
      resourceManager.updateResource(persistentObject);
      return;
    }
   
   
  }

  public void delete(String deleteStatement, Object parameter) {
    if (deleteStatement.equals("deleteDeployment")) {

      DeploymentPersistence deploymentPersistence = ProcessObjectFactory.FACTORYINSTANCE.createDeploymentPersistence(connection);
      deploymentPersistence.deleteDeployment(StringUtil.getString(parameter.toString()));
    }

    if (deleteStatement.equals("deleteEventSubscriptionEntity")) {
      EventSubscriptionPersistence eventSubscriptionPersistence = new EventSubscriptionPersistence(connection);
      try {
        eventSubscriptionPersistence.deleteEventSubscriptionEntityById(parameter.toString());
      } catch (Exception e) {
        throw new FixFlowException("事件订阅删除出错! 错误信息:  " + e.getMessage(), e);
      }
    }

    if (deleteStatement.equals("deleteProcessDefinitionsByDeploymentId")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      processDefinitionPersistence.deleteProcessDefinitionsByDeploymentId(StringUtil.getString(parameter.toString()));
    }
    if (deleteStatement.equals("deleteResourcesByDeploymentId")) {
      ResourcePersistence resourceManager = ProcessObjectFactory.FACTORYINSTANCE.createResourcePersistence(connection);
      resourceManager.deleteResourcesByDeploymentId(StringUtil.getString(parameter));

    }


  }

  @SuppressWarnings({ "rawtypes"})
  public List selectList(String statement, Object parameter, Page page) {

    if (statement.equals("selectProcessDefinitionGroupKey")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      return processDefinitionPersistence.selectProcessDefinitionGroupKey();
    }



    if (statement.equals("findEventSubscriptionByQueryCriteria")) {
      EventSubscriptionPersistence eventSubscriptionPersistence = new EventSubscriptionPersistence(connection);
      try {
        eventSubscriptionPersistence.findEventSubscriptionByQueryCriteria((EventSubscriptionQueryImpl) parameter, page);
      } catch (Exception e) {
        throw new FixFlowException("事件订阅查询出错! 错误信息:  " + e.getMessage(), e);
      }
    }

    if (statement.equals("selectProcessDefinitionsByQueryCriteria")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      return processDefinitionPersistence.selectProcessDefinitionsByQueryCriteria((ProcessDefinitionQueryImpl) parameter,page);
    }

    return null;
  }

  @SuppressWarnings("unchecked")
  public Object selectOne(String statement, Object parameter) {
   
   
    if (statement.equals("selectResourceByDeploymentIdAndResourceName")) {
      ResourcePersistence resourcePersistence = ProcessObjectFactory.FACTORYINSTANCE.createResourcePersistence(connection);
      Map<String, String> strmap = (Map<String, String>) parameter;
      String deploymentId = strmap.get("deploymentId");
      String resourceName = strmap.get("resourceName");
   
      return resourcePersistence.selectResourceByDeploymentIdAndResourceName(deploymentId,resourceName);
    }
   
    if (statement.equals("selectProcessDefinitionByDeploymentAndKey")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
     
   
      return processDefinitionPersistence.selectProcessDefinitionByDeploymentAndKey(parameter);
    }
   

   

   
   
    if (statement.equals("findUserSubmitProcess")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      Map<String, String> strmap = (Map<String, String>) parameter;
      String userId = strmap.get("userId");
      int number = StringUtil.getInt(strmap.get("number"));
      return processDefinitionPersistence.findUserSubmitProcess(userId,number);
    }
   
   

    if (statement.equals("selectDeploymentById")) {
      DeploymentPersistence deploymentPersistence = ProcessObjectFactory.FACTORYINSTANCE.createDeploymentPersistence(connection);
     
      String deploymentId = StringUtil.getString(parameter);

      return deploymentPersistence.getDeployment(deploymentId);
    }
   
   



    if (statement.equals("selectLatestProcessDefinitionByKey")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      ProcessDefinitionBehavior processDefinition = processDefinitionPersistence.selectLatestProcessDefinitionByKey(parameter.toString());
      return processDefinition;
    }
    if (statement.equals("selectProcessDefinitionById")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      ProcessDefinitionBehavior processDefinition = processDefinitionPersistence.selectProcessDefinitionById(parameter.toString());
      return processDefinition;
    }

 

    if (statement.equals("selectResourceByResourceId")) {
      ResourcePersistence resourcePersistence = ProcessObjectFactory.FACTORYINSTANCE.createResourcePersistence(connection);
      return resourcePersistence.getResourceInputStream(parameter.toString());
    }

    if (statement.equals("selectProcessDefinitionByKeyAndVersion")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      ProcessDefinitionBehavior processDefinition = processDefinitionPersistence.selectLatestProcessDefinitionByKeyAndVersion(parameter);
      return processDefinition;
    }

   
    if(statement.equals("selectProcessDefinitionCountByQueryCriteria")){
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      return processDefinitionPersistence.selectProcessDefinitionsCountByQueryCriteria((ProcessDefinitionQueryImpl)parameter);
    }

    return null;

  }

  public void save(String saveStatement, PersistentObject persistentObject) {

   

    if (saveStatement.equals("saveEventSubscriptionEntity")) {
      EventSubscriptionPersistence eventSubscriptionPersistence = new EventSubscriptionPersistence(connection);
      try {
        eventSubscriptionPersistence.saveEventSubscriptionEntity((EventSubscriptionEntity) persistentObject);
      } catch (Exception e) {
        throw new FixFlowDbException("事件订阅持久化出错! 错误信息:  " + e.getMessage(), e);
      }
    }

   

  }

  public void insert(String insertStatement, PersistentObject persistentObject) {

    if (insertStatement.equals("insertComment")) {
      CommentPersistence commentPersistence = new CommentPersistence(connection);
      commentPersistence.insertComment(persistentObject);
    }
    if (insertStatement.equals("insertDeployment")) {
      DeploymentPersistence deploymentPersistence = ProcessObjectFactory.FACTORYINSTANCE.createDeploymentPersistence(connection);
      deploymentPersistence.insertDeployment(persistentObject);
    }
    if (insertStatement.equals("insertResource")) {
      ResourcePersistence resourceManager = ProcessObjectFactory.FACTORYINSTANCE.createResourcePersistence(connection);
      resourceManager.insertResource(persistentObject);
    }
    if (insertStatement.equals("insertProcessDefinition")) {
      ProcessDefinitionPersistence processDefinitionPersistence = ProcessObjectFactory.FACTORYINSTANCE.createProcessDefinitionPersistence(connection);
      processDefinitionPersistence.insertProcessDefinition(persistentObject);
    }

  }
 
  @SuppressWarnings("unchecked")
  public Object execute(String execStatement,Object parameter){
    if("archive".equals(execStatement)){
      HistoryPersistence historyPersistence = ProcessObjectFactory.FACTORYINSTANCE.createHistoryPersistence(connection);
      Map<String,Object> paraMap = (Map<String,Object>)parameter;
      return historyPersistence.archive(paraMap);
    }
   
    return null;
  }

}
TOP

Related Classes of com.founder.fix.fixflow.core.impl.db.PersistentSession

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.