com.google.gerrit.client.changes.ChangeInfo.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gerrit.client.changes.ChangeInfo.java

Source

// Copyright (C) 2012 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.changes;

import com.google.gerrit.client.account.AccountInfo;
import com.google.gerrit.client.rpc.NativeMap;
import com.google.gerrit.client.rpc.NativeString;
import com.google.gerrit.client.rpc.Natives;
import com.google.gerrit.common.data.SubmitRecord;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayString;
import com.google.gwtjsonrpc.client.impl.ser.JavaSqlTimestamp_JsonSerializer;

import java.sql.Timestamp;
import java.util.Set;

public class ChangeInfo extends JavaScriptObject {
    public final void init() {
        if (labels0() != null) {
            labels0().copyKeysIntoChildren("_name");
        }
    }

    public final Project.NameKey project_name_key() {
        return new Project.NameKey(project());
    }

    public final Change.Id legacy_id() {
        return new Change.Id(_number());
    }

    public final Timestamp created() {
        Timestamp ts = _get_cts();
        if (ts == null) {
            ts = JavaSqlTimestamp_JsonSerializer.parseTimestamp(createdRaw());
            _set_cts(ts);
        }
        return ts;
    }

    private final native Timestamp _get_cts() /*-{ return this._cts; }-*/;

    private final native void _set_cts(Timestamp ts) /*-{ this._cts = ts; }-*/;

    public final Timestamp updated() {
        return JavaSqlTimestamp_JsonSerializer.parseTimestamp(updatedRaw());
    }

    public final String id_abbreviated() {
        return new Change.Key(change_id()).abbreviate();
    }

    public final Change.Status status() {
        return Change.Status.valueOf(statusRaw());
    }

    public final Set<String> labels() {
        return labels0().keySet();
    }

    public final native String id() /*-{ return this.id; }-*/;

    public final native String project() /*-{ return this.project; }-*/;

    public final native String branch() /*-{ return this.branch; }-*/;

    public final native String topic() /*-{ return this.topic; }-*/;

    public final native String change_id() /*-{ return this.change_id; }-*/;

    public final native boolean mergeable() /*-{ return this.mergeable; }-*/;

    private final native String statusRaw() /*-{ return this.status; }-*/;

    public final native String subject() /*-{ return this.subject; }-*/;

    public final native AccountInfo owner() /*-{ return this.owner; }-*/;

    private final native String createdRaw() /*-{ return this.created; }-*/;

    private final native String updatedRaw() /*-{ return this.updated; }-*/;

    public final native boolean starred() /*-{ return this.starred ? true : false; }-*/;

    public final native boolean reviewed() /*-{ return this.reviewed ? true : false; }-*/;

    public final native String _sortkey() /*-{ return this._sortkey; }-*/;

    private final native NativeMap<LabelInfo> labels0() /*-{ return this.labels; }-*/;

    public final native LabelInfo label(String n) /*-{ return this.labels[n]; }-*/;

    public final native boolean has_permitted_labels()
    /*-{ return this.hasOwnProperty('permitted_labels') }-*/;

    private final native NativeMap<JavaScriptObject> _permitted_labels()
    /*-{ return this.permitted_labels; }-*/;

    public final Set<String> permitted_labels() {
        return Natives.keys(_permitted_labels());
    }

    public final native JsArrayString permitted_values(String n)
    /*-{ return this.permitted_labels[n]; }-*/;

    public final native JsArray<AccountInfo> removable_reviewers()
    /*-{ return this.removable_reviewers; }-*/;

    final native int _number() /*-{ return this._number; }-*/;

    final native boolean _more_changes()
    /*-{ return this._more_changes ? true : false; }-*/;

    protected ChangeInfo() {
    }

    public static class LabelInfo extends JavaScriptObject {
        public final SubmitRecord.Label.Status status() {
            if (approved() != null) {
                return SubmitRecord.Label.Status.OK;
            } else if (rejected() != null) {
                return SubmitRecord.Label.Status.REJECT;
            } else if (optional()) {
                return SubmitRecord.Label.Status.MAY;
            } else {
                return SubmitRecord.Label.Status.NEED;
            }
        }

        public final native String name() /*-{ return this._name; }-*/;

        public final native AccountInfo approved() /*-{ return this.approved; }-*/;

        public final native AccountInfo rejected() /*-{ return this.rejected; }-*/;

        public final native AccountInfo recommended() /*-{ return this.recommended; }-*/;

        public final native AccountInfo disliked() /*-{ return this.disliked; }-*/;

        public final native JsArray<ApprovalInfo> all() /*-{ return this.all; }-*/;

        private final native NativeMap<NativeString> _values() /*-{ return this.values; }-*/;

        public final Set<String> values() {
            return Natives.keys(_values());
        }

        public final native String value_text(String n) /*-{ return this.values[n]; }-*/;

        public final native boolean optional() /*-{ return this.optional ? true : false; }-*/;

        final native short _value()
        /*-{
          if (this.value) return this.value;
          if (this.disliked) return -1;
          if (this.recommended) return 1;
          return 0;
        }-*/;

        protected LabelInfo() {
        }
    }

    public static class ApprovalInfo extends AccountInfo {
        public final native boolean has_value() /*-{ return this.hasOwnProperty('value'); }-*/;

        public final native short value() /*-{ return this.value; }-*/;

        protected ApprovalInfo() {
        }
    }
}