/** Returns the intersection of two enumsets */ public static <E extends Enum<E>> EnumSet<E> intersection(EnumSet<E> s1, EnumSet<E> s2) { // We have to clone, since retainAll modifies the set EnumSet<E> s = s1.clone(); s.retainAll(s2); // I tried coding this for arbitrary sets, but it failed because // the interface Cloneable does not make sure that the clone-method // is visible (!) return (s); }
private byte[] negotiate(ExtendedNegotiation exneg, TransferCapability tc) { if (exneg == null) return null; StorageOptions storageOptions = tc.getStorageOptions(); if (storageOptions != null) return storageOptions.toExtendedNegotiationInformation(); EnumSet<QueryOption> queryOptions = tc.getQueryOptions(); if (queryOptions != null) { EnumSet<QueryOption> commonOpts = QueryOption.toOptions(exneg); commonOpts.retainAll(queryOptions); return QueryOption.toExtendedNegotiationInformation(commonOpts); } return null; }
@Override public void sceneSelectionChanged(final SceneSelectionChangeEvent event) { EnumSet<SelectionMode> supportedModes = null; if (event.getSelectedNodes().isEmpty()) { supportedModes = EnumSet.of(SelectionMode.OBJECT); } else { supportedModes = EnumSet.allOf(SelectionMode.class); for (final INode node : event.getSelectedNodes()) { supportedModes.retainAll(node.getSupportedSelectionModes()); } } objectSelection.setEnabled(supportedModes.contains(SelectionMode.OBJECT)); faceSelection.setEnabled(supportedModes.contains(SelectionMode.FACE)); edgeSelection.setEnabled(supportedModes.contains(SelectionMode.EDGE)); vertexSelection.setEnabled(supportedModes.contains(SelectionMode.VERTEX)); }