Java EnumSet Create intToEnumSet(Class enumClass, int decoded)

Here you can find the source of intToEnumSet(Class enumClass, int decoded)

Description

Get an enum set by parsing an integer which represents a bit array.

License

Open Source License

Parameter

Parameter Description
T type of elements in enum set
enumClass enum class to determine the type
decoded integer decoded as

Return

an enum set containing the enums specified by the integer

Declaration

public static <T extends Enum<T>> EnumSet<T> intToEnumSet(Class<T> enumClass, int decoded) 

Method Source Code


//package com.java2s;
/*//from   ww w.ja v  a  2s. com
 * Kontalk Java client
 * Copyright (C) 2014 Kontalk Devteam <devteam@kontalk.org>
    
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
    
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
    
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.util.EnumSet;

public class Main {
    /**
     * Get an enum set by parsing an integer which represents a bit array.
     * Source: http://stackoverflow.com/questions/2199399/storing-enumset-in-a-database
     * @param <T> type of elements in enum set
     * @param enumClass enum class to determine the type
     * @param decoded integer decoded as
     * @return an enum set containing the enums specified by the integer
     */
    public static <T extends Enum<T>> EnumSet<T> intToEnumSet(Class<T> enumClass, int decoded) {
        EnumSet<T> enumSet = EnumSet.noneOf(enumClass);
        T[] enums = enumClass.getEnumConstants();
        while (decoded != 0) {
            int ordinal = Integer.numberOfTrailingZeros(decoded);
            enumSet.add(enums[ordinal]);
            decoded -= Integer.lowestOneBit(decoded);
        }
        return enumSet;
    }
}

Related

  1. enumFromSet(EnumSet theSet)
  2. enumSet(T... elements)
  3. enumSetOf(long bitSet, Class eClass)
  4. fromString(Class enumType, String value)
  5. fromString(Class enumClass, String name)
  6. newEnumSet(Class klass)
  7. noneOf( Class elementType)
  8. of(E e1, E... e)
  9. of(E[] c)