List of usage examples for com.google.common.collect MapMaker makeComputingMap
@Override public <K, V> ConcurrentMap<K, V> makeComputingMap(Function<? super K, ? extends V> computer)
From source file:de.cosmocode.palava.cache.AbstractComputingCacheService.java
public AbstractComputingCacheService() { // weak value "should" remove empty queues from the map final MapMaker maker = new MapMaker().weakValues(); this.computations = maker.makeComputingMap(new Function<Serializable, Queue<ValueFuture<Object>>>() { @Override/*w w w. j ava2 s.co m*/ public Queue<ValueFuture<Object>> apply(Serializable from) { return new ConcurrentLinkedQueue<ValueFuture<Object>>(); } }); }
From source file:org.waveprotocol.wave.examples.fedone.frontend.ClientFrontendImpl.java
@Inject public ClientFrontendImpl(final HashedVersionFactory hashedVersionFactory, WaveletProvider waveletProvider, WaveBus wavebus) {/*from w w w . j av a 2s . c om*/ this.waveletProvider = waveletProvider; wavebus.subscribe(this); MapMaker mapMaker = new MapMaker(); perWavelet = mapMaker.makeComputingMap(new Function<WaveletName, PerWavelet>() { @Override public PerWavelet apply(WaveletName waveletName) { return new PerWavelet(waveletName, hashedVersionFactory.createVersionZero(waveletName)); } }); perUser = mapMaker.makeComputingMap(new Function<ParticipantId, UserManager>() { @Override public UserManager apply(ParticipantId from) { return new UserManager(hashedVersionFactory); } }); }
From source file:org.opencms.jsp.util.CmsJspStandardContextBean.java
/** * Returns a lazy map which computes the detail page link as a value when given the name of a (named) dynamic function * as a key.<p>//ww w . j av a 2s .c o m * * @return a lazy map for computing function detail page links */ public Map<String, String> getFunctionDetail() { MapMaker mm = new MapMaker(); return mm.makeComputingMap(new Function<String, String>() { public String apply(String key) { String detailType = CmsDetailPageInfo.FUNCTION_PREFIX + key; CmsADEConfigData config = OpenCms.getADEManager().lookupConfiguration(m_cms, m_cms.addSiteRoot(m_cms.getRequestContext().getUri())); List<CmsDetailPageInfo> detailPages = config.getDetailPagesForType(detailType); if ((detailPages == null) || (detailPages.size() == 0)) { return ""; } CmsDetailPageInfo mainDetailPage = detailPages.get(0); CmsUUID id = mainDetailPage.getId(); CmsResource detailRes; try { detailRes = m_cms.readResource(id); return OpenCms.getLinkManager().substituteLink(m_cms, detailRes); } catch (CmsException e) { LOG.warn(e.getLocalizedMessage(), e); return ""; } } }); }
From source file:org.opencms.jsp.util.CmsJspStandardContextBean.java
/** * Returns a map which allows access to dynamic function beans using the JSP EL.<p> * /*from w w w. j a v a2 s .c o m*/ * When given a key, the returned map will look up the corresponding dynamic function in the module configuration.<p> * * @return a map which allows access to dynamic function beans */ public Object getFunction() { if (m_function != null) { return m_function; } MapMaker mm = new MapMaker(); m_function = mm.makeComputingMap(new Function<String, Object>() { public Object apply(String key) { try { CmsDynamicFunctionBean dynamicFunction = readDynamicFunctionBean(key); CmsDynamicFunctionBeanWrapper wrapper = new CmsDynamicFunctionBeanWrapper(m_cms, dynamicFunction); return wrapper; } catch (CmsException e) { return new CmsDynamicFunctionBeanWrapper(m_cms, null); } } }); return m_function; }
From source file:org.opencms.jsp.util.CmsJspStandardContextBean.java
/** * Returns a lazy map which creates a wrapper object for a dynamic function format when given an XML content * as a key.<p>/*ww w .j a v a 2 s. com*/ * * @return a lazy map for accessing function formats for a content */ public Map<CmsJspContentAccessBean, CmsDynamicFunctionFormatWrapper> getFunctionFormatFromContent() { MapMaker mm = new MapMaker(); return mm.makeComputingMap(new Function<CmsJspContentAccessBean, CmsDynamicFunctionFormatWrapper>() { public CmsDynamicFunctionFormatWrapper apply(CmsJspContentAccessBean contentAccess) { CmsXmlContent content = (CmsXmlContent) (contentAccess.getRawContent()); CmsDynamicFunctionParser parser = new CmsDynamicFunctionParser(); CmsDynamicFunctionBean functionBean = null; try { functionBean = parser.parseFunctionBean(m_cms, content); } catch (CmsException e) { return new CmsDynamicFunctionFormatWrapper(m_cms, null); } String type = getContainer().getType(); String width = getContainer().getWidth(); int widthNum = -1; try { widthNum = Integer.parseInt(width); } catch (NumberFormatException e) { // NOOP } CmsDynamicFunctionBean.Format format = functionBean.getFormatForContainer(m_cms, type, widthNum); CmsDynamicFunctionFormatWrapper wrapper = new CmsDynamicFunctionFormatWrapper(m_cms, format); return wrapper; } }); }
From source file:org.opencms.jsp.util.CmsDynamicFunctionBeanWrapper.java
/** * Gets the lazy map for accessing the various function formats.<p> * //from w w w .j av a 2 s. c om * @return a map which allows access to the various function formats */ public Object getFormatFor() { MapMaker mm = new MapMaker(); Function<Object, Object> mapFunction = new Function<Object, Object>() { public Object apply(Object param) { if (m_functionBean == null) { return new CmsDynamicFunctionFormatWrapper(m_cms, null); } int width = -1; String type = null; boolean isWidth = false; if (param instanceof Long) { width = (int) ((Long) param).longValue(); isWidth = true; } else if (param instanceof Integer) { width = ((Integer) param).intValue(); isWidth = true; } else { type = param.toString(); } Format format; if (isWidth) { format = m_functionBean.getFormatForContainer(m_cms, "", width); } else { format = m_functionBean.getFormatForContainer(m_cms, type, -1); } CmsDynamicFunctionFormatWrapper wrapper = new CmsDynamicFunctionFormatWrapper(m_cms, format); return wrapper; } }; return mm.makeComputingMap(mapFunction); }