Package org.apache.sling.models.annotations.injectorspecific

# Annotation Interface Self

@Target({METHOD,FIELD,PARAMETER}) @Retention(RUNTIME) @InjectAnnotation public @interface Self
Annotation to be used on either methods, fields or constructor parameters to let Sling Models inject the adaptable itself, or an object that can be adapted from it.

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`InjectionStrategy`
`injectionStrategy`
Specifies the injection strategy applied to an annotated element: If set to `InjectionStrategy.REQUIRED`, injection is mandatory. If set to `InjectionStrategy.OPTIONAL`, injection is optional. If set to `InjectionStrategy.DEFAULT` (default), the default injection strategy defined on the `Model` applies. WARNING: Injection strategy is ignored if either `Optional` or `Required` is applied on the same element.
`boolean`
`optional`
Deprecated.
Use `injectionStrategy()` instead

## Element Details

### optional

@Deprecated boolean optional
Deprecated.
Use `injectionStrategy()` instead
If set to true, the model can be instantiated even if there is no object that can be adapted from the adaptable itself. Default = false.

Returns:
  Optional

Default:
  false

### injectionStrategy

InjectionStrategy injectionStrategy
Specifies the injection strategy applied to an annotated element:

- If set to `InjectionStrategy.REQUIRED`, injection is mandatory.
- If set to `InjectionStrategy.OPTIONAL`, injection is optional.
- If set to `InjectionStrategy.DEFAULT` (default), the default injection strategy defined on the `Model` applies.

WARNING: Injection strategy is ignored if either `Optional` or `Required` is applied on the same element.

Returns:
  Injection strategy

Default:
  DEFAULT