]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/thrift/lib/java/src/org/apache/thrift/TEnumHelper.java
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / thrift / lib / java / src / org / apache / thrift / TEnumHelper.java
CommitLineData
f67539c2
TL
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20package org.apache.thrift;
21
22import java.lang.NoSuchMethodException;
23import java.lang.IllegalAccessException;
24import java.lang.reflect.InvocationTargetException;
25import java.lang.reflect.Method;
26
27/**
28 * Utility class with static methods for interacting with TEnum
29 */
30public class TEnumHelper {
31
32 /**
33 * Given a TEnum class and integer value, this method will return
34 * the associated constant from the given TEnum class.
35 * This method MUST be modified should the name of the 'findByValue' method
36 * change.
37 *
38 * @param enumClass TEnum from which to return a matching constant.
39 * @param value Value for which to return the constant.
40 *
41 * @return The constant in 'enumClass' whose value is 'value' or null if
42 * something went wrong.
43 */
44 public static TEnum getByValue(Class<? extends TEnum> enumClass, int value) {
45 try {
46 Method method = enumClass.getMethod("findByValue", int.class);
47 return (TEnum) method.invoke(null, value);
48 } catch (NoSuchMethodException nsme) {
49 return null;
50 } catch (IllegalAccessException iae) {
51 return null;
52 } catch (InvocationTargetException ite) {
53 return null;
54 }
55 }
56}