blob: fab25ae1c42d73002b7354ab413cc368f8db7f9a [file] [log] [blame]
// Copyright (C) 2016 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.account;
import com.google.gwt.core.client.JavaScriptObject;
public class ProjectWatchInfo extends JavaScriptObject {
public enum Type {
NEW_CHANGES,
NEW_PATCHSETS,
ALL_COMMENTS,
SUBMITTED_CHANGES,
ABANDONED_CHANGES
}
public final native String project() /*-{ return this.project; }-*/;
public final native String filter() /*-{ return this.filter; }-*/;
public final native void project(String s) /*-{ this.project = s; }-*/;
public final native void filter(String s) /*-{ this.filter = s; }-*/;
public final void notify(ProjectWatchInfo.Type t, Boolean b) {
if (t == ProjectWatchInfo.Type.NEW_CHANGES) {
notifyNewChanges(b.booleanValue());
} else if (t == Type.NEW_PATCHSETS) {
notifyNewPatchSets(b.booleanValue());
} else if (t == Type.ALL_COMMENTS) {
notifyAllComments(b.booleanValue());
} else if (t == Type.SUBMITTED_CHANGES) {
notifySubmittedChanges(b.booleanValue());
} else if (t == Type.ABANDONED_CHANGES) {
notifyAbandonedChanges(b.booleanValue());
}
}
public final Boolean notify(ProjectWatchInfo.Type t) {
boolean b = false;
if (t == ProjectWatchInfo.Type.NEW_CHANGES) {
b = notifyNewChanges();
} else if (t == Type.NEW_PATCHSETS) {
b = notifyNewPatchSets();
} else if (t == Type.ALL_COMMENTS) {
b = notifyAllComments();
} else if (t == Type.SUBMITTED_CHANGES) {
b = notifySubmittedChanges();
} else if (t == Type.ABANDONED_CHANGES) {
b = notifyAbandonedChanges();
}
return Boolean.valueOf(b);
}
private native boolean
notifyNewChanges() /*-{ return this['notify_new_changes'] ? true : false; }-*/;
private native boolean
notifyNewPatchSets() /*-{ return this['notify_new_patch_sets'] ? true : false; }-*/;
private native boolean
notifyAllComments() /*-{ return this['notify_all_comments'] ? true : false; }-*/;
private native boolean
notifySubmittedChanges() /*-{ return this['notify_submitted_changes'] ? true : false; }-*/;
private native boolean
notifyAbandonedChanges() /*-{ return this['notify_abandoned_changes'] ? true : false; }-*/;
private native void notifyNewChanges(
boolean b) /*-{ this['notify_new_changes'] = b ? true : null; }-*/;
private native void notifyNewPatchSets(
boolean b) /*-{ this['notify_new_patch_sets'] = b ? true : null; }-*/;
private native void notifyAllComments(
boolean b) /*-{ this['notify_all_comments'] = b ? true : null; }-*/;
private native void notifySubmittedChanges(
boolean b) /*-{ this['notify_submitted_changes'] = b ? true : null; }-*/;
private native void notifyAbandonedChanges(
boolean b) /*-{ this['notify_abandoned_changes'] = b ? true : null; }-*/;
protected ProjectWatchInfo() {}
}