001package org.apache.commons.ssl.org.bouncycastle.asn1.eac; 002 003import java.util.Enumeration; 004import java.util.Hashtable; 005 006 007public class Flags 008{ 009 010 int value = 0; 011 012 public Flags() 013 { 014 015 } 016 017 public Flags(int v) 018 { 019 value = v; 020 } 021 022 public void set(int flag) 023 { 024 value |= flag; 025 } 026 027 public boolean isSet(int flag) 028 { 029 return (value & flag) != 0; 030 } 031 032 public int getFlags() 033 { 034 return value; 035 } 036 037 /* Java 1.5 038 String decode(Map<Integer, String> decodeMap) 039 { 040 StringJoiner joiner = new StringJoiner(" "); 041 for (int i : decodeMap.keySet()) 042 { 043 if (isSet(i)) 044 joiner.add(decodeMap.get(i)); 045 } 046 return joiner.toString(); 047 } 048 */ 049 050 String decode(Hashtable decodeMap) 051 { 052 StringJoiner joiner = new StringJoiner(" "); 053 Enumeration e = decodeMap.keys(); 054 while (e.hasMoreElements()) 055 { 056 Integer i = (Integer)e.nextElement(); 057 if (isSet(i.intValue())) 058 { 059 joiner.add((String)decodeMap.get(i)); 060 } 061 } 062 return joiner.toString(); 063 } 064 065 private class StringJoiner 066 { 067 068 String mSeparator; 069 boolean First = true; 070 StringBuffer b = new StringBuffer(); 071 072 public StringJoiner(String separator) 073 { 074 mSeparator = separator; 075 } 076 077 public void add(String str) 078 { 079 if (First) 080 { 081 First = false; 082 } 083 else 084 { 085 b.append(mSeparator); 086 } 087 088 b.append(str); 089 } 090 091 public String toString() 092 { 093 return b.toString(); 094 } 095 } 096}