/** * A set of nodes that are stored as unavailable. * * @return a set of unavailable nodes, never <code>null</code>. */ public Set<K> getUnavailableNodes() { final Set<K> result = new HashSet<K>(); for ( final Map.Entry<K, ManagedItem<Boolean>> entry : _map.entrySet() ) { if ( !entry.getValue()._value.booleanValue() && !isExpired( entry.getValue() ) ) { result.add( entry.getKey() ); } } return result; }
/** * Determines, if the node is available. If it's not cached, it's loaded * from the cache loader. * * @param key * the key to check * @return <code>true</code> if the node is marked as available. */ public boolean isNodeAvailable( @Nonnull final K key ) { final ManagedItem<Boolean> item = _map.get( key ); if ( item == null ) { return updateIsNodeAvailable( key ); } else if ( isExpired( item ) ) { _map.remove( key ); return updateIsNodeAvailable( key ); } else { return item._value; } }
/** * A set of nodes that are stored as unavailable. * * @return a set of unavailable nodes, never <code>null</code>. */ public Set<K> getUnavailableNodes() { final Set<K> result = new HashSet<K>(); for ( final Map.Entry<K, ManagedItem<Boolean>> entry : _map.entrySet() ) { if ( !entry.getValue()._value.booleanValue() && !isExpired( entry.getValue() ) ) { result.add( entry.getKey() ); } } return result; }
/** * Determines, if the node is available. If it's not cached, it's loaded * from the cache loader. * * @param key * the key to check * @return <code>true</code> if the node is marked as available. */ public boolean isNodeAvailable( @Nonnull final K key ) { final ManagedItem<Boolean> item = _map.get( key ); if ( item == null ) { return updateIsNodeAvailable( key ); } else if ( isExpired( item ) ) { _map.remove( key ); return updateIsNodeAvailable( key ); } else { return item._value; } }