-When instantiating a requirement, the developer needs to specify a type to which all the values added to the requirement will be linked. In the earlier example, there would be an ''"event"'' or ''"eventName"'' type. The type is represented by a string, like all values added to the requirement object. With an 'event' type requirement, a trace generator like the LTTng Control could automatically enable the required events. This is possible by calling the '''TmfAnalysisRequirementHelper''' class. Another point we have to take into consideration is the priority level of each value added to the requirement object. The enum '''TmfAnalysisRequirement#ValuePriorityLevel''' gives the choice between '''ValuePriorityLevel#MANDATORY''' and '''ValuePriorityLevel#OPTIONAL'''. That way, we can tell if an analysis can run without a value or not. To add values, one must call '''TmfAnalysisRequirement#addValue()'''.
+When creating a requirement, the developer needs to specify a type to which all
+the values added to the requirement will be linked. In the earlier example,
+there would be an ''"event"'' or ''"eventName"'' type. The type is represented
+by a string, like all values added to the requirement object. With an 'event'
+type requirement, a trace generator like the LTTng Control could automatically
+enable the required events. Another point we have to take into consideration
+is the priority level when creating a requirement object.
+The enum '''TmfAbstractAnalysisRequirement#PriorityLevel''' gives the choice
+between '''PriorityLevel#OPTIONAL''', '''PriorityLevel#ALL_OR_NOTHING''',
+'''PriorityLevel#AT_LEAST_ONE''' or '''PriorityLevel#MANDATORY'''. That way, we
+can tell if an analysis can run without a value or not.
+
+
+To create an requirement one has the choice to extend the abstract class
+'''TmfAbstractAnalysisRequirement''' or use the exiting implementation
+'''TmfAnalysisEventRequirement''', '''TmfAnalysisEventFieldRequirement''' or
+'''TmfCompositeAnalysisRequirement'''.