Java tutorial
// Copyright (C) 2013 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.client.rpc.NativeMap; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArray; import com.google.gwtexpui.safehtml.client.FindReplace; import com.google.gwtexpui.safehtml.client.LinkFindReplace; import com.google.gwtexpui.safehtml.client.RawFindReplace; import java.util.ArrayList; import java.util.List; public class ConfigInfo extends JavaScriptObject { public final native JavaScriptObject has_require_change_id() /*-{ return this.hasOwnProperty('require_change_id'); }-*/; public final native boolean require_change_id() /*-{ return this.require_change_id; }-*/; public final native JavaScriptObject has_use_content_merge() /*-{ return this.hasOwnProperty('use_content_merge'); }-*/; public final native boolean use_content_merge() /*-{ return this.use_content_merge; }-*/; public final native JavaScriptObject has_use_contributor_agreements() /*-{ return this.hasOwnProperty('use_contributor_agreements'); }-*/; public final native boolean use_contributor_agreements() /*-{ return this.use_contributor_agreements; }-*/; public final native JavaScriptObject has_use_signed_off_by() /*-{ return this.hasOwnProperty('use_signed_off_by'); }-*/; public final native boolean use_signed_off_by() /*-{ return this.use_signed_off_by; }-*/; private final native NativeMap<CommentLinkInfo> commentlinks0() /*-{ return this.commentlinks; }-*/; final List<FindReplace> commentlinks() { JsArray<CommentLinkInfo> cls = commentlinks0().values(); List<FindReplace> commentLinks = new ArrayList<FindReplace>(cls.length()); for (int i = 0; i < cls.length(); i++) { CommentLinkInfo cl = cls.get(i); if (!cl.enabled()) { continue; } if (cl.link() != null) { commentLinks.add(new LinkFindReplace(cl.match(), cl.link())); } else { commentLinks.add(new RawFindReplace(cl.match(), cl.html())); } } return commentLinks; } final native ThemeInfo theme() /*-{ return this.theme; }-*/; protected ConfigInfo() { } static class CommentLinkInfo extends JavaScriptObject { final native String match() /*-{ return this.match; }-*/; final native String link() /*-{ return this.link; }-*/; final native String html() /*-{ return this.html; }-*/; final native boolean enabled() /*-{ return !this.hasOwnProperty('enabled') || this.enabled; }-*/; protected CommentLinkInfo() { } } }