spdx_tools.spdx.validation.annotation_validator

 1# SPDX-FileCopyrightText: 2022 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4
 5from beartype.typing import List
 6
 7from spdx_tools.spdx.model import Annotation, Document
 8from spdx_tools.spdx.validation.actor_validator import validate_actor
 9from spdx_tools.spdx.validation.spdx_id_validators import validate_spdx_id
10from spdx_tools.spdx.validation.validation_message import SpdxElementType, ValidationContext, ValidationMessage
11
12
13def validate_annotations(annotations: List[Annotation], document: Document) -> List[ValidationMessage]:
14    validation_messages = []
15    for annotation in annotations:
16        validation_messages.extend(validate_annotation(annotation, document))
17
18    return validation_messages
19
20
21def validate_annotation(annotation: Annotation, document: Document) -> List[ValidationMessage]:
22    validation_messages = []
23    context = ValidationContext(element_type=SpdxElementType.ANNOTATION, full_element=annotation)
24
25    validation_messages.extend(validate_actor(annotation.annotator, "annotation"))
26
27    messages: List[str] = validate_spdx_id(annotation.spdx_id, document, check_document=True)
28    for message in messages:
29        validation_messages.append(ValidationMessage(message, context))
30
31    return validation_messages
14def validate_annotations(annotations: List[Annotation], document: Document) -> List[ValidationMessage]:
15    validation_messages = []
16    for annotation in annotations:
17        validation_messages.extend(validate_annotation(annotation, document))
18
19    return validation_messages
22def validate_annotation(annotation: Annotation, document: Document) -> List[ValidationMessage]:
23    validation_messages = []
24    context = ValidationContext(element_type=SpdxElementType.ANNOTATION, full_element=annotation)
25
26    validation_messages.extend(validate_actor(annotation.annotator, "annotation"))
27
28    messages: List[str] = validate_spdx_id(annotation.spdx_id, document, check_document=True)
29    for message in messages:
30        validation_messages.append(ValidationMessage(message, context))
31
32    return validation_messages