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