Class MacroValueResolver
java.lang.Object
com.winterhavenmc.library.messagebuilder.adapters.pipeline.resolvers.value.MacroValueResolver
- All Implemented Interfaces:
ValueResolver
A
ValueResolver implementation that delegates resolution to a chain of
other ValueResolver instances in order.
This class attempts to resolve macro values by invoking each resolver in the order provided during construction. Results from earlier resolvers in the chain take precedence—if a macro string has already been mapped, subsequent resolvers will not overwrite it.
Typical usage involves registering a CompositeResolver first, followed by
an AtomicResolver, allowing composite (adapted) values to take priority
over simpler atomic ones only if the base string has not already been defined.
import com.winterhavenmc.library.messagebuilder.core.ports.pipeline.resolvers.macro.ValueResolver;ValueResolver resolver = new MacroValueResolver(List.of(
new CompositeResolver(),
new AtomicResolver()
));
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionMacroValueResolver(List<ValueResolver> resolvers) Constructs aMacroValueResolverwith the given list of delegate resolvers. -
Method Summary
Modifier and TypeMethodDescriptionresolve(ValidMacroKey macroKey, MacroObjectMap macroObjectMap) Resolves aValidMacroKeyusing the available macro objects in the givenMacroObjectMap, by delegating to each registered resolver in sequence.
-
Constructor Details
-
MacroValueResolver
Constructs aMacroValueResolverwith the given list of delegate resolvers. The resolvers will be invoked in the order provided.- Parameters:
resolvers- the ordered list ofValueResolverinstances to delegate to
-
-
Method Details
-
resolve
Resolves aValidMacroKeyusing the available macro objects in the givenMacroObjectMap, by delegating to each registered resolver in sequence.Values resolved earlier take precedence—existing keys in the result map will not be overwritten by later resolvers.
- Specified by:
resolvein interfaceValueResolver- Parameters:
macroKey- the base string to resolve values formacroObjectMap- the object map containing macro values to be resolved- Returns:
- a
MacroStringMapcontaining resolved string-value pairs
-