From d4d70a984badb5f3dde0a43ba8e7aa20b273a944 Mon Sep 17 00:00:00 2001 From: Florian Heck <florian.heck@hotmail.de> Date: Mon, 17 Oct 2016 11:16:24 +0200 Subject: [PATCH] added getBranch to repo --- .../fim/seibt/gitwrapper/repo/Branch.java | 2 +- .../fim/seibt/gitwrapper/repo/Repository.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java index 45a6134..32abd4f 100644 --- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java +++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Branch.java @@ -7,7 +7,7 @@ import java.util.function.Function; public class Branch extends Reference { - public Branch(Repository repo, String name) { + Branch(Repository repo, String name) { super(repo, name); } diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java index bfc74d2..61fb66b 100644 --- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java +++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Repository.java @@ -49,6 +49,7 @@ public class Repository { private File dir; private Map<String, Commit> commits; + private Map<String, Branch> branches; /** * Constructs a new {@link Repository}. @@ -73,6 +74,7 @@ public class Repository { this.commits = new HashMap<>(); this.commits.put(DummyCommit.DUMMY_COMMIT_ID, new DummyCommit(this)); + this.branches = new HashMap<>(); } /** @@ -228,6 +230,18 @@ public class Repository { return catFile.map(toBoolean).orElse(false); } + public Optional<Branch> getBranch(String name) { + if (branches.containsKey(name)) { + return Optional.of(branches.get(name)); + } + + if (!isBranch(name)) { + return Optional.empty(); + } + + return Optional.of(branches.computeIfAbsent(name, theName -> new Branch(this, theName))); + } + /** * Determines whether the given name designates a branch. * -- GitLab