1796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org/*
2796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * Copyright (C) 2009 The Guava Authors
3796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org *
4796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * use this file except in compliance with the License.  You may obtain a copy
6796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * of the License at
7796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org *
8796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * http://www.apache.org/licenses/LICENSE-2.0
9796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org *
10796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * Unless required by applicable law or agreed to in writing, software
11796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
13796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * License for the specific language governing permissions and limitations under
14796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * the License.
15796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org */
1687997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org
17796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.orgpackage com.google.common.collect.testing.testers;
18796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
19796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.orgimport java.lang.reflect.Method;
20796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
21796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org/**
22796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * This class is emulated in GWT.
23796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org *
24796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org * @author Hayward Chan
25796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org */
26796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.orgclass Platform {
27796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
2887997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org  /**
2987997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org   * Delegate to {@link Class#getMethod(String, Class[])}.  Not
3087997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org   * usable in GWT.
3187997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org   */
3287997d490ae52aa962a985c95b3cddf7f8832641johannkoenig@chromium.org  static Method getMethod(Class<?> clazz, String methodName) {
33796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    try {
34796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org      return clazz.getMethod(methodName);
35796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    } catch (NoSuchMethodException e) {
36796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org      throw new RuntimeException(e);
37796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    }
38796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  }
39796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
40796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  /**
41796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org   * Format the template with args, only supports the placeholder
42796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org   * {@code %s}.
43796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org   */
44796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  static String format(String template, Object... args) {
45796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    return String.format(template, args);
46796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  }
47796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
48796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  /** See {@link ListListIteratorTester} */
49796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  static int listListIteratorTesterNumIterations() {
50796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    return 4;
51796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  }
52796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org
53796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  /** See {@link CollectionIteratorTester} */
54796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  static int collectionIteratorTesterNumIterations() {
55796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org    return 5;
56796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org  }
57796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org}
58796a08a9ccb0ab5cb47ce24ff80aea3e085aa34fjohannkoenig@chromium.org