Example usage for com.google.common.collect Sets intersection

List of usage examples for com.google.common.collect Sets intersection

Introduction

In this page you can find the example usage for com.google.common.collect Sets intersection.

Prototype

public static <E> SetView<E> intersection(final Set<E> set1, final Set<?> set2) 

Source Link

Document

Returns an unmodifiable view of the intersection of two sets.

Usage

From source file:eu.eidas.node.service.ColleagueRequestServlet.java

/**
 * Post method//from   w  w  w .jav a2  s.c o m
 *
 * @param request
 * @param response
 * @throws ServletException
 * @throws IOException
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    PropertiesUtil.checkProxyServiceActive();
    // Obtaining the assertion consumer url from SPRING context
    ServiceControllerService controllerService = (ServiceControllerService) getApplicationContext()
            .getBean(NodeBeanNames.EIDAS_SERVICE_CONTROLLER.toString());

    CorrelationMap<StoredAuthenticationRequest> requestCorrelationMap = controllerService
            .getProxyServiceRequestCorrelationMap();

    // Prevent cookies from being accessed through client-side script WITHOUT renew of session.
    setHTTPOnlyHeaderToSession(false, request, response);
    SessionHolder.setId(request.getSession());
    request.getSession().setAttribute(EidasParameterKeys.SAML_PHASE.toString(),
            EIDASValues.EIDAS_SERVICE_REQUEST);

    // Obtains the parameters from httpRequest
    WebRequest webRequest = new IncomingRequest(request);

    // Validating the only HTTP parameter: SAMLRequest.
    String samlRequest = webRequest.getEncodedLastParameterValue(EidasParameterKeys.SAML_REQUEST);
    NodeParameterValidator.paramName(EidasParameterKeys.SAML_REQUEST).paramValue(samlRequest)
            .eidasError(EidasErrorKey.COLLEAGUE_REQ_INVALID_SAML).validate();

    // Storing the Remote Address and Host for auditing proposes.
    String remoteIpAddress = webRequest.getRemoteIpAddress();

    // Validating the optional HTTP Parameter relayState.
    String relayState = webRequest.getEncodedLastParameterValue(NodeParameterNames.RELAY_STATE.toString());
    LOG.debug("Saving ProxyService relay state. " + relayState);

    // Obtaining the authData
    IAuthenticationRequest authData = controllerService.getProxyService()
            .processAuthenticationRequest(webRequest, relayState, requestCorrelationMap, remoteIpAddress);
    if (StringUtils.isNotBlank(relayState)) { // RelayState's HTTP Parameter is optional!
        NodeParameterValidator.paramName(NodeParameterNames.RELAY_STATE).paramValue(relayState)
                .eidasError(EidasErrorKey.SPROVIDER_SELECTOR_INVALID_RELAY_STATE).validate();
    }
    // Validating the personal attribute list
    IPersonalAttributeList persAttrList = PersonalAttributeList.copyOf(authData.getRequestedAttributes());
    List<PersonalAttribute> attrList = new ArrayList<PersonalAttribute>();

    boolean hasEidasAttributes = !Sets.intersection(EidasSpec.REGISTRY.getAttributes(),
            authData.getRequestedAttributes().getDefinitions()).isEmpty();
    //ImmutablePersonalAttributeSet
    for (PersonalAttribute pa : persAttrList) {
        attrList.add(pa);
    }
    String redirectUrl = authData.getAssertionConsumerServiceURL();
    LOG.debug("RedirectUrl: " + redirectUrl);
    // Validating the citizenConsentUrl
    NodeParameterValidator.paramName(EidasParameterKeys.EIDAS_SERVICE_REDIRECT_URL)
            .paramValue(controllerService.getCitizenConsentUrl())
            .eidasError(EidasErrorKey.COLLEAGUE_REQ_INVALID_DEST_URL).validate();
    LOG.debug("sessionId is on cookies () or fromURL ", request.isRequestedSessionIdFromCookie(),
            request.isRequestedSessionIdFromURL());

    request.setAttribute(NodeParameterNames.SAML_TOKEN_FAIL.toString(),
            controllerService.getProxyService().generateSamlTokenFail(authData,
                    EIDASStatusCode.REQUESTER_URI.toString(), EidasErrorKey.CITIZEN_RESPONSE_MANDATORY,
                    remoteIpAddress));

    request.setAttribute(EidasParameterKeys.SP_ID.toString(), authData.getProviderName());
    if (authData instanceof IStorkAuthenticationRequest) {
        request.setAttribute(NodeParameterNames.QAA_LEVEL.toString(),
                ((IStorkAuthenticationRequest) authData).getQaa());
    }

    request.setAttribute(NodeParameterNames.LOA_VALUE.toString(),
            EidasAttributesUtil.getUserFriendlyLoa(authData.getLevelOfAssurance()));
    request.setAttribute(NodeParameterNames.CITIZEN_CONSENT_URL.toString(),
            encodeURL(controllerService.getCitizenConsentUrl(), response)); // Correct URl redirect cookie implementation
    request.setAttribute(NodeParameterNames.ATTR_LIST.toString(), attrList);
    request.setAttribute(NodeParameterNames.REDIRECT_URL.toString(), encodeURL(redirectUrl, response));// Correct URl redirect cookie implementation
    request.setAttribute(NodeParameterNames.EIDAS_ATTRIBUTES_PARAM.toString(),
            Boolean.valueOf(hasEidasAttributes));

    request.setAttribute(NodeParameterNames.REQUEST_ID.toString(), authData.getId());
    request.setAttribute(NodeParameterNames.COLLEAGUE_REQUEST.toString(), authData);

    NodeViewNames forwardUrl;
    if (controllerService.isAskConsentType()) {
        forwardUrl = NodeViewNames.EIDAS_SERVICE_PRESENT_CONSENT;
    } else {
        forwardUrl = NodeViewNames.EIDAS_SERVICE_NO_CONSENT;
    }
    RequestDispatcher dispatcher = request.getRequestDispatcher(forwardUrl.toString());
    dispatcher.forward(request, response);
}

From source file:org.onlab.graph.SuurballeGraphSearch.java

private boolean isDisjoint(Path<V, E> a, Path<V, E> b) {
    return Sets.intersection(vertices(a), vertices(b)).isEmpty();
}

From source file:no.ssb.vtl.script.operations.FoldOperation.java

/**
 * Create indices used by the fold operation.
 *
 * @param structure the new structure./*ww  w.j a v a  2  s.  c  o  m*/
 */
