public Map<Node, Collection<SourceStructure>> getSourceStructures() { if (cachedSourceStructures != null) return cachedSourceStructures; parseCompilationUnit(); ListMultimap<Node, SourceStructure> map = LinkedListMultimap.create(); org.parboiled.Node<Node> pNode = parsingResult.parseTreeRoot; buildSourceStructures(pNode, null, map); Map<Node, Collection<SourceStructure>> result = map.asMap(); for (Collection<SourceStructure> structures : result.values()) { for (SourceStructure structure : structures) { structure.setPosition(new Position( mapPosition(structure.getPosition().getStart()), mapPosition(structure.getPosition().getEnd()))); } } return cachedSourceStructures = result; }
public Map<Node, Collection<SourceStructure>> getSourceStructures() { if (cachedSourceStructures != null) return cachedSourceStructures; parseCompilationUnit(); ListMultimap<Node, SourceStructure> map = LinkedListMultimap.create(); org.parboiled.Node<Node> pNode = parsingResult.parseTreeRoot; buildSourceStructures(pNode, null, map); Map<Node, Collection<SourceStructure>> result = map.asMap(); for (Collection<SourceStructure> structures : result.values()) { for (SourceStructure structure : structures) { structure.setPosition(new Position( mapPosition(structure.getPosition().getStart()), mapPosition(structure.getPosition().getEnd()))); } } return cachedSourceStructures = result; }
public Map<Node, Collection<SourceStructure>> getSourceStructures() { if (cachedSourceStructures != null) return cachedSourceStructures; parseCompilationUnit(); ListMultimap<Node, SourceStructure> map = LinkedListMultimap.create(); org.parboiled.Node<Node> pNode = parsingResult.parseTreeRoot; buildSourceStructures(pNode, null, map); Map<Node, Collection<SourceStructure>> result = map.asMap(); for (Collection<SourceStructure> structures : result.values()) { for (SourceStructure structure : structures) { structure.setPosition(new Position( mapPosition(structure.getPosition().getStart()), mapPosition(structure.getPosition().getEnd()))); } } return cachedSourceStructures = result; }