# 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
  Interface | Description
  --- | ---
  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
  Class | Description
  --- | ---
  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
  Enum | Description
  --- | ---
  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
  Exception | Description
  --- | ---
  InvalidSelectorException | Exception to be thrown from `ITargetSelector.validate()` when a target selector fails verification

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  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"