diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ReviewerApi.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ReviewerApi.java index 11b670da43..5571726794 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ReviewerApi.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/ReviewerApi.java @@ -14,6 +14,7 @@ package com.google.gerrit.extensions.api.changes; +import com.google.gerrit.extensions.restapi.NotImplementedException; import com.google.gerrit.extensions.restapi.RestApiException; import java.util.Map; @@ -22,4 +23,20 @@ public interface ReviewerApi { Map votes() throws RestApiException; void deleteVote(String label) throws RestApiException; + + /** + * A default implementation which allows source compatibility + * when adding new methods to the interface. + **/ + class NotImplemented implements ReviewerApi { + @Override + public Map votes() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void deleteVote(String label) throws RestApiException { + throw new NotImplementedException(); + } + } } diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java index f5a89c05c6..d3f4463cca 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java @@ -18,6 +18,7 @@ import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.GroupAuditEventInfo; import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.extensions.common.GroupOptionsInfo; +import com.google.gerrit.extensions.restapi.NotImplementedException; import com.google.gerrit.extensions.restapi.RestApiException; import java.util.List; @@ -141,4 +142,102 @@ public interface GroupApi { * @throws RestApiException */ List auditLog() throws RestApiException; + + /** + * A default implementation which allows source compatibility + * when adding new methods to the interface. + **/ + class NotImplemented implements GroupApi { + @Override + public GroupInfo get() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public GroupInfo detail() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public String name() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void name(String name) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public GroupInfo owner() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void owner(String owner) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public String description() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void description(String description) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public GroupOptionsInfo options() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void options(GroupOptionsInfo options) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public List members() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public List members(boolean recursive) + throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void addMembers(String... members) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void removeMembers(String... members) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public List includedGroups() throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void addGroups(String... groups) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public void removeGroups(String... groups) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public List auditLog() + throws RestApiException { + throw new NotImplementedException(); + } + } } diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/Groups.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/Groups.java index 6b4f5f3f58..608abd6687 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/Groups.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/Groups.java @@ -16,6 +16,7 @@ package com.google.gerrit.extensions.api.groups; import com.google.gerrit.extensions.client.ListGroupsOption; import com.google.gerrit.extensions.common.GroupInfo; +import com.google.gerrit.extensions.restapi.NotImplementedException; import com.google.gerrit.extensions.restapi.RestApiException; import java.util.ArrayList; @@ -173,5 +174,31 @@ public interface Groups { public String getSuggest() { return suggest; } + + /** + * A default implementation which allows source compatibility + * when adding new methods to the interface. + **/ + class NotImplemented implements Groups { + @Override + public GroupApi id(String id) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public GroupApi create(String name) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public GroupApi create(GroupInput input) throws RestApiException { + throw new NotImplementedException(); + } + + @Override + public ListRequest list() { + throw new NotImplementedException(); + } + } } }