private Object convertOrNull(String arg, Class ctorArgClass, String formatterString) throws IOException, URISyntaxException { if (arg == null) { if (ctorArgClass.equals(Appendable.class)) { return defaultOutOrFailIfAlreadyUsed(formatterString); } else { return null; } } if (ctorArgClass.equals(URI.class)) { return new URI(arg); } if (ctorArgClass.equals(URL.class)) { return toURL(arg); } if (ctorArgClass.equals(File.class)) { return new File(arg); } if (ctorArgClass.equals(String.class)) { return arg; } if (ctorArgClass.equals(Appendable.class)) { return new UTF8OutputStreamWriter(new URLOutputStream(toURL(arg))); } return null; }