/** * Obtains an {@link Cached} of the specified {@link Deferred}. * * @param deferred the {@link Deferred} to cache * * @return a {@link Cached} of the {@link Deferred} */ public static <T> Cached<T> cached(Deferred<T> deferred) { return deferred instanceof Cached ? (Cached<T>) deferred : new Cached<T>(deferred); }
/** * {@inheritDoc} */ @Override public String toString() { return String.format("Cached{%s}", getDeferredClass()); } }
@Override public void close() { // close the JMXConnector (if we've got one) JMXConnector jmxConnector = m_cachedJMXConnector.release(); if (jmxConnector != null) { try { jmxConnector.close(); } catch (IOException e) { // nothing to do here as we don't care } } super.close(); } }
/** * {@inheritDoc} */ @Override public <T> Deferred<T> getDeferredMBeanProxy(ObjectName objectName, Class<T> proxyClass) { return new Cached<T>(new DeferredMBeanProxy<T>(m_cachedJMXConnector, objectName, proxyClass)); }