List of usage examples for com.google.common.base Functions forMap
public static <K, V> Function<K, V> forMap(Map<K, V> map)
From source file:com.google.errorprone.refaster.UPlaceholderExpression.java
@Override protected Choice<Unifier> defaultAction(Tree node, Unifier unifier) { // for now we only match JCExpressions if (placeholder().returnType().equals(UPrimitiveType.VOID) || !(node instanceof JCExpression)) { return Choice.none(); }/*from www . j a v a2 s . co m*/ final JCExpression expr = (JCExpression) node; PlaceholderVerificationVisitor verification = new PlaceholderVerificationVisitor( Collections2.transform(placeholder().requiredParameters(), Functions.forMap(arguments())), arguments().values()); if (!verification.scan(node, unifier) || !verification.allRequiredMatched()) { return Choice.none(); } /* * We copy the tree with a TreeCopier, replacing matches for the parameters with * PlaceholderParamIdents, and updating unifierHolder as we unify things, including forbidding * references to local variables, etc. */ Choice<? extends PlaceholderUnificationVisitor.State<? extends JCExpression>> states = PlaceholderUnificationVisitor .create(TreeMaker.instance(unifier.getContext()), arguments()).unifyExpression(expr, PlaceholderUnificationVisitor.State.create(List.<UVariableDecl>nil(), unifier, null)); return states.thenOption( new Function<PlaceholderUnificationVisitor.State<? extends JCExpression>, Optional<Unifier>>() { @Override public Optional<Unifier> apply( PlaceholderUnificationVisitor.State<? extends JCExpression> state) { if (ImmutableSet.copyOf(state.seenParameters()) .containsAll(placeholder().requiredParameters())) { Unifier resultUnifier = state.unifier(); JCExpression prevBinding = resultUnifier.getBinding(placeholder().exprKey()); if (prevBinding != null) { return prevBinding.toString().equals(state.result().toString()) ? Optional.of(resultUnifier) : Optional.<Unifier>absent(); } JCExpression result = state.result(); if (!placeholder().matcher().matches(result, UMatches.makeVisitorState(expr, resultUnifier))) { return Optional.absent(); } result.type = expr.type; resultUnifier.putBinding(placeholder().exprKey(), result); return Optional.of(resultUnifier); } else { return Optional.absent(); } } }); }
From source file:eu.project.ttc.engines.CasStatCounter.java
private void logStats() { Ordering<String> a = Ordering.natural().reverse().onResultOf(Functions.forMap(counters)) .compound(Ordering.natural()); Map<String, MutableInt> map = ImmutableSortedMap.copyOf(counters, a); Iterator<Entry<String, MutableInt>> it = map.entrySet().iterator(); if (it.hasNext()) {// it will be empty if pipeline is run on empty collection Entry<String, MutableInt> mostFrequentAnno = it.next(); LOGGER.info("[{}] {}: {} ", statName, mostFrequentAnno.getKey(), mostFrequentAnno.getValue().intValue()); }// w w w . j a va 2 s. com int nbSyntacticVariants = 0; int nbMorphologicalVariants = 0; int nbGraphicalVariants = 0; int nbOccurrences = 0; int nbPrimaryOccOccurrences = 0; TermIndex tIndex = termIndexResource.getTermIndex(); for (Term t : tIndex.getTerms()) { nbMorphologicalVariants += Iterables.size(t.getVariations(VariationType.MORPHOLOGICAL)); nbSyntacticVariants += Iterables.size(t.getVariations(VariationType.SYNTACTICAL)); nbGraphicalVariants += Iterables.size(t.getVariations(VariationType.GRAPHICAL)); nbOccurrences += t.getOccurrences().size(); for (TermOccurrence o : t.getOccurrences()) { if (o.isPrimaryOccurrence()) nbPrimaryOccOccurrences++; } } // graphical variants are bidirectional nbGraphicalVariants /= 2; LOGGER.info("[{}] Nb terms: {} [sw: {}, mw: {}]", statName, tIndex.getTerms().size(), Iterators.size(tIndex.singleWordTermIterator()), Iterators.size(tIndex.multiWordTermIterator())); LOGGER.info("[{}] Nb words: {} [compounds: {}]", statName, tIndex.getWords().size(), Iterators.size(tIndex.compoundWordTermIterator())); LOGGER.info("[{}] Nb occurrences: {} [primary: {}]", statName, nbOccurrences, nbPrimaryOccOccurrences); LOGGER.info("[{}] Nb variants: {} [morph: {}, syn: {}, graph: {}]", statName, nbMorphologicalVariants + nbSyntacticVariants + nbGraphicalVariants, nbMorphologicalVariants, nbSyntacticVariants, nbGraphicalVariants); }
From source file:org.eclipse.sirius.business.internal.contribution.RepresentationExtensionsFinder.java
/** * Returns the subset of the viewpoints currently selected in the session * which are relevant for the specified representation description. This * includes the representation description's parent Sirius, all the * Viewpoints it reuses, all the Viewpoints which extend any of those, and * recursively all the Viewpoints those reuses or are extended by. * //w w w .java2 s . c o m * @param session * the session in which the representation description is used. * @return all the Viewpoints which are relevant for the computation of the * effective representation description. */ public LinkedHashSet<Viewpoint> findAllRelevantViewpoints(Session session) { RepresentationDescription mainRepresentationDescription = extensionTarget; LinkedHashSet<Viewpoint> result = Sets.newLinkedHashSet(); Viewpoint mainVP = new RepresentationDescriptionQuery(mainRepresentationDescription).getParentViewpoint(); if (mainVP != null) { BiMap<URI, Viewpoint> candidates = HashBiMap.create(); for (Viewpoint vp : session.getSelectedViewpoints(false)) { Option<URI> uri = new ViewpointQuery(vp).getViewpointURI(); if (uri.some()) { candidates.put(uri.get(), vp); } } ViewpointRelations relations = ((org.eclipse.sirius.business.internal.movida.registry.ViewpointRegistry) ViewpointRegistry .getInstance()).getRelations(); /* * Seed the result with the representation's parent Sirius and * augment it with the viewpoints we reuse or are extended by until * we reach a fixpoint. Guaranteed to terminate as the set of * Viewpoints we can add is finite (at the most, all the selected * Viewpoints). */ boolean changed = result.add(mainVP); while (changed) { changed = false; // Add all the Viewpoints we reuse. for (Viewpoint v1 : Lists.newArrayList(result)) { URI uri = candidates.inverse().get(v1); changed = changed || Iterables.addAll(result, Iterables.transform(relations.getReuse().apply(uri), Functions.forMap(candidates))); } // Add all the Viewpoints which extend any of us. for (Viewpoint v : session.getSelectedViewpoints(false)) { URI extenderUri = candidates.inverse().get(v); for (URI extendeeUri : relations.getCustomize().apply(extenderUri)) { if (result.contains(candidates.get(extendeeUri))) { changed = changed || result.add(v); } } } } } return result; }
From source file:org.apache.ctakes.temporal.data.analysis.EventPrinterPipeline.java
public static String expandToNP(JCas jCas, IdentifiedAnnotation identifiedAnnotation) { // map each covering treebank node to its character length Map<TreebankNode, Integer> treebankNodeSizes = new HashMap<TreebankNode, Integer>(); for (TreebankNode treebankNode : JCasUtil.selectCovering(jCas, TreebankNode.class, identifiedAnnotation.getBegin(), identifiedAnnotation.getEnd())) { // only expand nouns (and not verbs or adjectives) if (treebankNode instanceof TerminalTreebankNode) { if (!treebankNode.getNodeType().startsWith("N")) { return identifiedAnnotation.getCoveredText(); }// w ww. java 2s . c o m } // because only nouns are expanded, look for covering NPs if (treebankNode.getNodeType().equals("NP")) { treebankNodeSizes.put(treebankNode, treebankNode.getCoveredText().length()); } } // find the shortest covering treebank node List<TreebankNode> sortedTreebankNodes = new ArrayList<TreebankNode>(treebankNodeSizes.keySet()); Function<TreebankNode, Integer> getValue = Functions.forMap(treebankNodeSizes); Collections.sort(sortedTreebankNodes, Ordering.natural().onResultOf(getValue)); if (sortedTreebankNodes.size() > 0) { return sortedTreebankNodes.get(0).getCoveredText(); } return identifiedAnnotation.getCoveredText(); }
From source file:edu.uci.ics.jung.samples.DemoLensVertexImageShaperDemo.java
/** * create an instance of a simple graph with controls to * demo the zoom features.// ww w. j av a 2 s . c o m * */ public DemoLensVertexImageShaperDemo() { // create a simple graph for the demo graph = new DirectedSparseGraph<Number, Number>(); Number[] vertices = createVertices(1); // a Map for the labels Map<Number, String> map = new HashMap<Number, String>(); for (int i = 0; i < vertices.length; i++) { map.put(vertices[i], iconNames[i % iconNames.length]); } // a Map for the Icons Map<Number, Icon> iconMap = new HashMap<Number, Icon>(); for (int i = 0; i < vertices.length; i++) { String name = "/images/topic" + iconNames[i] + ".gif"; try { Icon icon = new LayeredIcon( new ImageIcon(DemoLensVertexImageShaperDemo.class.getResource(name)).getImage()); iconMap.put(vertices[i], icon); } catch (Exception ex) { System.err.println("You need slashdoticons.jar in your classpath to see the image " + name); } } createEdges(vertices); FRLayout<Number, Number> layout = new FRLayout<Number, Number>(graph); layout.setMaxIterations(100); vv = new VisualizationViewer<Number, Number>(layout, new Dimension(600, 600)); Function<Number, Paint> vpf = new PickableVertexPaintTransformer<Number>(vv.getPickedVertexState(), Color.white, Color.yellow); vv.getRenderContext().setVertexFillPaintTransformer(vpf); vv.getRenderContext().setEdgeDrawPaintTransformer( new PickableEdgePaintTransformer<Number>(vv.getPickedEdgeState(), Color.black, Color.cyan)); vv.setBackground(Color.white); final Function<Number, String> vertexStringerImpl = new VertexStringerImpl<Number>(map); vv.getRenderContext().setVertexLabelTransformer(vertexStringerImpl); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); // features on and off. For a real application, use VertexIconAndShapeFunction instead. final VertexIconShapeTransformer<Number> vertexImageShapeFunction = new VertexIconShapeTransformer<Number>( new EllipseVertexShapeTransformer<Number>()); vertexImageShapeFunction.setIconMap(iconMap); final Function<Number, Icon> vertexIconFunction = Functions.forMap(iconMap); vv.getRenderContext().setVertexShapeTransformer(vertexImageShapeFunction); vv.getRenderContext().setVertexIconTransformer(vertexIconFunction); // Get the pickedState and add a listener that will decorate the // Vertex images with a checkmark icon when they are picked PickedState<Number> ps = vv.getPickedVertexState(); ps.addItemListener(new PickWithIconListener(vertexIconFunction)); vv.addPostRenderPaintable(new VisualizationViewer.Paintable() { int x; int y; Font font; FontMetrics metrics; int swidth; int sheight; String str = "Thank You, slashdot.org, for the images!"; public void paint(Graphics g) { Dimension d = vv.getSize(); if (font == null) { font = new Font(g.getFont().getName(), Font.BOLD, 20); metrics = g.getFontMetrics(font); swidth = metrics.stringWidth(str); sheight = metrics.getMaxAscent() + metrics.getMaxDescent(); x = (d.width - swidth) / 2; y = (int) (d.height - sheight * 1.5); } g.setFont(font); Color oldColor = g.getColor(); g.setColor(Color.lightGray); g.drawString(str, x, y); g.setColor(oldColor); } public boolean useTransform() { return false; } }); // add a listener for ToolTips vv.setVertexToolTipTransformer(new ToStringLabeller()); Container content = getContentPane(); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); content.add(panel); final DefaultModalGraphMouse<Number, Number> graphMouse = new DefaultModalGraphMouse<Number, Number>(); vv.setGraphMouse(graphMouse); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JComboBox<Mode> modeBox = graphMouse.getModeComboBox(); JPanel modePanel = new JPanel(); modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); JPanel scaleGrid = new JPanel(new GridLayout(1, 0)); scaleGrid.setBorder(BorderFactory.createTitledBorder("Zoom")); JPanel controls = new JPanel(); scaleGrid.add(plus); scaleGrid.add(minus); controls.add(scaleGrid); controls.add(modePanel); content.add(controls, BorderLayout.SOUTH); this.viewSupport = new MagnifyImageLensSupport<Number, Number>(vv); // new ViewLensSupport<Number,Number>(vv, new HyperbolicShapeTransformer(vv, // vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW)), // new ModalLensGraphMouse()); this.modelSupport = new LayoutLensSupport<Number, Number>(vv); graphMouse.addItemListener(modelSupport.getGraphMouse().getModeListener()); graphMouse.addItemListener(viewSupport.getGraphMouse().getModeListener()); ButtonGroup radio = new ButtonGroup(); JRadioButton none = new JRadioButton("None"); none.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (viewSupport != null) { viewSupport.deactivate(); } if (modelSupport != null) { modelSupport.deactivate(); } } }); none.setSelected(true); JRadioButton hyperView = new JRadioButton("View"); hyperView.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { viewSupport.activate(e.getStateChange() == ItemEvent.SELECTED); } }); JRadioButton hyperModel = new JRadioButton("Layout"); hyperModel.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { modelSupport.activate(e.getStateChange() == ItemEvent.SELECTED); } }); radio.add(none); radio.add(hyperView); radio.add(hyperModel); JMenuBar menubar = new JMenuBar(); JMenu modeMenu = graphMouse.getModeMenu(); menubar.add(modeMenu); JPanel lensPanel = new JPanel(new GridLayout(2, 0)); lensPanel.setBorder(BorderFactory.createTitledBorder("Lens")); lensPanel.add(none); lensPanel.add(hyperView); lensPanel.add(hyperModel); controls.add(lensPanel); }
From source file:edu.uci.ics.jung.samples.LensVertexImageShaperDemo.java
/** * create an instance of a simple graph with controls to * demo the zoom features./*w w w. ja v a 2s . c o m*/ * */ public LensVertexImageShaperDemo() { // create a simple graph for the demo graph = new DirectedSparseGraph<Number, Number>(); Number[] vertices = createVertices(11); // a Map for the labels Map<Number, String> map = new HashMap<Number, String>(); for (int i = 0; i < vertices.length; i++) { map.put(vertices[i], iconNames[i % iconNames.length]); } // a Map for the Icons Map<Number, Icon> iconMap = new HashMap<Number, Icon>(); for (int i = 0; i < vertices.length; i++) { String name = "/images/topic" + iconNames[i] + ".gif"; try { Icon icon = new LayeredIcon( new ImageIcon(LensVertexImageShaperDemo.class.getResource(name)).getImage()); iconMap.put(vertices[i], icon); } catch (Exception ex) { System.err.println("You need slashdoticons.jar in your classpath to see the image " + name); } } createEdges(vertices); FRLayout<Number, Number> layout = new FRLayout<Number, Number>(graph); layout.setMaxIterations(100); vv = new VisualizationViewer<Number, Number>(layout, new Dimension(600, 600)); Function<Number, Paint> vpf = new PickableVertexPaintTransformer<Number>(vv.getPickedVertexState(), Color.white, Color.yellow); vv.getRenderContext().setVertexFillPaintTransformer(vpf); vv.getRenderContext().setEdgeDrawPaintTransformer( new PickableEdgePaintTransformer<Number>(vv.getPickedEdgeState(), Color.black, Color.cyan)); vv.setBackground(Color.white); final Function<Number, String> vertexStringerImpl = new VertexStringerImpl<Number>(map); vv.getRenderContext().setVertexLabelTransformer(vertexStringerImpl); vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.cyan)); vv.getRenderContext().setEdgeLabelRenderer(new DefaultEdgeLabelRenderer(Color.cyan)); // features on and off. For a real application, use VertexIconAndShapeFunction instead. final VertexIconShapeTransformer<Number> vertexImageShapeFunction = new VertexIconShapeTransformer<Number>( new EllipseVertexShapeTransformer<Number>()); final Function<Number, Icon> vertexIconFunction = Functions.forMap(iconMap); vertexImageShapeFunction.setIconMap(iconMap); vv.getRenderContext().setVertexShapeTransformer(vertexImageShapeFunction); vv.getRenderContext().setVertexIconTransformer(vertexIconFunction); // Get the pickedState and add a listener that will decorate the // Vertex images with a checkmark icon when they are picked PickedState<Number> ps = vv.getPickedVertexState(); ps.addItemListener(new PickWithIconListener(vertexIconFunction)); vv.addPostRenderPaintable(new VisualizationViewer.Paintable() { int x; int y; Font font; FontMetrics metrics; int swidth; int sheight; String str = "Thank You, slashdot.org, for the images!"; public void paint(Graphics g) { Dimension d = vv.getSize(); if (font == null) { font = new Font(g.getFont().getName(), Font.BOLD, 20); metrics = g.getFontMetrics(font); swidth = metrics.stringWidth(str); sheight = metrics.getMaxAscent() + metrics.getMaxDescent(); x = (d.width - swidth) / 2; y = (int) (d.height - sheight * 1.5); } g.setFont(font); Color oldColor = g.getColor(); g.setColor(Color.lightGray); g.drawString(str, x, y); g.setColor(oldColor); } public boolean useTransform() { return false; } }); // add a listener for ToolTips vv.setVertexToolTipTransformer(new ToStringLabeller()); Container content = getContentPane(); final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); content.add(panel); final DefaultModalGraphMouse<Number, Number> graphMouse = new DefaultModalGraphMouse<Number, Number>(); vv.setGraphMouse(graphMouse); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JComboBox<Mode> modeBox = graphMouse.getModeComboBox(); JPanel modePanel = new JPanel(); modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); JPanel scaleGrid = new JPanel(new GridLayout(1, 0)); scaleGrid.setBorder(BorderFactory.createTitledBorder("Zoom")); JPanel controls = new JPanel(); scaleGrid.add(plus); scaleGrid.add(minus); controls.add(scaleGrid); controls.add(modePanel); content.add(controls, BorderLayout.SOUTH); this.viewSupport = new MagnifyImageLensSupport<Number, Number>(vv); // new ViewLensSupport<Number,Number>(vv, new HyperbolicShapeTransformer(vv, // vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW)), // new ModalLensGraphMouse()); this.modelSupport = new LayoutLensSupport<Number, Number>(vv); graphMouse.addItemListener(modelSupport.getGraphMouse().getModeListener()); graphMouse.addItemListener(viewSupport.getGraphMouse().getModeListener()); ButtonGroup radio = new ButtonGroup(); JRadioButton none = new JRadioButton("None"); none.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (viewSupport != null) { viewSupport.deactivate(); } if (modelSupport != null) { modelSupport.deactivate(); } } }); none.setSelected(true); JRadioButton hyperView = new JRadioButton("View"); hyperView.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { viewSupport.activate(e.getStateChange() == ItemEvent.SELECTED); } }); JRadioButton hyperModel = new JRadioButton("Layout"); hyperModel.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { modelSupport.activate(e.getStateChange() == ItemEvent.SELECTED); } }); radio.add(none); radio.add(hyperView); radio.add(hyperModel); JMenuBar menubar = new JMenuBar(); JMenu modeMenu = graphMouse.getModeMenu(); menubar.add(modeMenu); JPanel lensPanel = new JPanel(new GridLayout(2, 0)); lensPanel.setBorder(BorderFactory.createTitledBorder("Lens")); lensPanel.add(none); lensPanel.add(hyperView); lensPanel.add(hyperModel); controls.add(lensPanel); }
From source file:it.anyplace.sync.bep.BlockPuller.java
public FileDownloadObserver pullBlocks(FileBlocks fileBlocks) throws InterruptedException { logger.info("pulling file = {}", fileBlocks); checkArgument(connectionHandler.hasFolder(fileBlocks.getFolder()), "supplied connection handler %s will not share folder %s", connectionHandler, fileBlocks.getFolder());// w ww . j a v a2 s. com final Object lock = new Object(); final AtomicReference<Exception> error = new AtomicReference<>(); final Object listener = new Object() { @Subscribe public void handleResponseMessageReceivedEvent(ResponseMessageReceivedEvent event) { synchronized (lock) { try { if (!requestIds.contains(event.getMessage().getId())) { return; } checkArgument(equal(event.getMessage().getCode(), ErrorCode.NO_ERROR), "received error response, code = %s", event.getMessage().getCode()); byte[] data = event.getMessage().getData().toByteArray(); String hash = BaseEncoding.base16().encode(Hashing.sha256().hashBytes(data).asBytes()); blockCache.pushBlock(data); if (missingHashes.remove(hash)) { blocksByHash.put(hash, data); logger.debug("aquired block, hash = {}", hash); lock.notify(); } else { logger.warn("received not-needed block, hash = {}", hash); } } catch (Exception ex) { error.set(ex); lock.notify(); } } } }; FileDownloadObserver fileDownloadObserver = new FileDownloadObserver() { private long getReceivedData() { return blocksByHash.size() * BLOCK_SIZE; } private long getTotalData() { return (blocksByHash.size() + missingHashes.size()) * BLOCK_SIZE; } @Override public double getProgress() { return isCompleted() ? 1d : getReceivedData() / ((double) getTotalData()); } @Override public String getProgressMessage() { return (Math.round(getProgress() * 1000d) / 10d) + "% " + FileUtils.byteCountToDisplaySize(getReceivedData()) + " / " + FileUtils.byteCountToDisplaySize(getTotalData()); } @Override public boolean isCompleted() { return missingHashes.isEmpty(); } @Override public void checkError() { if (error.get() != null) { throw new RuntimeException(error.get()); } } @Override public double waitForProgressUpdate() throws InterruptedException { if (!isCompleted()) { synchronized (lock) { checkError(); lock.wait(); checkError(); } } return getProgress(); } @Override public InputStream getInputStream() { checkArgument(missingHashes.isEmpty(), "pull failed, some blocks are still missing"); List<byte[]> blockList = Lists .newArrayList(Lists.transform(hashList, Functions.forMap(blocksByHash))); return new SequenceInputStream(Collections .enumeration(Lists.transform(blockList, new Function<byte[], ByteArrayInputStream>() { @Override public ByteArrayInputStream apply(byte[] data) { return new ByteArrayInputStream(data); } }))); } @Override public void close() { missingHashes.clear(); hashList.clear(); blocksByHash.clear(); try { connectionHandler.getEventBus().unregister(listener); } catch (Exception ex) { } if (closeConnection) { connectionHandler.close(); } } }; try { synchronized (lock) { hashList.addAll(Lists.transform(fileBlocks.getBlocks(), new Function<BlockInfo, String>() { @Override public String apply(BlockInfo block) { return block.getHash(); } })); missingHashes.addAll(hashList); for (String hash : missingHashes) { byte[] block = blockCache.pullBlock(hash); if (block != null) { blocksByHash.put(hash, block); missingHashes.remove(hash); } } connectionHandler.getEventBus().register(listener); for (BlockInfo block : fileBlocks.getBlocks()) { if (missingHashes.contains(block.getHash())) { int requestId = Math.abs(new Random().nextInt()); requestIds.add(requestId); connectionHandler.sendMessage(Request.newBuilder().setId(requestId) .setFolder(fileBlocks.getFolder()).setName(fileBlocks.getPath()) .setOffset(block.getOffset()).setSize(block.getSize()) .setHash(ByteString.copyFrom(BaseEncoding.base16().decode(block.getHash()))) .build()); logger.debug("sent request for block, hash = {}", block.getHash()); } } return fileDownloadObserver; } } catch (Exception ex) { fileDownloadObserver.close(); throw ex; } }
From source file:org.sosy_lab.cpachecker.cfa.postprocessing.function.CFunctionPointerResolver.java
public CFunctionPointerResolver(MutableCFA pCfa, List<Pair<ADeclaration, String>> pGlobalVars, Configuration config, LogManager pLogger) throws InvalidConfigurationException { cfa = pCfa;/*from w w w .j a v a 2s . co m*/ logger = pLogger; config.inject(this); matchingFunctionCall = getFunctionSetPredicate(functionSets); if (functionSets.contains(FunctionSet.USED_IN_CODE)) { CReferencedFunctionsCollector varCollector = new CReferencedFunctionsCollector(); for (CFANode node : cfa.getAllNodes()) { for (CFAEdge edge : leavingEdges(node)) { varCollector.visitEdge(edge); } } for (Pair<ADeclaration, String> decl : pGlobalVars) { if (decl.getFirst() instanceof CVariableDeclaration) { CVariableDeclaration varDecl = (CVariableDeclaration) decl.getFirst(); varCollector.visitDeclaration(varDecl); } } Set<String> addressedFunctions = varCollector.getCollectedFunctions(); candidateFunctions = from(Sets.intersection(addressedFunctions, cfa.getAllFunctionNames())) .transform(Functions.forMap(cfa.getAllFunctions())).toList(); if (logger.wouldBeLogged(Level.ALL)) { logger.log(Level.ALL, "Possible target functions of function pointers:\n", Joiner.on('\n').join(candidateFunctions)); } } else { candidateFunctions = cfa.getAllFunctionHeads(); } }
From source file:no.ssb.jsonstat.v2.deser.DimensionDeserializer.java
private ImmutableMap<String, String> parseIndexAsMap(JsonParser p) throws IOException { ImmutableMap<String, String> index; Map<String, Integer> mapIndex = p.readValueAs(INDEX_MAP); // Even though the type is String, the sorting actually uses the // integer value thanks to the forMap function. Ordering<String> byValue = Ordering.natural().onResultOf(Functions.forMap(mapIndex)); index = ImmutableSortedMap.copyOf(Maps.transformValues(mapIndex, Object::toString), byValue); return index; }
From source file:org.pentaho.di.trans.dataservice.serialization.DataServiceMetaStoreUtil.java
public Iterable<DataServiceMeta> getDataServices(final Repository repository, IMetaStore metaStore, final Function<Exception, Void> exceptionHandler) { MetaStoreFactory<ServiceTrans> serviceTransFactory = getServiceTransFactory(metaStore); List<ServiceTrans> serviceTransList; try {/*w ww . ja v a 2 s . co m*/ serviceTransList = serviceTransFactory.getElements(); } catch (Exception e) { exceptionHandler.apply(e); serviceTransList = Collections.emptyList(); } Map<ServiceTrans.Reference, Supplier<TransMeta>> transMetaMap = FluentIterable.from(serviceTransList) .transformAndConcat(new Function<ServiceTrans, Iterable<ServiceTrans.Reference>>() { @Override public Iterable<ServiceTrans.Reference> apply(ServiceTrans serviceTrans) { return serviceTrans.getReferences(); } }).toMap(createTransMetaLoader(repository, exceptionHandler)); List<DataServiceMeta> dataServices = Lists.newArrayListWithExpectedSize(serviceTransList.size()); for (ServiceTrans serviceTrans : serviceTransList) { Optional<TransMeta> transMeta = FluentIterable.from(serviceTrans.getReferences()) .transform(Functions.forMap(transMetaMap)).transform(Suppliers.<TransMeta>supplierFunction()) .firstMatch(Predicates.notNull()); if (transMeta.isPresent()) { try { dataServices.add(getDataService(serviceTrans.getName(), transMeta.get())); } catch (Exception e) { exceptionHandler.apply(e); } } else { try { if (PentahoSessionHolder.getSession() != null && SecurityHelper.getInstance() .runAsSystem(() -> !ServiceTrans.isValid(repository).apply(serviceTrans))) { serviceTransFactory.deleteElement(serviceTrans.getName()); } } catch (Exception e) { exceptionHandler.apply(e); } } } return dataServices; }