001/* 002 * To change this template, choose Tools | Templates 003 * and open the template in the editor. 004 */ 005 006package com.nativelibs4java.util; 007 008import java.util.EnumSet; 009 010/** 011 * 012 * @author ochafik 013 */ 014public 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}