开发STAF扩展插件

开发STAF插件,主要是实现STAFServiceInterfaceLevel30接口,实现init、term、acceptRequest三个方法即可,根据名称可以得知:一个为初始化方法,一个为销毁方法,一个为处理请求方法。

 

举个例子,我们可以在init中初始化一个handle,然后再term中销毁这个handle  
init:  
try {
	fServiceName = info.name;
	fHandle = new STAFHandle("STAF/Service/" + info.name);
} catch (STAFException e) {
	return new STAFResult(STAFResult.STAFRegistrationError, e
					.toString());
}

term: 
try {
	unregisterHelpData(kDeviceInvalidSerialNumber);
	// Un-register the service handle
	fHandle.unRegister();
} catch (STAFException ex) {
	return new STAFResult(STAFResult.STAFRegistrationError, ex
					.toString());
} 

在init中,我们还可以使用STAFCommandParser来定义Request接收的参数列表情况,如下: 
 
// QUERY parser
 fQueryParser = new STAFCommandParser();
 // STAFCommandParser.VALUENOTALLOWED 表示请求时不能给 QUERY传一个值
 fQueryParser.addOption("QUERY", 1,
                                    STAFCommandParser.VALUENOTALLOWED);   
 //STAFCommandParser.VALUEREQUIRED      表示请求时可以给 NAME传一个值,但不是必须的
 fQueryParser.addOption("NAME", 1,
                                    STAFCommandParser.VALUEALLOWED);
//STAFCommandParser.VALUEREQUIRED      表示请求时必须给 EDUCATION传一个值
 fQueryParser.addOption("EDUCATION", 1,
                                    STAFCommandParser.VALUEREQUIRED);
 // 这个表明你需要NAME 和 EDUCATION      , 但不能两个都有
 fQueryParser.addOptionGroup("NAME      EDUCATION", 0, 1);
 // 如果你指定了 NAME      或者 EDUCATION , QUERY是必须的
fQueryParser.addOptionNeed("NAME      EDUCATION", "QUERY");
 // 如果你指定了QUERY, 需要NAME      或者 EDUCATION
fQueryParser.addOptionNeed("QUERY", "NAME      EDUCATION"); 
 

初始化函数以及销毁函数基本上写完了,剩下就是acceptRequest函数,处理请求函数 

此函数接收RequestInfo参数,通过获取request来获取请求的类型,以便来判断如何处理请求

String lowerRequest = info.request.toLowerCase();
StringTokenizer requestTokenizer = new StringTokenizer(lowerRequest);
String request = requestTokenizer.nextToken();
// Call the appropriate method to handle the command
if (request.equals("run"))
	return handleRun(info);
else if (request.equals("helloworld"))
	return handleHello(info);
else {
	return new STAFResult(STAFResult.InvalidRequestString,
					"Unknown widebright Service Request: " + lowerRequest);
} 

在处理函数中,可以使用init中初始化的fQueryParser来转化Request请求,这样可以对传入的参数进行检查 

获取传入参数后就可以根据自己的想法来处理了,在最终,你需要返回STAFResult来作为处理的结果.

当你的扩展类完成后,下面一步就是打包,你可以参考“Ant打包部署STAF插件”来进行部署,此处不再详说

示例下载:http://download.csdn.net/detail/sogouauto/8556687


转载请注明:http://blog.csdn.net/sogouauto

探索测试奥义,交流测试技术,欢迎关注“搜狗测试”


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值