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 + "'");