in src/main/java/com/atlassian/uwc/ui/ConverterEngine.java [594:641]
public Converter getConverterFromString(String converterStr) {
Converter converter;
int equalLoc = converterStr.indexOf("=");
String key = converterStr.substring(0, equalLoc);
String value = converterStr.substring(equalLoc + 1);
try {
if (key.indexOf(CONVERTERTYPE_CLASS) >= 0) {
converter = getConverterClassFromCache(value);
} else if (key.indexOf(CONVERTERTYPE_PERL) >= 0) {
converter = PerlConverter.getPerlConverter(value);
converter.setValue(value);
} else if (key.indexOf(CONVERTERTYPE_JAVAREGEXTOKEN) >= 0) {
converter = JavaRegexAndTokenizerConverter.getConverter(value);
converter.setValue(value);
} else if (key.indexOf(CONVERTERTYPE_JAVAREGEX) >= 0) {
converter = JavaRegexConverter.getConverter(value);
converter.setValue(value);
} else if (key.indexOf(CONVERTERTYPE_TWIKICLEANER) >= 0) {
//converter = getConverterClassFromCache(value);
converter = TWikiRegexConverterCleanerWrapper.getTWikiRegexConverterCleanerWrapper(value);
converter.setValue(value);
} else {
String note = "Converter ignored -- name pattern not recognized: " + key;
this.errors.addError(Feedback.BAD_PROPERTY, note, true);
log.error(note);
return null;
}
converter.setProperties(this.miscProperties);
if (converter instanceof RequiresEngineConverter) {
((RequiresEngineConverter) converter).setEngine(this);
}
} catch (ClassNotFoundException e) {
this.errors.addError(Feedback.BAD_CONVERTER_CLASS, "Converter ignored -- the Java class " + value + " was not found", true);
return null;
} catch (IllegalAccessException e) {
this.errors.addError(Feedback.BAD_CONVERTER_CLASS, "Converter ignored -- there was a problem creating a converter object", true);
return null;
} catch (InstantiationException e) {
this.errors.addError(Feedback.BAD_CONVERTER_CLASS, "Converter ignored -- there was a problem creating the Java class " + value, true);
return null;
} catch (ClassCastException e) {
this.errors.addError(Feedback.BAD_CONVERTER_CLASS, "Converter ignored -- the Java class " + value +
" must implement the " + Converter.class.getName() + " interface!", true);
return null;
}
converter.setKey(key);
return converter;
}