formparser.java

来自「一个java工作流引擎」· Java 代码 · 共 71 行

JAVA
71
字号
package org.jbpm.web.formgen;

import java.util.*;

public class FormParser {
  
  List formElements = new ArrayList();
  int running = 0;
  int startIndex = 0;
  int endIndex = 0;
  String formText;

  public static List parseForm( String formText ) {
    FormParser parser = new FormParser(formText);
    parser.parse();    
    return parser.formElements;
  }
  
  FormParser(String formText) {
    this.formText = formText;
  }
  
  void initialize() {
    formElements = new ArrayList();
    running = 0;
    startIndex = 0;
    endIndex = 0;
  }
  
  void addTextElement() {
    if (running == -1) {
      endIndex = formText.length();
    }
    else {
      endIndex = running;
      running = running + 2;
    }
    if (startIndex < endIndex) {
      formElements.add(new TextElement(formText.substring(startIndex, endIndex)));
    }
    startIndex = running;
  }
  
  void addParameterElement() {
    running = formText.indexOf("}", running);
    endIndex = running;
    if (startIndex < endIndex) {
      formElements.add(new ParameterElement(formText.substring(startIndex, endIndex)));
    }
    running = running + 1;
    startIndex = running;
  }
  
  void parse() {
    initialize();
    while (true) {
      running = formText.indexOf("${", running);
      if (running == -1) {
        addTextElement();
        return;
      }
      else {
        addTextElement();
        addParameterElement();
      }
    }
    
  }
  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?