Class AbstractAssetManager<K,V> 
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.assets.AbstractAssetManager<K,V> 
- Type Parameters:
- K- The type of key for the asset cache
- V- The type of value for the asset cache
- Direct Known Subclasses:
- FontManagerImpl,- IconManagerImpl,- ThemeManagerImpl
Base class for managing static assets. During 
setup() files from the injected asset's defaults will be
 moved to the respective assets directory in the system home directory even if
 they do exist. Uses a FileWatcher to react to changes to the injected asset directory under the perspective
 modules directory of the system home directory. Changes in the watched asset directory will cause the in memory
 cache to be updated. Extensions of this class must override generateKey(Path) and
 parseValue(Path) so that this class may update its cache with the appropriate entry.- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected final Pathprotected final Objectprotected final PerspectiveContext
- 
Constructor SummaryConstructorsConstructorDescriptionAbstractAssetManager(PerspectiveContext perspectiveContext, String asset) AbstractAssetManager(PerspectiveContext perspectiveContext, String asset, FileFilter fileFilter) 
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidcopyInputStreamToPath(InputStream is, Path pathTo) protected voidcopyInputStreamToPath(String name, byte[] defaultAssetData, byte[] defaultAssetDigest, byte[] existingAssetDigest) protected CopyOption[]copyOptions(byte[] existingAssetDigest, byte[] currentExistingAssetDigest) generateKey(Path path) Generate a cache key for the givenPathgetCache()Fetch a copy of the cachegetCachedValue(K key) Fetch the cached value associated with a keyOptional<com.inductiveautomation.ignition.common.gson.JsonObject>getDigestFor(K assetKey) If the assetKey exists in the cache and it's been hashed, the digest may be retrieved for the asset nameprotected voidInvoked within a synchronized block, that holds onto the cache lock, when there is a create, modify, or delete watch event.protected voidprotected voidparseValue(Path path) Parse the cache value for the givenPathvoidsetup()Setup the Asset Manager.Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycleisRunning, shutdown, startup
- 
Field Details- 
perspectiveContext
- 
assetPath
- 
cacheLock
 
- 
- 
Constructor Details- 
AbstractAssetManager
- 
AbstractAssetManagerpublic AbstractAssetManager(@Nonnull PerspectiveContext perspectiveContext, @Nonnull String asset, @Nonnull FileFilter fileFilter) 
 
- 
- 
Method Details- 
getCacheFetch a copy of the cache- Returns:
- A copy of the cache
 
- 
getCachedValueFetch the cached value associated with a key- Parameters:
- key- The cache key
- Returns:
- An Optionalcontaining the cached value associated with the given key, or an empty Optional of there is no such cached value associated with the given key
 
- 
copyInputStreamToPathprotected void copyInputStreamToPath(@Nonnull InputStream is, @Nonnull Path pathTo) throws IOException - Throws:
- IOException
 
- 
copyOptionsprotected CopyOption[] copyOptions(@Nonnull byte[] existingAssetDigest, @Nonnull byte[] currentExistingAssetDigest) 
- 
copyInputStreamToPathprotected void copyInputStreamToPath(@Nonnull String name, @Nonnull byte[] defaultAssetData, @Nonnull byte[] defaultAssetDigest, @Nullable byte[] existingAssetDigest) throws IOException - Throws:
- IOException
 
- 
getDigestCopy- Returns:
- a copy of the digests object, if present, otherwise empty optional
 
- 
getDigestForIf the assetKey exists in the cache and it's been hashed, the digest may be retrieved for the asset name- Parameters:
- assetKey- the name of the asset being cached, generally the filename of the asset
- Returns:
- optional containing the digest for the named asset
 
- 
setuppublic void setup()Setup the Asset Manager. Copies any defaults into the asset home directory. Should be run beforeAbstractLifecycle.startup()
- 
onStartupprotected void onStartup()- Specified by:
- onStartupin class- AbstractLifecycle
 
- 
onShutdownprotected void onShutdown()- Specified by:
- onShutdownin class- AbstractLifecycle
 
- 
generateKeyGenerate a cache key for the givenPath
- 
parseValueParse the cache value for the givenPath
- 
onCacheChangedprotected void onCacheChanged()Invoked within a synchronized block, that holds onto the cache lock, when there is a create, modify, or delete watch event. Invoked immediately following modification of the cache, the cache values and digest will be updated prior to being called. Override this method to update any cache local to the subclass.
 
-