[仗贱天涯]Code-AuthorParser
来源:互联网 发布:淘宝商城时尚女鞋 编辑:程序博客网 时间:2024/04/28 12:14
/* * 创建日期 2005-11-13 * * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - Java - 代码样式 - 代码模板 */package com.ty.parse;import java.util.ArrayList;import java.util.List;import com.ty.cc.Lexer;import com.ty.cfg.TYConfig;import com.ty.cfg.XMLNode;import com.ty.domain.Author;import com.ty.util.Logger;/** * @author Administrator * * 根据配置文档解析用户信息 */public class AuthorParser { private static AuthorParser self=null; private List fieldList=new ArrayList(); private AuthorParser(){ init(); } public int getFieldCount(){ return fieldList.size(); } public AuthorField getAuthorField(int i){ return (AuthorField)fieldList.get(i); } private void init(){ XMLNode root=TYConfig.getInstance().getNode("/ty/user-detail"); XMLNode fieldNode; AuthorField field; for(int i=0,n=root.getChildNodeCount();iname="+name+", next="+skip+", return="+re; } public boolean matchTag(String value){ return value.matches(".*"+tag+".*"); } public String pathMatchValue(Lexer lexer,String currentToken){ return vp.pathMatchValue(lexer,currentToken); } } //配置解析执行者 class ReturnValueParser{ protected AuthorField af; public ReturnValueParser(AuthorField af){ this.af=af; } public String pathMatchValue(Lexer lexer,String currentToken){ String ww=null; if(af.skip>0){ lexer.skipToken(af.skip); ww=lexer.nextToken(); }else{ ww=currentToken; } ww=trimAndTurn(trimAndTurn(ww)); return doReturn(ww); } //删除前面空格/t/n并翻转字符串,调用该函数两次 private String trimAndTurn(String stmt){ boolean begined=false; int from=0; char[] chs=stmt.toCharArray(); int m=chs.length; for(int i=0;i