示例#1
0
  private Context createContext(Lines lines) {
    // Primeira linha tem que ser context
    Line firstLine = lines.get(0);
    if (!firstLine.getLineType().equals(LineType.CONTEXT)) {
      throw new TxtException(PRIMEIRA_LINHA_DEVE_SER_CONTEXT);
    }
    ContextConverter converter = new ContextConverter();
    Context context = converter.asObject(null, firstLine);

    // Demais linhas
    for (Line line : lines.getLines()) {
      if (line.getLineType().equals(LineType.CONSTANT)) {
        addConst(context, line);
      } else if (line.getLineType().equals(LineType.VARIABLE)) {
        addVar(context, line);
      } else if (line.getLineType().equals(LineType.DOMAIN)) {
        addDomain(context, line);
      } else if (line.getLineType().equals(LineType.METADATA)) {
        addMetadata(context, line);
      } else if (line.getLineType().equals(LineType.SCOPE)) {
        addScope(context, line);
      } else if (line.getLineType().equals(LineType.MESSAGE)) {
        addMessage(context, line);
      } else if (line.getLineType().equals(LineType.RULE)) {
        addRule(context, line);
      } else if (line.getLineType().equals(LineType.PROCESS)) {
        addProcess(context, line);
      }
    }
    // context.freeze(); // a partir de agora o Context é readonly!!
    return context;
  }
示例#2
0
  public List<String> getVariables(String filePath, int lineNumber) {
    Lines lines = files.get(filePath);
    if (lines == null) {
      return null;
    }

    Variables variables = lines.get(lineNumber);
    return variables;
  }