001 /*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005
006 package com.nativelibs4java.util;
007
008 import java.util.EnumSet;
009
010 /**
011 *
012 * @author ochafik
013 */
014 public class ValuedEnums {
015 public static <E extends Enum<E>> long or(EnumSet<E> enums) {
016 long value = 0;
017 for (E e : enums)
018 value |= ((ValuedEnum)e).value();
019 return value;
020 }
021 public static <E extends Enum<E>> long and(EnumSet<E> enums) {
022 long value = 0;
023 boolean first = true;
024 for (E e : enums) {
025 long ev = ((ValuedEnum)e).value();
026 if (first) {
027 value = ev;
028 first = false;
029 } else
030 value &= ev;
031 }
032 return value;
033 }
034 }