class MakeDeclaredNamesUnique {
/**
* Walks the stack of name maps and finds the replacement name for the
* current scope.
*/
private String getReplacementName(String oldName) {
for (Renamer names : nameStack) {
String newName = names.getReplacementName(oldName);
if (newName != null) {
return newName;
}
}
return null;
}
}
class MakeDeclaredNamesUnique.Renamer {
/**
* @return A replacement name, null if oldName is unknown or should not
* be replaced.
*/
String getReplacementName(String oldName);
}
class MakeDeclaredNamesUnique.ContextualRenamer {
@Override
public String getReplacementName(String oldName) {
return declarations.get(oldName);
}
}
class MakeDeclaredNamesUnique.InlineRenamer {
@Override
public String getReplacementName(String oldName) {
return declarations.get(oldName);
}
}
|