public BlockUmlBuilder( List<String> config, String charset, Defines defines, Reader reader, File newCurrentDir, String desc) throws IOException { Preprocessor includer = null; try { reader2 = new UncommentReadLine(new ReadLineReader(reader, desc)); includer = new Preprocessor(reader2, charset, defines, newCurrentDir); init(includer, config); } finally { if (includer != null) { includer.close(); usedFiles = includer.getFilesUsed(); } } }
private void init(Preprocessor includer, List<String> config) throws IOException { CharSequence2 s = null; List<CharSequence2> current2 = null; boolean paused = false; int startLine = 0; while ((s = includer.readLine()) != null) { if (StartUtils.isArobaseStartDiagram(s)) { current2 = new ArrayList<CharSequence2>(); paused = false; startLine = includer.getLineNumber(); } if (StartUtils.isArobasePauseDiagram(s)) { paused = true; reader2.setPaused(true); } if (current2 != null && paused == false) { current2.add(s); } else if (paused) { final CharSequence2 append = StartUtils.getPossibleAppend(s); if (append != null) { current2.add(append); } } if (StartUtils.isArobaseUnpauseDiagram(s)) { paused = false; reader2.setPaused(false); } if (StartUtils.isArobaseEndDiagram(s) && current2 != null) { current2.addAll(1, convert(config, s.getLocation())); blocks.add(new BlockUml(current2, startLine)); current2 = null; reader2.setPaused(false); } } }