List of usage examples for com.google.common.collect Sets intersection
public static <E> SetView<E> intersection(final Set<E> set1, final Set<?> set2)
From source file:io.druid.segment.indexing.DataSchema.java
@JsonIgnore public InputRowParser getParser() { if (parser == null) { log.warn("No parser has been specified"); return null; }/*from ww w. j a va 2 s. c o m*/ final InputRowParser inputRowParser = jsonMapper.convertValue(this.parser, InputRowParser.class); final Set<String> dimensionExclusions = Sets.newHashSet(); for (AggregatorFactory aggregator : aggregators) { dimensionExclusions.addAll(aggregator.requiredFields()); } if (inputRowParser.getParseSpec() != null) { final DimensionsSpec dimensionsSpec = inputRowParser.getParseSpec().getDimensionsSpec(); final TimestampSpec timestampSpec = inputRowParser.getParseSpec().getTimestampSpec(); // exclude timestamp from dimensions by default, unless explicitly included in the list of dimensions if (timestampSpec != null) { final String timestampColumn = timestampSpec.getTimestampColumn(); if (!(dimensionsSpec.hasCustomDimensions() && dimensionsSpec.getDimensions().contains(timestampColumn))) { dimensionExclusions.add(timestampColumn); } } if (dimensionsSpec != null) { final Set<String> metSet = Sets.newHashSet(); for (AggregatorFactory aggregator : aggregators) { metSet.add(aggregator.getName()); } final Set<String> dimSet = Sets.newHashSet(dimensionsSpec.getDimensions()); final Set<String> overlap = Sets.intersection(metSet, dimSet); if (!overlap.isEmpty()) { throw new IAE( "Cannot have overlapping dimensions and metrics of the same name. Please change the name of the metric. Overlap: %s", overlap); } return inputRowParser.withParseSpec(inputRowParser.getParseSpec().withDimensionsSpec( dimensionsSpec.withDimensionExclusions(Sets.difference(dimensionExclusions, dimSet)))); } else { return inputRowParser; } } else { log.warn("No parseSpec in parser has been specified."); return inputRowParser; } }
From source file:dagger.internal.codegen.writer.EnumWriter.java
private boolean isDefaultConstructor(ConstructorWriter constructorWriter) { return Sets.intersection(VISIBILIY_MODIFIERS, modifiers) .equals(Sets.intersection(VISIBILIY_MODIFIERS, constructorWriter.modifiers)) && constructorWriter.body().isEmpty(); }
From source file:com.siemens.sw360.portal.tags.DisplayProjectChanges.java
private void renderLinkedProjects(StringBuilder display) { if (ensureSomethingTodoAndNoNullLinkedProjects()) { Set<String> changedProjectIds = Sets.intersection(additions.getLinkedProjects().keySet(), deletions.getLinkedProjects().keySet()); Set<String> linkedProjectsInDb = nullToEmptyMap(actual.getLinkedProjects()).keySet(); //keep only projects that are still in the database changedProjectIds = Sets.intersection(changedProjectIds, linkedProjectsInDb); Set<String> removedProjectIds = Sets.difference(deletions.getLinkedProjects().keySet(), changedProjectIds);// www . ja va 2s . c om removedProjectIds = Sets.intersection(removedProjectIds, linkedProjectsInDb); Set<String> addedProjectIds = Sets.difference(additions.getLinkedProjects().keySet(), changedProjectIds); renderProjectLinkList(display, deletions.getLinkedProjects(), removedProjectIds, "Removed Project Links"); renderProjectLinkList(display, additions.getLinkedProjects(), addedProjectIds, "Added Project Links"); renderProjectLinkListCompare(display, actual.getLinkedProjects(), deletions.getLinkedProjects(), additions.getLinkedProjects(), changedProjectIds); } }
From source file:edu.umn.msi.tropix.proteomics.itraqquantitation.impl.ScanIndex.java
private boolean namesMatch(@Nonnull final ScanIndex scanIndex) { final boolean namesMatch = !Sets.intersection(alternativeNames, scanIndex.alternativeNames).isEmpty(); return namesMatch; }
From source file:com.google.devtools.j2objc.translate.Functionizer.java
/** * Determines the set of methods to functionize. In addition to a method being * final we must also find an invocation for that method. Static methods, though, * are always functionized since there are no dynamic dispatch issues. *//*from ww w. jav a 2 s. co m*/ private Set<IMethodBinding> determineFunctionizableMethods(final CompilationUnit unit) { final Set<IMethodBinding> functionizableDeclarations = Sets.newHashSet(); final Set<IMethodBinding> invocations = Sets.newHashSet(); unit.accept(new TreeVisitor() { @Override public void endVisit(MethodDeclaration node) { if (canFunctionize(node)) { functionizableDeclarations.add(node.getMethodBinding()); } } @Override public void endVisit(MethodInvocation node) { invocations.add(node.getMethodBinding().getMethodDeclaration()); } }); return Sets.intersection(functionizableDeclarations, invocations); }
From source file:org.caleydo.view.histogram.v2.HistogramDistributionElement.java
private void renderHistImpl(GLGraphics g, float w, float h) { if (frameColor != null) g.color(frameColor).drawRect(0, 0, w, h); h -= HistogramRenderStyle.SIDE_SPACING_DETAIL_LOW * 2; w -= HistogramRenderStyle.SIDE_SPACING_DETAIL_LOW * 2; final List<DistributionEntry> entries = data.getEntries(); final int bins = entries.size(); final float delta = w / bins; final float lineWidth = Math.min(delta - 1, 25); final float lineWidthHalf = lineWidth * 0.5f; float x = delta / 2; g.save().move(HistogramRenderStyle.SIDE_SPACING_DETAIL_LOW, HistogramRenderStyle.SIDE_SPACING_DETAIL_LOW + h - 1); final Color border = RenderStyle.COLOR_BORDER; boolean renderBorder = !g.isPickingPass() && border != null; float borderBrightness = border == null ? 0 : getBrightness(border); for (int i = 0; i < bins; ++i) { DistributionEntry entry = entries.get(i); final Color c = toHighlight(entry.getColor(), i); g.color(c);//from ww w .j ava 2 s.c om float v = -h * entry.getValue(); if (v <= -1) { g.pushName(bucketPickingIds.get(i)); g.fillRect(x - lineWidthHalf, 0, lineWidth, v); g.popName(); } if (renderBorder) { float b = getBrightness(c); if (b > 0.5f && borderBrightness > 0.5f) g.color(1 - border.r, 1 - border.g, 1 - border.b, border.a); else g.color(border); g.drawRect(x - lineWidthHalf, 0, lineWidth, v); } x += delta; } if (!g.isPickingPass()) { g.lineWidth(2); for (SelectionType selectionType : SELECTIONTYPES) { Set<Integer> elements = data.getElements(selectionType); if (elements.isEmpty()) continue; g.color(toHighlightColor(selectionType)); x = delta / 2; for (int i = 0; i < bins; ++i) { DistributionEntry entry = entries.get(i); final Set<Integer> ids = entry.getIDs(); float p = ids.isEmpty() ? 0 : Sets.intersection(elements, ids).size() / ids.size(); float v = -h * entry.getValue() * p; if (v <= -1) { g.fillRect(x - lineWidthHalf, 0, lineWidth, v); } x += delta; } } } g.color(Color.DARK_GRAY).drawLine(0, 0, w, 0); g.restore(); }
From source file:org.caleydo.view.relationshipexplorer.ui.collection.AEntityCollection.java
@Override public Set<Object> getElementIDsFromForeignIDs(Set<Object> foreignIDs, IDType foreignIDType) { IDMappingManager mappingManager = IDMappingManagerRegistry.get() .getIDMappingManager(getBroadcastingIDType()); Set<Object> elementIDs = new HashSet<>(); Set<Object> broadcastIDs = mappingManager.getIDTypeMapper(foreignIDType, getBroadcastingIDType()) .apply(foreignIDs);//from w ww. jav a 2 s . c o m for (Object bcID : broadcastIDs) { elementIDs.addAll(getElementIDsFromBroadcastID(bcID)); } return new HashSet<>(Sets.intersection(elementIDs, allElementIDs)); }
From source file:org.sosy_lab.cpachecker.cpa.deterministic.DeterministicVariablesState.java
@Override public DeterministicVariablesState join(DeterministicVariablesState pOther) { ImmutableSet<Wrapper<ASimpleDeclaration>> deterministicVariablesInboth = Sets .intersection(deterministicVariables, pOther.deterministicVariables).immutableCopy(); if (deterministicVariablesInboth.equals(pOther.deterministicVariables)) { return pOther; }//from ww w. ja v a 2 s . c o m return new DeterministicVariablesState(deterministicVariablesInboth); }
From source file:co.mitro.core.servlets.MutateOrganization.java
@Override protected MitroRPC processCommand(MitroRequestContext context) throws IOException, SQLException, MitroServletException { try {//from w ww . j ava 2s . c o m RPC.MutateOrganizationRequest in = gson.fromJson(context.jsonRequest, RPC.MutateOrganizationRequest.class); in.promotedMemberEncryptedKeys = MitroServlet.createMapIfNull(in.promotedMemberEncryptedKeys); in.newMemberGroupKeys = MitroServlet.createMapIfNull(in.newMemberGroupKeys); in.adminsToDemote = MitroServlet.uniquifyCollection(in.adminsToDemote); in.membersToRemove = MitroServlet.uniquifyCollection(in.membersToRemove); @SuppressWarnings("deprecation") AuthenticatedDB userDb = AuthenticatedDB.deprecatedNew(context.manager, context.requestor); DBGroup org = userDb.getOrganizationAsAdmin(in.orgId); Set<String> adminsToDemote = Sets.newHashSet(in.adminsToDemote); Collection<DBAcl> aclsToRemove = new HashSet<>(); Set<Integer> existingAdmins = new HashSet<>(); for (DBAcl acl : org.getAcls()) { DBIdentity u = acl.loadMemberIdentity(context.manager.identityDao); assert (u != null); // toplevel groups should not have group members. if (adminsToDemote.contains(u.getName())) { aclsToRemove.add(acl); adminsToDemote.remove(u.getName()); } else { existingAdmins.add(u.getId()); } } // check for an attempt to promote members who are already admins. Set<Integer> duplicateAdmins = Sets.intersection(existingAdmins, DBIdentity.getUserIdsFromNames(context.manager, in.promotedMemberEncryptedKeys.keySet())); if (!duplicateAdmins.isEmpty()) { throw new MitroServletException( "Operation would create duplicate admins: " + COMMA_JOINER.join(duplicateAdmins)); } if (!adminsToDemote.isEmpty()) { throw new MitroServletException("The following users are not admins and could not be deleted:" + COMMA_JOINER.join(adminsToDemote)); } if (existingAdmins.isEmpty() && in.promotedMemberEncryptedKeys.isEmpty()) { throw new UserVisibleException("You cannot remove all admins from an organization"); } // delete ACLs for the admin user on the group. This maybe should be using common code? context.manager.aclDao.delete(aclsToRemove); Map<Integer, Integer> currentMemberIdsToGroupIds = getMemberIdsAndPrivateGroupIdsForOrg(context.manager, org); // Promoted members (new admins) must be members after all changes Set<String> currentMembers = DBIdentity.getUserNamesFromIds(context.manager, currentMemberIdsToGroupIds.keySet()); Set<String> membersAfterChanges = Sets.difference( Sets.union(currentMembers, in.newMemberGroupKeys.keySet()), new HashSet<>(in.membersToRemove)); Set<String> nonMemberAdmins = Sets.difference(in.promotedMemberEncryptedKeys.keySet(), membersAfterChanges); if (!nonMemberAdmins.isEmpty()) { throw new MitroServletException( "Cannot add admins without them being members: " + COMMA_JOINER.join(nonMemberAdmins)); } // check for duplicate users Set<Integer> duplicateMembers = Sets.intersection(currentMemberIdsToGroupIds.keySet(), DBIdentity.getUserIdsFromNames(context.manager, in.newMemberGroupKeys.keySet())); if (!duplicateMembers.isEmpty()) { throw new MitroServletException( "Operation would create duplicate members: " + COMMA_JOINER.join(duplicateMembers)); } // delete all the private groups. This might orphan secrets, which is the intended result. Set<Integer> memberIdsToRemove = DBIdentity.getUserIdsFromNames(context.manager, in.membersToRemove); if (memberIdsToRemove.size() != in.membersToRemove.size()) { throw new MitroServletException("Invalid members to remove."); } Set<Integer> illegalRemovals = Sets.intersection(existingAdmins, memberIdsToRemove); if (!illegalRemovals.isEmpty()) { throw new MitroServletException( "Cannot remove members who are admins:" + COMMA_JOINER.join(illegalRemovals)); } Set<Integer> nonOrgUsers = Sets.difference(memberIdsToRemove, currentMemberIdsToGroupIds.keySet()); if (!nonOrgUsers.isEmpty()) { throw new MitroServletException("The following users are not members and cannot be removed:" + COMMA_JOINER.join(nonOrgUsers)); } Set<Integer> deleteGroupIds = Sets.newHashSet( Maps.filterKeys(currentMemberIdsToGroupIds, Predicates.in(memberIdsToRemove)).values()); if (!deleteGroupIds.isEmpty()) { context.manager.groupDao.deleteIds(deleteGroupIds); DeleteBuilder<DBAcl, Integer> deleter = context.manager.aclDao.deleteBuilder(); deleter.where().in(DBAcl.GROUP_ID_FIELD_NAME, deleteGroupIds); deleter.delete(); DeleteBuilder<DBGroupSecret, Integer> gsDeleter = context.manager.groupSecretDao.deleteBuilder(); gsDeleter.where().in(DBGroupSecret.GROUP_ID_NAME, deleteGroupIds); gsDeleter.delete(); } // Remove the user from all org-owned group to which he belongs. // Note: if the user has access to an org-owned secret via a non-org-owned group, // he will retain access. Set<Integer> allOrgGroupIds = Sets.newHashSet(); for (DBGroup g : org.getAllOrgGroups(context.manager)) { allOrgGroupIds.add(g.getId()); } if (!memberIdsToRemove.isEmpty()) { if (!allOrgGroupIds.isEmpty()) { // Remove users from organization-owned groups (named or otherwise) DeleteBuilder<DBAcl, Integer> deleter = context.manager.aclDao.deleteBuilder(); deleter.where().in(DBAcl.MEMBER_IDENTITY_FIELD_NAME, memberIdsToRemove).and() .in(DBAcl.GROUP_ID_FIELD_NAME, allOrgGroupIds); deleter.delete(); } // Remove users from any org-owned secrets (e.g. via non-org private or named groups) HashMap<Integer, SecretToPath> orgSecretsToPath = new HashMap<>(); ListMySecretsAndGroupKeys.getSecretInfo(context, AdminAccess.FORCE_ACCESS_VIA_TOPLEVEL_GROUPS, orgSecretsToPath, ImmutableSet.of(org.getId()), null, IncludeAuditLogInfo.NO_AUDIT_LOG_INFO); if (orgSecretsToPath.size() > 0) { // Delete any group secret giving these users access to org secrets // strange side effect: personal teams may be mysteriously removed from org secrets // TODO: Potential bug: removing the last personal team will "orphan" the secret String groupSecretDelete = String.format( "DELETE FROM group_secret WHERE id IN (" + "SELECT group_secret.id FROM group_secret, acl WHERE " + " group_secret.\"serverVisibleSecret_id\" IN (%s) AND " + " group_secret.group_id = acl.group_id AND acl.member_identity IN (%s))", COMMA_JOINER.join(orgSecretsToPath.keySet()), COMMA_JOINER.join(memberIdsToRemove)); context.manager.groupSecretDao.executeRaw(groupSecretDelete); } } List<DBAcl> organizationAcls = CreateOrganization.makeAdminAclsForOrganization(userDb, org, in.promotedMemberEncryptedKeys); // TODO: move to authdb? for (DBAcl acl : organizationAcls) { context.manager.aclDao.create(acl); } // create private groups for each new member CreateOrganization.addMembersToOrganization(userDb, org, in.newMemberGroupKeys, context.manager); context.manager.addAuditLog(DBAudit.ACTION.MUTATE_ORGANIZATION, null, null, org, null, ""); MutateOrganizationResponse out = new RPC.MutateOrganizationResponse(); // TODO: validate the group? return out; } catch (CyclicGroupError e) { throw new MitroServletException(e); } }
From source file:com.google.errorprone.bugpatterns.UnusedException.java
private static Optional<SuggestedFix> fixConstructor(NewClassTree constructor, VarSymbol exception, VisitorState state) {//from w w w . ja va2 s .com Symbol symbol = ASTHelpers.getSymbol(((JCNewClass) constructor).clazz); if (!(symbol instanceof ClassSymbol)) { return Optional.empty(); } ClassSymbol classSymbol = (ClassSymbol) symbol; ImmutableList<MethodSymbol> constructors = classSymbol.getEnclosedElements().stream() .filter(Symbol::isConstructor).map(e -> (MethodSymbol) e).collect(toImmutableList()); MethodSymbol constructorSymbol = ASTHelpers.getSymbol(constructor); if (constructorSymbol == null) { return Optional.empty(); } List<Type> types = getParameterTypes(constructorSymbol); for (MethodSymbol proposedConstructor : constructors) { List<Type> proposedTypes = getParameterTypes(proposedConstructor); if (proposedTypes.size() != types.size() + 1) { continue; } Set<Modifier> constructorVisibility = Sets.intersection(constructorSymbol.getModifiers(), VISIBILITY_MODIFIERS); Set<Modifier> replacementVisibility = Sets.intersection(proposedConstructor.getModifiers(), VISIBILITY_MODIFIERS); if (constructor.getClassBody() == null && !constructorVisibility.equals(replacementVisibility)) { continue; } if (typesEqual(proposedTypes.subList(0, types.size()), types, state) && state.getTypes().isAssignable(exception.type, getLast(proposedTypes))) { return Optional.of(appendArgument(constructor, exception.getSimpleName().toString(), state, types)); } } return Optional.empty(); }