Add NotImplemented default implementations for all code owner APIs
This allows source compatibility when adding new methods to the
interfaces.
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: Ie4cdd810a9ec1ada31ae04dcc3c229b2d71202ad
diff --git a/java/com/google/gerrit/plugins/codeowners/api/BranchCodeOwners.java b/java/com/google/gerrit/plugins/codeowners/api/BranchCodeOwners.java
index c4dfaac..8ff1222 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/BranchCodeOwners.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/BranchCodeOwners.java
@@ -15,6 +15,7 @@
package com.google.gerrit.plugins.codeowners.api;
import com.google.gerrit.common.Nullable;
+import com.google.gerrit.extensions.restapi.NotImplementedException;
import com.google.gerrit.extensions.restapi.RestApiException;
import java.util.List;
@@ -49,4 +50,15 @@
/** Executes the request and retrieves the paths of the requested code owner config file */
public abstract List<String> paths() throws RestApiException;
}
+
+ /**
+ * A default implementation which allows source compatibility when adding new methods to the
+ * interface.
+ */
+ class NotImplemented implements BranchCodeOwners {
+ @Override
+ public CodeOwnerConfigFilesRequest codeOwnerConfigFiles() throws RestApiException {
+ throw new NotImplementedException();
+ }
+ }
}
diff --git a/java/com/google/gerrit/plugins/codeowners/api/ProjectCodeOwners.java b/java/com/google/gerrit/plugins/codeowners/api/ProjectCodeOwners.java
index d4a839a..4d5159f 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/ProjectCodeOwners.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/ProjectCodeOwners.java
@@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableList;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.extensions.api.config.ConsistencyCheckInfo.ConsistencyProblemInfo;
+import com.google.gerrit.extensions.restapi.NotImplementedException;
import com.google.gerrit.extensions.restapi.RestApiException;
import java.util.List;
import java.util.Map;
@@ -109,4 +110,25 @@
/** Returns the branch-level code owners API for the given branch. */
BranchCodeOwners branch(String branchName) throws RestApiException;
+
+ /**
+ * A default implementation which allows source compatibility when adding new methods to the
+ * interface.
+ */
+ class NotImplemented implements ProjectCodeOwners {
+ @Override
+ public CodeOwnerProjectConfigInfo getConfig() throws RestApiException {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public CheckCodeOwnerConfigFilesRequest checkCodeOwnerConfigFiles() throws RestApiException {
+ throw new NotImplementedException();
+ }
+
+ @Override
+ public BranchCodeOwners branch(String branchName) throws RestApiException {
+ throw new NotImplementedException();
+ }
+ }
}