// 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() {} }