Package org.huihoo.workflow.impl.runtime

Source Code of org.huihoo.workflow.impl.runtime.CaseContextImpl

//----------------------------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.runtime;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;

import org.huihoo.workflow.usermodel.WorkflowParticipant;
import org.huihoo.workflow.runtime.WorkflowCase;
import org.huihoo.workflow.runtime.WorkflowCaseContext;
import org.huihoo.workflow.xpdl.WorkflowParameter;
import org.huihoo.workflow.xpdl.WorkflowTransition;

/**
* @author zosatapo
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class CaseContextImpl implements WorkflowCaseContext
{
  private Hashtable parameters=new Hashtable()
  private Hashtable attributes=new Hashtable();
 
  private Hashtable performers=new Hashtable();
 
  private WorkflowCase workflowCase;
 
  public CaseContextImpl(WorkflowCase workflowCase_,List initParams)
  {
    this.workflowCase=workflowCase_;
    fillParameters(initParams);
  }
 
  public WorkflowParameter getParameterByName(String name)
  {
    if(name ==null)
    {
      return null;
    }
   
    Enumeration enum=parameters.elements();
    while(enum.hasMoreElements())
    {
      WorkflowParameter param=(WorkflowParameter)enum.nextElement();
      if(name.equals(param.getName()))
      {
        return param;
      }
    }
   
    return null;
   
  }
  public WorkflowParameter getParameterByID(String uuid)
  {
    if(uuid ==null)
    {
      return null;
    }
    return (WorkflowParameter)parameters.get(uuid);
  }
  
  public Enumeration getParameterNames()
  {
    return parameters.keys();
  }
 
  public Object getAttribute(String name)
  {
    return attributes.get(name);
  }
 
  public void setAttribute(String name,Object obj)
  {
    attributes.put(name,obj);
  }
 
  public Object removeAttribute(String name)
  {
    return attributes.remove(name);
  }
  public Enumeration getAttributeNames()
  {
    return attributes.keys();
  }
 
  public WorkflowCase   getWorkflowCase()
  {
    return workflowCase;
  }
 
  public List getPerformersByTransition(WorkflowTransition workflowTransition)
  {
    Vector vecPerformer=(Vector)performers.get(workflowTransition);
    List  users=new ArrayList();
   
    if(vecPerformer==null)
    {
      return users;
   
    else
    {
      int sizePerformer=vecPerformer.size();
     
      for(int i=0;i<sizePerformer;++i)
      {
        users.add(vecPerformer.elementAt(i));
      }
     
      //release resources
      vecPerformer.clear();
      performers.remove(workflowTransition);
     
      return users;
    }
  }
 
  public void setPerformersByTransition(WorkflowTransition workflowTransition,WorkflowParticipant[] workflowUsers)
  {
    if(workflowUsers==null)
    {
      return;
    }
   
    Vector vecPerformer=new Vector();   
    for(int i=0;i<workflowUsers.length;++i)
    {
      vecPerformer.addElement(workflowUsers[i]);
    }
   
    performers.put(workflowTransition,vecPerformer);
  }
 
  private void fillParameters(List paramList)
  {
    if(paramList==null)
    {
      return;
    }
   
    int sizeParam=paramList.size();
   
    WorkflowParameter parameter=null;
   
    for(int i=0;i<sizeParam;++i)
    {
      parameter=(WorkflowParameter)paramList.get(i);
      parameters.put(parameter.getUUID(),parameter);
    }
  }
}
TOP

Related Classes of org.huihoo.workflow.impl.runtime.CaseContextImpl

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.