java.lang.Object
com.winterhavenmc.library.messagebuilder.adapters.pipeline.resolvers.value.MacroValueResolver
All Implemented Interfaces:
ValueResolver

public class MacroValueResolver extends Object implements 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 Details

    • MacroValueResolver

      public MacroValueResolver(List<ValueResolver> resolvers)
      Constructs a MacroValueResolver with the given list of delegate resolvers. The resolvers will be invoked in the order provided.
      Parameters:
      resolvers - the ordered list of ValueResolver instances to delegate to
  • Method Details

    • resolve

      public MacroStringMap resolve(ValidMacroKey macroKey, MacroObjectMap macroObjectMap)
      Resolves a ValidMacroKey using the available macro objects in the given MacroObjectMap, 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:
      resolve in interface ValueResolver
      Parameters:
      macroKey - the base string to resolve values for
      macroObjectMap - the object map containing macro values to be resolved
      Returns:
      a MacroStringMap containing resolved string-value pairs