package com.qxueyou.scc.exercise.service.impl.parser; import java.util.List; import com.qxueyou.scc.exercise.service.impl.Node; import com.qxueyou.scc.exercise.service.impl.ParseResult; import com.qxueyou.scc.exercise.service.impl.Parser; import com.qxueyou.scc.exercise.service.impl.node.Doc; import com.qxueyou.scc.exercise.service.impl.node.ItemType; /** * Îĵµ½âÎöÆ÷ * @author µÂ»¢ * */ public class DocParser extends Parser { @Override public ParseResult parse(Node node, String str) { return parse((Doc)node,str); } /** * ½âÎö Doc * @param doc * @param str * @return */ private ParseResult parse(Doc doc, String str) { if(str.contains("µ¥Ñ¡")||str.contains("µ¥ÏîÑ¡Ôñ")){ return tryNextNodeParser(doc,ItemType.TYPE_SINGLE); } if(str.contains("¶àÑ¡")||str.contains("¶àÏîÑ¡Ôñ")){ return tryNextNodeParser(doc,ItemType.TYPE_MULTI); } if(str.contains("ÅжÏ")){ return tryNextNodeParser(doc,ItemType.TYPE_TRUE_OR_FALSE); } return new ParseResult(false,ParseResult.STEP_CUR,null); } private ParseResult tryNextNodeParser(Doc doc,String type) { List children = doc.getChildren(); Node child = null; if(children!=null && !children.isEmpty()){ child = doc.getChild("TYPE",type); } if(child==null){ child = new ItemType(type); doc.addNode(child); } return new ParseResult(false,ParseResult.STEP_NEXT,child); } }