Interface TagResolver
- All Known Subinterfaces:
TagResolver.Single,TagResolver.WithoutArguments
A resolver can handle anywhere from a single tag, to a dynamically generated set of tags, returning a tag based on the provided name and arguments.
- Since:
- 4.10.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA builder to gradually construct tag resolvers.static interfaceA resolver that only handles a single tag key.static interfaceA tag resolver that only handles tags which do not take arguments. -
Method Summary
Modifier and TypeMethodDescriptionstatic TagResolver.Builderbuilder()Create a new builder for a tag resolver.static TagResolvercaching(TagResolver.WithoutArguments resolver) Constructs a tag resolver capable of caching resolved tags.static TagResolverempty()An empty tag resolver that will returnnullfor all resolve attempts.booleanGet whether this resolver handles tags with a certain name.@Nullable Tagresolve(String name, ArgumentQueue arguments, Context ctx) Gets a tag from this resolver based on the current state.static TagResolverresolver(Iterable<? extends TagResolver> resolvers) Constructs a tag resolver capable of resolving from multiple sources.static TagResolverresolver(String name, BiFunction<ArgumentQueue, Context, Tag> handler) Create a tag resolver that only responds to a single tag name, and whose value does not depend on that name.static TagResolver.SingleA tag resolver that will resolve a single tag by a case-insensitive key.static TagResolverresolver(Set<String> names, BiFunction<ArgumentQueue, Context, Tag> handler) Create a tag resolver that only responds to certain tag names, and whose value does not depend on that name.static TagResolverresolver(TagResolver... resolvers) Constructs a tag resolver capable of resolving from multiple sources.static TagResolverstandard()Get the tag resolver that resolves allstandard tags.static Collector<TagResolver, ?, TagResolver> A collector that will combine a stream of resolvers into one joined resolver.
-
Method Details
-
builder
Create a new builder for a tag resolver.- Returns:
- the tag resolver builder
- Since:
- 4.10.0
-
standard
Get the tag resolver that resolves allstandard tags.This is the default resolver used by parsers.
- Returns:
- the default resolver
- Since:
- 4.10.0
-
empty
An empty tag resolver that will returnnullfor all resolve attempts.- Returns:
- the tag resolver
- Since:
- 4.10.0
-
resolver
A tag resolver that will resolve a single tag by a case-insensitive key.- Parameters:
name- the name of the tag to resolvetag- the tag logic to return- Returns:
- a new tag resolver
- Since:
- 4.10.0
-
resolver
Create a tag resolver that only responds to a single tag name, and whose value does not depend on that name.- Parameters:
name- the name to respond tohandler- the tag handler, may throwParsingExceptionif provided arguments are in an invalid format- Returns:
- a resolver that creates tags using the provided handler
- Since:
- 4.10.0
-
resolver
Create a tag resolver that only responds to certain tag names, and whose value does not depend on that name.- Parameters:
names- the names to respond tohandler- the tag handler, may throwParsingExceptionif provided arguments are in an invalid format- Returns:
- a resolver that creates tags using the provided handler
- Since:
- 4.10.0
-
resolver
Constructs a tag resolver capable of resolving from multiple sources.The last specified resolver takes priority.
- Parameters:
resolvers- the tag resolvers- Returns:
- the tag resolver
- Since:
- 4.10.0
-
resolver
Constructs a tag resolver capable of resolving from multiple sources.The last specified resolver takes priority.
The provided iterable is copied. This means changes to the iterable will not reflect in the returned resolver.
- Parameters:
resolvers- the tag resolvers- Returns:
- the tag resolver
- Since:
- 4.10.0
-
caching
Constructs a tag resolver capable of caching resolved tags.The resolver can return
nullto indicate it cannot resolve a placeholder. Once a string to replacement mapping has been created, it will be cached to avoid the cost of recreating the replacement.Due to the complexity of handling lookups for tags with arguments, the built-in cache does not support anything but tags without arguments.
- Parameters:
resolver- the resolver- Returns:
- the caching tag resolver
- Since:
- 4.10.0
-
toTagResolver
A collector that will combine a stream of resolvers into one joined resolver.- Returns:
- a collector for tag resolvers
- Since:
- 4.10.0
-
resolve
@Nullable Tag resolve(@TagPattern String name, ArgumentQueue arguments, Context ctx) throws ParsingException Gets a tag from this resolver based on the current state.- Parameters:
name- the tag namearguments- the arguments passed to the tagctx- the parse context- Returns:
- a possible tag
- Throws:
ParsingException- if the provided arguments are invalid- Since:
- 4.10.0
-
has
Get whether this resolver handles tags with a certain name.This does not allow validating arguments.
- Parameters:
name- the tag name- Returns:
- whether this resolver has a tag with this name
- Since:
- 4.10.0
-