Class ThemeManagerImpl

    • Constructor Detail

      • ThemeManagerImpl

        public ThemeManagerImpl​(@Nonnull
                                PerspectiveContext perspectiveContext)
    • Method Detail

      • performUpgradeCheckAndBackup

        protected void performUpgradeCheckAndBackup()
                                             throws java.io.IOException
        Operates under the assumption that if the dark and light theme folders do not exist in the themes folder, then the user has not upgraded. In this case, we copy anything in the themes folder into a backup folder.
        Throws:
        java.io.IOException
      • getTheme

        public java.util.Optional<java.lang.String> getTheme​(java.lang.String themeName)
        ENTRY Delivers a processed theme file. The first time a theme is requested, the processed css is stored in cache. Subsequent requests return the cached css.
        Specified by:
        getTheme in interface ThemeManager
        Parameters:
        themeName - - The base name, ie. theme-dark, of the theme to fetch. Assumes that the theme does not contain the css file extension.
        Returns:
        - Returns an optional string representing the requested theme as css.
      • generateKey

        @Nonnull
        protected java.util.Optional<java.lang.String> generateKey​(@Nonnull
                                                                   java.nio.file.Path path)
        Description copied from class: AbstractAssetManager
        Generate a cache key for the given Path
        Specified by:
        generateKey in class AbstractAssetManager<java.lang.String,​java.lang.String>
        Parameters:
        path - The Path for which we want to generate a cache key
        Returns:
        An Optional containing the cache key or an empty Optional if the cache key could not be generated
      • parseValue

        @Nonnull
        protected java.util.Optional<java.lang.String> parseValue​(@Nonnull
                                                                  java.nio.file.Path path)
        Description copied from class: AbstractAssetManager
        Parse the cache value for the given Path
        Specified by:
        parseValue in class AbstractAssetManager<java.lang.String,​java.lang.String>
        Parameters:
        path - The Path for which we want to generate a cache value
        Returns:
        An Optional containing the cache value or an empty Optional if the cache value could not be generated
      • onCacheChanged

        protected void onCacheChanged()
        Processes themes that are already in cache, and which have been requested via getTheme.
        Overrides:
        onCacheChanged in class AbstractAssetManager<java.lang.String,​java.lang.String>
      • copyOptions

        protected java.nio.file.CopyOption[] copyOptions​(@Nonnull
                                                         byte[] existingAssetDigest,
                                                         @Nonnull
                                                         byte[] currentExistingAssetDigest)
        Overrides:
        copyOptions in class AbstractAssetManager<java.lang.String,​java.lang.String>