答案:原意是给大家看一下结构,没想大家都那么关心,我现在把所有的代码贴上来,谢谢大家关心.
唉,BLOG好烦啊,无法直接上传文件要一个一个贴
================ResourceLib.java ============
package org.fswan;
import java.util.ArrayList;
import java.util.Properties;
/**
* 用来存储通用的XML配置文件位置和数据库连接属性.
* 作为org.fswan里所有的包中类的基础配置文件.
*/
public class ResourceLib
{
/**
* 驱动的字符串
*/
public static final String DRIVER = "Driver";
/**
* 数据库连接字符串
*/
public static final String URL = "URL";
/**
* 用户
*/
public static final String USER = "User";
/**
* 密码
*/
public static final String PASSWORD = "Password";
/**
* 所有的XML配置文件的存储位置,存储的对象为URL
*/
private static ArrayList resource = new ArrayList();
/**
* 存储所有的数据库配置.
* 所有的数据库存储位置格式为:
* 对象为Properties对象
* 而properties对象里包含:
* {@link #DRIVER DRIVER},{@link #URL URL},{@link #USER USER},{@link #PASSWORD PASSWORD},{@link #VIEW VIEW},{@link #TYPE TYPE}六个属性分别对应
* 数据库的驱动,边接字符串,用户名,密码,视图,类型
* 或者
* {@link #JNDI JNDI},{@link #VIEW VIEW},{@link #TYPE TYPE}
* JNDI名,视图,类型
* 类型是以下的一个
* {@link #WORKFLOW WORKFLOW}
* {@link #BRAND BRAND}
* {@link #STATUS STATUS}
* {@link #SWITCH SWITCHER}
* {@link #WORKUNIT WORKUNIT}
* {@link #USER USER}
*/
private static ArrayList prop = new ArrayList();
/**
* 获取所有的XML资源
* @return XML资源泉
*/
public static ArrayList getXmlResource()
{
return resource;
}
/**
* 获取所有的数据库连接属性
* @return 数据库链接属性
*/
public static ArrayList getConnection()
{
return prop;
}
/**
* 增加XML资源
* @param source XML资源
*/
public static void addResource(String source)
{
synchronized(resource)
{
resource.add(source);
}
}
/**
* 增加数据库链接属性
* @param pro 数据库链接属性
*/
public static void addDataProperty(Properties pro)
{
synchronized(prop)
{
prop.add(pro);
}
}
}
==============Input.java============
/*
* Created on 2003-11-20
*
* Create By 方志文
* email:fswan@yeah.net
*/
package org.fswan;
/**
* @author 方志文
*
* 输入数据的接口,作为主类的数据输入式,
* 现可以从xml,HttpServletRequest和JSPUpload获取数据
*
*/
public inte易做图ce Input {
/**
* 获取参数的值,如果无该参数则返回null,如果该参数对应多个值则返回其第一个值
* @param parameter 参数
* @return 值
*/
public String getParameter(String parameter);
/**
* 获取参数的值列表
* @param parameter 参数
* @return 值
*/
public String[] getParameterValues(String parameter);
/**
* 获取参数名的列表
* @return 所有的参数的名
*/
public String[] getParameterNames();
/**
* 获取数据源
* @return 数据源
*/
public Object getSource();
/**
* 设置参数,如果已存在该参数,则原来的作废
* @param parameter 参数
* @param value 值
*/
public void setParameter(String parameter,String value);
/**
* 设置参数,如果已存在该参数,则把原来的作废
* @param parameter 参数
* @param values 值
*/
public void setParameter(String parameter,String[] values);
/**
* 添加参数,如果已存在该参数,则把该值添加到原值后成数组
* @param parameter 参数
* @param value 值
*/
public void addParameter(String parameter,String value);
/**
* 添加参数(多个值),如果已存在该参数,则把该值添加到原值后成数组
* @param parameter 参数
* @param values 值
*/
public void addParameter(String parameter,String[] values);
}
================ManualInput.java ==============
package org.fswan;
public class ManualInput extends AbstractInput
{
/* (non-Javadoc)
* @see org.fswan.Input#getSource()
*/
public Object getSource()
{
return null;
}
}
===================Identity.java==========
package org.fswan;
import org.fswan.workflow.exception.IdentityMappingError;
/**
* @author Administrator
* 这个接是一个标识,用来唯一标识所有的工作流,状态,切换开关,分枝操作
*/
public inte易做图ce Identity
{
/**
* 工作流的标识
*/
public static final int WORKFLOW = 0;
/**
* 分枝操作的标识
*/
public static final int BRAND = 1;
/**
* 状态的标识
*/
public static final int STATUS =2;
/**
* 切换开关的标识
*/
public static final int SWITCH = 3;
/**
* 用户的标识
*/
public static final int USER = 4;
/**
* 工作单元
*/
public static final int WORKUNIT = 5;
/**
* 角色
*/
public static final int ROLE = 6;
/**
* 群组
*/
public static final int GROUP = 7;
public static final int VIEWCLASS = 255;
public static final String XMLWORKFLOW = "XMLWorkFlow";
public static final String XMLBRAND = "XMLBrand";
public static final String XMLSWITCHER = "XMLSwitcher";
public static final String XMLSTATUS = "XMLStatus";
public static final String XMLWORKUNIT = "XMLWorkUnit";
public static final String DBWORKFLOW = "DBWorkFlow";
public static final String DBBRAND = "DBBrand";
public static final String DBSWITCHER = "DBSwitcher";
public static final String DBSTATUS = "DBStatus";
public static final String DBWORKUNIT = "DBWorkUnit";
public static final String XMLUSER = "XMLUser";
public static final String XMLGROUP = "XMLGroup";
public static final String XMLROLE = "XMLRole";
/**
* 获取标识的类型
* 是以下常量中的一个
* {@link #WORKFLOW WORKFLOW}
* {@link #BRAND BRAND}
* {@link #STATUS STATUS}
* {@link #SWITCH SWITCH}
* {@link #USER USER}
* @return 标识的类型
*/
public int getIdType();
/**
* 获取标识的名称
* @return 标识的名称
*/
public String getIdName();
/**
* 返回该Identity的子类型,该子类型是给newInstance使用的
* @return 子类型
*/
public String getSubType();
/**
* 通过ID生成实例
* @return 实例
* @throws IdentityMappingError 找不到生器异常
*/
public Object newInstance() throws IdentityMappingError;
}
=============IdentityImpl.java===============
package org.fswan;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import org.fswan.workflow.exception.IdentityMapHadExist;
import org.fswan.workflow.exception.IdentityMappingError;
/**
* 唯一标识符类.
* 由唯一标识符可以调用相应的类来生成相对应的接口生成相对应的实例
* 不同种类标识符生成相对应的实例的类在{@link map}中进行映射定义.
* 可调用静态方法register进行注册.
*/
public class IdentityImpl implements Identity
{
private String name;
private int type;
private String subType;
/**
* 从ID到类的映射表
*/
private static Hashtable map = new Hashtable();
public IdentityImpl(int type,String subType,String name)
{
this.type = type;
this.subType=subType;
this.name = name;
}
public IdentityImpl genIdentity(int type)
{
SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String name = f.format(new Date());
return new IdentityImpl(type,"",name);
}
/* (non-Javadoc)
* @see org.fswan.Identity#getIdName()
*/
public String getIdName()
{
return name;
}
/* (non-Javadoc)
* @see org.fswan.Identity#getIdType()
上一个:文档对象模型
下一个:正则表达式的应用实例通俗说明