content: package com.alibaba.smart.framework.engine.bpmn.assembly.multi.instance.parser;
  
  import javax.xml.stream.XMLStreamException;
  import javax.xml.stream.XMLStreamReader;
  
  import com.alibaba.smart.framework.engine.bpmn.assembly.expression.ConditionExpressionImpl;
  import com.alibaba.smart.framework.engine.bpmn.assembly.multi.instance.CompletionCondition;
  import com.alibaba.smart.framework.engine.extension.annotation.ExtensionBinding;
  import com.alibaba.smart.framework.engine.extension.constant.ExtensionConstant;
  import com.alibaba.smart.framework.engine.model.assembly.ConditionExpression;
  import com.alibaba.smart.framework.engine.xml.parser.AbstractElementParser;
  import com.alibaba.smart.framework.engine.xml.parser.ParseContext;
  import com.alibaba.smart.framework.engine.xml.util.XmlParseUtil;
  
  /**
   * Created by 高海军 帝奇 74394 on 2017 September  21:26.
   */
  @ExtensionBinding(group = ExtensionConstant.ELEMENT_PARSER, bindKey = CompletionCondition.class)
  public class CompletionConditionParser extends AbstractElementParser<CompletionCondition>
  {
  
  
      @Override
      public Class<CompletionCondition> getModelType() {
          return CompletionCondition.class;
      }
  
      @Override
      public CompletionCondition parseElement(XMLStreamReader reader, ParseContext context) throws XMLStreamException {
          CompletionCondition completionCondition = new CompletionCondition();
  
          String expressionType = XmlParseUtil.getString(reader, "group");
          String action = XmlParseUtil.getString(reader, "action");
  
          completionCondition.setAction(action);
          String content = reader.getElementText();
          if (null != content) {
              ConditionExpression expression = new ConditionExpressionImpl();
              expression.setExpressionContent(content);
              expression.setExpressionType(expressionType);
              completionCondition.setExpression(expression);
          }
          return completionCondition;
      }
  }
  