package org.archstudio.graphlayout.core; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class AliasTable { protected Map<String, String> truenameToAlias = null; protected Map<String, String> aliasToTruename = null; protected int counter = 0; public AliasTable() { truenameToAlias = Collections.synchronizedMap(new HashMap<String, String>()); aliasToTruename = Collections.synchronizedMap(new HashMap<String, String>()); } public String getAlias(String truename) { String alias = truenameToAlias.get(truename); if (alias == null) { alias = generateAlias(); truenameToAlias.put(truename, alias); aliasToTruename.put(alias, truename); } return alias; } public String getTruename(String alias) { return aliasToTruename.get(alias); } public boolean hasAlias(String truename) { return truenameToAlias.containsKey(truename); } public boolean hasTruename(String alias) { return aliasToTruename.containsKey(alias); } public void clear() { truenameToAlias.clear(); aliasToTruename.clear(); } protected String generateAlias() { return "elt" + counter++; } }