private void computeIndices(DataStructure structure) {
    ImmutableSet<String> originalColumns = ImmutableSet.copyOf(getChild().getDataStructure().keySet());
    ImmutableSet<String> columns = ImmutableSet.copyOf(structure.keySet());

    // Indices of the common columns.
    copyIndices = Sets.intersection(columns, originalColumns).stream()
            .mapToInt(originalColumns.asList()::indexOf).toArray();

    elementIndices = Sets.intersection(elements, originalColumns).stream()
            .mapToInt(originalColumns.asList()::indexOf).toArray();

    elementNames = elements.asList().toArray(new String[] {});

    measureIndex = columns.asList().indexOf(measure);
    dimensionIndex = columns.asList().indexOf(dimension);
    size = columns.size();
}

From source file:org.eclipse.sw360.moderation.db.ModerationRequestGenerator.java

protected void dealWithStringKeyedMap(U field) {
    Map<String, Object> addedMap = new HashMap<>();
    addedMap.putAll(nullToEmptyMap((Map<String, Object>) updateDocument.getFieldValue(field)));

    Map<String, Object> actualMap = (Map<String, Object>) actualDocument.getFieldValue(field);
    for (String key : actualMap.keySet()) {
        addedMap.remove(key);/*from   w w  w.j  a  v a2  s.  c  om*/
    }

    Map<String, Object> deletedMap = new HashMap<>();
    deletedMap.putAll(nullToEmptyMap((Map<String, Object>) actualDocument.getFieldValue(field)));

    Map<String, Object> updateMap = (Map<String, Object>) updateDocument.getFieldValue(field);
    for (String key : updateMap.keySet()) {
        deletedMap.remove(key);
    }

    //determine changes in common linkedProjects
    Set<String> commonKeys = Sets.intersection(updateMap.keySet(), actualMap.keySet());
    for (String id : commonKeys) {
        Object actual = actualMap.get(id);
        Object update = updateMap.get(id);
        if (!actual.equals(update)) {
            addedMap.put(id, update);
            deletedMap.put(id, actual);
        }
    }
    if (!addedMap.isEmpty()) {
        documentAdditions.setFieldValue(field, addedMap);
    }
    if (!deletedMap.isEmpty()) {
        documentDeletions.setFieldValue(field, deletedMap);
    }
}

From source file:io.druid.data.input.impl.DimensionsSpec.java

private void verify(List<SpatialDimensionSchema> spatialDimensions) {
    List<String> dimNames = getDimensionNames();
    Preconditions.checkArgument(/*  w ww .  j  a v a2  s  . c  o  m*/
            Sets.intersection(this.dimensionExclusions, Sets.newHashSet(dimNames)).isEmpty(),
            "dimensions and dimensions exclusions cannot overlap");

    ParserUtils.validateFields(dimNames);
    ParserUtils.validateFields(dimensionExclusions);

    List<String> spatialDimNames = Lists.transform(spatialDimensions,
            new Function<SpatialDimensionSchema, String>() {
                @Override
                public String apply(SpatialDimensionSchema input) {
                    return input.getDimName();
                }
            });

    // Don't allow duplicates between main list and deprecated spatial list
    ParserUtils.validateFields(Iterables.concat(dimNames, spatialDimNames));
}

From source file:com.getbase.android.schema.Schemas.java

