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; }
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; }