Caught a stray rename miss. Added more generic support for renaming old Java classes so that extensions could remain backward-compatible, too
git-svn-id: http://google-refine.googlecode.com/svn/trunk@1297 7d457c2a-affb-35e4-300a-418c747d4874
This commit is contained in:
parent
289f46bbf5
commit
a112ffa9ab
@ -2,7 +2,9 @@ package com.google.refine;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
@ -221,13 +223,57 @@ public class RefineServlet extends Butterfly {
|
|||||||
return s_singleton.registerOneCommand(module, commandName, commandObject);
|
return s_singleton.registerOneCommand(module, commandName, commandObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static private class ClassMapping {
|
||||||
|
final String from;
|
||||||
|
final String to;
|
||||||
|
|
||||||
|
ClassMapping(String from, String to) {
|
||||||
|
this.from = from;
|
||||||
|
this.to = to;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static final private List<ClassMapping> classMappings = new ArrayList<ClassMapping>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a mapping that determines how old class names can be updated to newer
|
||||||
|
* class names. Such updates are desirable as the Java code changes from version
|
||||||
|
* to version. If the "from" argument ends with *, then it's considered a prefix;
|
||||||
|
* otherwise, it's an exact string match.
|
||||||
|
*
|
||||||
|
* @param from
|
||||||
|
* @param to
|
||||||
|
*/
|
||||||
|
static public void registerClassMapping(String from, String to) {
|
||||||
|
classMappings.add(new ClassMapping(from, to.endsWith("*") ? to.substring(0, to.length() - 1) : to));
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
registerClassMapping("com.metaweb.*", "com.google.*");
|
||||||
|
registerClassMapping("com.google.gridworks.*", "com.google.refine.*");
|
||||||
|
}
|
||||||
|
|
||||||
|
static final private Map<String, String> classMappingsCache = new HashMap<String, String>();
|
||||||
static public Class<?> getClass(String className) throws ClassNotFoundException {
|
static public Class<?> getClass(String className) throws ClassNotFoundException {
|
||||||
if (className.startsWith("com.metaweb.")) {
|
String toClassName = classMappingsCache.get(className);
|
||||||
className = "com.google." + className.substring("com.metaweb.".length());
|
if (toClassName == null) {
|
||||||
|
toClassName = className;
|
||||||
|
|
||||||
|
for (ClassMapping m : classMappings) {
|
||||||
|
if (m.from.endsWith("*")) {
|
||||||
|
if (toClassName.startsWith(m.from.substring(0, m.from.length() - 1))) {
|
||||||
|
toClassName = m.to + toClassName.substring(m.from.length() - 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (m.from.equals(toClassName)) {
|
||||||
|
toClassName = m.to;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
classMappingsCache.put(className, toClassName);
|
||||||
}
|
}
|
||||||
if (className.startsWith("com.google.gridworks.")) {
|
|
||||||
className = "com.google.refine." + className.substring("com.google.gridworks.".length());
|
return Class.forName(toClassName);
|
||||||
}
|
|
||||||
return Class.forName(className);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -121,7 +121,7 @@ function initializeUI(uiState) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Refine.setTitle = function(status) {
|
Refine.setTitle = function(status) {
|
||||||
var title = theProject.metadata.name + " - Gridworks";
|
var title = theProject.metadata.name + " - Google Refine";
|
||||||
if (status) {
|
if (status) {
|
||||||
title = status + " - " + title;
|
title = status + " - " + title;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user