Class MemoryStyleSource
- All Implemented Interfaces:
StyleSource
StyleSource.
This class provides a thread-safe implementation of StyleSource that stores style definitions in memory using concurrent hash maps. It is suitable for use in applications that need to dynamically define and modify styles at runtime.
Example usage:
MemoryStyleSource source = new MemoryStyleSource();
source.set("messages", "error", "bold,fg:red");
source.set("messages", "warning", "bold,fg:yellow");
source.set("links", "url", "fg:blue,underline");
// Use the source with a StyleResolver
StyleResolver resolver = new StyleResolver(source, "messages");
AttributedStyle errorStyle = resolver.resolve(".error");
- Since:
- 3.4
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears all style definitions from this source.Returns the style definition for the given style group and name, ornullif not found.groups()Returns the names of all configured style groups.voidRemoves all styles for the given style group.voidRemoves a specific style from a style group.voidSets a style definition for the given style group and name.Returns all configured styles for the given style group.
-
Constructor Details
-
MemoryStyleSource
public MemoryStyleSource()
-
-
Method Details
-
get
Description copied from interface:StyleSourceReturns the style definition for the given style group and name, ornullif not found.This method retrieves a style definition from the source. Style definitions are strings in the format understood by
StyleResolver, such as "bold,fg:red" or "underline,fg:blue".Style groups are used to organize styles by category or purpose, such as "error", "warning", or "info" styles within a "messages" group.
- Specified by:
getin interfaceStyleSource- Parameters:
group- the style group name (must not be null)name- the style name within the group (must not be null)- Returns:
- the style definition string, or
nullif no style is defined for the given group and name
-
set
Description copied from interface:StyleSourceSets a style definition for the given style group and name.This method stores a style definition in the source. Style definitions are strings in the format understood by
StyleResolver, such as "bold,fg:red" or "underline,fg:blue".If a style with the same group and name already exists, it will be replaced.
Example:
source.set("messages", "error", "bold,fg:red"); source.set("messages", "warning", "bold,fg:yellow"); source.set("links", "url", "fg:blue,underline");- Specified by:
setin interfaceStyleSource- Parameters:
group- the style group name (must not be null)name- the style name within the group (must not be null)style- the style definition string (must not be null)
-
remove
Description copied from interface:StyleSourceRemoves all styles for the given style group.This method removes all style definitions associated with the specified group. If the group does not exist or has no styles, this method has no effect.
- Specified by:
removein interfaceStyleSource- Parameters:
group- the style group name to remove (must not be null)
-
remove
Description copied from interface:StyleSourceRemoves a specific style from a style group.This method removes the style definition for the specified group and name. If the style does not exist, this method has no effect.
- Specified by:
removein interfaceStyleSource- Parameters:
group- the style group name (must not be null)name- the style name to remove (must not be null)
-
clear
public void clear()Description copied from interface:StyleSourceClears all style definitions from this source.This method removes all style groups and their associated styles from the source. After calling this method, the source will be empty.
- Specified by:
clearin interfaceStyleSource
-
groups
Description copied from interface:StyleSourceReturns the names of all configured style groups.This method returns an iterable of all style group names that have been configured in this source. If no groups have been configured, an empty iterable is returned.
- Specified by:
groupsin interfaceStyleSource- Returns:
- an immutable iterable of style group names (never null)
-
styles
Description copied from interface:StyleSourceReturns all configured styles for the given style group.This method returns a map of style names to style definitions for the specified group. If the group does not exist or has no styles, an empty map is returned.
- Specified by:
stylesin interfaceStyleSource- Parameters:
group- the style group name (must not be null)- Returns:
- an immutable map of style names to style definitions (never null)
-