Extract GitHub group common abstract structure
In order to prepare to support GitHub Teams, extract the common
attributes of a GitHub data as basic group description.
Change-Id: I21dbf5a864f53dc7a453ed7c55a6d9a9b1fdc899
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroup.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroup.java
new file mode 100644
index 0000000..4e1279e
--- /dev/null
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroup.java
@@ -0,0 +1,48 @@
+// 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.github.group;
+
+
+
+import com.google.gerrit.common.data.GroupDescription.Basic;
+import com.google.gerrit.reviewdb.client.AccountGroup.UUID;
+
+public abstract class GitHubGroup implements Basic {
+ public static final String UUID_PREFIX = "github:";
+ public static final String NAME_PREFIX = "github/";
+ protected final UUID uuid;
+ protected final String url;
+
+ public GitHubGroup(UUID uuid, String url) {
+ this.uuid = uuid;
+ this.url = url;
+ }
+
+ @Override
+ public String getEmailAddress() {
+ return "";
+ }
+
+ @Override
+ public UUID getGroupUUID() {
+ return uuid;
+ }
+
+ @Override
+ public String getUrl() {
+ return url;
+ }
+
+}
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubOrganisationGroup.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubOrganisationGroup.java
index ace3687..01a0f89 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubOrganisationGroup.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubOrganisationGroup.java
@@ -24,35 +24,18 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
-public class GitHubOrganisationGroup implements Basic {
- public static final String UUID_PREFIX = "github:";
- public static final String NAME_PREFIX = "github/";
-
+public class GitHubOrganisationGroup extends GitHubGroup implements Basic {
public interface Factory {
GitHubOrganisationGroup get(@Assisted("orgName") String orgName,
@Assisted("orgUrl") @Nullable String orgUrl);
}
private final String orgName;
- private final UUID uuid;
- private final String url;
-
@Inject
GitHubOrganisationGroup(@Assisted("orgName") String orgName,
@Assisted("orgUrl") @Nullable String orgUrl) {
+ super(uuid(orgName), orgUrl);
this.orgName = orgName;
- this.uuid = uuid(orgName);
- this.url = orgUrl;
- }
-
- @Override
- public String getEmailAddress() {
- return "";
- }
-
- @Override
- public UUID getGroupUUID() {
- return uuid;
}
@Override
@@ -60,11 +43,6 @@
return NAME_PREFIX + orgName;
}
- @Override
- public String getUrl() {
- return url;
- }
-
public static GitHubOrganisationGroup fromUUID(UUID uuid) {
checkArgument(uuid.get().startsWith(UUID_PREFIX), "Invalid GitHub UUID '"
+ uuid + "'");