From d282a0ed733053f4f38999a0dab1a279f76ce010 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Mon, 10 Mar 2014 15:11:31 +0400 Subject: [PATCH] [log] Expose VcsLogRefs into API * For now just return branches, since it is all what's needed. * Keep getRefsModel() until it is decided what methods should be exposed --- .../com/intellij/vcs/log/VcsLogDataPack.java | 3 ++ .../src/com/intellij/vcs/log/VcsLogRefs.java | 33 +++++++++++++++++++ .../com/intellij/vcs/log/data/DataPack.java | 6 ++++ .../com/intellij/vcs/log/data/RefsModel.java | 7 ++-- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogRefs.java diff --git a/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogDataPack.java b/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogDataPack.java index 1cde2a525748..fd0afe998a3e 100644 --- a/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogDataPack.java +++ b/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogDataPack.java @@ -25,4 +25,7 @@ public interface VcsLogDataPack { @NotNull Map getLogProviders(); + @NotNull + VcsLogRefs getRefs(); + } diff --git a/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogRefs.java b/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogRefs.java new file mode 100644 index 000000000000..53338124f735 --- /dev/null +++ b/platform/vcs-log/api/src/com/intellij/vcs/log/VcsLogRefs.java @@ -0,0 +1,33 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.vcs.log; + +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; + +/** + * Collection of {@link VcsRef branches & tags references} which are in the log. + */ +public interface VcsLogRefs { + + /** + * Returns all branches. + */ + @NotNull + Collection getBranches(); + +} diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/DataPack.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/DataPack.java index e13847df837e..9b13d1db0ed4 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/DataPack.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/DataPack.java @@ -75,6 +75,12 @@ public class DataPack implements VcsLogDataPack { return myGraphFacade; } + @NotNull + @Override + public VcsLogRefs getRefs() { + return myRefsModel; + } + @NotNull public RefsModel getRefsModel() { return myRefsModel; diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/RefsModel.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/RefsModel.java index 98d4fe2c09bb..630ae43f5465 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/RefsModel.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/RefsModel.java @@ -6,6 +6,7 @@ import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; import com.intellij.vcs.log.Hash; +import com.intellij.vcs.log.VcsLogRefs; import com.intellij.vcs.log.VcsRef; import gnu.trove.TIntObjectHashMap; import org.jetbrains.annotations.NotNull; @@ -14,10 +15,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -/** - * @author erokhins - */ -public class RefsModel { +public class RefsModel implements VcsLogRefs { @NotNull private final Collection myBranches; @NotNull private final MultiMap myRefsToHashes; @@ -80,6 +78,7 @@ public class RefsModel { return myRefsToIndices.containsKey(index) ? myRefsToIndices.get(index) : Collections.emptyList(); } + @Override @NotNull public Collection getBranches() { return myBranches;