# Package org.spongepowered.asm.mixin.injection.selectors

Target selectors are consumed by injectors and injection points when identifying target members in a class or inside a method, see `ITargetSelector`.

Interface Summary
ISelectorContext: Context passed to a `Target Selector` in order to support context-sensitive behaviour for the selector.
ITargetSelector: Target Selectors are used to identify target members in a class, with the criteria for selection being specified in a single string, effectively defining the query parameters.
ITargetSelectorByName: A target selector which selects elements directly by name.
ITargetSelectorConstructor: A target selector which can identify constructor types
ITargetSelectorDynamic: Decoration interface for dynamic target selectors
ITargetSelectorRemappable: A target selector which can be remapped at compile time via an obfuscation service

Class Summary
ElementNode<TNode>: Wrapper for all node types supported by `target selectors` (`FieldNode`, `MethodNode`, `FieldInsnNode`, `MethodInsnNode` and `InvokeDynamicInsnNode`) which allows access to common properties of things which are basically "arbitrary node with owner, name and descriptor"
InvalidSelector: Since the contract of `TargetSelector.parse(java.lang.Iterable<?>, org.spongepowered.asm.mixin.injection.selectors.ISelectorContext)` prohibits returing `null`, instances of this selector are returned when supplied arguments are unparseable in order to throw exceptions only during validation.
MemberMatcher: A `Target Selector` which matches an element of candidate members using a regular expression.
TargetSelector: Utility class for parsing selectors
TargetSelector.Result<TNode>: Query result struct
TargetSelectors
TargetSelectors.SelectedMethod: Selected target method, paired with the selector which identified it

Enum Summary
ElementNode.NodeType: Element node type, returned by `getType` so consumers don't need to do instanceof checks, and allows switching on element type in a more expressive way
ITargetSelector.Configure: Available selector reconfigurations
MatchResult: Result of a `target selector` match operation which describes the type of match.

Exception Summary
InvalidSelectorException: Exception to be thrown from `ITargetSelector.validate()` when a target selector fails verification

Annotation Types Summary
ITargetSelectorDynamic.SelectorAnnotation: Decoration for subclasses which indicates an annotation type from which the selector can be parsed.
ITargetSelectorDynamic.SelectorId: Decoration for subclasses which indicates id used for a specific selector when specified, for example `@MyNamespace:MySelector(argshere)` would specify "MySelector"