Package com.puppycrawl.tools.checkstyle
Class PropertyCacheFile
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.PropertyCacheFile
-
public final class PropertyCacheFile extends java.lang.Object
This class maintains a persistent(on file-system) store of the files that have checked ok(no validation events) and their associated timestamp. It is used to optimize Checkstyle between few launches. It is mostly useful for plugin and extensions of Checkstyle. It uses a property file for storage. A hashcode of the Configuration is stored in the cache file to ensure the cache is invalidated when the configuration has changed.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONFIG_HASH_KEY
The property key to use for storing the hashcode of the configuration.static java.lang.String
EXTERNAL_RESOURCE_KEY_PREFIX
The property prefix to use for storing the hashcode of an external resource.
-
Constructor Summary
Constructors Constructor Description PropertyCacheFile(Configuration config, java.lang.String fileName)
Creates a newPropertyCacheFile
instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
get(java.lang.String name)
Retrieves the hash of a specific file.boolean
isInCache(java.lang.String uncheckedFileName, long timestamp)
Checks that file is in cache.void
load()
Load cached values from file.void
persist()
Cleans up the object and updates the cache file.void
put(java.lang.String checkedFileName, long timestamp)
Records that a file checked ok.void
putExternalResources(java.util.Set<java.lang.String> locations)
Puts external resources in cache.void
remove(java.lang.String checkedFileName)
Removed a specific file from the cache.void
reset()
Resets the cache to be empty except for the configuration hash.
-
-
-
Field Detail
-
CONFIG_HASH_KEY
public static final java.lang.String CONFIG_HASH_KEY
The property key to use for storing the hashcode of the configuration. To avoid name clashes with the files that are checked the key is chosen in such a way that it cannot be a valid file name.- See Also:
- Constant Field Values
-
EXTERNAL_RESOURCE_KEY_PREFIX
public static final java.lang.String EXTERNAL_RESOURCE_KEY_PREFIX
The property prefix to use for storing the hashcode of an external resource. To avoid name clashes with the files that are checked the prefix is chosen in such a way that it cannot be a valid file name and makes it clear it is a resource.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PropertyCacheFile
public PropertyCacheFile(Configuration config, java.lang.String fileName)
Creates a newPropertyCacheFile
instance.- Parameters:
config
- the current configuration, not nullfileName
- the cache file- Throws:
java.lang.IllegalArgumentException
- when either arguments are null
-
-
Method Detail
-
load
public void load() throws java.io.IOException
Load cached values from file.- Throws:
java.io.IOException
- when there is a problems with file read
-
persist
public void persist() throws java.io.IOException
Cleans up the object and updates the cache file.- Throws:
java.io.IOException
- when there is a problems with file save
-
reset
public void reset()
Resets the cache to be empty except for the configuration hash.
-
isInCache
public boolean isInCache(java.lang.String uncheckedFileName, long timestamp)
Checks that file is in cache.- Parameters:
uncheckedFileName
- the file to checktimestamp
- the timestamp of the file to check- Returns:
- whether the specified file has already been checked ok
-
put
public void put(java.lang.String checkedFileName, long timestamp)
Records that a file checked ok.- Parameters:
checkedFileName
- name of the file that checked oktimestamp
- the timestamp of the file
-
get
public java.lang.String get(java.lang.String name)
Retrieves the hash of a specific file.- Parameters:
name
- The name of the file to retrieve.- Returns:
- The has of the file or
null
.
-
remove
public void remove(java.lang.String checkedFileName)
Removed a specific file from the cache.- Parameters:
checkedFileName
- The name of the file to remove.
-
putExternalResources
public void putExternalResources(java.util.Set<java.lang.String> locations)
Puts external resources in cache. If at least one external resource changed, clears the cache.- Parameters:
locations
- locations of external resources.
-
-