Package org.apache.juneau.config.store
Class FileStore
java.lang.Object
org.apache.juneau.Context
org.apache.juneau.config.store.ConfigStore
org.apache.juneau.config.store.FileStore
- All Implemented Interfaces:
Closeable
,AutoCloseable
,AnnotationProvider
Filesystem-based storage location for configuration files.
Points to a file system directory containing configuration files.
Notes:
- This class is thread safe and reusable.
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.apache.juneau.Context
CONTEXT_APPLY_FILTER
Fields inherited from interface org.apache.juneau.AnnotationProvider
DISABLE_ANNOTATION_CACHING
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
copy()
Creates a builder from this context object.static FileStore.Builder
create()
Creates a new builder for this object.boolean
Checks whether the configuration with the specified name exists in this store.protected void
Gets called when the watcher service on this store is triggered with a file system change.protected JsonMap
Returns the properties on this bean as a map for debugging.Returns the contents of the configuration file.protected String
resolveName
(String name) Subclasses can override this method to convert config names to internal forms.Called when the physical contents of a config file have changed.Saves the contents of the configuration file if the underlying storage hasn't been modified.Methods inherited from class org.apache.juneau.config.store.ConfigStore
getMap, register, unregister, update
Methods inherited from class org.apache.juneau.Context
createBuilder, createSession, firstAnnotation, firstAnnotation, firstAnnotation, firstAnnotation, firstDeclaredAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachDeclaredAnnotation, getSession, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, init, isDebug, lastAnnotation, lastAnnotation, lastAnnotation, lastAnnotation, lastDeclaredAnnotation, toString
-
Field Details
-
DEFAULT
Default file store, all default values.
-
-
Constructor Details
-
FileStore
Constructor.- Parameters:
builder
- The builder for this object.
-
-
Method Details
-
create
Creates a new builder for this object.- Returns:
- A new builder.
-
copy
Description copied from class:Context
Creates a builder from this context object.Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
-
read
Description copied from class:ConfigStore
Returns the contents of the configuration file.- Specified by:
read
in classConfigStore
- Parameters:
name
- The config file name.- Returns:
- The contents of the configuration file.
A blank string if the config does not exist.
Nevernull . - Throws:
IOException
- Thrown by underlying stream.
-
write
Description copied from class:ConfigStore
Saves the contents of the configuration file if the underlying storage hasn't been modified.- Specified by:
write
in classConfigStore
- Parameters:
name
- The config file name.expectedContents
- The expected contents of the file.newContents
- The new contents.- Returns:
- If
null , then we successfully stored the contents of the file.
Otherwise the contents of the file have changed and we return the new contents of the file. - Throws:
IOException
- Thrown by underlying stream.
-
exists
Description copied from class:ConfigStore
Checks whether the configuration with the specified name exists in this store.- Specified by:
exists
in classConfigStore
- Parameters:
name
- The config name.- Returns:
true if the configuration with the specified name exists in this store.
-
resolveName
Description copied from class:ConfigStore
Subclasses can override this method to convert config names to internal forms.For example, the
FileStore
class can take in both"MyConfig" and"MyConfig.cfg" as names that both resolve to"MyConfig.cfg" .- Overrides:
resolveName
in classConfigStore
- Parameters:
name
- The name to resolve.- Returns:
- The resolved name.
-
update
Description copied from class:ConfigStore
Called when the physical contents of a config file have changed.Triggers calls to
ConfigStoreListener.onChange(String)
on all registered listeners.- Overrides:
update
in classConfigStore
- Parameters:
name
- The config name (e.g. the filename without the extension).newContents
- The new contents.- Returns:
- This object.
-
close
-
onFileEvent
Gets called when the watcher service on this store is triggered with a file system change.- Parameters:
e
- The file system event.- Throws:
IOException
- Thrown by underlying stream.
-
properties
Description copied from class:Context
Returns the properties on this bean as a map for debugging.- Overrides:
properties
in classContext
- Returns:
- The properties on this bean as a map for debugging.
-