package org.overture.codegen.vdm2cpp;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class DependencyManager
{
private Map<String, List<String>> mapping;
private Map<String, ExtDependency> ext_map;
private String self_name;
public DependencyManager(String class_name)
{
self_name = class_name;
mapping = new HashMap<String ,List<String> >();
ext_map = new HashMap<String, ExtDependency>();
}
public void addTargetLanguageType(String name,String namespace, String include)
{
if( !ext_map.containsKey(name))
{
ext_map.put(name, new ExtDependency(name, namespace, include));
}
}
public void addClassType(String name,String type)
{
if(name.equals(self_name))
{
return;
}
if(mapping.containsKey(name))
{
mapping.get(name).add(type);
}
else
{
LinkedList<String> e = new LinkedList<String>();
e.add(type);
mapping.put(name,e);
}
};
public Set<String> getDependeciesVDM()
{
return mapping.keySet();
}
public Collection<ExtDependency> getDependenciesTargetLanguage()
{
return ext_map.values();
}
}