分享
 
 
 

权限组件所缺的文件

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

原意是给大家看一下结构,没想大家都那么关心,我现在把所有的代码贴上来,谢谢大家关心.

唉,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 interface 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 interface 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()

*/

public int getIdType()

{

return type;

}

public String getSubType()

{

return subType;

}

public String toString()

{

return "["+type+":"+name+"]";

}

public boolean equals(Object obj)

{

if(obj instanceof Identity)

{

return this.getIdType()==((Identity)obj).getIdType()

&& getIdName().equals(((Identity)obj).getIdName());

}

return false;

}

/**

* 查找相应对的对象

* @return 实例化后的对象

* @throws IdentityMappingError 映射实现不了,

* 可能是因为注册的类不存在或者无法实例化该类,或该类不是ImplementIdentity

*/

public Object newInstance() throws IdentityMappingError

{

try

{

if(map.get(subType)==null)return null;

ImplementIdentity ids = (ImplementIdentity)Class.forName(map.get(subType).toString()).newInstance();

return ids.newInstance(this);

} catch (InstantiationException e)

{

e.printStackTrace();

} catch (IllegalAccessException e)

{

e.printStackTrace();

} catch (ClassNotFoundException e)

{

e.printStackTrace();

}

throw new IdentityMappingError();

}

/**

* 注册标识种类到生成实例类的映射

* @param type 类型

* @param obj 相对应的类名

* @throws IdentityMapHadExist 异常,(该类型已注册)

*/

public static void register(String subType,String obj) throws IdentityMapHadExist

{

if(map.containsKey(subType)) throw new IdentityMapHadExist(subType);

map.put(subType,obj);

}

static

{

try

{

IdentityImpl.register(Identity.DBBRAND,"org.fswan.workflow.DBWrokFlow");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.DBSTATUS,"org.fswan.workflow.DBStatus");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.DBSWITCHER,"org.fswan.workflow.DBSwitcher");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.DBWORKFLOW,"org.fswan.workflow.DBWrokFlow");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.DBWORKUNIT,"org.fswan.workflow.DBWorkUnit");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLBRAND,"org.fswan.workflow.XMLBrand");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLGROUP,"org.fswan.permission.XMLGroup");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLROLE,"org.fswan.permission.XMLRole");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLSTATUS,"org.fswan.workflow.XMLStatus");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLSWITCHER,"org.fswan.workflow.XMLSwitcher");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLUSER,"org.fswan.permission.XMLUser");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLWORKFLOW,"org.fswan.workflow.XMLWorkFlow");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

try

{

IdentityImpl.register(Identity.XMLWORKUNIT,"org.fswan.workflow.XMLWorkUnit");

} catch (IdentityMapHadExist e)

{

e.printStackTrace();

}

}

}

==================ImplementIdentity.java=============

package org.fswan;

/**

* @author swan

* 通过ID实例化相应的对象.

* 当用户自己实现User,Role,Group,Brand等对象时,通过ID来查找相对应的对象,

* 在类IdentityImpl对象中根据注册各种Identity类型对应的InstanceIdentity对象

* 来实例化对象.

* 注意:该接口的子类的构造方法一定是PUBLIC且不带任何参数.

*/

public interface ImplementIdentity

{

/**

* 实例化ID相对对应的对象.

* @param identity 要实例化的对象的ID

* @return 对象

*/

public Object newInstance(Identity identity);

}

===========CantFoundIDException.java-==============

package org.fswan.workflow.exception;

import org.fswan.Identity;

/**

* @author Administrator

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

public class CantFoundIDException extends Exception

{

public CantFoundIDException(Identity id)

{

super("Can't Found ID:["+id.getIdType()+":"+id.getIdName()+"]");

}

}

==================IdentityMapHadExist.java============

package org.fswan.workflow.exception;

/**

* @author swan

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

public class IdentityMapHadExist extends Exception

{

public IdentityMapHadExist(String subType)

{

super("Mapping Had Exist:"+subType);

}

}

==================IdentityMappingError.java============

package org.fswan.workflow.exception;

/**

* @author swan

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

public class IdentityMappingError extends Exception

{

public IdentityMappingError()

{

super("The Mapping Class is not InstanceIdentity.");

}

}

=================TypeCastException.java ============

package org.fswan.workflow.exception;

import org.fswan.db.Field;

/**

* 类型转换异常,当从字符串转成特定类型出错时抛出

*/

public class TypeCastException extends Exception

{

/**

* 构造函数

* @param field 字段

* @param str 字符串值

*/

public TypeCastException(Field field,String str)

{

super(str+" cast to "+field + " Error");

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有