/* * Copyright (C) 2013 MILLAU Julien * * 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.github.devnied.emvnfccard.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.devnied.emvnfccard.model.enums.IKeyEnum; /** * Utils class which provided methods to manipulate Enum * * @author MILLAU Julien */ public final class EnumUtils { /** * Class logger */ private static final Logger LOGGER = LoggerFactory.getLogger(EnumUtils.class); /** * Get the value of and enum from his key * * @param pKey * key to find * @param pClass * Enum class * @return Enum instance of the specified key or null otherwise */ @SuppressWarnings("unchecked") public static <T extends IKeyEnum> T getValue(final int pKey, final Class<T> pClass) { for (IKeyEnum val : pClass.getEnumConstants()) { if (val.getKey() == pKey) { return (T) val; } } LOGGER.error("Unknow value:" + pKey + " for Enum:" + pClass.getName()); return null; } /** * Private constructor */ private EnumUtils() { } }