package net.sourceforge.retroweaver.translator;
public class NameSpace {
public NameSpace(String oldPrefix, String newPrefix) {
if (oldPrefix == null || newPrefix == null) {
throw new IllegalArgumentException();
}
this.oldPrefix = oldPrefix.replace('.', '/');
this.newPrefix = newPrefix.replace('.', '/');
}
private final String oldPrefix;
private final String newPrefix;
public String getOldPrefix() {
return oldPrefix;
}
public String getNewPrefix() {
return newPrefix;
}
public String toString() {
return "[" + oldPrefix + ", " + newPrefix + "]";
}
/**
* Returns the translated mirror class name for <code>class_</code> or
* null if the namespace is not applicable
*
* @param class_ the class name to translate
* @return the translated name or null
*/
public String getMirrorClassName(final String class_) {
if (oldPrefix.length() == 0) {
return newPrefix + '/' + class_;
}
if (!class_.startsWith(oldPrefix)) {
return null;
}
return class_.replaceFirst(oldPrefix, newPrefix);
}
}