Merge "Adapt to refactored web link interfaces"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
index 34224ea..65be419 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
@@ -63,7 +63,7 @@
DynamicSet.bind(binder(), BranchWebLink.class)
.to(XDocWebLink.class);
DynamicSet.bind(binder(), FileWebLink.class)
- .to(XDocFileWebLink.class);
+ .to(XDocWebLink.class);
DynamicSet.bind(binder(), TopMenu.class).toInstance(new TopMenu() {
@Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocFileWebLink.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocFileWebLink.java
deleted file mode 100644
index c0c35a3..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocFileWebLink.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2014 The Android Open Source Project
-//
-// 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.googlesource.gerrit.plugins.xdocs;
-
-import com.google.gerrit.extensions.annotations.PluginName;
-import com.google.gerrit.extensions.webui.FileWebLink;
-import com.google.gerrit.server.git.GitRepositoryManager;
-import com.google.gerrit.server.project.ProjectCache;
-import com.google.inject.Inject;
-
-import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
-
-public class XDocFileWebLink extends XDocWebLink implements FileWebLink {
-
- @Inject
- XDocFileWebLink(
- @PluginName String pluginName,
- GitRepositoryManager repoManager,
- XDocCache cache,
- XDocProjectConfig.Factory cfgFactory,
- ProjectCache projectCache,
- Formatters formatters) {
- super(pluginName, repoManager, cache, cfgFactory, projectCache, formatters);
- }
-
- @Override
- public String getLinkName() {
- return "preview";
- }
-
- @Override
- public String getFileUrl(String projectName, String revision,
- String fileName) {
- return super.getPatchUrl(projectName, revision, fileName);
- }
-}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
index 07460d8..400c5d7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
@@ -15,9 +15,12 @@
package com.googlesource.gerrit.plugins.xdocs;
import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.common.WebLinkInfo;
import com.google.gerrit.extensions.restapi.Url;
import com.google.gerrit.extensions.webui.BranchWebLink;
+import com.google.gerrit.extensions.webui.FileWebLink;
import com.google.gerrit.extensions.webui.ProjectWebLink;
+import com.google.gerrit.extensions.webui.WebLinkTarget;
import com.google.gerrit.httpd.resources.Resource;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -38,10 +41,13 @@
import java.io.IOException;
@Singleton
-public class XDocWebLink implements ProjectWebLink, BranchWebLink {
+public class XDocWebLink implements ProjectWebLink, BranchWebLink, FileWebLink {
private static final Logger log = LoggerFactory
.getLogger(XDocWebLink.class);
+ private static final String README = "readme";
+ private static final String PREVIEW = "preview";
+
private final String pluginName;
private final GitRepositoryManager repoManager;
private final XDocCache docCache;
@@ -66,27 +72,35 @@
}
@Override
- public String getLinkName() {
- return "readme";
+ public WebLinkInfo getBranchWebLink(String projectName, String branchName) {
+ return new WebLinkInfo(README, getImageUrl(),
+ getBranchUrl(projectName, branchName), WebLinkTarget.BLANK);
}
@Override
- public String getProjectUrl(String projectName) {
- return getBranchUrl(projectName, Constants.HEAD);
+ public WebLinkInfo getProjectWeblink(String projectName) {
+ return new WebLinkInfo(README, getImageUrl(),
+ getBranchUrl(projectName, Constants.HEAD), WebLinkTarget.BLANK);
}
@Override
- public String getBranchUrl(String projectName, String branchName) {
+ public WebLinkInfo getFileWebLink(String projectName, String revision,
+ String fileName) {
+ return new WebLinkInfo(PREVIEW, getImageUrl(),
+ getFileUrl(projectName, revision, fileName), WebLinkTarget.BLANK);
+ }
+
+ private String getBranchUrl(String projectName, String branchName) {
ProjectState state = projectCache.get(new Project.NameKey(projectName));
if (state == null) {
// project not found -> no link
return null;
}
- return getPatchUrl(projectName, branchName,
+ return getFileUrl(projectName, branchName,
cfgFactory.create(state).getIndexFile());
}
- public String getPatchUrl(String projectName, String revision,
+ public String getFileUrl(String projectName, String revision,
String fileName) {
FormatterProvider formatter = formatters.get(projectName, fileName);
if (formatter == null) {
@@ -127,13 +141,7 @@
}
}
- @Override
- public String getImageUrl() {
+ private String getImageUrl() {
return "plugins/" + pluginName + "/static/readme.png";
}
-
- @Override
- public String getTarget() {
- return Target.BLANK;
- }
}