import java.util.EnumSet; import static java.util.EnumSet.of; import static java.util.EnumSet.range; import static so.User.Permissions.CanBlah1; import static so.User.Permissions.CanBlah2; import static so.User.Permissions.CanBlah3; public class User { public enum Permissions { CanBlah1, CanBlah2, CanBlah3 } public static void main(String[] args) throws Exception { EnumSet<Permissions> userPerms = of(CanBlah1, CanBlah2); System.out.println(userPerms.contains(CanBlah1)); //true System.out.println(userPerms.contains(CanBlah2)); //true System.out.println(userPerms.contains(CanBlah3)); //false System.out.println(userPerms.containsAll(of(CanBlah1, CanBlah3))); //false System.out.println(userPerms.containsAll(range(CanBlah1, CanBlah2))); //true System.out.println(userPerms.containsAll(range(CanBlah1, CanBlah3))); //false } }
@Test public void testTimeUnit() throws IOException { final EnumSet<TimeUnit> optimizedTimeUnits = EnumSet.range(TimeUnit.NANOSECONDS, TimeUnit.SECONDS); for (TimeUnit v : TimeUnit.values()) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(baos); DataSerializer.writeObject(v, out); byte[] bytes = baos.toByteArray(); String type = DataType.getDataType(bytes); // 4? if (optimizedTimeUnits.contains(v)) { assertEquals("for enum " + v, "java.util.concurrent.TimeUnit", type); } else { assertEquals("for enum " + v, "java.lang.Enum:java.util.concurrent.TimeUnit", type); } } }
package resolver; import java.util.EnumSet; public class EnumPatternExample { public enum Style { BOLD, ITALIC, UNDERLINE, STRIKETHROUGH } public static void main(String[] args) { final EnumSet<Style> styles = EnumSet.noneOf(Style.class); styles.addAll(EnumSet.range(Style.BOLD, Style.STRIKETHROUGH)); // enable all constants styles.removeAll(EnumSet.of(Style.UNDERLINE, Style.STRIKETHROUGH)); // disable a couple assert EnumSet.of(Style.BOLD, Style.ITALIC).equals(styles); // check set contents are correct System.out.println(styles); } }
/** * Return an EnumSet that contain all SCALE_ enum constants dealing with binary scaling */ public static EnumSet<ScaleConstants> getBinaryScaleSet() { return EnumSet.range(SCALE_KILO, SCALE_PETA); }
/** * Return an EnumSet that conatins all SCALE_ enum constants */ public static EnumSet<ScaleConstants> getAllScales() { return EnumSet.range(SCALE_NONE, SCALE_FAHRENHEIT); }
/** * Returns a set of all options for Annex B features. * * @return the options set for Annex B features */ public static final Set<CompatibilityOption> AnnexB() { return EnumSet.range(LegacyOctalIntegerLiteral, IntlConstructorLegacyFallback); }
/** * Return an EnumSet that contain all SCALE_ enum constants dealing with time */ public static EnumSet<ScaleConstants> getTimeSet() { return EnumSet.range(SCALE_YEAR, SCALE_NANO); }
/** * Returns a set of all experimental options. * * @return the options set for experimental features */ public static final Set<CompatibilityOption> Experimental() { return EnumSet.range(SIMD, SystemGlobal); }
public Item(LogSource source) { this.levels = EnumSet.range(Level.ERROR, Level.TRACE); this.source = source; this.visible = true; this.node = new DefaultMutableTreeNode(this); }
public boolean isLowerVersion(String version) { EnumSet<JDK> smaller = EnumSet.range(JDK7, this); // we want strictly smaller smaller.remove(this); for(JDK smallerJDK : smaller){ if(smallerJDK.version.equals(version)) return true; } return false; } }
public boolean providesVersion(String version){ if(this.version.equals(version)) return true; // also provides every smaller version EnumSet<JDK> smaller = EnumSet.range(JDK7, this); // we want strictly smaller smaller.remove(this); for(JDK smallerJDK : smaller){ if(smallerJDK.version.equals(version)) return true; } return false; }
EnumSet<TagEnum> all = EnumSet.allOf(TagEnum.class); EnumSet<TagEnum> none = EnumSet.noneOf(TagEnum.class); EnumSet<TagEnum> range = EnumSet.range(TagEnum.MALE, TagEnum.FEMALE); EnumSet<TagEnum> some = EnumSet.of(TagEnum.YOUNG,TagEnum.OLD);
@Override public boolean matches(String methodName) { for (HttpMethod method: EnumSet.range(GET, CONNECT)) { if (method.matches(methodName)) return true; } return false; }},
@Override public boolean matches(String methodName) { for (HttpMethod method: EnumSet.range(GET, PATCH)) { if (method.matches(methodName)) return true; } return false; } },
@Override public Set<SourceVersion> getSourceVersions() { return Collections.unmodifiableSet( EnumSet.range(SourceVersion.RELEASE_3, SourceVersion.latest())); }
private EnumSet<Step> getNeededSteps (Step target) { EnumSet<Step> neededSteps = EnumSet.noneOf(Step.class); // Add all needed steps for (Step step : EnumSet.range(Step.first(), target)) { if (!isDone(step)) { neededSteps.add(step); } } return neededSteps; }
public byte[] concatenate(E from, E to) { EnumSet<E> elements = EnumSet.range(from, to); int length = calcLength(elements); byte[] result = new byte[length]; int offset = 0; for (E element : elements) { byte[] data = get(element); System.arraycopy(data, 0, result, offset, data.length); offset += data.length; } return result; }
@Override @DefinedBy(Api.COMPILER) public Set<SourceVersion> getSourceVersions() { return Collections.unmodifiableSet(EnumSet.range(SourceVersion.RELEASE_3, SourceVersion.latest())); }
/** * Returns a set of all options for web-compatibility. * * @return the options set for web-compatibility */ public static final Set<CompatibilityOption> WebCompatibility() { return addAll(AnnexB(), EnumSet.range(RegExpStatics, FunctionCaller)); }