Stop using deprecated CmdLineException constructors

Instead of taking a String, the constructors now take a Localizable
and a variable list of format arguments.

Introduce a new Format helper class in CLIText, which implements the
Localizable interface, and use it in place of raw Strings.

Change-Id: I241eda16e242293ceb17b3c85ae5df85bd37c658
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
David Pursehouse 2017-09-05 20:27:32 +09:00 committed by Matthias Sohn
parent e7c2ae052b
commit 72b3587d42
8 changed files with 75 additions and 32 deletions

View File

@ -86,7 +86,8 @@ protected void run() throws Exception {
} else {
if (verify && commits.size() > 1) {
final CmdLineParser clp = new CmdLineParser(this);
throw new CmdLineException(clp, CLIText.get().needSingleRevision);
throw new CmdLineException(clp,
CLIText.format(CLIText.get().needSingleRevision));
}
for (final ObjectId o : commits) {

View File

@ -45,14 +45,47 @@
package org.eclipse.jgit.pgm.internal;
import java.text.MessageFormat;
import java.util.Locale;
import org.eclipse.jgit.nls.NLS;
import org.eclipse.jgit.nls.TranslationBundle;
import org.kohsuke.args4j.Localizable;
/**
* Translation bundle for JGit command line interface
*/
public class CLIText extends TranslationBundle {
/**
* Formats text strings using {@code Localizable}.
*
*/
public static class Format implements Localizable {
final String text;
Format(String text) {
this.text = text;
}
@Override
public String formatWithLocale(Locale locale, Object... args) {
// we don't care about Locale for now
return format(args);
}
@Override
public String format(Object... args) {
return MessageFormat.format(text, args);
}
}
/**
* @param text
* the text to format.
* @return a new Format instance.
*/
public static Format format(String text) {
return new Format(text);
}
/**
* @return an instance of this translation bundle

View File

@ -119,20 +119,25 @@ public int parseArguments(final Parameters params) throws CmdLineException {
try {
id = clp.getRepository().resolve(name);
} catch (IOException e) {
throw new CmdLineException(clp, e.getMessage());
throw new CmdLineException(clp, CLIText.format(e.getMessage()));
}
if (id == null)
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
final CanonicalTreeParser p = new CanonicalTreeParser();
try (ObjectReader curs = clp.getRepository().newObjectReader()) {
p.reset(curs, clp.getRevWalk().parseTree(id));
} catch (MissingObjectException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
} catch (IncorrectObjectTypeException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
} catch (IOException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage()));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().cannotReadBecause), name,
e.getMessage());
}
setter.addValue(p);

View File

@ -45,7 +45,6 @@
package org.eclipse.jgit.pgm.opt;
import java.io.IOException;
import java.text.MessageFormat;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.pgm.internal.CLIText;
@ -86,14 +85,15 @@ public int parseArguments(final Parameters params) throws CmdLineException {
try {
id = clp.getRepository().resolve(name);
} catch (IOException e) {
throw new CmdLineException(clp, e.getMessage());
throw new CmdLineException(clp, CLIText.format(e.getMessage()));
}
if (id != null) {
setter.addValue(id);
return 1;
}
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notAnObject, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notAnObject), name);
}
@Override

View File

@ -45,7 +45,6 @@
package org.eclipse.jgit.pgm.opt;
import java.io.IOException;
import java.text.MessageFormat;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.errors.MissingObjectException;
@ -97,9 +96,8 @@ public int parseArguments(final Parameters params) throws CmdLineException {
if (dot2 != -1) {
if (!option.isMultiValued())
throw new CmdLineException(clp,
MessageFormat.format(
CLIText.get().onlyOneMetaVarExpectedIn,
option.metaVar(), name));
CLIText.format(CLIText.get().onlyOneMetaVarExpectedIn),
option.metaVar(), name);
final String left = name.substring(0, dot2);
final String right = name.substring(dot2 + 2);
@ -118,20 +116,25 @@ private void addOne(final String name, final boolean interesting)
try {
id = clp.getRepository().resolve(name);
} catch (IOException e) {
throw new CmdLineException(clp, e.getMessage());
throw new CmdLineException(clp, CLIText.format(e.getMessage()));
}
if (id == null)
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notACommit), name);
final RevCommit c;
try {
c = clp.getRevWalk().parseCommit(id);
} catch (MissingObjectException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notACommit), name);
} catch (IncorrectObjectTypeException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notACommit, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notACommit), name);
} catch (IOException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage()));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().cannotReadBecause), name,
e.getMessage());
}
if (interesting)

View File

@ -45,7 +45,6 @@
package org.eclipse.jgit.pgm.opt;
import java.io.IOException;
import java.text.MessageFormat;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.errors.MissingObjectException;
@ -89,20 +88,25 @@ public int parseArguments(final Parameters params) throws CmdLineException {
try {
id = clp.getRepository().resolve(name);
} catch (IOException e) {
throw new CmdLineException(clp, e.getMessage());
throw new CmdLineException(clp, CLIText.format(e.getMessage()));
}
if (id == null)
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
final RevTree c;
try {
c = clp.getRevWalk().parseTree(id);
} catch (MissingObjectException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
} catch (IncorrectObjectTypeException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().notATree, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notATree), name);
} catch (IOException e) {
throw new CmdLineException(clp, MessageFormat.format(CLIText.get().cannotReadBecause, name, e.getMessage()));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().cannotReadBecause), name,
e.getMessage());
}
setter.addValue(c);
return 1;

View File

@ -43,8 +43,6 @@
package org.eclipse.jgit.pgm.opt;
import java.text.MessageFormat;
import org.eclipse.jgit.pgm.CommandCatalog;
import org.eclipse.jgit.pgm.CommandRef;
import org.eclipse.jgit.pgm.TextBuiltin;
@ -85,8 +83,8 @@ public int parseArguments(final Parameters params) throws CmdLineException {
final String name = params.getParameter(0);
final CommandRef cr = CommandCatalog.get(name);
if (cr == null)
throw new CmdLineException(clp, MessageFormat.format(
CLIText.get().notAJgitCommand, name));
throw new CmdLineException(clp,
CLIText.format(CLIText.get().notAJgitCommand), name);
// Force option parsing to stop. Everything after us should
// be arguments known only to this command and must not be

View File

@ -42,8 +42,6 @@
*/
package org.eclipse.jgit.pgm.opt;
import java.text.MessageFormat;
import org.eclipse.jgit.pgm.internal.CLIText;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
@ -105,8 +103,9 @@ public int parseArguments(Parameters params) throws CmdLineException {
if ("no".equals(mode) || "all".equals(mode)) { //$NON-NLS-1$ //$NON-NLS-2$
setter.addValue(mode);
} else {
throw new CmdLineException(owner, MessageFormat
.format(CLIText.get().invalidUntrackedFilesMode, mode));
throw new CmdLineException(owner,
CLIText.format(CLIText.get().invalidUntrackedFilesMode),
mode);
}
return 1;
} else {