Projects UI: Move common parts out of BranchInfo into RefInfo

Introduce a new class RefInfo.  Move the ref(), revision() and
getShortName() methods out of BranchInfo, and make BranchInfo
extend RefInfo.

This is a preparatory step towards adding support for showing
tags information in the UI. The TagInfo class will also extend
RefInfo and share the common implementation.

Change-Id: Id21951833c02a9141c555fa3535e4e111323aca7
This commit is contained in:
David Pursehouse
2015-09-16 15:48:03 +09:00
parent 24c5f1b3a9
commit 3d7772a16b
2 changed files with 31 additions and 9 deletions

View File

@@ -17,17 +17,9 @@ package com.google.gerrit.client.projects;
import com.google.gerrit.client.info.ActionInfo;
import com.google.gerrit.client.info.WebLinkInfo;
import com.google.gerrit.client.rpc.NativeMap;
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
public class BranchInfo extends JavaScriptObject {
public final String getShortName() {
return RefNames.shortName(ref());
}
public final native String ref() /*-{ return this.ref; }-*/;
public final native String revision() /*-{ return this.revision; }-*/;
public class BranchInfo extends RefInfo {
public final native boolean canDelete() /*-{ return this['can_delete'] ? true : false; }-*/;
public final native NativeMap<ActionInfo> actions() /*-{ return this.actions }-*/;
public final native JsArray<WebLinkInfo> webLinks() /*-{ return this.web_links; }-*/;

View File

@@ -0,0 +1,30 @@
// Copyright (C) 2015 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.google.gerrit.client.projects;
import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gwt.core.client.JavaScriptObject;
public class RefInfo extends JavaScriptObject {
public final String getShortName() {
return RefNames.shortName(ref());
}
public final native String ref() /*-{ return this.ref; }-*/;
public final native String revision() /*-{ return this.revision; }-*/;
protected RefInfo() {
}
}