java.lang.Object
com.winterhavenmc.library.messagebuilder.pipeline.resolvers.FieldResolver
All Implemented Interfaces:
Resolver

public class FieldResolver extends Object implements Resolver
A Resolver implementation that delegates resolution to a chain of other Resolver 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 key 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 key has not already been defined.

Resolver resolver = new FieldResolver(List.of(
    new CompositeResolver(),
    new AtomicResolver()
));
See Also:
  • Constructor Details

    • FieldResolver

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

    • resolve

      public MacroStringMap resolve(MacroKey macroKey, MacroObjectMap macroObjectMap)
      Resolves a MacroKey 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 Resolver
      Parameters:
      macroKey - the base key to resolve values for
      macroObjectMap - the object map containing macro values to be resolved
      Returns:
      a MacroStringMap containing resolved key-value pairs