package fr.adrienbrault.idea.symfony2plugin.templating.variable.collector; import com.jetbrains.twig.TwigFile; import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigTypeResolveUtil; import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollector; import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollectorParameter; import java.util.*; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class FileDocVariableCollector implements TwigFileVariableCollector { @Override public void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) { if(!(parameter.getElement().getContainingFile() instanceof TwigFile)) { return; } variables.putAll(convertHashMapToTypeSet(TwigTypeResolveUtil.findFileVariableDocBlock((TwigFile) parameter.getElement().getContainingFile()))); } private static Map<String, Set<String>> convertHashMapToTypeSet(Map<String, String> hashMap) { HashMap<String, Set<String>> globalVars = new HashMap<>(); for(final Map.Entry<String, String> entry: hashMap.entrySet()) { globalVars.put(entry.getKey(), new HashSet<>(Collections.singletonList(entry.getValue()))); } return globalVars; } }