Class ShapeDataCache

  • All Implemented Interfaces:
    java.lang.Iterable<ShapeDataCache.ShapeDataCacheEntry>

    public class ShapeDataCache
    extends java.lang.Object
    implements java.lang.Iterable<ShapeDataCache.ShapeDataCacheEntry>
    Provides a mechanism to manage globe-specific representations of shapes. Typically used to manage per-globe state when the application associates the same shape with multiple WorldWindows.

    This cache limits the amount of time an entry remains in the cache unused. The maximum unused time may be specified. Entries unused within the specified duration are removed from the cache each time getEntry(gov.nasa.worldwind.globes.Globe) is called.

    • Field Detail

      • maxTimeSinceLastUsed

        protected long maxTimeSinceLastUsed
        The maximum number of milliseconds an entry may remain in the cache without being used.
    • Constructor Detail

      • ShapeDataCache

        public ShapeDataCache​(long maxTimeSinceLastUsed)
        Construct a cache with a specified entry lifetime.
        Parameters:
        maxTimeSinceLastUsed - the maximum number of milliseconds an entry may remain in the cache without being used.
    • Method Detail

      • addEntry

        public void addEntry​(ShapeDataCache.ShapeDataCacheEntry entry)
        Adds a specified entry to the cache or replaces an entry associated with the same globe.
        Parameters:
        entry - the entry to add. If null, the cache remains unchanged.
      • getEntry

        public ShapeDataCache.ShapeDataCacheEntry getEntry​(Globe globe)
        Retrieves a specified entry from the cache.

        Note: Each time this method is called the cache is cleared of dead entries, as defined by their last-used time relative to this cache's maximum unused time.

        Parameters:
        globe - the globe the entry is associated with.
        Returns:
        the entry if it exists, otherwise null.
      • setAllExpired

        public void setAllExpired​(boolean isExpired)
        Set all entries in this cache to a specified expiration state.
        Parameters:
        isExpired - the expiration state.
      • clearExtents

        public void clearExtents()
        Set to null the extent field of all entries in this cache.
      • removeAllEntries

        public void removeAllEntries()
        Remove all entries from this cache.