diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefDatabaseConflictingNamesTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefDatabaseConflictingNamesTest.java index 379885841..cbb47fa82 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefDatabaseConflictingNamesTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefDatabaseConflictingNamesTest.java @@ -99,11 +99,6 @@ public Ref exactRef(String name) throws IOException { return null; } - @Override - public Ref getRef(String name) throws IOException { - return null; - } - @Override public List getAdditionalRefs() throws IOException { return null; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java index a88434684..8b2a03d4c 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java @@ -105,20 +105,6 @@ public Ref exactRef(String name) throws IOException { return ref != null ? resolve(ref, 0, curr.ids) : null; } - /** {@inheritDoc} */ - @Override - public Ref getRef(String needle) throws IOException { - RefCache curr = read(); - for (String prefix : SEARCH_PATH) { - Ref ref = curr.ids.get(prefix + needle); - if (ref != null) { - ref = resolve(ref, 0, curr.ids); - return ref; - } - } - return null; - } - /** {@inheritDoc} */ @Override public List getAdditionalRefs() { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java index 0e0a6ef5e..83394bb92 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java @@ -227,18 +227,6 @@ public Ref exactRef(String name) throws IOException { } } - /** {@inheritDoc} */ - @Override - public Ref getRef(String needle) throws IOException { - for (String prefix : SEARCH_PATH) { - Ref ref = exactRef(prefix + needle); - if (ref != null) { - return ref; - } - } - return null; - } - /** {@inheritDoc} */ @Override public Map getRefs(String prefix) throws IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java index 83127eb54..a4729bba4 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java @@ -388,23 +388,6 @@ public Ref firstExactRef(String... refs) throws IOException { } } - /** {@inheritDoc} */ - @Override - public Ref getRef(String needle) throws IOException { - try { - RefList packed = getPackedRefs(); - for (String prefix : SEARCH_PATH) { - Ref ref = readAndResolve(prefix + needle, packed); - if (ref != null) { - return ref; - } - } - return null; - } finally { - fireRefsChanged(); - } - } - /** {@inheritDoc} */ @Override public Map getRefs(String prefix) throws IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabase.java index 27daaf0bb..ddd05b3e5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftree/RefTreeDatabase.java @@ -204,16 +204,6 @@ public void close() { bootstrap.close(); } - /** {@inheritDoc} */ - @Override - public Ref getRef(String name) throws IOException { - String[] needle = new String[SEARCH_PATH.length]; - for (int i = 0; i < SEARCH_PATH.length; i++) { - needle[i] = SEARCH_PATH[i] + name; - } - return firstExactRef(needle); - } - /** {@inheritDoc} */ @Override public Ref exactRef(String name) throws IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java index 73c7b1c61..877792097 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java @@ -69,10 +69,10 @@ public abstract class RefDatabase { /** * Order of prefixes to search when using non-absolute references. *

- * The implementation's {@link #getRef(String)} method must take this search - * space into consideration when locating a reference by name. The first - * entry in the path is always {@code ""}, ensuring that absolute references - * are resolved without further mangling. + * {@link #findRef(String)} takes this search space into consideration + * when locating a reference by name. The first entry in the path is + * always {@code ""}, ensuring that absolute references are resolved + * without further mangling. */ protected static final String[] SEARCH_PATH = { "", //$NON-NLS-1$ Constants.R_REFS, // @@ -256,6 +256,23 @@ public boolean performsAtomicTransactions() { return false; } + /** + * Compatibility synonym for {@link #findRef(String)}. + * + * @param name + * the name of the reference. May be a short name which must be + * searched for using the standard {@link #SEARCH_PATH}. + * @return the reference (if it exists); else {@code null}. + * @throws IOException + * the reference space cannot be accessed. + * @deprecated Use {@link #findRef(String)} instead. + */ + @Deprecated + @Nullable + public final Ref getRef(String name) throws IOException { + return findRef(name); + } + /** * Read a single reference. *

@@ -272,14 +289,21 @@ public boolean performsAtomicTransactions() { * @return the reference (if it exists); else {@code null}. * @throws java.io.IOException * the reference space cannot be accessed. + * @since 5.3 */ @Nullable - public abstract Ref getRef(String name) throws IOException; + public final Ref findRef(String name) throws IOException { + String[] names = new String[SEARCH_PATH.length]; + for (int i = 0; i < SEARCH_PATH.length; i++) { + names[i] = SEARCH_PATH[i] + name; + } + return firstExactRef(names); + } /** * Read a single reference. *

- * Unlike {@link #getRef}, this method expects an unshortened reference + * Unlike {@link #findRef}, this method expects an unshortened reference * name and does not search using the standard {@link #SEARCH_PATH}. * * @param name @@ -469,7 +493,7 @@ public boolean hasRefs() throws IOException { *

* The result list includes non-ref items such as MERGE_HEAD and * FETCH_RESULT cast to be refs. The names of these refs are not returned by - * getRefs() but are accepted by {@link #getRef(String)} + * getRefs() but are accepted by {@link #findRef(String)} * and {@link #exactRef(String)}. * * @return a list of additional refs diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java index b72b7629f..ce51c14c2 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java @@ -849,7 +849,7 @@ private ObjectId resolveSimple(String revstr) throws IOException { return ObjectId.fromString(revstr); if (Repository.isValidRefName("x/" + revstr)) { //$NON-NLS-1$ - Ref r = getRefDatabase().getRef(revstr); + Ref r = getRefDatabase().findRef(revstr); if (r != null) return r.getObjectId(); } @@ -1087,7 +1087,7 @@ public final Ref exactRef(String name) throws IOException { */ @Nullable public final Ref findRef(String name) throws IOException { - return getRefDatabase().getRef(name); + return getRefDatabase().findRef(name); } /**