List of usage examples for com.google.common.collect Maps immutableEntry
@GwtCompatible(serializable = true) public static <K, V> Entry<K, V> immutableEntry(@Nullable K key, @Nullable V value)
From source file:com.facebook.buck.features.apple.project.WorkspaceAndProjectGenerator.java
/** * Transform a map from scheme name to `TargetNode` to scheme name to the associated `PBXProject`. * This wraps `mapFromSchemeToPBXProject` with added functionality filters out null target nodes. * * @param schemeToOptionalTargetNodes Map to transform. * @return Map of scheme name to associated `PXBProject`s. *///from ww w .ja v a 2 s . co m private static ImmutableSetMultimap<String, PBXTarget> mapFromOptionalSchemeToPBXProject( ImmutableSetMultimap<String, Optional<TargetNode<?>>> schemeToOptionalTargetNodes, ImmutableMap<BuildTarget, PBXTarget> buildTargetToPBXTarget) { // filter out map entries that are null ImmutableSetMultimap<String, TargetNode<?>> schemeToTargetNodes = ImmutableSetMultimap .copyOf(schemeToOptionalTargetNodes.entries().stream().filter(stringOptionalEntry -> { // removes scheme mapped to null return stringOptionalEntry.getValue().isPresent(); }).map(stringOptionalEntry -> { // force map to non-Optional value since those values are filtered above return Maps.immutableEntry(stringOptionalEntry.getKey(), stringOptionalEntry.getValue().get()); }).collect(Collectors.toList())); return mapFromSchemeToPBXProject(schemeToTargetNodes, buildTargetToPBXTarget); }
From source file:io.atomix.core.multimap.impl.AbstractAtomicMultimapService.java
@Override public IteratorBatch<Map.Entry<String, byte[]>> nextEntries(long iteratorId, int position) { IteratorContext context = entryIterators.get(iteratorId); if (context == null) { return null; }//from w ww. j a v a2s . co m List<Map.Entry<String, byte[]>> entries = new ArrayList<>(); int size = 0; while (context.iterator.hasNext()) { context.position++; if (context.position > position) { Map.Entry<String, MapEntryValues> entry = context.iterator.next(); String key = entry.getKey(); int keySize = key.length(); for (byte[] value : entry.getValue().values()) { entries.add(Maps.immutableEntry(key, value)); size += keySize; size += value.length; } if (size >= MAX_ITERATOR_BATCH_SIZE) { break; } } } if (entries.isEmpty()) { return null; } return new IteratorBatch<>(iteratorId, context.position, entries, !context.iterator.hasNext()); }
From source file:org.onosproject.store.consistent.impl.DefaultAsyncConsistentMap.java
private Map.Entry<K, Versioned<V>> mapRawEntry(Map.Entry<String, Versioned<byte[]>> e) { return Maps.immutableEntry(dK(e.getKey()), e.getValue().<V>map(serializer::decode)); }
From source file:fi.vm.sade.organisaatio.business.impl.OrganisaatioBusinessServiceImpl.java
@Override public OrganisaatioResult save(OrganisaatioRDTO model, boolean updating, boolean skipParentDateValidation) throws ValidationException { // Tarkistetaan OID if (model.getOid() == null && updating) { throw new ValidationException("Oid cannot be null");//trying to update organisaatio that doesn't exist (is is null)"); } else if (!updating) { if ((model.getOid() != null) && (organisaatioDAO.findByOid(model.getOid()) != null)) { throw new OrganisaatioExistsException(model.getOid()); }/* w w w . j av a2s. c o m*/ if (model.getOppilaitosKoodi() != null && model.getOppilaitosKoodi().length() > 0) { if (checker.checkLearningInstitutionCodeIsUniqueAndNotUsed(model)) { throw new LearningInstitutionExistsException("organisaatio.oppilaitos.exists.with.code"); } } } // Haetaan parent organisaatio Organisaatio parentOrg = (model.getParentOid() != null && !model.getParentOid().equalsIgnoreCase(rootOrganisaatioOid)) ? organisaatioDAO.findByOid(model.getParentOid()) : null; // Validointi: Tarkistetaan, ett parent ei ole ryhm if (parentOrg != null && OrganisaatioUtil.isRyhma(parentOrg)) { throw new ValidationException("Parent cannot be group"); } // Validointi: Tarkistetaan, ett ryhm ei olla lismss muulle kuin oph organisaatiolle if (OrganisaatioUtil.isRyhma(model) && model.getParentOid().equalsIgnoreCase(rootOrganisaatioOid) == false) { throw new ValidationException("Ryhmi ei voi luoda muille kuin oph organisaatiolle"); } // Validointi: Jos organisaatio on ryhm, tarkistetaan ettei muita ryhmi if (OrganisaatioUtil.isRyhma(model) && model.getTyypit().size() != 1) { throw new ValidationException("Rymll ei voi olla muita tyyppej"); } // Validointi: Jos y-tunnus on annettu, sen tytyy olla oikeassa muodossa if (model.getYTunnus() != null && model.getYTunnus().length() == 0) { model.setYTunnus(null); } if (model.getYTunnus() != null && !Pattern.matches(OrganisaatioValidationConstraints.YTUNNUS_PATTERN, model.getYTunnus())) { throw new ValidationException("validation.Organisaatio.ytunnus"); } // Validointi: Jos virastotunnus on annettu, sen tytyy olla oikeassa muodossa if (model.getVirastoTunnus() != null && model.getVirastoTunnus().length() == 0) { model.setVirastoTunnus(null); } if (model.getVirastoTunnus() != null && !Pattern .matches(OrganisaatioValidationConstraints.VIRASTOTUNNUS_PATTERN, model.getVirastoTunnus())) { throw new ValidationException("validation.Organisaatio.virastotunnus"); } // Validointi: koodistoureissa pit olla versiotieto checker.checkVersionInKoodistoUris(model); Map<String, String> oldName = null; if (updating) { Organisaatio oldOrg = organisaatioDAO.findByOid(model.getOid()); oldName = new HashMap<>(oldOrg.getNimi().getValues()); } // Luodaan tallennettava entity objekti Organisaatio entity = conversionService.convert(model, Organisaatio.class); //this entity is populated with new data // Asetetaan parent path setParentPath(entity, model.getParentOid()); // Tarkistetaan ett toimipisteen nimi on oikeassa formaatissa if (parentOrg != null && (organisaatioIsOfType(entity, OrganisaatioTyyppi.TOIMIPISTE) || organisaatioIsOfType(entity, OrganisaatioTyyppi.OPPISOPIMUSTOIMIPISTE)) && !organisaatioIsOfType(entity, OrganisaatioTyyppi.OPPILAITOS)) { checker.checkToimipisteNimiFormat(entity, parentOrg.getNimi()); } // Asetetaan pivittj ja pivityksen aikaleima try { entity.setPaivittaja(getCurrentUser()); entity.setPaivitysPvm(new Date()); } catch (Throwable t) { LOG.error("Could not set updater for organisation!", t); throw new OrganisaatioResourceException(Response.Status.INTERNAL_SERVER_ERROR, t.getMessage(), "error.setting.updater"); } // Pivitystapauksessa pitaa asetta id:t, ettei luoda uusia rivej boolean parentChanged = false; Organisaatio oldParent = null; if (updating) { Organisaatio orgEntity = this.organisaatioDAO.findByOid(model.getOid()); mergeAuxData(entity, orgEntity); entity.setId(orgEntity.getId()); entity.setOpetuspisteenJarjNro(orgEntity.getOpetuspisteenJarjNro()); // Tarkistetaan organisaatiohierarkia jos hierarkia muuttunut (onko parent muuttunut) if (model.getParentOid().equals(orgEntity.getParent().getOid()) == false) { LOG.info("Hierarkia muuttunut, tarkastetaan hierarkia."); checker.checkOrganisaatioHierarchy(entity, model.getParentOid()); parentChanged = true; oldParent = orgEntity.getParent(); } // Tarkistetaan organisaatiohierarkia jos organisaatiotyypit muutuneet if (!entity.getTyypit().containsAll(orgEntity.getTyypit()) || !orgEntity.getTyypit().containsAll(entity.getTyypit())) { LOG.info("Organisaation tyypit muuttuneet, tarkastetaan hierarkia."); checker.checkOrganisaatioHierarchy(entity, model.getParentOid()); } // Tarkistetaan ettei lakkautuspivmrn jlkeen ole alkavia koulutuksia if (OrganisaatioUtil.isSameDay(entity.getLakkautusPvm(), orgEntity.getLakkautusPvm()) == false) { LOG.info("Lakkautuspivmr muuttunut, tarkastetaan alkavat koulutukset."); checker.checkLakkautusAlkavatKoulutukset(entity); } } else { // Tarkistetaan organisaatio hierarkia checker.checkOrganisaatioHierarchy(entity, model.getParentOid()); } // Generoidaan oidit try { generateOids(entity); generateOidsMetadata(entity.getMetadata()); } catch (ExceptionMessage em) { throw new OrganisaatioResourceException(Response.Status.INTERNAL_SERVER_ERROR, em.getMessage()); } // Generoidaan opetuspiteenJarjNro String opJarjNro = null; if (!updating && StringUtils.isEmpty(model.getOpetuspisteenJarjNro())) { opJarjNro = generateOpetuspisteenJarjNro(entity, parentOrg, model.getTyypit()); entity.setOpetuspisteenJarjNro(opJarjNro); } else { opJarjNro = entity.getOpetuspisteenJarjNro(); } // If inserting, check if ytunnus allready exists in the database if (!updating && entity.getYtunnus() != null) { checker.checkYtunnusIsUniqueAndNotUsed(entity.getYtunnus()); } entity.setOrganisaatioPoistettu(false); // OVT-4765 do not validate start date against parent date when updating if (updating) { LOG.info("this is an update, not validating parent dates."); skipParentDateValidation = true; } // OH-116 if (parentOrg != null) { // Check if organization has parent and if it has check that passivation dates match to parent OrganisationDateValidator dateValidator = new OrganisationDateValidator(skipParentDateValidation); if (!dateValidator.apply(Maps.immutableEntry(parentOrg, entity))) { throw new OrganisaatioDateException(); } } // Asetetaan yhteystietoarvot entity.setYhteystietoArvos(mergeYhteystietoArvos(entity, entity.getYhteystietoArvos(), updating)); // Kirjoitetaan yhteystiedot uusiksi (ei pivitet vanhoja) for (Yhteystieto yhtTieto : entity.getYhteystiedot()) { yhtTieto.setOrganisaatio(entity); } // Kirjoitetaan nimihistoria uusiksi (ei pivitet vanhoja) for (OrganisaatioNimi nimi : entity.getNimet()) { nimi.setOrganisaatio(entity); } // Nimihistoriaan liittyvt tarkistukset (HUOM! Ei koske Ryhmi) if (OrganisaatioUtil.isRyhma(entity) == false) { /** @TODO --> Tarkistetaan, ettei nimihistoriaa muuteta muuta kuin nykyisen tai uusimman nimen osalta */ // Tarkistetaan, ett nimen alkupivmr ei ole NULL checker.checkNimihistoriaAlkupvm(entity.getNimet()); // Tarkistetaan, ett nimihistoriassa on organisaatiolle validi nimi MonikielinenTeksti nimi = OrganisaatioNimiUtil.getNimi(entity.getNimet()); if (nimi == null) { throw new OrganisaatioNameHistoryNotValidException(); } // Tarkistetaan, ett organisaatiolle asetettu nimi ei ole // ristiriidassa nimihistorian kanssa if (nimi.getValues().equals(entity.getNimi().getValues()) == false) { throw new OrganisaatioNameHistoryNotValidException(); } // Asetetaan organisaatiolle sama nimi instanssi kuin nimihistoriassa entity.setNimi(nimi); } // Asetetaan tyypit "organisaatio" taulun kenttn String tyypitStr = ""; for (String curTyyppi : model.getTyypit()) { tyypitStr += curTyyppi + "|"; } entity.setOrganisaatiotyypitStr(tyypitStr); // Generate natural key, OVT-4954 // "Jos kyseess on koulutustoimija pitisi palauttaa y-tunnus." // "Jos oppilaitos, palautetaan oppilaitosnumero." // "Jos toimipiste, palautetaan oppilaitosnro+toimipisteenjrjestysnumero(konkatenoituna)sek yhkoulukoodi." entity.setToimipisteKoodi(calculateToimipisteKoodi(entity, parentOrg)); // call super.insert OR update which saves & validates jpa if (updating) { LOG.info("updating " + entity); try { organisaatioDAO.update(entity); } catch (OptimisticLockException ole) { throw new OrganisaatioModifiedException(ole); } entity = organisaatioDAO.read(entity.getId()); } else { entity = organisaatioDAO.insert(entity); } // Saving the parent relationship if (parentOrg == null) { // Koulutustoimija in root level is stored under OPH Organisaatio uberParent = organisaatioDAO.findByOid(rootOrganisaatioOid); entity = saveParentSuhde(entity, uberParent, opJarjNro); } else { entity = saveParentSuhde(entity, parentOrg, opJarjNro); if (!updating && entity.getParent() != null) { solrIndexer.index(Arrays.asList(parentOrg)); } } // Indeksoidaan organisaatio solriin (HUOM! Ryhmi ei indeksoida) // Uuden organisaation tapauksessa uudelleenindeksoidaan mys parent if (OrganisaatioUtil.isRyhma(entity) == false) { solrIndexer.index(entity); if ((parentChanged || !updating) && parentOrg != null) { solrIndexer.index(parentOrg); } } // Tarkistetaan ja pivitetn oppilaitoksen alla olevien opetuspisteiden nimet if (updating && parentOrg != null && organisaatioIsOfType(entity, OrganisaatioTyyppi.OPPILAITOS)) { updateOrganisaatioNameHierarchy(entity, oldName); } // Parent changed update children and reindex old parent. if (parentChanged) { updateChildrenRecursive(entity); solrIndexer.index(oldParent); } // Pivit tiedot koodistoon. String info = organisaatioKoodisto.paivitaKoodisto(entity, true); return new OrganisaatioResult(entity, info); }
From source file:co.cask.cdap.internal.app.runtime.workflow.WorkflowDriver.java
private void executeFork(final ApplicationSpecification appSpec, WorkflowForkNode fork, final InstantiatorFactory instantiator, final ClassLoader classLoader, final WorkflowToken token) throws Exception { ExecutorService executorService = Executors.newFixedThreadPool(fork.getBranches().size(), new ThreadFactoryBuilder().setNameFormat("workflow-fork-executor-%d").build()); CompletionService<Map.Entry<String, WorkflowToken>> completionService = new ExecutorCompletionService<>( executorService);/*from ww w. ja v a 2 s .com*/ try { for (final List<WorkflowNode> branch : fork.getBranches()) { completionService.submit(new Callable<Map.Entry<String, WorkflowToken>>() { @Override public Map.Entry<String, WorkflowToken> call() throws Exception { WorkflowToken copiedToken = ((BasicWorkflowToken) token).deepCopy(); executeAll(branch.iterator(), appSpec, instantiator, classLoader, copiedToken); return Maps.immutableEntry(branch.toString(), copiedToken); } }); } for (int i = 0; i < fork.getBranches().size(); i++) { try { Future<Map.Entry<String, WorkflowToken>> f = completionService.take(); Map.Entry<String, WorkflowToken> retValue = f.get(); String branchInfo = retValue.getKey(); WorkflowToken branchToken = retValue.getValue(); ((BasicWorkflowToken) token).mergeToken((BasicWorkflowToken) branchToken); LOG.info("Execution of branch {} for fork {} completed", branchInfo, fork); } catch (Throwable t) { Throwable rootCause = Throwables.getRootCause(t); if (rootCause instanceof ExecutionException) { LOG.error("Exception occurred in the execution of the fork node {}", fork); throw (ExecutionException) t; } if (rootCause instanceof InterruptedException) { LOG.error("Workflow execution aborted."); break; } Throwables.propagateIfPossible(t, Exception.class); throw Throwables.propagate(t); } } } finally { // Update the WorkflowToken after the execution of the FORK node completes. store.updateWorkflowToken(workflowId, runId.getId(), token); executorService.shutdownNow(); executorService.awaitTermination(Integer.MAX_VALUE, TimeUnit.NANOSECONDS); } }
From source file:ninja.leaping.permissionsex.PermissionsEx.java
public CalculatedSubject getCalculatedSubject(String type, String identifier) throws PermissionsLoadingException { try {//from www .ja v a 2s . com return calculatedSubjects.get(Maps.immutableEntry(type, identifier)); } catch (ExecutionException e) { throw new PermissionsLoadingException(t("While calculating subject data for %s:%s", type, identifier), e); } }
From source file:io.atomix.protocols.gossip.map.AntiEntropyMapDelegate.java
@Override public V compute(K key, BiFunction<? super K, ? super V, ? extends V> recomputeFunction) { checkState(!closed, destroyedMessage); checkNotNull(key, ERROR_NULL_KEY);/*from www.j ava2s .c om*/ checkNotNull(recomputeFunction, "Recompute function cannot be null"); String encodedKey = encodeKey(key); AtomicReference<MapDelegateEvent.Type> update = new AtomicReference<>(); AtomicReference<MapValue> previousValue = new AtomicReference<>(); MapValue computedValue = items.compute(encodedKey, (k, mv) -> { previousValue.set(mv); V newRawValue = recomputeFunction.apply(key, mv == null ? null : mv.get(this::decodeValue)); byte[] newEncodedValue = encodeValue(newRawValue); if (mv != null && Arrays.equals(newEncodedValue, mv.get())) { // value was not updated return mv; } MapValue newValue = new MapValue(newEncodedValue, timestampProvider.get(Maps.immutableEntry(key, newRawValue))); if (mv == null) { update.set(INSERT); return newValue; } else if (newValue.isNewerThan(mv)) { update.set(UPDATE); return newValue; } else { return mv; } }); if (update.get() != null) { notifyPeers(new UpdateEntry(encodedKey, computedValue), peerUpdateFunction .select(Maps.immutableEntry(key, computedValue.get(this::decodeValue)), membershipService)); MapDelegateEvent.Type updateType = computedValue.isTombstone() ? REMOVE : update.get(); V value = computedValue.isTombstone() ? previousValue.get() == null ? null : previousValue.get().get(this::decodeValue) : computedValue.get(this::decodeValue); if (value != null) { notifyListeners(new MapDelegateEvent<>(updateType, key, value)); } return value; } return computedValue.get(this::decodeValue); }
From source file:org.onosproject.store.primitives.impl.DefaultAsyncConsistentMap.java
private Map.Entry<String, Versioned<byte[]>> reverseMapRawEntry(Map.Entry<K, Versioned<V>> e) { return Maps.immutableEntry(sK(e.getKey()), e.getValue().map(serializer::encode)); }
From source file:org.jooby.internal.netty.NettyServer.java
@SuppressWarnings("rawtypes") private Map.Entry<ChannelOption, Class<?>> findOption(final String optionName) { try {//from w ww .j a v a2 s . co m Field field = EpollChannelOption.class.getField(optionName); ChannelOption option = (ChannelOption) field.get(null); Class optionType = (Class) ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; return Maps.immutableEntry(option, optionType); } catch (NoSuchFieldException | SecurityException | IllegalAccessException ex) { return null; } }
From source file:org.opendaylight.controller.netconf.util.xml.XmlElement.java
/** * Search for element's attributes defining namespaces. Look for the one * namespace that matches prefix of element's text content. E.g. * * <pre>/*from w ww . j a v a 2 s . c o m*/ * <type * xmlns:th-java="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">th-java:threadfactory-naming</type> * </pre> * * returns {"th-java","urn:.."}. If no prefix is matched, then default * namespace is returned with empty string as key. If no default namespace * is found value will be null. */ public Map.Entry<String/* prefix */, String/* namespace */> findNamespaceOfTextContent() throws NetconfDocumentedException { Map<String, String> namespaces = extractNamespaces(); String textContent = getTextContent(); int indexOfColon = textContent.indexOf(':'); String prefix; if (indexOfColon > -1) { prefix = textContent.substring(0, indexOfColon); } else { prefix = DEFAULT_NAMESPACE_PREFIX; } if (!namespaces.containsKey(prefix)) { throw new IllegalArgumentException("Cannot find namespace for " + XmlUtil.toString(element) + ". Prefix from content is " + prefix + ". Found namespaces " + namespaces); } return Maps.immutableEntry(prefix, namespaces.get(prefix)); }