@ADR(1) @ADR(2)
@Target({ANNOTATION_TYPE,CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,PARAMETER,TYPE,TYPE_PARAMETER,TYPE_USE})
@Retention(RUNTIME)
@Documented
@Repeatable(MADRs.class)
public @interface MADR
-
Required Element Summary
Required ElementsModifier and TypeRequired ElementDescriptionThe chosen alternative.Short title of solved problem and solutionintThe number part of the ADR. -
Optional Element Summary
Optional Elements
-
Element Details
-
value
int valueThe number part of the ADR. For instance, 1 gets expanded to the full idADR-0001.- Returns:
- The number of the ADR
-
title
String titleShort title of solved problem and solution- Returns:
- title
-
contextAndProblem
String contextAndProblem- Returns:
- Context and problem statement
-
chosenAlternative
String chosenAlternativeThe chosen alternative. Invariant: alternatives().contains(chosenAlternative())- Returns:
- Chosen alternative
-
justification
String justification- Returns:
- Justification. e.g., only alternative, which meets k.o. criterion decision driver | which resolves force | ... | comes out best (see below)
-
-
-
userStory
String userStoryThe user story belonging to this ADR. Typically, a reference to the ticket in the issue tracker.- Returns:
- User story as reference.
- Default:
- ""
-
alternatives
String[] alternativesConsidered alternatives.- Returns:
- Considered alternatives
- Default:
- {}
-
consequences
String[] consequences- Returns:
- Consequences. e.g., negative impact on quality attribute, follow-up decisions required, ...
- Default:
- {}
-