private ImmutableMap<String, ImmutableList<? extends TableDefinitionOperation>> merge(
        ImmutableMap<String, ImmutableList<? extends TableDefinitionOperation>> schema,
        ImmutableMap<String, ImmutableList<? extends TableDowngradeOperation>> downgrades, int targetRevision) {
    ImmutableMap.Builder<String, ImmutableList<? extends TableDefinitionOperation>> builder = ImmutableMap
            .builder();//  w w  w  .jav  a 2 s . c om

    for (String unchangedTable : Sets.difference(schema.keySet(), downgrades.keySet())) {
        builder.put(unchangedTable, schema.get(unchangedTable));
    }

    for (String alteredTable : Sets.intersection(downgrades.keySet(), schema.keySet())) {
        ImmutableList<? extends TableDefinitionOperation> mergedOperations = MERGER.merge(
                schema.get(alteredTable), downgrades.get(alteredTable), alteredTable, targetRevision,
                mRevisionDescriptionBuilder);
        if (!mergedOperations.isEmpty()) {
            builder.put(alteredTable, mergedOperations);
        }
    }

    for (String addedTable : Sets.difference(downgrades.keySet(), schema.keySet())) {
        builder.put(addedTable, CONVERTER.convert(downgrades.get(addedTable), addedTable, targetRevision,
                mRevisionDescriptionBuilder));
    }

    return builder.build();
}

From source file:org.eclipse.sirius.business.internal.movida.DynamicVSMLoader.java

/**
 * {@inheritDoc}// w w w  .ja  va2  s . c o  m
 */
@Override
public synchronized void registryChanged(ViewpointRegistry reg, Set<URI> removed, Set<URI> added,
        Set<URI> changed) {
    assert reg == this.registry;
    SetView<URI> absentRequirements = Sets.intersection(requiredViewpoints, removed);
    if (!absentRequirements.isEmpty()) {
        if (errorHandler != null) {
            errorHandler.run();
        } else {
            throw new IllegalStateException("The required viewpoints " //$NON-NLS-1$
                    + Joiner.on(", ").join(absentRequirements) + " are not available anymore."); //$NON-NLS-1$//$NON-NLS-2$
        }
    }
    refresh();
}

From source file:eu.lp0.cursus.scoring.scores.impl.GenericRacePointsData.java

protected int getPointsForNoLaps(Pilot pilot, Race race) {
    if (!pilot.getEvents().contains(pilot) && Sets
            .intersection(lazyEventRaces.get().get(race.getEvent()), pilot.getRaces().keySet()).isEmpty()) {
        return getNonAttendeeFleetSize(race) + 1;
    } else {/*from  w  ww  . j  av  a  2 s.  c om*/
        return getFleetSize(race) + 1;
    }
}

From source file:grakn.core.graql.gremlin.GraqlTraversal.java

private GraphTraversal<Vertex, Map<String, Element>> applyFragments(TransactionOLTP tx, Set<Variable> vars,
        ImmutableList<Fragment> fragmentList, GraphTraversal<Vertex, ? extends Element> traversal) {
    Set<Variable> foundVars = new HashSet<>();

    // Apply fragments in order into one single traversal
    Variable currentName = null;//from  w w w.  j av  a 2  s  .  c  o m

    for (Fragment fragment : fragmentList) {
        // Apply fragment to traversal
        fragment.applyTraversal(traversal, tx, foundVars, currentName);
        currentName = fragment.end() != null ? fragment.end() : fragment.start();
    }

    // Select all the variable names
    return selectVars(traversal, Sets.intersection(vars, foundVars));
}

From source file:org.apache.shindig.gadgets.rewrite.lexer.DefaultContentRewriter.java

private boolean rewrite(GadgetSpec spec, Uri source, MutableContent mc, String mimeType, Writer w) {
    // Dont rewrite content if the spec is unavailable
    if (spec == null) {
        return false;
    }//from   w ww.j ava  2  s .com

    ContentRewriterFeature rewriterFeature = new ContentRewriterFeature(spec, includeUrls, excludeUrls, expires,
            includeTags);

    if (!rewriterFeature.isRewriteEnabled()) {
        return false;
    }
    if (isHTML(mimeType)) {
        Map<String, HtmlTagTransformer> transformerMap = Maps.newHashMap();

        if (getProxyUrl() != null) {
            LinkRewriter linkRewriter = createLinkRewriter(spec, rewriterFeature);
            LinkingTagRewriter rewriter = new LinkingTagRewriter(linkRewriter, source);
            Set<String> toProcess = Sets.intersection(rewriter.getSupportedTags(),
                    rewriterFeature.getIncludedTags());

            for (String tag : toProcess) {
                transformerMap.put(tag, rewriter);
            }

            if (rewriterFeature.getIncludedTags().contains("style")) {
                transformerMap.put("style", new StyleTagRewriter(source, linkRewriter));
            }
        }
        if (getConcatUrl() != null && rewriterFeature.getIncludedTags().contains("script")) {
            transformerMap.put("script",
                    new JavascriptTagMerger(spec, rewriterFeature, getConcatUrl(), source));
        }
        HtmlRewriter.rewrite(new StringReader(mc.getContent()), source, transformerMap, w);
        return true;
    } else if (isCSS(mimeType)) {
        if (getProxyUrl() != null) {
            CssRewriter.rewrite(new StringReader(mc.getContent()), source,
                    createLinkRewriter(spec, rewriterFeature), w, false);
            return true;
        } else {
            return false;
        }
    }
    return false;
}